polen 0.11.0-next.16 → 0.11.0-next.18

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 (251) hide show
  1. package/build/api/builder/ssg/generate.d.ts.map +1 -1
  2. package/build/api/builder/ssg/generate.js +5 -5
  3. package/build/api/builder/ssg/generate.js.map +1 -1
  4. package/build/api/builder/ssg/page-generator.worker.js +13 -3
  5. package/build/api/builder/ssg/page-generator.worker.js.map +1 -1
  6. package/build/api/config/input.d.ts +88 -3
  7. package/build/api/config/input.d.ts.map +1 -1
  8. package/build/api/config/normalized.d.ts +92 -7
  9. package/build/api/config/normalized.d.ts.map +1 -1
  10. package/build/api/config/normalized.js +11 -3
  11. package/build/api/config/normalized.js.map +1 -1
  12. package/build/api/config-template/template.js +2 -2
  13. package/build/api/config-template/template.js.map +1 -1
  14. package/build/api/content/sidebar.d.ts.map +1 -1
  15. package/build/api/content/sidebar.js +2 -1
  16. package/build/api/content/sidebar.js.map +1 -1
  17. package/build/api/examples/config.d.ts +366 -3
  18. package/build/api/examples/config.d.ts.map +1 -1
  19. package/build/api/examples/config.js +25 -3
  20. package/build/api/examples/config.js.map +1 -1
  21. package/build/api/examples/diagnostic/diagnostic.d.ts +5 -5
  22. package/build/api/examples/diagnostic/missing-versions.d.ts +5 -4
  23. package/build/api/examples/diagnostic/missing-versions.d.ts.map +1 -1
  24. package/build/api/examples/diagnostic/missing-versions.js +3 -2
  25. package/build/api/examples/diagnostic/missing-versions.js.map +1 -1
  26. package/build/api/examples/diagnostic/unknown-version.d.ts +5 -4
  27. package/build/api/examples/diagnostic/unknown-version.d.ts.map +1 -1
  28. package/build/api/examples/diagnostic/unknown-version.js +3 -2
  29. package/build/api/examples/diagnostic/unknown-version.js.map +1 -1
  30. package/build/api/examples/diagnostic/validation-error.d.ts +3 -2
  31. package/build/api/examples/diagnostic/validation-error.d.ts.map +1 -1
  32. package/build/api/examples/diagnostic/validation-error.js +9 -3
  33. package/build/api/examples/diagnostic/validation-error.js.map +1 -1
  34. package/build/api/examples/diagnostic/validator.d.ts.map +1 -1
  35. package/build/api/examples/diagnostic/validator.js +115 -69
  36. package/build/api/examples/diagnostic/validator.js.map +1 -1
  37. package/build/api/examples/filter.d.ts.map +1 -1
  38. package/build/api/examples/filter.js +9 -6
  39. package/build/api/examples/filter.js.map +1 -1
  40. package/build/api/examples/scanner.d.ts.map +1 -1
  41. package/build/api/examples/scanner.js +93 -103
  42. package/build/api/examples/scanner.js.map +1 -1
  43. package/build/api/examples/type-usage-indexer.d.ts.map +1 -1
  44. package/build/api/examples/type-usage-indexer.js +18 -32
  45. package/build/api/examples/type-usage-indexer.js.map +1 -1
  46. package/build/api/iso/schema/routing.d.ts.map +1 -1
  47. package/build/api/iso/schema/routing.js +8 -8
  48. package/build/api/iso/schema/routing.js.map +1 -1
  49. package/build/api/iso/schema/validation.d.ts.map +1 -1
  50. package/build/api/iso/schema/validation.js +3 -2
  51. package/build/api/iso/schema/validation.js.map +1 -1
  52. package/build/api/schema/input-sources/directory.js +2 -2
  53. package/build/api/schema/input-sources/directory.js.map +1 -1
  54. package/build/api/schema/input-sources/versioned-directory.d.ts +3 -3
  55. package/build/api/schema/input-sources/versioned-directory.d.ts.map +1 -1
  56. package/build/api/schema/input-sources/versioned-directory.js +6 -4
  57. package/build/api/schema/input-sources/versioned-directory.js.map +1 -1
  58. package/build/api/schema/load.d.ts.map +1 -1
  59. package/build/api/schema/load.js +2 -2
  60. package/build/api/schema/load.js.map +1 -1
  61. package/build/cli/commands/hero-image.js +1 -1
  62. package/build/cli/commands/hero-image.js.map +1 -1
  63. package/build/lib/catalog/catalog.d.ts +65 -24
  64. package/build/lib/catalog/catalog.d.ts.map +1 -1
  65. package/build/lib/catalog/catalog.js +72 -16
  66. package/build/lib/catalog/catalog.js.map +1 -1
  67. package/build/lib/catalog/versioned.d.ts +46 -26
  68. package/build/lib/catalog/versioned.d.ts.map +1 -1
  69. package/build/lib/catalog/versioned.js +44 -7
  70. package/build/lib/catalog/versioned.js.map +1 -1
  71. package/build/lib/catalog-statistics/analyze-catalog.js +3 -3
  72. package/build/lib/catalog-statistics/analyze-catalog.js.map +1 -1
  73. package/build/lib/document/document.d.ts +55 -5
  74. package/build/lib/document/document.d.ts.map +1 -1
  75. package/build/lib/document/document.js +96 -2
  76. package/build/lib/document/document.js.map +1 -1
  77. package/build/lib/document/versioned.d.ts +2 -2
  78. package/build/lib/document/versioned.d.ts.map +1 -1
  79. package/build/lib/document/versioned.js +7 -7
  80. package/build/lib/document/versioned.js.map +1 -1
  81. package/build/lib/lifecycles/lifecycles.d.ts +5 -4
  82. package/build/lib/lifecycles/lifecycles.d.ts.map +1 -1
  83. package/build/lib/lifecycles/lifecycles.js +15 -13
  84. package/build/lib/lifecycles/lifecycles.js.map +1 -1
  85. package/build/lib/version-coverage/$$.d.ts +2 -0
  86. package/build/lib/version-coverage/$$.d.ts.map +1 -0
  87. package/build/lib/version-coverage/$$.js +2 -0
  88. package/build/lib/version-coverage/$$.js.map +1 -0
  89. package/build/lib/version-coverage/$.d.ts.map +1 -0
  90. package/build/lib/version-coverage/$.js.map +1 -0
  91. package/build/lib/{version-selection/version-selection.d.ts → version-coverage/version-coverage.d.ts} +1 -1
  92. package/build/lib/version-coverage/version-coverage.d.ts.map +1 -0
  93. package/build/lib/{version-selection/version-selection.js → version-coverage/version-coverage.js} +2 -2
  94. package/build/lib/version-coverage/version-coverage.js.map +1 -0
  95. package/build/template/components/Changelog/Changelog.d.ts.map +1 -1
  96. package/build/template/components/Changelog/Changelog.js +7 -7
  97. package/build/template/components/Changelog/Changelog.js.map +1 -1
  98. package/build/template/components/GraphQLDocument.d.ts +1 -1
  99. package/build/template/components/GraphQLDocument.d.ts.map +1 -1
  100. package/build/template/components/GraphQLDocument.js +10 -38
  101. package/build/template/components/GraphQLDocument.js.map +1 -1
  102. package/build/template/components/GraphQLInteractive/lib/parser.d.ts +28 -0
  103. package/build/template/components/GraphQLInteractive/lib/parser.d.ts.map +1 -1
  104. package/build/template/components/GraphQLInteractive/lib/parser.js +60 -27
  105. package/build/template/components/GraphQLInteractive/lib/parser.js.map +1 -1
  106. package/build/template/components/VersionCoveragePicker.d.ts +1 -1
  107. package/build/template/components/VersionCoveragePicker.d.ts.map +1 -1
  108. package/build/template/components/VersionCoveragePicker.js +4 -6
  109. package/build/template/components/VersionCoveragePicker.js.map +1 -1
  110. package/build/template/components/VersionPicker.d.ts.map +1 -1
  111. package/build/template/components/VersionPicker.js +5 -2
  112. package/build/template/components/VersionPicker.js.map +1 -1
  113. package/build/template/components/home/FeaturesGrid.js +1 -1
  114. package/build/template/components/home/FeaturesGrid.js.map +1 -1
  115. package/build/template/components/home/HeroSection.js +1 -1
  116. package/build/template/components/home/HeroSection.js.map +1 -1
  117. package/build/template/components/home/QuickStart.d.ts.map +1 -1
  118. package/build/template/components/home/QuickStart.js +8 -4
  119. package/build/template/components/home/QuickStart.js.map +1 -1
  120. package/build/template/components/home/RecentChanges.d.ts.map +1 -1
  121. package/build/template/components/home/RecentChanges.js +2 -1
  122. package/build/template/components/home/RecentChanges.js.map +1 -1
  123. package/build/template/hooks/use-highlighted.d.ts.map +1 -1
  124. package/build/template/hooks/use-highlighted.js +19 -13
  125. package/build/template/hooks/use-highlighted.js.map +1 -1
  126. package/build/template/lib/fetch-text.d.ts +18 -0
  127. package/build/template/lib/fetch-text.d.ts.map +1 -1
  128. package/build/template/lib/fetch-text.js +32 -4
  129. package/build/template/lib/fetch-text.js.map +1 -1
  130. package/build/template/routes/changelog.d.ts +1 -1
  131. package/build/template/routes/changelog.d.ts.map +1 -1
  132. package/build/template/routes/changelog.js +7 -4
  133. package/build/template/routes/changelog.js.map +1 -1
  134. package/build/template/routes/examples/_index.js +1 -1
  135. package/build/template/routes/examples/_index.js.map +1 -1
  136. package/build/template/routes/examples/name.d.ts.map +1 -1
  137. package/build/template/routes/examples/name.js +4 -2
  138. package/build/template/routes/examples/name.js.map +1 -1
  139. package/build/template/routes/reference.js +6 -6
  140. package/build/template/routes/reference.js.map +1 -1
  141. package/build/template/stores/toast.d.ts.map +1 -1
  142. package/build/template/stores/toast.js +5 -3
  143. package/build/template/stores/toast.js.map +1 -1
  144. package/build/vite/plugins/navbar.js +1 -1
  145. package/build/vite/plugins/navbar.js.map +1 -1
  146. package/build/vite/plugins/routes-manifest.js +1 -1
  147. package/build/vite/plugins/routes-manifest.js.map +1 -1
  148. package/package.json +7 -7
  149. package/src/api/builder/ssg/generate.ts +10 -5
  150. package/src/api/builder/ssg/page-generator.worker.ts +18 -3
  151. package/src/api/config/normalized.ts +12 -3
  152. package/src/api/config-template/template.ts +2 -2
  153. package/src/api/content/sidebar.ts +3 -3
  154. package/src/api/examples/config.test.ts +10 -0
  155. package/src/api/examples/config.ts +33 -4
  156. package/src/api/examples/diagnostic/missing-versions.ts +3 -2
  157. package/src/api/examples/diagnostic/unknown-version.ts +3 -2
  158. package/src/api/examples/diagnostic/validation-error.ts +9 -3
  159. package/src/api/examples/diagnostic/validator.test.ts +100 -55
  160. package/src/api/examples/diagnostic/validator.ts +148 -105
  161. package/src/api/examples/filter.ts +9 -6
  162. package/src/api/examples/scanner.ts +144 -120
  163. package/src/api/examples/type-usage-indexer.test.ts +44 -33
  164. package/src/api/examples/type-usage-indexer.ts +25 -40
  165. package/src/api/iso/schema/routing.ts +10 -10
  166. package/src/api/iso/schema/validation.ts +3 -2
  167. package/src/api/schema/$.test.ts +2 -2
  168. package/src/api/schema/input-sources/directory.ts +2 -2
  169. package/src/api/schema/input-sources/versioned-directory.ts +11 -8
  170. package/src/api/schema/load.ts +2 -2
  171. package/src/cli/commands/hero-image.ts +1 -1
  172. package/src/lib/catalog/catalog.ts +93 -16
  173. package/src/lib/catalog/versioned.ts +57 -7
  174. package/src/lib/catalog-statistics/$.test.ts +22 -12
  175. package/src/lib/catalog-statistics/analyze-catalog.ts +3 -3
  176. package/src/lib/document/document.ts +135 -2
  177. package/src/lib/document/versioned.ts +8 -8
  178. package/src/lib/lifecycles/lifecycles.ts +33 -28
  179. package/src/lib/version-coverage/$$.ts +1 -0
  180. package/src/lib/{version-selection/version-selection.ts → version-coverage/version-coverage.ts} +1 -1
  181. package/src/template/components/Changelog/Changelog.tsx +10 -6
  182. package/src/template/components/GraphQLDocument.tsx +11 -68
  183. package/src/template/components/GraphQLInteractive/lib/parser.ts +81 -29
  184. package/src/template/components/VersionCoveragePicker.tsx +4 -5
  185. package/src/template/components/VersionPicker.tsx +9 -2
  186. package/src/template/components/home/FeaturesGrid.tsx +1 -1
  187. package/src/template/components/home/HeroSection.tsx +1 -1
  188. package/src/template/components/home/QuickStart.tsx +16 -7
  189. package/src/template/components/home/RecentChanges.tsx +3 -1
  190. package/src/template/hooks/use-highlighted.ts +31 -19
  191. package/src/template/lib/fetch-text.ts +45 -4
  192. package/src/template/routes/changelog.tsx +10 -4
  193. package/src/template/routes/examples/_index.tsx +1 -1
  194. package/src/template/routes/examples/name.tsx +4 -2
  195. package/src/template/routes/reference.tsx +6 -6
  196. package/src/template/stores/toast.ts +6 -3
  197. package/src/vite/plugins/navbar.ts +1 -1
  198. package/src/vite/plugins/routes-manifest.ts +1 -1
  199. package/build/lib/graph/$$.d.ts +0 -2
  200. package/build/lib/graph/$$.d.ts.map +0 -1
  201. package/build/lib/graph/$$.js +0 -2
  202. package/build/lib/graph/$$.js.map +0 -1
  203. package/build/lib/graph/$.d.ts +0 -2
  204. package/build/lib/graph/$.d.ts.map +0 -1
  205. package/build/lib/graph/$.js +0 -2
  206. package/build/lib/graph/$.js.map +0 -1
  207. package/build/lib/graph/graph.d.ts +0 -127
  208. package/build/lib/graph/graph.d.ts.map +0 -1
  209. package/build/lib/graph/graph.js +0 -152
  210. package/build/lib/graph/graph.js.map +0 -1
  211. package/build/lib/mask/$$.d.ts +0 -3
  212. package/build/lib/mask/$$.d.ts.map +0 -1
  213. package/build/lib/mask/$$.js +0 -3
  214. package/build/lib/mask/$$.js.map +0 -1
  215. package/build/lib/mask/$.d.ts +0 -2
  216. package/build/lib/mask/$.d.ts.map +0 -1
  217. package/build/lib/mask/$.js +0 -2
  218. package/build/lib/mask/$.js.map +0 -1
  219. package/build/lib/mask/apply.d.ts +0 -86
  220. package/build/lib/mask/apply.d.ts.map +0 -1
  221. package/build/lib/mask/apply.js +0 -86
  222. package/build/lib/mask/apply.js.map +0 -1
  223. package/build/lib/mask/mask.d.ts +0 -124
  224. package/build/lib/mask/mask.d.ts.map +0 -1
  225. package/build/lib/mask/mask.js +0 -137
  226. package/build/lib/mask/mask.js.map +0 -1
  227. package/build/lib/mask/mask.test-d.d.ts +0 -2
  228. package/build/lib/mask/mask.test-d.d.ts.map +0 -1
  229. package/build/lib/mask/mask.test-d.js +0 -102
  230. package/build/lib/mask/mask.test-d.js.map +0 -1
  231. package/build/lib/version-selection/$$.d.ts +0 -2
  232. package/build/lib/version-selection/$$.d.ts.map +0 -1
  233. package/build/lib/version-selection/$$.js +0 -2
  234. package/build/lib/version-selection/$$.js.map +0 -1
  235. package/build/lib/version-selection/$.d.ts.map +0 -1
  236. package/build/lib/version-selection/$.js.map +0 -1
  237. package/build/lib/version-selection/version-selection.d.ts.map +0 -1
  238. package/build/lib/version-selection/version-selection.js.map +0 -1
  239. package/src/lib/graph/$$.ts +0 -1
  240. package/src/lib/graph/$.ts +0 -1
  241. package/src/lib/graph/graph.ts +0 -197
  242. package/src/lib/mask/$$.ts +0 -2
  243. package/src/lib/mask/$.test.ts +0 -226
  244. package/src/lib/mask/$.ts +0 -1
  245. package/src/lib/mask/apply.ts +0 -134
  246. package/src/lib/mask/mask.test-d.ts +0 -156
  247. package/src/lib/mask/mask.ts +0 -244
  248. package/src/lib/version-selection/$$.ts +0 -1
  249. /package/build/lib/{version-selection → version-coverage}/$.d.ts +0 -0
  250. /package/build/lib/{version-selection → version-coverage}/$.js +0 -0
  251. /package/src/lib/{version-selection → version-coverage}/$.ts +0 -0
