@thymian/plugin-sampler 0.3.0-canary.20261007-e6cb8dc → 0.3.0-canary.20261007-cdbe1d3

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 (264) hide show
  1. package/dist/cli/check-result.d.ts +88 -0
  2. package/dist/cli/check-result.d.ts.map +1 -0
  3. package/dist/cli/check-result.js +160 -0
  4. package/dist/cli/check-result.js.map +1 -0
  5. package/dist/cli/commands/sampler/check.d.ts +32 -4
  6. package/dist/cli/commands/sampler/check.d.ts.map +1 -1
  7. package/dist/cli/commands/sampler/check.js +126 -88
  8. package/dist/cli/commands/sampler/check.js.map +1 -1
  9. package/dist/cli/commands/sampler/init.d.ts +4 -6
  10. package/dist/cli/commands/sampler/init.d.ts.map +1 -1
  11. package/dist/cli/commands/sampler/init.js +33 -49
  12. package/dist/cli/commands/sampler/init.js.map +1 -1
  13. package/dist/cli/commands/sampler/show.d.ts +11 -0
  14. package/dist/cli/commands/sampler/show.d.ts.map +1 -0
  15. package/dist/cli/commands/sampler/show.js +36 -0
  16. package/dist/cli/commands/sampler/show.js.map +1 -0
  17. package/dist/cli/commands/sampler/sync.d.ts +11 -0
  18. package/dist/cli/commands/sampler/sync.d.ts.map +1 -0
  19. package/dist/cli/commands/sampler/sync.js +65 -0
  20. package/dist/cli/commands/sampler/sync.js.map +1 -0
  21. package/dist/cli/commands/sampler/validate.d.ts +3 -10
  22. package/dist/cli/commands/sampler/validate.d.ts.map +1 -1
  23. package/dist/cli/commands/sampler/validate.js +57 -126
  24. package/dist/cli/commands/sampler/validate.js.map +1 -1
  25. package/dist/generation/closed-schema.d.ts +22 -0
  26. package/dist/generation/closed-schema.d.ts.map +1 -0
  27. package/dist/generation/closed-schema.js +45 -0
  28. package/dist/generation/closed-schema.js.map +1 -0
  29. package/dist/generation/content-type-strategies/json.content-type-strategy.d.ts.map +1 -1
  30. package/dist/generation/content-type-strategies/json.content-type-strategy.js +3 -1
  31. package/dist/generation/content-type-strategies/json.content-type-strategy.js.map +1 -1
  32. package/dist/generation/content-type-strategies/xml.content-type-strategy.d.ts.map +1 -1
  33. package/dist/generation/content-type-strategies/xml.content-type-strategy.js +3 -1
  34. package/dist/generation/content-type-strategies/xml.content-type-strategy.js.map +1 -1
  35. package/dist/generation/generate-request-sample.d.ts +12 -0
  36. package/dist/generation/generate-request-sample.d.ts.map +1 -0
  37. package/dist/generation/{generate-samples.js → generate-request-sample.js} +11 -4
  38. package/dist/generation/generate-request-sample.js.map +1 -0
  39. package/dist/generation/request-generators/default-request-generator.d.ts +14 -0
  40. package/dist/generation/request-generators/default-request-generator.d.ts.map +1 -1
  41. package/dist/generation/request-generators/default-request-generator.js +18 -1
  42. package/dist/generation/request-generators/default-request-generator.js.map +1 -1
  43. package/dist/generation/types/declaration-set.d.ts +124 -0
  44. package/dist/generation/types/declaration-set.d.ts.map +1 -0
  45. package/dist/generation/types/declaration-set.js +389 -0
  46. package/dist/generation/types/declaration-set.js.map +1 -0
  47. package/dist/generation/types/example-reflection.d.ts +21 -0
  48. package/dist/generation/types/example-reflection.d.ts.map +1 -0
  49. package/dist/generation/types/example-reflection.js +135 -0
  50. package/dist/generation/types/example-reflection.js.map +1 -0
  51. package/dist/generation/types/generate-type-surface.d.ts +23 -0
  52. package/dist/generation/types/generate-type-surface.d.ts.map +1 -0
  53. package/dist/generation/types/generate-type-surface.js +671 -0
  54. package/dist/generation/types/generate-type-surface.js.map +1 -0
  55. package/dist/generation/types/schema-type.d.ts +20 -0
  56. package/dist/generation/types/schema-type.d.ts.map +1 -0
  57. package/dist/generation/types/schema-type.js +203 -0
  58. package/dist/generation/types/schema-type.js.map +1 -0
  59. package/dist/generation/types/self-check-surface.d.ts +32 -0
  60. package/dist/generation/types/self-check-surface.d.ts.map +1 -0
  61. package/dist/generation/types/self-check-surface.js +92 -0
  62. package/dist/generation/types/self-check-surface.js.map +1 -0
  63. package/dist/generation/types/type-names.d.ts +135 -0
  64. package/dist/generation/types/type-names.d.ts.map +1 -0
  65. package/dist/generation/types/type-names.js +213 -0
  66. package/dist/generation/types/type-names.js.map +1 -0
  67. package/dist/generation/types/write-type-surface.d.ts +58 -0
  68. package/dist/generation/types/write-type-surface.d.ts.map +1 -0
  69. package/dist/generation/types/write-type-surface.js +119 -0
  70. package/dist/generation/types/write-type-surface.js.map +1 -0
  71. package/dist/hooks/create-hook-utils.d.ts +22 -6
  72. package/dist/hooks/create-hook-utils.d.ts.map +1 -1
  73. package/dist/hooks/create-hook-utils.js +74 -96
  74. package/dist/hooks/create-hook-utils.js.map +1 -1
  75. package/dist/hooks/hook-api.d.ts +49 -0
  76. package/dist/hooks/hook-api.d.ts.map +1 -0
  77. package/dist/hooks/hook-api.js +105 -0
  78. package/dist/hooks/hook-api.js.map +1 -0
  79. package/dist/hooks/hook-diagnostics.d.ts +45 -0
  80. package/dist/hooks/hook-diagnostics.d.ts.map +1 -0
  81. package/dist/hooks/hook-diagnostics.js +80 -0
  82. package/dist/hooks/hook-diagnostics.js.map +1 -0
  83. package/dist/hooks/hook-errors.d.ts +33 -0
  84. package/dist/hooks/hook-errors.d.ts.map +1 -1
  85. package/dist/hooks/hook-errors.js +46 -0
  86. package/dist/hooks/hook-errors.js.map +1 -1
  87. package/dist/hooks/hook-registration.d.ts +108 -0
  88. package/dist/hooks/hook-registration.d.ts.map +1 -0
  89. package/dist/hooks/hook-registration.js +69 -0
  90. package/dist/hooks/hook-registration.js.map +1 -0
  91. package/dist/hooks/hook-runner.d.ts +111 -11
  92. package/dist/hooks/hook-runner.d.ts.map +1 -1
  93. package/dist/hooks/hook-runner.js +309 -142
  94. package/dist/hooks/hook-runner.js.map +1 -1
  95. package/dist/hooks/hook-utils-factory.d.ts +19 -0
  96. package/dist/hooks/hook-utils-factory.d.ts.map +1 -0
  97. package/dist/hooks/hook-utils-factory.js +2 -0
  98. package/dist/hooks/hook-utils-factory.js.map +1 -0
  99. package/dist/hooks/hook-utils.d.ts +80 -12
  100. package/dist/hooks/hook-utils.d.ts.map +1 -1
  101. package/dist/hooks/invoke-hook.d.ts +71 -0
  102. package/dist/hooks/invoke-hook.d.ts.map +1 -0
  103. package/dist/hooks/invoke-hook.js +161 -0
  104. package/dist/hooks/invoke-hook.js.map +1 -0
  105. package/dist/hooks/load-user-hooks.d.ts +96 -0
  106. package/dist/hooks/load-user-hooks.d.ts.map +1 -0
  107. package/dist/hooks/load-user-hooks.js +432 -0
  108. package/dist/hooks/load-user-hooks.js.map +1 -0
  109. package/dist/hooks/nested-request.d.ts +21 -0
  110. package/dist/hooks/nested-request.d.ts.map +1 -0
  111. package/dist/hooks/nested-request.js +24 -0
  112. package/dist/hooks/nested-request.js.map +1 -0
  113. package/dist/hooks/overlay-args.d.ts +40 -0
  114. package/dist/hooks/overlay-args.d.ts.map +1 -0
  115. package/dist/hooks/overlay-args.js +84 -0
  116. package/dist/hooks/overlay-args.js.map +1 -0
  117. package/dist/hooks/resolve-targeting.d.ts +16 -0
  118. package/dist/hooks/resolve-targeting.d.ts.map +1 -0
  119. package/dist/hooks/resolve-targeting.js +168 -0
  120. package/dist/hooks/resolve-targeting.js.map +1 -0
  121. package/dist/hooks/run-scoped-hooks.d.ts +83 -0
  122. package/dist/hooks/run-scoped-hooks.d.ts.map +1 -0
  123. package/dist/hooks/run-scoped-hooks.js +153 -0
  124. package/dist/hooks/run-scoped-hooks.js.map +1 -0
  125. package/dist/index.d.ts +42 -19
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +152 -165
  128. package/dist/index.js.map +1 -1
  129. package/dist/request-sampler.d.ts +40 -11
  130. package/dist/request-sampler.d.ts.map +1 -1
  131. package/dist/request-sampler.js +51 -76
  132. package/dist/request-sampler.js.map +1 -1
  133. package/dist/sampler-paths.d.ts +19 -0
  134. package/dist/sampler-paths.d.ts.map +1 -0
  135. package/dist/sampler-paths.js +22 -0
  136. package/dist/sampler-paths.js.map +1 -0
  137. package/dist/selectors/nearest-paths.d.ts +14 -0
  138. package/dist/selectors/nearest-paths.d.ts.map +1 -0
  139. package/dist/selectors/nearest-paths.js +32 -0
  140. package/dist/selectors/nearest-paths.js.map +1 -0
  141. package/dist/selectors/path-glob.d.ts +94 -0
  142. package/dist/selectors/path-glob.d.ts.map +1 -0
  143. package/dist/selectors/path-glob.js +136 -0
  144. package/dist/selectors/path-glob.js.map +1 -0
  145. package/dist/selectors/selector-errors.d.ts +17 -0
  146. package/dist/selectors/selector-errors.d.ts.map +1 -0
  147. package/dist/selectors/selector-errors.js +139 -0
  148. package/dist/selectors/selector-errors.js.map +1 -0
  149. package/dist/selectors/selector.d.ts +55 -0
  150. package/dist/selectors/selector.d.ts.map +1 -0
  151. package/dist/selectors/selector.js +305 -0
  152. package/dist/selectors/selector.js.map +1 -0
  153. package/dist/selectors/transaction-catalog.d.ts +96 -0
  154. package/dist/selectors/transaction-catalog.d.ts.map +1 -0
  155. package/dist/selectors/transaction-catalog.js +193 -0
  156. package/dist/selectors/transaction-catalog.js.map +1 -0
  157. package/dist/selectors/transaction-filter.d.ts +119 -0
  158. package/dist/selectors/transaction-filter.d.ts.map +1 -0
  159. package/dist/selectors/transaction-filter.js +191 -0
  160. package/dist/selectors/transaction-filter.js.map +1 -0
  161. package/dist/ts-path.d.ts +36 -0
  162. package/dist/ts-path.d.ts.map +1 -0
  163. package/dist/ts-path.js +46 -0
  164. package/dist/ts-path.js.map +1 -0
  165. package/dist/utils.d.ts +1 -2
  166. package/dist/utils.d.ts.map +1 -1
  167. package/dist/utils.js +2 -20
  168. package/dist/utils.js.map +1 -1
  169. package/dist/validation/canonicalize.d.ts +17 -0
  170. package/dist/validation/canonicalize.d.ts.map +1 -0
  171. package/dist/validation/canonicalize.js +29 -0
  172. package/dist/validation/canonicalize.js.map +1 -0
  173. package/dist/validation/shared-compiler-host.d.ts +17 -0
  174. package/dist/validation/shared-compiler-host.d.ts.map +1 -0
  175. package/dist/validation/shared-compiler-host.js +58 -0
  176. package/dist/validation/shared-compiler-host.js.map +1 -0
  177. package/dist/validation/typecheck-hooks.d.ts +37 -0
  178. package/dist/validation/typecheck-hooks.d.ts.map +1 -0
  179. package/dist/validation/typecheck-hooks.js +169 -0
  180. package/dist/validation/typecheck-hooks.js.map +1 -0
  181. package/dist/validation/validate-sampler.d.ts +79 -0
  182. package/dist/validation/validate-sampler.d.ts.map +1 -0
  183. package/dist/validation/validate-sampler.js +89 -0
  184. package/dist/validation/validate-sampler.js.map +1 -0
  185. package/package.json +7 -11
  186. package/dist/cli/commands/sampler/generate/hook.d.ts +0 -10
  187. package/dist/cli/commands/sampler/generate/hook.d.ts.map +0 -1
  188. package/dist/cli/commands/sampler/generate/hook.js +0 -19
  189. package/dist/cli/commands/sampler/generate/hook.js.map +0 -1
  190. package/dist/cli/generate-hook.d.ts +0 -4
  191. package/dist/cli/generate-hook.d.ts.map +0 -1
  192. package/dist/cli/generate-hook.js +0 -96
  193. package/dist/cli/generate-hook.js.map +0 -1
  194. package/dist/cli/templates.d.ts +0 -4
  195. package/dist/cli/templates.d.ts.map +0 -1
  196. package/dist/cli/templates.js +0 -28
  197. package/dist/cli/templates.js.map +0 -1
  198. package/dist/constants.d.ts +0 -12
  199. package/dist/constants.d.ts.map +0 -1
  200. package/dist/constants.js +0 -16
  201. package/dist/constants.js.map +0 -1
  202. package/dist/generation/generate-samples-for-thymian-format.d.ts +0 -4
  203. package/dist/generation/generate-samples-for-thymian-format.d.ts.map +0 -1
  204. package/dist/generation/generate-samples-for-thymian-format.js +0 -18
  205. package/dist/generation/generate-samples-for-thymian-format.js.map +0 -1
  206. package/dist/generation/generate-samples.d.ts +0 -4
  207. package/dist/generation/generate-samples.d.ts.map +0 -1
  208. package/dist/generation/generate-samples.js.map +0 -1
  209. package/dist/hooks/generate-request-types.d.ts +0 -34
  210. package/dist/hooks/generate-request-types.d.ts.map +0 -1
  211. package/dist/hooks/generate-request-types.js +0 -458
  212. package/dist/hooks/generate-request-types.js.map +0 -1
  213. package/dist/hooks/hook-types.d.ts +0 -7
  214. package/dist/hooks/hook-types.d.ts.map +0 -1
  215. package/dist/hooks/hook-types.js +0 -2
  216. package/dist/hooks/hook-types.js.map +0 -1
  217. package/dist/hooks/load-hooks-from-samples.d.ts +0 -3
  218. package/dist/hooks/load-hooks-from-samples.d.ts.map +0 -1
  219. package/dist/hooks/load-hooks-from-samples.js +0 -22
  220. package/dist/hooks/load-hooks-from-samples.js.map +0 -1
  221. package/dist/hooks/ts-config.d.ts +0 -10
  222. package/dist/hooks/ts-config.d.ts.map +0 -1
  223. package/dist/hooks/ts-config.js +0 -10
  224. package/dist/hooks/ts-config.js.map +0 -1
  225. package/dist/samples-structure/file-request-sample.d.ts +0 -20
  226. package/dist/samples-structure/file-request-sample.d.ts.map +0 -1
  227. package/dist/samples-structure/file-request-sample.js +0 -5
  228. package/dist/samples-structure/file-request-sample.js.map +0 -1
  229. package/dist/samples-structure/get-path-transaction-id.d.ts +0 -3
  230. package/dist/samples-structure/get-path-transaction-id.d.ts.map +0 -1
  231. package/dist/samples-structure/get-path-transaction-id.js +0 -22
  232. package/dist/samples-structure/get-path-transaction-id.js.map +0 -1
  233. package/dist/samples-structure/merge-tree.d.ts +0 -5
  234. package/dist/samples-structure/merge-tree.d.ts.map +0 -1
  235. package/dist/samples-structure/merge-tree.js +0 -118
  236. package/dist/samples-structure/merge-tree.js.map +0 -1
  237. package/dist/samples-structure/read-samples-from-dir.d.ts +0 -13
  238. package/dist/samples-structure/read-samples-from-dir.d.ts.map +0 -1
  239. package/dist/samples-structure/read-samples-from-dir.js +0 -205
  240. package/dist/samples-structure/read-samples-from-dir.js.map +0 -1
  241. package/dist/samples-structure/samples-from-transactions.d.ts +0 -5
  242. package/dist/samples-structure/samples-from-transactions.d.ts.map +0 -1
  243. package/dist/samples-structure/samples-from-transactions.js +0 -120
  244. package/dist/samples-structure/samples-from-transactions.js.map +0 -1
  245. package/dist/samples-structure/samples-tree-structure.d.ts +0 -106
  246. package/dist/samples-structure/samples-tree-structure.d.ts.map +0 -1
  247. package/dist/samples-structure/samples-tree-structure.js +0 -26
  248. package/dist/samples-structure/samples-tree-structure.js.map +0 -1
  249. package/dist/samples-structure/structure-meta-on-disc.d.ts +0 -11
  250. package/dist/samples-structure/structure-meta-on-disc.d.ts.map +0 -1
  251. package/dist/samples-structure/structure-meta-on-disc.js +0 -2
  252. package/dist/samples-structure/structure-meta-on-disc.js.map +0 -1
  253. package/dist/samples-structure/traverse.d.ts +0 -4
  254. package/dist/samples-structure/traverse.d.ts.map +0 -1
  255. package/dist/samples-structure/traverse.js +0 -13
  256. package/dist/samples-structure/traverse.js.map +0 -1
  257. package/dist/samples-structure/write-samples-to-dir.d.ts +0 -37
  258. package/dist/samples-structure/write-samples-to-dir.d.ts.map +0 -1
  259. package/dist/samples-structure/write-samples-to-dir.js +0 -183
  260. package/dist/samples-structure/write-samples-to-dir.js.map +0 -1
  261. package/dist/validation/validate-sampler-output.d.ts +0 -38
  262. package/dist/validation/validate-sampler-output.d.ts.map +0 -1
  263. package/dist/validation/validate-sampler-output.js +0 -288
  264. package/dist/validation/validate-sampler-output.js.map +0 -1
@@ -1,12 +0,0 @@
1
- export declare const SAMPLE_FILE: RegExp;
2
- export declare const BEFORE_EACH_HOOK: RegExp;
3
- export declare const AFTER_EACH_HOOK: RegExp;
4
- export declare const AUTHORIZE_HOOK: RegExp;
5
- /**
6
- * Whether a file name is a sampler hook file. This must mirror how hooks are
7
- * actually discovered when reading samples (see `extractHooksFromDir` in
8
- * read-samples-from-dir.ts), so that `sampler validate` never flags a file the
9
- * sampler loads as a hook — the matching lives here to keep the two in sync.
10
- */
11
- export declare function isHookFileName(fileName: string): boolean;
12
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,QAAmB,CAAC;AAC5C,eAAO,MAAM,gBAAgB,QAAwC,CAAC;AACtE,eAAO,MAAM,eAAe,QAAuC,CAAC;AACpE,eAAO,MAAM,cAAc,QAAuC,CAAC;AAEnE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAMxD"}
package/dist/constants.js DELETED
@@ -1,16 +0,0 @@
1
- export const SAMPLE_FILE = /request\.json$/;
2
- export const BEFORE_EACH_HOOK = /(?:^|[/\\.])beforeEach\.[cm]?[jt]s$/;
3
- export const AFTER_EACH_HOOK = /(?:^|[/\\.])afterEach\.[cm]?[jt]s$/;
4
- export const AUTHORIZE_HOOK = /(?:^|[/\\.])authorize\.[cm]?[jt]s$/;
5
- /**
6
- * Whether a file name is a sampler hook file. This must mirror how hooks are
7
- * actually discovered when reading samples (see `extractHooksFromDir` in
8
- * read-samples-from-dir.ts), so that `sampler validate` never flags a file the
9
- * sampler loads as a hook — the matching lives here to keep the two in sync.
10
- */
11
- export function isHookFileName(fileName) {
12
- return (BEFORE_EACH_HOOK.test(fileName) ||
13
- AFTER_EACH_HOOK.test(fileName) ||
14
- AUTHORIZE_HOOK.test(fileName));
15
- }
16
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,qCAAqC,CAAC;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,oCAAoC,CAAC;AACpE,MAAM,CAAC,MAAM,cAAc,GAAG,oCAAoC,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,CACL,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/B,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9B,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC9B,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { ThymianEmitter, ThymianFormat } from '@thymian/core';
2
- import type { SamplesStructure } from '../samples-structure/samples-tree-structure.js';
3
- export declare function generateSamplesForThymianFormat(format: ThymianFormat, emitter: ThymianEmitter): Promise<SamplesStructure>;
4
- //# sourceMappingURL=generate-samples-for-thymian-format.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-samples-for-thymian-format.d.ts","sourceRoot":"","sources":["../../src/generation/generate-samples-for-thymian-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAGvF,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAiB3B"}
@@ -1,18 +0,0 @@
1
- import { mergeTrees } from '../samples-structure/merge-tree.js';
2
- import { generateSamplesTree } from './generate-samples.js';
3
- export async function generateSamplesForThymianFormat(format, emitter) {
4
- let samples = {
5
- children: [],
6
- meta: {
7
- version: format.toHash(),
8
- timestamp: 0,
9
- },
10
- type: 'root',
11
- };
12
- for (const t of format.getThymianHttpTransactions()) {
13
- const tree = await generateSamplesTree(format, t, emitter);
14
- samples = mergeTrees(samples, tree);
15
- }
16
- return samples;
17
- }
18
- //# sourceMappingURL=generate-samples-for-thymian-format.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-samples-for-thymian-format.js","sourceRoot":"","sources":["../../src/generation/generate-samples-for-thymian-format.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,MAAqB,EACrB,OAAuB;IAEvB,IAAI,OAAO,GAAqB;QAC9B,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;YACxB,SAAS,EAAE,CAAC;SACb;QACD,IAAI,EAAE,MAAM;KACb,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,0BAA0B,EAAE,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAE3D,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { ThymianEmitter, ThymianFormat, ThymianHttpTransaction } from '@thymian/core';
2
- import type { SamplesStructure } from '../samples-structure/samples-tree-structure.js';
3
- export declare function generateSamplesTree(format: ThymianFormat, transaction: ThymianHttpTransaction, emitter: ThymianEmitter): Promise<SamplesStructure>;
4
- //# sourceMappingURL=generate-samples.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-samples.d.ts","sourceRoot":"","sources":["../../src/generation/generate-samples.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,sBAAsB,EACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAWvF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,sBAAsB,EACnC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAyB3B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-samples.js","sourceRoot":"","sources":["../../src/generation/generate-samples.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qCAAqC,EAAE,MAAM,mDAAmD,CAAC;AAE1G,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AACpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,4BAA4B,EAAE,MAAM,yDAAyD,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AAChG,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AACxF,OAAO,EAAE,4BAA4B,EAAE,MAAM,wDAAwD,CAAC;AAEtG,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAqB,EACrB,WAAmC,EACnC,OAAuB;IAEvB,MAAM,gBAAgB,GAAG,IAAI,sBAAsB,CACjD;QACE,IAAI,uBAAuB,EAAE;QAC7B,IAAI,sBAAsB,EAAE;QAC5B,IAAI,wBAAwB,EAAE;QAC9B,IAAI,4BAA4B,EAAE;KACnC,EACD,IAAI,uBAAuB,CAAC,OAAO,CAAC,CACrC,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,IAAI,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC;QAChE,IAAI,4BAA4B,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC;KACxE,CAAC;IAEF,MAAM,SAAS,GACb,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAErE,OAAO,qCAAqC,CAC1C,MAAM,SAAS,CAAC,QAAQ,EAAE,EAC1B,WAAW,EACX,MAAM,CAAC,MAAM,EAAE,CAChB,CAAC;AACJ,CAAC"}
@@ -1,34 +0,0 @@
1
- import { type Parameter, type ThymianFormat } from '@thymian/core';
2
- export declare function generateTypeForSchema(schema: unknown, mediaType: string, typeName: string): Promise<GeneratedSchemaType>;
3
- export declare function convertDefsToDefinitions(input: any): unknown;
4
- export declare function generateTypeForParameters(parameters: Record<string, Parameter>, nextTypeName: () => string): Promise<ParameterType>;
5
- export type GeneratedSchemaType = {
6
- declarations: string[];
7
- type: string;
8
- };
9
- export type ParameterType = GeneratedSchemaType & {
10
- required: boolean;
11
- };
12
- export type ResponseType = {
13
- statusCode: number;
14
- body?: string;
15
- headers: ParameterType;
16
- };
17
- export type GeneratedTypes = {
18
- types: Record<string, {
19
- req: {
20
- body?: string;
21
- query: ParameterType;
22
- path: ParameterType;
23
- headers: ParameterType;
24
- };
25
- res: ResponseType[];
26
- }>;
27
- keyToTransactionId: Record<string, string>;
28
- declarations: string[];
29
- };
30
- export declare const staticCode = "\nexport type HttpRequestTemplate = {\n origin: string;\n path: string;\n pathParameters: Record<string, unknown>;\n method: string;\n query: Record<string, unknown>;\n authorize: boolean;\n bodyEncoding?: string;\n body?: unknown;\n headers: Record<string, unknown>;\n cookies: Record<string, unknown>;\n};\n\nexport type ThymianHttpTransaction = {\n thymianReq: ThymianHttpRequest;\n thymianReqId: string;\n thymianRes: ThymianHttpResponse;\n thymianResId: string;\n transactionId: string;\n transaction: HttpTransaction;\n};\n\nexport interface ThymianHttpRequest {\n host: string;\n port: number;\n protocol: 'http' | 'https';\n path: string;\n method: string;\n headers: Record<string, Parameter>;\n queryParameters: Record<string, Parameter>;\n cookies: Record<string, Parameter>;\n pathParameters: Record<string, Parameter>;\n description?: string;\n bodyRequired?: boolean;\n body?: ThymianSchema;\n mediaType: string;\n encoding?: Encoding;\n}\n\nexport type Encoding = {\n [propertyName: string]: {\n contentType?: string;\n headers: Record<string, Parameter>;\n serializationStyle: SerializationStyle;\n };\n};\n\nexport interface ThymianHttpResponse {\n description?: string;\n headers: Record<string, Parameter>;\n mediaType: string;\n statusCode: number;\n schema?: ThymianSchema;\n}\n\nexport interface HttpTransaction {\n}\n\nexport type HttpResponse = {\n statusCode: number;\n headers: Record<string, string | string[] | undefined>;\n body?: string;\n bodyEncoding?: string;\n trailers: Record<string, string>;\n duration: number;\n};\n\nexport type HttpRequest = {\n origin: string;\n path: string;\n method: string;\n bodyEncoding?: string;\n body?: string;\n headers?: Record<string, string | string[] | undefined>;\n};\n\n\nexport interface Parameter {\n description?: string;\n required: boolean;\n schema: ThymianSchema;\n contentType?: string;\n style: SerializationStyle;\n}\n\nexport type Style =\n | 'matrix'\n | 'label'\n | 'form'\n | 'simple'\n | 'spaceDelimited'\n | 'pipeDelimited'\n | 'deepObject';\n\nexport interface SerializationStyle {\n explode: boolean;\n\n style: Style;\n}\n\nexport type ThymianSchemaType =\n | 'null'\n | 'boolean'\n | 'object'\n | 'array'\n | 'number'\n | 'string'\n | 'integer';\n\nexport type ThymianSchema = {\n // Type\n type?: ThymianSchemaType | ThymianSchemaType[];\n const?: unknown;\n enum?: unknown[];\n\n examples?: unknown[];\n description?: string;\n default?: unknown;\n\n // Numbers\n multipleOf?: number;\n maximum?: number;\n exclusiveMaximum?: number;\n minimum?: number;\n exclusiveMinimum?: number;\n\n // Strings\n maxLength?: number;\n minLength?: number;\n pattern?: string;\n format?: string;\n contentEncoding?: string;\n contentMediaType?: string;\n\n // Arrays\n prefixItems?: ThymianSchema[];\n items?: ThymianSchema;\n contains?: ThymianSchema;\n minItems?: number;\n maxItems?: number;\n uniqueItems?: boolean;\n minContains?: number;\n maxContains?: number;\n\n // Objects\n properties?: Record<string, ThymianSchema>;\n patternProperties?: Record<string, ThymianSchema>;\n additionalProperties?: ThymianSchema | boolean;\n propertyNames?: ThymianSchema;\n required?: string[];\n minProperties?: number;\n maxProperties?: number;\n dependentSchemas?: Record<string, ThymianSchema>;\n dependentRequired?: Record<string, string[]>;\n\n allOf?: ThymianSchema[];\n anyOf?: ThymianSchema[];\n oneOf?: ThymianSchema[];\n not?: ThymianSchema;\n if?: ThymianSchema;\n then?: ThymianSchema;\n else?: ThymianSchema;\n\n unevaluatedProperties?: ThymianSchema | boolean;\n unevaluatedItems?: ThymianSchema | boolean;\n\n $ref?: string;\n $anchor?: string;\n\n xml?: {\n name?: string;\n namespace?: string;\n prefix?: string;\n attribute?: string;\n wrapped?: boolean;\n };\n};\n\n\nexport type BeforeEachRequestHook = (request: HttpRequestTemplate, context: ThymianHttpTransaction | undefined, utils: HookUtils) => HttpRequestTemplate | Promise<HttpRequestTemplate>;\n\nexport type AfterEachRequestHookContext = {\n requestTemplate: HttpRequestTemplate;\n request: HttpRequest;\n thymianTransaction?: ThymianHttpTransaction;\n}\n\nexport type AfterEachRequestHook = (response: HttpResponse, context: AfterEachRequestHookContext, utils: HookUtils) => HttpResponse | Promise<HttpResponse>;\n\nexport type AuthorizeHook = (response: HttpRequestTemplate, context: ThymianHttpTransaction | undefined, utils: HookUtils) => HttpRequestTemplate | Promise<HttpRequestTemplate>;\n\nexport interface HookUtils {\n skip(message: string): never;\n\n fail(message: string): never;\n\n info(message: string): void;\n\n warn(message: string, details?: string): void;\n\n assertionSuccess(message: string, assertion?: string): void;\n\n assertionFailure(\n message: string,\n details?: { assertion?: string; expected?: unknown; actual?: unknown },\n ): void;\n\n timeout(message: string, durationMs: number): void;\n\n request<R extends keyof Endpoints>(\n req: R,\n args: Endpoints[R]['req'],\n options?: {\n runHooks?: boolean;\n authorize?: boolean;\n forStatusCode?: number;\n }\n ): Promise<Endpoints[R]['res']>;\n\n randomString(length?: number): string;\n}\n";
31
- export declare const infoText = "\n/*\n * ========================================================================\n *\n * WARNING: THIS FILE IS AUTO-GENERATED. DO NOT EDIT.\n *\n * Any changes made to this file will be lost if the code is regenerated.\n *\n * ========================================================================\n */\n";
32
- export declare function generatedTypesToString(generated: GeneratedTypes): string;
33
- export declare function generateTypesForThymianFormat(format: ThymianFormat): Promise<GeneratedTypes>;
34
- //# sourceMappingURL=generate-request-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-request-types.d.ts","sourceRoot":"","sources":["../../src/hooks/generate-request-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,aAAa,EAEnB,MAAM,eAAe,CAAC;AAIvB,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC,CA8B9B;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAkC5D;AAED,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACrC,YAAY,EAAE,MAAM,MAAM,GACzB,OAAO,CAAC,aAAa,CAAC,CAuCxB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG;IAChD,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CACX,MAAM,EACN;QACE,GAAG,EAAE;YACH,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,aAAa,CAAC;YACrB,IAAI,EAAE,aAAa,CAAC;YACpB,OAAO,EAAE,aAAa,CAAC;SACxB,CAAC;QACF,GAAG,EAAE,YAAY,EAAE,CAAC;KACrB,CACF,CAAC;IACF,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,UAAU,4tKA8NtB,CAAC;AAEF,eAAO,MAAM,QAAQ,wTAUpB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,CAuExE;AAWD,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,cAAc,CAAC,CAoIzB"}
@@ -1,458 +0,0 @@
1
- import { isEdgeType, thymianHttpRequestToUrl, } from '@thymian/core';
2
- import CodeBlockWriter from 'code-block-writer';
3
- import { compile } from 'json-schema-to-typescript';
4
- export async function generateTypeForSchema(schema, mediaType, typeName) {
5
- const normalizedMediaType = mediaType.split(';', 1)[0]?.trim().toLowerCase();
6
- if (!(normalizedMediaType === 'application/json' ||
7
- normalizedMediaType?.includes('+json'))) {
8
- return { declarations: [], type: 'unknown' };
9
- }
10
- const declaration = await compile(convertDefsToDefinitions(structuredClone(schema)), typeName, {
11
- bannerComment: '',
12
- additionalProperties: true,
13
- style: {
14
- semi: false,
15
- },
16
- $refOptions: {
17
- mutateInputSchema: true,
18
- },
19
- });
20
- return {
21
- declarations: [declaration],
22
- type: typeName,
23
- };
24
- }
25
- export function convertDefsToDefinitions(input) {
26
- if (input === null || typeof input !== 'object') {
27
- return input;
28
- }
29
- if (Array.isArray(input)) {
30
- return input.map((item) => convertDefsToDefinitions(item));
31
- }
32
- const result = Object.keys(input).reduce((acc, key) => {
33
- const newKey = key === '$defs' ? 'definitions' : key;
34
- let value = input[key];
35
- if (key === '$ref' && typeof value === 'string') {
36
- value = value.replace(/\/\$defs\//g, '/definitions/');
37
- }
38
- else {
39
- value = convertDefsToDefinitions(value);
40
- }
41
- acc[newKey] = value;
42
- return acc;
43
- }, {});
44
- // if there is a top-level $ref we need to wrap it into an "allOf" because
45
- // json-schema-to-typescript fails for such a top-level "$ref"
46
- if (result.$ref && result.definitions) {
47
- const refValue = result.$ref;
48
- delete result.$ref;
49
- result.allOf = [{ $ref: refValue }];
50
- }
51
- return result;
52
- }
53
- export async function generateTypeForParameters(parameters, nextTypeName) {
54
- const result = {
55
- declarations: [],
56
- required: false,
57
- types: {},
58
- };
59
- for (const [name, param] of Object.entries(parameters)) {
60
- result.required ||= param.required;
61
- const generatedType = await generateTypeForSchema(param.schema, param.contentType ?? 'application/json', nextTypeName());
62
- result.types[name] = generatedType.type;
63
- result.declarations.push(...generatedType.declarations);
64
- }
65
- const writer = new CodeBlockWriter({
66
- indentNumberOfSpaces: 2,
67
- });
68
- writer.block(() => {
69
- for (const [name, type] of Object.entries(result.types)) {
70
- writer.quote(name).write(': ').write(type).writeLine(';');
71
- }
72
- });
73
- return {
74
- declarations: result.declarations,
75
- type: writer.toString(),
76
- required: result.required,
77
- };
78
- }
79
- export const staticCode = `
80
- export type HttpRequestTemplate = {
81
- origin: string;
82
- path: string;
83
- pathParameters: Record<string, unknown>;
84
- method: string;
85
- query: Record<string, unknown>;
86
- authorize: boolean;
87
- bodyEncoding?: string;
88
- body?: unknown;
89
- headers: Record<string, unknown>;
90
- cookies: Record<string, unknown>;
91
- };
92
-
93
- export type ThymianHttpTransaction = {
94
- thymianReq: ThymianHttpRequest;
95
- thymianReqId: string;
96
- thymianRes: ThymianHttpResponse;
97
- thymianResId: string;
98
- transactionId: string;
99
- transaction: HttpTransaction;
100
- };
101
-
102
- export interface ThymianHttpRequest {
103
- host: string;
104
- port: number;
105
- protocol: 'http' | 'https';
106
- path: string;
107
- method: string;
108
- headers: Record<string, Parameter>;
109
- queryParameters: Record<string, Parameter>;
110
- cookies: Record<string, Parameter>;
111
- pathParameters: Record<string, Parameter>;
112
- description?: string;
113
- bodyRequired?: boolean;
114
- body?: ThymianSchema;
115
- mediaType: string;
116
- encoding?: Encoding;
117
- }
118
-
119
- export type Encoding = {
120
- [propertyName: string]: {
121
- contentType?: string;
122
- headers: Record<string, Parameter>;
123
- serializationStyle: SerializationStyle;
124
- };
125
- };
126
-
127
- export interface ThymianHttpResponse {
128
- description?: string;
129
- headers: Record<string, Parameter>;
130
- mediaType: string;
131
- statusCode: number;
132
- schema?: ThymianSchema;
133
- }
134
-
135
- export interface HttpTransaction {
136
- }
137
-
138
- export type HttpResponse = {
139
- statusCode: number;
140
- headers: Record<string, string | string[] | undefined>;
141
- body?: string;
142
- bodyEncoding?: string;
143
- trailers: Record<string, string>;
144
- duration: number;
145
- };
146
-
147
- export type HttpRequest = {
148
- origin: string;
149
- path: string;
150
- method: string;
151
- bodyEncoding?: string;
152
- body?: string;
153
- headers?: Record<string, string | string[] | undefined>;
154
- };
155
-
156
-
157
- export interface Parameter {
158
- description?: string;
159
- required: boolean;
160
- schema: ThymianSchema;
161
- contentType?: string;
162
- style: SerializationStyle;
163
- }
164
-
165
- export type Style =
166
- | 'matrix'
167
- | 'label'
168
- | 'form'
169
- | 'simple'
170
- | 'spaceDelimited'
171
- | 'pipeDelimited'
172
- | 'deepObject';
173
-
174
- export interface SerializationStyle {
175
- explode: boolean;
176
-
177
- style: Style;
178
- }
179
-
180
- export type ThymianSchemaType =
181
- | 'null'
182
- | 'boolean'
183
- | 'object'
184
- | 'array'
185
- | 'number'
186
- | 'string'
187
- | 'integer';
188
-
189
- export type ThymianSchema = {
190
- // Type
191
- type?: ThymianSchemaType | ThymianSchemaType[];
192
- const?: unknown;
193
- enum?: unknown[];
194
-
195
- examples?: unknown[];
196
- description?: string;
197
- default?: unknown;
198
-
199
- // Numbers
200
- multipleOf?: number;
201
- maximum?: number;
202
- exclusiveMaximum?: number;
203
- minimum?: number;
204
- exclusiveMinimum?: number;
205
-
206
- // Strings
207
- maxLength?: number;
208
- minLength?: number;
209
- pattern?: string;
210
- format?: string;
211
- contentEncoding?: string;
212
- contentMediaType?: string;
213
-
214
- // Arrays
215
- prefixItems?: ThymianSchema[];
216
- items?: ThymianSchema;
217
- contains?: ThymianSchema;
218
- minItems?: number;
219
- maxItems?: number;
220
- uniqueItems?: boolean;
221
- minContains?: number;
222
- maxContains?: number;
223
-
224
- // Objects
225
- properties?: Record<string, ThymianSchema>;
226
- patternProperties?: Record<string, ThymianSchema>;
227
- additionalProperties?: ThymianSchema | boolean;
228
- propertyNames?: ThymianSchema;
229
- required?: string[];
230
- minProperties?: number;
231
- maxProperties?: number;
232
- dependentSchemas?: Record<string, ThymianSchema>;
233
- dependentRequired?: Record<string, string[]>;
234
-
235
- allOf?: ThymianSchema[];
236
- anyOf?: ThymianSchema[];
237
- oneOf?: ThymianSchema[];
238
- not?: ThymianSchema;
239
- if?: ThymianSchema;
240
- then?: ThymianSchema;
241
- else?: ThymianSchema;
242
-
243
- unevaluatedProperties?: ThymianSchema | boolean;
244
- unevaluatedItems?: ThymianSchema | boolean;
245
-
246
- $ref?: string;
247
- $anchor?: string;
248
-
249
- xml?: {
250
- name?: string;
251
- namespace?: string;
252
- prefix?: string;
253
- attribute?: string;
254
- wrapped?: boolean;
255
- };
256
- };
257
-
258
-
259
- export type BeforeEachRequestHook = (request: HttpRequestTemplate, context: ThymianHttpTransaction | undefined, utils: HookUtils) => HttpRequestTemplate | Promise<HttpRequestTemplate>;
260
-
261
- export type AfterEachRequestHookContext = {
262
- requestTemplate: HttpRequestTemplate;
263
- request: HttpRequest;
264
- thymianTransaction?: ThymianHttpTransaction;
265
- }
266
-
267
- export type AfterEachRequestHook = (response: HttpResponse, context: AfterEachRequestHookContext, utils: HookUtils) => HttpResponse | Promise<HttpResponse>;
268
-
269
- export type AuthorizeHook = (response: HttpRequestTemplate, context: ThymianHttpTransaction | undefined, utils: HookUtils) => HttpRequestTemplate | Promise<HttpRequestTemplate>;
270
-
271
- export interface HookUtils {
272
- skip(message: string): never;
273
-
274
- fail(message: string): never;
275
-
276
- info(message: string): void;
277
-
278
- warn(message: string, details?: string): void;
279
-
280
- assertionSuccess(message: string, assertion?: string): void;
281
-
282
- assertionFailure(
283
- message: string,
284
- details?: { assertion?: string; expected?: unknown; actual?: unknown },
285
- ): void;
286
-
287
- timeout(message: string, durationMs: number): void;
288
-
289
- request<R extends keyof Endpoints>(
290
- req: R,
291
- args: Endpoints[R]['req'],
292
- options?: {
293
- runHooks?: boolean;
294
- authorize?: boolean;
295
- forStatusCode?: number;
296
- }
297
- ): Promise<Endpoints[R]['res']>;
298
-
299
- randomString(length?: number): string;
300
- }
301
- `;
302
- export const infoText = `
303
- /*
304
- * ========================================================================
305
- *
306
- * WARNING: THIS FILE IS AUTO-GENERATED. DO NOT EDIT.
307
- *
308
- * Any changes made to this file will be lost if the code is regenerated.
309
- *
310
- * ========================================================================
311
- */
312
- `;
313
- export function generatedTypesToString(generated) {
314
- const writer = new CodeBlockWriter({
315
- indentNumberOfSpaces: 2,
316
- });
317
- writer.writeLine(infoText).write(staticCode);
318
- for (const declaration of generated.declarations) {
319
- writer.writeLine(declaration);
320
- }
321
- writer.writeLine(`export type Endpoints = `).block(() => {
322
- for (const [key, { req, res }] of Object.entries(generated.types)) {
323
- writer
324
- .quote(key)
325
- .write(':')
326
- .block(() => {
327
- writer
328
- .writeLine(`req:`)
329
- .block(() => {
330
- // body
331
- if (typeof req.body === 'string') {
332
- writer.writeLine(`body:`).writeLine(req.body);
333
- }
334
- writer
335
- // query params
336
- .writeLine(`query${req.query.required ? '' : '?'}:`)
337
- .writeLine(req.query.type)
338
- .writeLine(' & { [query: string]: string | number | boolean }')
339
- // path params
340
- .writeLine(`path${req.path.required ? '' : '?'}:`)
341
- .writeLine(req.path.type)
342
- .writeLine(' & { [param: string]: string | number | boolean }')
343
- // headers
344
- .writeLine(`headers${req.headers.required ? '' : '?'}:`)
345
- .writeLine(req.headers.type)
346
- .writeLine(' & { [param: string]: string | string[] | undefined }');
347
- })
348
- .write(',')
349
- .writeLine(`res:`);
350
- if (res.length === 0) {
351
- writer.write('never;');
352
- }
353
- for (const { statusCode, body, headers } of res) {
354
- writer.writeLine(`|`);
355
- writer.block(() => {
356
- writer
357
- .writeLine(`statusCode: ${statusCode};`)
358
- .writeLine(`headers${headers.required ? '' : '?'}:`)
359
- .writeLine(headers.type)
360
- .writeLine(' & { [param: string]: string | string[] | undefined }');
361
- if (body) {
362
- writer.writeLine(`body:`).writeLine(body);
363
- }
364
- });
365
- }
366
- });
367
- }
368
- });
369
- return writer.toString();
370
- }
371
- const mediaTypeParameter = (mediaType) => ({
372
- schema: {
373
- type: 'string',
374
- const: mediaType,
375
- },
376
- required: true,
377
- style: { style: 'simple', explode: false },
378
- });
379
- export async function generateTypesForThymianFormat(format) {
380
- const generated = {
381
- declarations: [],
382
- types: {},
383
- keyToTransactionId: {},
384
- };
385
- let typeId = 0;
386
- const nextTypeName = () => `GeneratedSchema${++typeId}`;
387
- for (const [req, responses, reqId, responseIds,] of format.getThymianHttpRequestsWithResponses()) {
388
- const allHeaders = {
389
- ...req.headers,
390
- };
391
- if (req.mediaType) {
392
- allHeaders['content-type'] = mediaTypeParameter(req.mediaType);
393
- }
394
- const key = `${req.method.toUpperCase()} ${thymianHttpRequestToUrl(req)}`;
395
- const query = await generateTypeForParameters(req.queryParameters, nextTypeName);
396
- const path = await generateTypeForParameters(req.pathParameters, nextTypeName);
397
- const headers = await generateTypeForParameters(allHeaders, nextTypeName);
398
- const body = req.body
399
- ? await generateTypeForSchema(req.body, req.mediaType, nextTypeName())
400
- : undefined;
401
- generated.declarations.push(...query.declarations, ...path.declarations, ...headers.declarations, ...(body?.declarations ?? []));
402
- const res = [];
403
- for (const response of responses) {
404
- const responseHeaders = {
405
- ...response.headers,
406
- };
407
- if (response.mediaType) {
408
- responseHeaders['content-type'] = mediaTypeParameter(response.mediaType);
409
- }
410
- const result = {
411
- statusCode: response.statusCode,
412
- headers: await generateTypeForParameters(responseHeaders, nextTypeName),
413
- };
414
- generated.declarations.push(...result.headers.declarations);
415
- if (response.schema) {
416
- const body = await generateTypeForSchema(response.schema, response.mediaType, nextTypeName());
417
- result.body = body.type;
418
- generated.declarations.push(...body.declarations);
419
- }
420
- res.push(result);
421
- }
422
- const default2xxResponse = res
423
- .filter((r) => r.statusCode >= 200 && r.statusCode < 300)
424
- .sort((a, b) => a.statusCode - b.statusCode)[0];
425
- if (default2xxResponse) {
426
- const idx = res.indexOf(default2xxResponse);
427
- // this should never happen, but just in case
428
- if (idx < 0) {
429
- throw new Error('Could not find default 2xx response');
430
- }
431
- const transactionId = format.graph.findEdge(reqId, responseIds[idx], (edgeId, edge) => isEdgeType(edge, 'http-transaction'));
432
- if (!transactionId) {
433
- throw new Error('Could not find transaction ID for default 2xx response');
434
- }
435
- generated.keyToTransactionId[key] = transactionId;
436
- }
437
- for (const [idx, response] of res.entries()) {
438
- const transactionId = format.graph.findEdge(reqId, responseIds[idx], (edgeId, edge) => isEdgeType(edge, 'http-transaction'));
439
- // should never happen, but just in case
440
- if (!transactionId) {
441
- throw new Error('Could not find transaction ID for default 2xx response');
442
- }
443
- generated.keyToTransactionId[`${key}->${response.statusCode}`] =
444
- transactionId;
445
- }
446
- generated.types[key] = {
447
- req: {
448
- query,
449
- headers,
450
- path,
451
- body: body?.type,
452
- },
453
- res,
454
- };
455
- }
456
- return generated;
457
- }
458
- //# sourceMappingURL=generate-request-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-request-types.js","sourceRoot":"","sources":["../../src/hooks/generate-request-types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { HttpTestHooks } from '@thymian/core';
2
- import type { Endpoints, HookUtils } from './hook-utils.js';
3
- export type SampleHttpTestHook<Hook extends keyof HttpTestHooks, E extends Endpoints> = (value: HttpTestHooks[Hook]['arg']['value'], ctx: HttpTestHooks[Hook]['arg']['ctx'], utils: HookUtils<E>) => Promise<HttpTestHooks[Hook]['return']['result']>;
4
- export type BeforeEachRequestHook<E extends Endpoints = Record<string, any>> = SampleHttpTestHook<'beforeRequest', E>;
5
- export type AfterEachResponseHook<E extends Endpoints = Record<string, any>> = SampleHttpTestHook<'afterResponse', E>;
6
- export type AuthorizeHook<E extends Endpoints = Record<string, any>> = SampleHttpTestHook<'authorize', E>;
7
- //# sourceMappingURL=hook-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook-types.d.ts","sourceRoot":"","sources":["../../src/hooks/hook-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,MAAM,kBAAkB,CAC5B,IAAI,SAAS,MAAM,aAAa,EAChC,CAAC,SAAS,SAAS,IACjB,CACF,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAC1C,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EACtC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAChB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEtD,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACzE,kBAAkB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;AACzC,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACzE,kBAAkB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;AACzC,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACjE,kBAAkB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=hook-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook-types.js","sourceRoot":"","sources":["../../src/hooks/hook-types.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- import { type Hooks, type SamplesStructure } from '../samples-structure/samples-tree-structure.js';
2
- export declare function loadHooksFromSamples(samples: SamplesStructure): Map<string, Hooks>;
3
- //# sourceMappingURL=load-hooks-from-samples.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load-hooks-from-samples.d.ts","sourceRoot":"","sources":["../../src/hooks/load-hooks-from-samples.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,gBAAgB,EACtB,MAAM,gDAAgD,CAAC;AAGxD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,GACxB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CA0BpB"}