@@ -1,4 +1,5 @@
1
1
  import { S } from '#lib/kit-temp/effect';
2
+ import { Version } from '#lib/version/$';
2
3
  export declare const DiagnosticValidationError: S.Struct<{
3
4
  _tag: S.tag<"Diagnostic">;
4
5
  } & Omit<{
@@ -20,7 +21,7 @@ export declare const DiagnosticValidationError: S.Struct<{
20
21
  name: typeof S.String;
21
22
  path: typeof S.String;
22
23
  }>;
23
- version: typeof S.String;
24
+ version: S.optional<S.transformOrFail<S.Union<[typeof S.String, typeof S.Number]>, S.Union<[typeof Version.IntegerVersion.Integer, typeof Version.SemverVersion.Semver, typeof Version.DateVersion.Date, typeof Version.CustomVersion.Custom]>, never>>;
24
25
  errors: S.Array$<S.Struct<{
25
26
  message: typeof S.String;
26
27
  locations: S.optional<S.Array$<S.Struct<{
@@ -50,7 +51,7 @@ export declare const makeDiagnosticValidationError: import("#lib/kit-temp/effect
50
51
  name: typeof S.String;
51
52
  path: typeof S.String;
52
53
  }>;
53
- version: typeof S.String;
54
+ version: S.optional<S.transformOrFail<S.Union<[typeof S.String, typeof S.Number]>, S.Union<[typeof Version.IntegerVersion.Integer, typeof Version.SemverVersion.Semver, typeof Version.DateVersion.Date, typeof Version.CustomVersion.Custom]>, never>>;
54
55
  errors: S.Array$<S.Struct<{
55
56
  message: typeof S.String;
56
57
  locations: S.optional<S.Array$<S.Struct<{
@@ -1 +1 @@
1
- {"version":3,"file":"validation-error.d.ts","sourceRoot":"","sources":["../../../../src/api/examples/diagnostic/validation-error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,sBAAsB,CAAA;AAExC,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAepC,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAmD,CAAA;AAE7F,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,yBAAyB,CAAC,CAAA"}
1
+ {"version":3,"file":"validation-error.d.ts","sourceRoot":"","sources":["../../../../src/api/examples/diagnostic/validation-error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,sBAAsB,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBpC,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAmD,CAAA;AAE7F,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,yBAAyB,CAAC,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { Diagnostic } from '#lib/diagnostic/$';
2
- import { GraphQLError } from '#lib/graphql-error/$';
3
2
  import { S } from '#lib/kit-temp/effect';
3
+ import { Version } from '#lib/version/$';
4
4
  export const DiagnosticValidationError = Diagnostic.create({
5
5
  source: 'examples-validation',
6
6
  name: 'invalid-graphql',
@@ -10,8 +10,14 @@ export const DiagnosticValidationError = Diagnostic.create({
10
10
  name: S.String,
11
11
  path: S.String,
12
12
  }),
13
- version: S.String,
14
- errors: S.Array(GraphQLError.GraphQLError),
13
+ version: S.optional(Version.Version),
14
+ errors: S.Array(S.Struct({
15
+ message: S.String,
16
+ locations: S.optional(S.Array(S.Struct({
17
+ line: S.Number,
18
+ column: S.Number,
19
+ }))),
20
+ })),
15
21
  },
16
22
  }).annotations({
17
23
  identifier: 'DiagnosticValidationError',
@@ -1 +1 @@
1
- {"version":3,"file":"validation-error.js","sourceRoot":"","sources":["../../../../src/api/examples/diagnostic/validation-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,sBAAsB,CAAA;AAExC,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC,MAAM,CAAC;IACzD,MAAM,EAAE,qBAAqB;IAC7B,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,OAAO,EAAE,qCAAqC;IACxD,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,CAAC,CAAC,MAAM;YACd,IAAI,EAAE,CAAC,CAAC,MAAM;SACf,CAAC;QACF,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC;KAC3C;CACF,CAAC,CAAC,WAAW,CAAC;IACb,UAAU,EAAE,2BAA2B;IACvC,WAAW,EAAE,sDAAsD;CACpE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAA"}
1
+ {"version":3,"file":"validation-error.js","sourceRoot":"","sources":["../../../../src/api/examples/diagnostic/validation-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,sBAAsB,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC,MAAM,CAAC;IACzD,MAAM,EAAE,qBAAqB;IAC7B,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,OAAO,EAAE,qCAAqC;IACxD,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,CAAC,CAAC,MAAM;YACd,IAAI,EAAE,CAAC,CAAC,MAAM;SACf,CAAC;QACF,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QACpC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YACvB,OAAO,EAAE,CAAC,CAAC,MAAM;YACjB,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrC,IAAI,EAAE,CAAC,CAAC,MAAM;gBACd,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC,CAAC;SACL,CAAC,CAAC;KACJ;CACF,CAAC,CAAC,WAAW,CAAC;IACb,UAAU,EAAE,2BAA2B;IACvC,WAAW,EAAE,sDAAsD;CACpE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../src/api/examples/diagnostic/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAOzD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAOhE,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,CAAA;AAM5D;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,UAAU,OAAO,CAAC,OAAO,EAAE,EAC3B,SAAS,aAAa,CAAC,OAAO,KAC7B,oBAAoB,EAoEtB,CAAA"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../src/api/examples/diagnostic/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAOzD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAOhE,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,CAAA;AAmC5D;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,UAAU,OAAO,CAAC,OAAO,EAAE,EAC3B,SAAS,aAAa,CAAC,OAAO,KAC7B,oBAAoB,EAyEtB,CAAA"}
@@ -1,12 +1,35 @@
1
1
  import { Catalog as SchemaCatalog } from '#lib/catalog/$';
2
2
  import { Document } from '#lib/document/$';
3
+ import { Schema } from '#lib/schema/$';
3
4
  import { Version } from '#lib/version/$';
4
- import { HashMap, Match, Option } from 'effect';
5
- import { Array } from 'effect';
5
+ import { Array, Either, Match, Schema as S } from 'effect';
6
6
  import { parse, specifiedRules, validate } from 'graphql';
7
7
  import { Example } from '../schemas/example/$.js';
8
8
  import { makeDiagnosticValidationError } from './diagnostic.js';
9
9
  // ============================================================================
10
+ // Schemas
11
+ // ============================================================================
12
+ const GraphQLErrorData = S.Struct({
13
+ message: S.String,
14
+ locations: S.optional(S.Array(S.Struct({
15
+ line: S.Number,
16
+ column: S.Number,
17
+ }))),
18
+ });
19
+ // ============================================================================
20
+ // Safe Parsing
21
+ // ============================================================================
22
+ /**
23
+ * Safely parse a GraphQL document without throwing.
24
+ * Returns an Either with the document on success or error on failure.
25
+ */
26
+ const parseDocumentSafe = (content) => {
27
+ return Either.try({
28
+ try: () => parse(content),
29
+ catch: (error) => error,
30
+ });
31
+ };
32
+ // ============================================================================
10
33
  // Validation
11
34
  // ============================================================================
12
35
  /**
@@ -18,43 +41,60 @@ import { makeDiagnosticValidationError } from './diagnostic.js';
18
41
  */
19
42
  export const validateExamples = (examples, catalog) => {
20
43
  const diagnostics = [];
21
- return Match.value(catalog).pipe(Match.tagsExhaustive({
22
- CatalogVersioned: (versioned) => {
23
- const schemaVersions = versioned.entries.map(e => e.version);
24
- for (const example of examples) {
25
- Match.value(example.document).pipe(Match.tagsExhaustive({
26
- DocumentVersioned: (doc) => {
27
- // Validate each version against its corresponding schema
28
- for (const entry of versioned.entries) {
29
- const content = Document.Versioned.getContentForVersion(doc, entry.version);
30
- if (content) {
31
- const versionStr = Version.encodeSync(entry.version);
32
- validateDocument(example.name, example.path, versionStr, content, entry.definition, diagnostics);
33
- }
34
- }
35
- return undefined;
44
+ Array.forEach(examples, (example) => {
45
+ if (example.document._tag === 'DocumentVersioned') {
46
+ // Versioned document: iterate all versions and let utility handle compatibility
47
+ const documentVersions = Document.Versioned.getAllVersions(example.document);
48
+ let versionMismatchDetected = false;
49
+ Array.forEach(documentVersions, (version) => {
50
+ // Skip remaining versions if we already detected a version mismatch
51
+ if (versionMismatchDetected)
52
+ return;
53
+ const result = Document.resolveDocumentAndSchema(example.document, catalog, version);
54
+ Either.match(result, {
55
+ onLeft: (error) => {
56
+ // Pattern match on error types - all errors are now tagged
57
+ Match.value(error).pipe(Match.when({ _tag: 'VersionCoverageMismatchError' }, (err) => {
58
+ diagnostics.push(makeDiagnosticValidationError({
59
+ message: `Example "${example.name}" has versioned content but catalog is unversioned`,
60
+ example: { name: example.name, path: example.path },
61
+ version: undefined,
62
+ errors: [{ message: err.reason }],
63
+ }));
64
+ // Set flag to skip remaining versions - all will have same error
65
+ versionMismatchDetected = true;
66
+ }), Match.when({ _tag: 'VersionNotFoundInDocumentError' }, () => {
67
+ // Skip silently - version not found in document
68
+ }), Match.when({ _tag: 'VersionNotFoundInCatalogError' }, () => {
69
+ // Skip silently - version not found in catalog
70
+ }), Match.when({ _tag: 'EmptyCatalogError' }, () => {
71
+ // Skip silently - catalog has no entries
72
+ }), Match.exhaustive);
36
73
  },
37
- DocumentUnversioned: (doc) => {
38
- const latestEntry = versioned.entries[0];
39
- validateDocument(example.name, example.path, 'default', doc.document, latestEntry.definition, diagnostics);
40
- return undefined;
74
+ onRight: ({ content, schema }) => {
75
+ if (schema) {
76
+ validateDocument(example, schema, content, diagnostics);
77
+ }
41
78
  },
42
- }));
43
- }
44
- return diagnostics;
45
- },
46
- CatalogUnversioned: (unversioned) => {
47
- // For unversioned catalog, only unversioned documents make sense
48
- for (const example of examples) {
49
- if (example.document._tag === 'DocumentUnversioned') {
50
- validateDocument(example.name, example.path, 'default', example.document.document, unversioned.schema.definition, diagnostics);
51
- }
52
- // Versioned/PartiallyVersioned documents with unversioned catalog don't make sense
53
- // These should be caught by other diagnostics
54
- }
55
- return diagnostics;
56
- },
57
- }));
79
+ });
80
+ });
81
+ }
82
+ else {
83
+ // Unversioned document: call without version coverage
84
+ const result = Document.resolveDocumentAndSchema(example.document, catalog);
85
+ Either.match(result, {
86
+ onLeft: () => {
87
+ // Resolution failed - skip silently
88
+ },
89
+ onRight: ({ content, schema }) => {
90
+ if (schema) {
91
+ validateDocument(example, schema, content, diagnostics);
92
+ }
93
+ },
94
+ });
95
+ }
96
+ });
97
+ return diagnostics;
58
98
  };
59
99
  // ============================================================================
60
100
  // Helpers
@@ -62,55 +102,61 @@ export const validateExamples = (examples, catalog) => {
62
102
  /**
63
103
  * Validate a single document and add diagnostics if needed.
64
104
  */
65
- const validateDocument = (exampleName, examplePath, version, content, schema, diagnostics) => {
66
- try {
67
- // Parse the GraphQL document
68
- const document = parse(content);
69
- // Validate against the schema
70
- const errors = validate(schema, document, specifiedRules);
71
- if (errors.length > 0) {
72
- diagnostics.push(makeDiagnosticValidationError({
73
- message: formatValidationMessage(exampleName, version, errors),
74
- example: { name: exampleName, path: examplePath },
75
- version,
76
- errors: errors.map(formatGraphQLError),
77
- }));
78
- }
105
+ const validateDocument = (example, schema, content, diagnostics) => {
106
+ // Extract version from schema (undefined for unversioned)
107
+ const version = Schema.getVersion(schema);
108
+ // Parse the document safely
109
+ const parseResult = parseDocumentSafe(content);
110
+ if (Either.isLeft(parseResult)) {
111
+ // Handle parse errors
112
+ diagnostics.push(makeDiagnosticValidationError({
113
+ message: formatParseError(example.name, version),
114
+ example: { name: example.name, path: example.path },
115
+ version,
116
+ errors: [{ message: parseResult.left.message }],
117
+ }));
118
+ return;
79
119
  }
80
- catch (parseError) {
81
- // Parse errors are also validation errors
120
+ // Validate the parsed document against the schema
121
+ const errors = validate(schema.definition, parseResult.right, specifiedRules);
122
+ if (Array.isNonEmptyReadonlyArray(errors)) {
82
123
  diagnostics.push(makeDiagnosticValidationError({
83
- message: `Example "${exampleName}" (${version}) has invalid GraphQL syntax`,
84
- example: { name: exampleName, path: examplePath },
124
+ message: formatValidationMessage(example.name, version, errors),
125
+ example: { name: example.name, path: example.path },
85
126
  version,
86
- errors: [{ message: String(parseError) }],
127
+ errors: errors.map(formatGraphQLError),
87
128
  }));
88
129
  }
89
130
  };
131
+ /**
132
+ * Format a parse error message for an example.
133
+ */
134
+ const formatParseError = (exampleId, version) => {
135
+ const versionStr = version ? ` (${Version.encodeSync(version)})` : '';
136
+ return `Example "${exampleId}"${versionStr} has invalid GraphQL syntax`;
137
+ };
90
138
  /**
91
139
  * Format a validation message for an example.
92
140
  */
93
141
  const formatValidationMessage = (exampleId, version, errors) => {
94
- const versionStr = version === 'default' ? '' : ` (${version})`;
142
+ const versionStr = version ? ` (${Version.encodeSync(version)})` : '';
95
143
  const errorCount = errors.length;
96
144
  const errorWord = errorCount === 1 ? 'error' : 'errors';
97
- // Include the first error message for context
98
- const firstError = errors[0];
99
- const preview = firstError ? `: ${firstError.message}` : '';
145
+ // Include the first error message for context - always safe with NonEmptyArray
146
+ const firstError = Array.headNonEmpty(errors);
147
+ const preview = `: ${firstError.message}`;
100
148
  return `Example "${exampleId}"${versionStr} has ${errorCount} validation ${errorWord}${preview}`;
101
149
  };
102
150
  /**
103
151
  * Format a GraphQL error for diagnostic reporting.
104
152
  */
105
- const formatGraphQLError = (error) => ({
153
+ const formatGraphQLError = (error) => GraphQLErrorData.make({
106
154
  message: error.message,
107
- ...(error.locations
108
- ? {
109
- locations: error.locations.map(loc => ({
110
- line: loc.line,
111
- column: loc.column,
112
- })),
113
- }
114
- : {}),
155
+ ...(error.locations && {
156
+ locations: error.locations.map(loc => ({
157
+ line: loc.line,
158
+ column: loc.column,
159
+ })),
160
+ }),
115
161
  });
116
162
  //# sourceMappingURL=validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../src/api/examples/diagnostic/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../src/api/examples/diagnostic/validator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/api/examples/filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GACpC,UAAU,OAAO,CAAC,OAAO,EAAE,EAC3B,WAAW,gBAAgB,GAAG,SAAS,KACtC,OAAO,CAAC,OAAO,EA6BjB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,WAAW,EACxB,WAAW,gBAAgB,GAAG,SAAS,KACtC,OA2BF,CAAA"}
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/api/examples/filter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GACpC,UAAU,OAAO,CAAC,OAAO,EAAE,EAC3B,WAAW,gBAAgB,GAAG,SAAS,KACtC,OAAO,CAAC,OAAO,EA6BjB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,WAAW,EACxB,WAAW,gBAAgB,GAAG,SAAS,KACtC,OA6BF,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { HashSet } from 'effect';
1
2
  import { Example } from './schemas/example/$.js';
2
3
  /**
3
4
  * Filter examples based on the display configuration.
@@ -20,13 +21,13 @@ export const filterExamplesBySelection = (examples, selection) => {
20
21
  }
21
22
  // Handle include pattern
22
23
  if ('include' in selection) {
23
- const includeSet = new Set(selection.include);
24
- return examples.filter(example => includeSet.has(example.name));
24
+ const includeSet = HashSet.fromIterable(selection.include);
25
+ return examples.filter(example => HashSet.has(includeSet, example.name));
25
26
  }
26
27
  // Handle exclude pattern
27
28
  if ('exclude' in selection) {
28
- const excludeSet = new Set(selection.exclude);
29
- return examples.filter(example => !excludeSet.has(example.name));
29
+ const excludeSet = HashSet.fromIterable(selection.exclude);
30
+ return examples.filter(example => !HashSet.has(excludeSet, example.name));
30
31
  }
31
32
  // Fallback to all examples if selection pattern is not recognized
32
33
  return examples;
@@ -52,11 +53,13 @@ export const shouldDisplayExample = (exampleName, selection) => {
52
53
  }
53
54
  // Handle include pattern
54
55
  if ('include' in selection) {
55
- return selection.include.includes(exampleName);
56
+ const includeSet = HashSet.fromIterable(selection.include);
57
+ return HashSet.has(includeSet, exampleName);
56
58
  }
57
59
  // Handle exclude pattern
58
60
  if ('exclude' in selection) {
59
- return !selection.exclude.includes(exampleName);
61
+ const excludeSet = HashSet.fromIterable(selection.exclude);
62
+ return !HashSet.has(excludeSet, exampleName);
60
63
  }
61
64
  // Fallback to show if selection pattern is not recognized
62
65
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/api/examples/filter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,QAA2B,EAC3B,SAAuC,EACpB,EAAE;IACrB,yCAAyC;IACzC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAc,SAAS,CAAC,OAAO,CAAC,CAAA;QAC1D,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAmB,CAAC,CAAC,CAAA;IAChF,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAc,SAAS,CAAC,OAAO,CAAC,CAAA;QAC1D,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAmB,CAAC,CAAC,CAAA;IACjF,CAAC;IAED,kEAAkE;IAClE,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,WAAwB,EACxB,SAAuC,EAC9B,EAAE;IACX,0CAA0C;IAC1C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAChD,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IACjD,CAAC;IAED,0DAA0D;IAC1D,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/api/examples/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,QAA2B,EAC3B,SAAuC,EACpB,EAAE;IACrB,yCAAyC;IACzC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAC1D,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,IAAmB,CAAC,CAAC,CAAA;IACzF,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAC1D,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,IAAmB,CAAC,CAAC,CAAA;IAC1F,CAAC;IAED,kEAAkE;IAClE,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,WAAwB,EACxB,SAAuC,EAC9B,EAAE;IACX,0CAA0C;IAC1C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAC1D,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IAC7C,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAC1D,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IAC9C,CAAC;IAED,0DAA0D;IAC1D,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../src/api/examples/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAKzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,MAAM,EAA2B,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAQ5D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAO9C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC,OAAO,CAAA;CACtC;AA0HD,eAAO,MAAM,IAAI,GACf,SAAS,WAAW,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAC1C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAuLrD,CAAA"}
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../src/api/examples/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAKzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAS,MAAM,EAA2B,MAAM,QAAQ,CAAA;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAO5D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAO9C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC,OAAO,CAAA;CACtC;AA2MD,eAAO,MAAM,IAAI,GACf,SAAS,WAAW,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAC1C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CA+HrD,CAAA"}