@vespercms/core 0.0.0-stage → 0.1.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/README.md +37 -2
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/a11y/body.d.ts +76 -0
  4. package/dist/a11y/body.js +502 -0
  5. package/dist/a11y/body.js.map +1 -0
  6. package/dist/a11y/build.d.ts +7 -0
  7. package/dist/a11y/build.js +166 -0
  8. package/dist/a11y/build.js.map +1 -0
  9. package/dist/a11y/contrast.d.ts +19 -0
  10. package/dist/a11y/contrast.js +55 -0
  11. package/dist/a11y/contrast.js.map +1 -0
  12. package/dist/a11y/entry.d.ts +17 -0
  13. package/dist/a11y/entry.js +24 -0
  14. package/dist/a11y/entry.js.map +1 -0
  15. package/dist/a11y/fields.d.ts +13 -0
  16. package/dist/a11y/fields.js +111 -0
  17. package/dist/a11y/fields.js.map +1 -0
  18. package/dist/a11y/html.d.ts +31 -0
  19. package/dist/a11y/html.js +102 -0
  20. package/dist/a11y/html.js.map +1 -0
  21. package/dist/a11y/index.d.ts +9 -0
  22. package/dist/a11y/index.js +15 -0
  23. package/dist/a11y/index.js.map +1 -0
  24. package/dist/a11y/rules.d.ts +13 -0
  25. package/dist/a11y/rules.js +54 -0
  26. package/dist/a11y/rules.js.map +1 -0
  27. package/dist/a11y/text.d.ts +19 -0
  28. package/dist/a11y/text.js +103 -0
  29. package/dist/a11y/text.js.map +1 -0
  30. package/dist/a11y/types.d.ts +51 -0
  31. package/dist/a11y/types.js +2 -0
  32. package/dist/a11y/types.js.map +1 -0
  33. package/dist/body/blocks.d.ts +16 -0
  34. package/dist/body/blocks.js +143 -0
  35. package/dist/body/blocks.js.map +1 -0
  36. package/dist/body/jsx-tag.d.ts +47 -0
  37. package/dist/body/jsx-tag.js +330 -0
  38. package/dist/body/jsx-tag.js.map +1 -0
  39. package/dist/body/list-value.d.ts +22 -0
  40. package/dist/body/list-value.js +223 -0
  41. package/dist/body/list-value.js.map +1 -0
  42. package/dist/body/markdoc-tag.d.ts +55 -0
  43. package/dist/body/markdoc-tag.js +293 -0
  44. package/dist/body/markdoc-tag.js.map +1 -0
  45. package/dist/body/markdoc.d.ts +20 -0
  46. package/dist/body/markdoc.js +343 -0
  47. package/dist/body/markdoc.js.map +1 -0
  48. package/dist/body/mdast.d.ts +4 -0
  49. package/dist/body/mdast.js +216 -0
  50. package/dist/body/mdast.js.map +1 -0
  51. package/dist/body/table-edit.d.ts +40 -0
  52. package/dist/body/table-edit.js +203 -0
  53. package/dist/body/table-edit.js.map +1 -0
  54. package/dist/body/table.d.ts +19 -0
  55. package/dist/body/table.js +111 -0
  56. package/dist/body/table.js.map +1 -0
  57. package/dist/body/types.d.ts +111 -0
  58. package/dist/body/types.js +10 -0
  59. package/dist/body/types.js.map +1 -0
  60. package/dist/body/util.d.ts +11 -0
  61. package/dist/body/util.js +44 -0
  62. package/dist/body/util.js.map +1 -0
  63. package/dist/body/validate.d.ts +54 -0
  64. package/dist/body/validate.js +250 -0
  65. package/dist/body/validate.js.map +1 -0
  66. package/dist/cloud/client.d.ts +102 -0
  67. package/dist/cloud/client.js +234 -0
  68. package/dist/cloud/client.js.map +1 -0
  69. package/dist/cloud/contract.d.ts +42 -0
  70. package/dist/cloud/contract.js +500 -0
  71. package/dist/cloud/contract.js.map +1 -0
  72. package/dist/cloud/dpop.d.ts +44 -0
  73. package/dist/cloud/dpop.js +125 -0
  74. package/dist/cloud/dpop.js.map +1 -0
  75. package/dist/cloud/drafts.d.ts +83 -0
  76. package/dist/cloud/drafts.js +286 -0
  77. package/dist/cloud/drafts.js.map +1 -0
  78. package/dist/cloud/grants.d.ts +67 -0
  79. package/dist/cloud/grants.js +161 -0
  80. package/dist/cloud/grants.js.map +1 -0
  81. package/dist/cloud/index.d.ts +5 -0
  82. package/dist/cloud/index.js +6 -0
  83. package/dist/cloud/index.js.map +1 -0
  84. package/dist/cloud/protocol.d.ts +290 -0
  85. package/dist/cloud/protocol.js +80 -0
  86. package/dist/cloud/protocol.js.map +1 -0
  87. package/dist/collections/entries.d.ts +27 -0
  88. package/dist/collections/entries.js +84 -0
  89. package/dist/collections/entries.js.map +1 -0
  90. package/dist/field-model.d.ts +107 -0
  91. package/dist/field-model.js +2 -0
  92. package/dist/field-model.js.map +1 -0
  93. package/dist/files/data-file.d.ts +43 -0
  94. package/dist/files/data-file.js +133 -0
  95. package/dist/files/data-file.js.map +1 -0
  96. package/dist/files/date-offset.d.ts +10 -0
  97. package/dist/files/date-offset.js +43 -0
  98. package/dist/files/date-offset.js.map +1 -0
  99. package/dist/files/entry-file.d.ts +48 -0
  100. package/dist/files/entry-file.js +87 -0
  101. package/dist/files/entry-file.js.map +1 -0
  102. package/dist/files/equal.d.ts +13 -0
  103. package/dist/files/equal.js +35 -0
  104. package/dist/files/equal.js.map +1 -0
  105. package/dist/files/errors.d.ts +15 -0
  106. package/dist/files/errors.js +13 -0
  107. package/dist/files/errors.js.map +1 -0
  108. package/dist/files/frontmatter.d.ts +37 -0
  109. package/dist/files/frontmatter.js +57 -0
  110. package/dist/files/frontmatter.js.map +1 -0
  111. package/dist/files/json/write.d.ts +30 -0
  112. package/dist/files/json/write.js +198 -0
  113. package/dist/files/json/write.js.map +1 -0
  114. package/dist/files/patch.d.ts +51 -0
  115. package/dist/files/patch.js +314 -0
  116. package/dist/files/patch.js.map +1 -0
  117. package/dist/files/text.d.ts +24 -0
  118. package/dist/files/text.js +70 -0
  119. package/dist/files/text.js.map +1 -0
  120. package/dist/files/yaml/read.d.ts +44 -0
  121. package/dist/files/yaml/read.js +86 -0
  122. package/dist/files/yaml/read.js.map +1 -0
  123. package/dist/files/yaml/scalar.d.ts +36 -0
  124. package/dist/files/yaml/scalar.js +146 -0
  125. package/dist/files/yaml/scalar.js.map +1 -0
  126. package/dist/files/yaml/style.d.ts +15 -0
  127. package/dist/files/yaml/style.js +68 -0
  128. package/dist/files/yaml/style.js.map +1 -0
  129. package/dist/files/yaml/text.d.ts +12 -0
  130. package/dist/files/yaml/text.js +32 -0
  131. package/dist/files/yaml/text.js.map +1 -0
  132. package/dist/files/yaml/write.d.ts +39 -0
  133. package/dist/files/yaml/write.js +588 -0
  134. package/dist/files/yaml/write.js.map +1 -0
  135. package/dist/images/geometry.d.ts +93 -0
  136. package/dist/images/geometry.js +200 -0
  137. package/dist/images/geometry.js.map +1 -0
  138. package/dist/images/index.d.ts +2 -0
  139. package/dist/images/index.js +9 -0
  140. package/dist/images/index.js.map +1 -0
  141. package/dist/images/ratios.d.ts +13 -0
  142. package/dist/images/ratios.js +37 -0
  143. package/dist/images/ratios.js.map +1 -0
  144. package/dist/index.d.ts +65 -0
  145. package/dist/index.js +74 -0
  146. package/dist/index.js.map +1 -0
  147. package/dist/manifest/build.d.ts +141 -0
  148. package/dist/manifest/build.js +539 -0
  149. package/dist/manifest/build.js.map +1 -0
  150. package/dist/manifest/hash.d.ts +7 -0
  151. package/dist/manifest/hash.js +24 -0
  152. package/dist/manifest/hash.js.map +1 -0
  153. package/dist/manifest/types.d.ts +180 -0
  154. package/dist/manifest/types.js +2 -0
  155. package/dist/manifest/types.js.map +1 -0
  156. package/dist/markdoc/config.d.ts +3 -0
  157. package/dist/markdoc/config.js +61 -0
  158. package/dist/markdoc/config.js.map +1 -0
  159. package/dist/markdoc/extract.d.ts +39 -0
  160. package/dist/markdoc/extract.js +167 -0
  161. package/dist/markdoc/extract.js.map +1 -0
  162. package/dist/markdoc/fields.d.ts +3 -0
  163. package/dist/markdoc/fields.js +81 -0
  164. package/dist/markdoc/fields.js.map +1 -0
  165. package/dist/markdoc/types.d.ts +113 -0
  166. package/dist/markdoc/types.js +2 -0
  167. package/dist/markdoc/types.js.map +1 -0
  168. package/dist/schedule/events.d.ts +27 -0
  169. package/dist/schedule/events.js +30 -0
  170. package/dist/schedule/events.js.map +1 -0
  171. package/dist/schedule/index.d.ts +4 -0
  172. package/dist/schedule/index.js +11 -0
  173. package/dist/schedule/index.js.map +1 -0
  174. package/dist/schedule/time.d.ts +20 -0
  175. package/dist/schedule/time.js +109 -0
  176. package/dist/schedule/time.js.map +1 -0
  177. package/dist/schedule/window.d.ts +11 -0
  178. package/dist/schedule/window.js +30 -0
  179. package/dist/schedule/window.js.map +1 -0
  180. package/dist/schedule/words.d.ts +13 -0
  181. package/dist/schedule/words.js +54 -0
  182. package/dist/schedule/words.js.map +1 -0
  183. package/dist/schema/humanize.d.ts +6 -0
  184. package/dist/schema/humanize.js +39 -0
  185. package/dist/schema/humanize.js.map +1 -0
  186. package/dist/schema/variants.d.ts +7 -0
  187. package/dist/schema/variants.js +28 -0
  188. package/dist/schema/variants.js.map +1 -0
  189. package/dist/schema/walk.d.ts +40 -0
  190. package/dist/schema/walk.js +519 -0
  191. package/dist/schema/walk.js.map +1 -0
  192. package/dist/search/annotate.d.ts +54 -0
  193. package/dist/search/annotate.js +188 -0
  194. package/dist/search/annotate.js.map +1 -0
  195. package/dist/search/fields.d.ts +7 -0
  196. package/dist/search/fields.js +47 -0
  197. package/dist/search/fields.js.map +1 -0
  198. package/dist/storage/contract.d.ts +15 -0
  199. package/dist/storage/contract.js +144 -0
  200. package/dist/storage/contract.js.map +1 -0
  201. package/dist/storage/git-blob-sha.d.ts +6 -0
  202. package/dist/storage/git-blob-sha.js +15 -0
  203. package/dist/storage/git-blob-sha.js.map +1 -0
  204. package/dist/storage/github.d.ts +91 -0
  205. package/dist/storage/github.js +475 -0
  206. package/dist/storage/github.js.map +1 -0
  207. package/dist/storage/memory.d.ts +24 -0
  208. package/dist/storage/memory.js +87 -0
  209. package/dist/storage/memory.js.map +1 -0
  210. package/dist/storage/paths.d.ts +9 -0
  211. package/dist/storage/paths.js +29 -0
  212. package/dist/storage/paths.js.map +1 -0
  213. package/dist/storage/types.d.ts +97 -0
  214. package/dist/storage/types.js +2 -0
  215. package/dist/storage/types.js.map +1 -0
  216. package/dist/storage/validate.d.ts +32 -0
  217. package/dist/storage/validate.js +82 -0
  218. package/dist/storage/validate.js.map +1 -0
  219. package/dist/studio/field-checks.d.ts +4 -0
  220. package/dist/studio/field-checks.js +113 -0
  221. package/dist/studio/field-checks.js.map +1 -0
  222. package/dist/studio/issues.d.ts +2 -0
  223. package/dist/studio/issues.js +81 -0
  224. package/dist/studio/issues.js.map +1 -0
  225. package/dist/studio/links.d.ts +41 -0
  226. package/dist/studio/links.js +347 -0
  227. package/dist/studio/links.js.map +1 -0
  228. package/dist/studio/media.d.ts +45 -0
  229. package/dist/studio/media.js +206 -0
  230. package/dist/studio/media.js.map +1 -0
  231. package/dist/studio/order.d.ts +26 -0
  232. package/dist/studio/order.js +98 -0
  233. package/dist/studio/order.js.map +1 -0
  234. package/dist/studio/pages.d.ts +192 -0
  235. package/dist/studio/pages.js +944 -0
  236. package/dist/studio/pages.js.map +1 -0
  237. package/dist/studio/protocol.d.ts +173 -0
  238. package/dist/studio/protocol.js +47 -0
  239. package/dist/studio/protocol.js.map +1 -0
  240. package/dist/studio/service.d.ts +150 -0
  241. package/dist/studio/service.js +761 -0
  242. package/dist/studio/service.js.map +1 -0
  243. package/dist/studio/widget.d.ts +28 -0
  244. package/dist/studio/widget.js +2 -0
  245. package/dist/studio/widget.js.map +1 -0
  246. package/dist/urls/csv.d.ts +23 -0
  247. package/dist/urls/csv.js +214 -0
  248. package/dist/urls/csv.js.map +1 -0
  249. package/dist/urls/hosts.d.ts +41 -0
  250. package/dist/urls/hosts.js +116 -0
  251. package/dist/urls/hosts.js.map +1 -0
  252. package/dist/urls/index.d.ts +5 -0
  253. package/dist/urls/index.js +12 -0
  254. package/dist/urls/index.js.map +1 -0
  255. package/dist/urls/pattern.d.ts +87 -0
  256. package/dist/urls/pattern.js +236 -0
  257. package/dist/urls/pattern.js.map +1 -0
  258. package/dist/urls/redirects.d.ts +66 -0
  259. package/dist/urls/redirects.js +207 -0
  260. package/dist/urls/redirects.js.map +1 -0
  261. package/dist/urls/tree.d.ts +57 -0
  262. package/dist/urls/tree.js +120 -0
  263. package/dist/urls/tree.js.map +1 -0
  264. package/dist/widgets/resolve.d.ts +35 -0
  265. package/dist/widgets/resolve.js +158 -0
  266. package/dist/widgets/resolve.js.map +1 -0
  267. package/package.json +77 -4
  268. package/src/a11y/body.ts +612 -0
  269. package/src/a11y/build.ts +183 -0
  270. package/src/a11y/contrast.ts +68 -0
  271. package/src/a11y/entry.ts +44 -0
  272. package/src/a11y/fields.ts +126 -0
  273. package/src/a11y/html.ts +126 -0
  274. package/src/a11y/index.ts +55 -0
  275. package/src/a11y/rules.ts +137 -0
  276. package/src/a11y/text.ts +117 -0
  277. package/src/a11y/types.ts +56 -0
  278. package/src/body/blocks.ts +183 -0
  279. package/src/body/jsx-tag.ts +354 -0
  280. package/src/body/list-value.ts +245 -0
  281. package/src/body/markdoc-tag.ts +346 -0
  282. package/src/body/markdoc.ts +371 -0
  283. package/src/body/mdast.ts +212 -0
  284. package/src/body/table-edit.ts +285 -0
  285. package/src/body/table.ts +135 -0
  286. package/src/body/types.ts +116 -0
  287. package/src/body/util.ts +45 -0
  288. package/src/body/validate.ts +325 -0
  289. package/src/cloud/client.ts +308 -0
  290. package/src/cloud/contract.ts +690 -0
  291. package/src/cloud/dpop.ts +164 -0
  292. package/src/cloud/drafts.ts +360 -0
  293. package/src/cloud/grants.ts +208 -0
  294. package/src/cloud/index.ts +89 -0
  295. package/src/cloud/protocol.ts +303 -0
  296. package/src/collections/entries.ts +83 -0
  297. package/src/field-model.ts +120 -0
  298. package/src/files/data-file.ts +161 -0
  299. package/src/files/date-offset.ts +50 -0
  300. package/src/files/entry-file.ts +127 -0
  301. package/src/files/equal.ts +40 -0
  302. package/src/files/errors.ts +21 -0
  303. package/src/files/frontmatter.ts +84 -0
  304. package/src/files/json/write.ts +214 -0
  305. package/src/files/patch.ts +340 -0
  306. package/src/files/text.ts +80 -0
  307. package/src/files/yaml/read.ts +118 -0
  308. package/src/files/yaml/scalar.ts +151 -0
  309. package/src/files/yaml/style.ts +83 -0
  310. package/src/files/yaml/text.ts +35 -0
  311. package/src/files/yaml/write.ts +679 -0
  312. package/src/images/geometry.ts +255 -0
  313. package/src/images/index.ts +33 -0
  314. package/src/images/ratios.ts +42 -0
  315. package/src/index.ts +336 -0
  316. package/src/manifest/build.ts +744 -0
  317. package/src/manifest/hash.ts +27 -0
  318. package/src/manifest/types.ts +169 -0
  319. package/src/markdoc/config.ts +66 -0
  320. package/src/markdoc/extract.ts +240 -0
  321. package/src/markdoc/fields.ts +90 -0
  322. package/src/markdoc/types.ts +119 -0
  323. package/src/schedule/events.ts +56 -0
  324. package/src/schedule/index.ts +17 -0
  325. package/src/schedule/time.ts +120 -0
  326. package/src/schedule/window.ts +39 -0
  327. package/src/schedule/words.ts +64 -0
  328. package/src/schema/humanize.ts +37 -0
  329. package/src/schema/variants.ts +29 -0
  330. package/src/schema/walk.ts +632 -0
  331. package/src/search/annotate.ts +241 -0
  332. package/src/search/fields.ts +45 -0
  333. package/src/storage/contract.ts +180 -0
  334. package/src/storage/git-blob-sha.ts +15 -0
  335. package/src/storage/github.ts +583 -0
  336. package/src/storage/memory.ts +96 -0
  337. package/src/storage/paths.ts +26 -0
  338. package/src/storage/types.ts +80 -0
  339. package/src/storage/validate.ts +91 -0
  340. package/src/studio/field-checks.ts +121 -0
  341. package/src/studio/issues.ts +106 -0
  342. package/src/studio/links.ts +392 -0
  343. package/src/studio/media.ts +218 -0
  344. package/src/studio/order.ts +116 -0
  345. package/src/studio/pages.ts +1204 -0
  346. package/src/studio/protocol.ts +193 -0
  347. package/src/studio/service.ts +952 -0
  348. package/src/studio/widget.ts +29 -0
  349. package/src/urls/csv.ts +226 -0
  350. package/src/urls/hosts.ts +165 -0
  351. package/src/urls/index.ts +77 -0
  352. package/src/urls/pattern.ts +284 -0
  353. package/src/urls/redirects.ts +267 -0
  354. package/src/urls/tree.ts +170 -0
  355. package/src/widgets/resolve.ts +208 -0
package/README.md CHANGED
@@ -1,3 +1,38 @@
1
- # Temporary Holding Version
1
+ # @vespercms/core
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ The framework-free heart of Vesper. It runs unchanged in Node, in Cloudflare Workers and in the browser, so it imports nothing from Node, Astro, React, Vite or Zod.
4
+
5
+ **Status:** Phases 1 to 3 complete; Phase 4's shared pieces (the cloud) built.
6
+
7
+ | Area | Exports |
8
+ |---|---|
9
+ | **Files** (spec §6.5) | `readEntryFile` / `writeEntryFile` for `.md`, `.mdx` and `.mdoc`. `readDataFile` / `writeDataFile` and `readCollectionFile` / `writeCollectionEntry` for JSON and YAML data. Lower-level `readYaml` / `writeYaml`, `readJson` / `writeJson`, `splitFrontmatter` and `diffValues`. |
10
+ | **Bodies** (spec §6.5, §6.5.1, §6.5.2) | `parseBody` splits a body into blocks with exact ranges: Markdown, protected source, and tags (Markdoc tags and MDX elements, as containers with child blocks when laid out on their own lines). Inline tags, variables, annotations and inline JSX are chips. Markdoc is parsed with Astro's tokenizer options (`parseMarkdoc`). `assembleBody` splices edited items back, keeping untouched bytes, containers' openings and closings included. |
11
+ | **Tags** | `markdocTags` / `markdocTagLayout` / `editMarkdocTag` and `jsxTagLayout` / `editJsxTag` read a tag's attributes with their spans and change one attribute's bytes in place. `markdocOpening` / `jsxOpening` write new tags in house style. |
12
+ | **Body validation** | `validateMarkdocBody` blocks exactly what Astro's build fails on, in plain language; `validateMdxBody` checks declared components with an injected props check. `resolvePartial` / `partialChecker` find partial files as Astro does. |
13
+ | **Schema** (spec §6.2, §6.3) | `walkSchema` turns Zod 4 schemas into `FieldModel`s without importing Zod. `resolveWidgets` applies the spec §6.3 order. |
14
+ | **Manifest** | `buildManifest`, deterministic and hashed. Its optional `markdoc` section (from `extractMarkdocSchema`, structural, never importing Markdoc's config code) and `mdx` section carry tags, attributes, settings fields and declared components. `markdocConfigFromManifest` rebuilds a config `Markdoc.validate()` accepts in the browser. |
15
+ | **Collections** | `globMatcher` and `defaultEntryId`, identical to Astro's glob loader. `folderKey` slugs a folder path the same way. |
16
+ | **URLs** (spec §6.15, also `@vespercms/core/urls`) | `entryUrlKey` expands a collection's `url` pattern (`:id`, `:path`, `:slug`, `:<field>`, `:<date>\|yyyy`) or runs its function form; `formatUrl` adds Astro's `base` and trailing slash; `urlKey` / `parseSiteUrl` read a link back. `buildTree`, `childrenOf` and `breadcrumbsOf` nest a tree collection by folder and order it by `_order.yaml`. `cleanRedirects` collapses chains, removes loops and drops redirects onto real pages; `hostRedirects` and the rule writers produce `_redirects`, `.htaccess`, nginx and Vercel rules; `parseRedirectsCsv` reads plain, WordPress and Drupal exports. `@vespercms/core/urls` is the same without the parsers, for a site's own pages. |
17
+ | **Images** (spec §6.6, also `@vespercms/core/images`) | `siteRatios` (the site's ratios plus the built-in `og`) and `ratioLabel` ("16:9"). `cropForRatio` gives a ratio's crop: the stored one, fitted to its ratio, or the largest rectangle centred on the focal point (`focalCrop`). `pixelRect` rounds a crop to pixels; `moveRect`, `resizeRect` and `dragCorner` are the crop dialog's moves; `focusWithin` and `objectPosition` place the focal point in CSS; `sharpAnchor` is where Astro's own server crop lands. Shared by the studio, `<Img>` and the crop step, so all three cut the same rectangle. |
18
+ | **Accessibility** (spec §6.18) | Layer 1, the studio's checks, as plain functions so every storage mode and the cloud share them. `entryChecker(manifest)` checks an entry's fields (`checkFields`: image alt text, `fields.color({ contrast })` against the site's `a11y.backgrounds`, compact Markdown, PDFs in file fields) and its body (`checkBody`: alt text, heading order and empty headings from the collection's `headingStart`, vague and new-tab links, tables without a header row, typed lists, empty names on embeds, video captions, linked PDFs). Every note is an `A11yNote`: one of the seventeen rules in `A11Y_RULES`, a plain message, why it matters, and its field path or body offsets and line. `pdfNotes` turns what the studio read from a PDF into notes; `blockingNotes` is the publish gate. `BUILD_RULES` are the axe-core structure rules the build runs (layer 2), in the same message style. `contrastRatio` is WCAG 2.1's. Vesper reports problems; it never claims compliance (D19). |
19
+ | **Studio services** | `ContentService` lists, reads, creates, saves and deletes entries over any storage adapter. `MediaService` lists and uploads media. `PageService` serves a tree's outline, moves a page and everything under it as one change set (its files, both `_order.yaml` files, a redirect per page, every rewritten link), reorders, creates section pages and edits the redirects file; `pageEntries` gives every entry's URL key and file, for tracing built pages to entries. `rewriteBody` / `rewriteValues` change links to moved pages and keep relative paths pointing at the same files. |
20
+ | **Storage** | The `StorageAdapter` interface, `MemoryStorage`, `gitBlobSha`, and the contract suite at `@vespercms/core/testing`. `GitHubStorage` is GitHub mode's (spec §6.8), with `fetch` alone, so it runs in the browser and in Workers: the branch as one snapshot (its commit and recursive tree), bytes by blob SHA through an optional `BlobCache` and GraphQL batches, each checked against its SHA, and one commit per save through the Git Data API, built again once on another's push that touched other files. A deferred change set (`defer`) holds new files for the next commit, so an entry and its upload are one commit. `GitHubError` says what went wrong in plain words. |
21
+ | **The cloud** (spec §6.9, §7) | What the studio and the cloud must agree on, so both run the same code. **Grants** (§7.5): `fileAccess`, `changeAccess` and `wholeSite` evaluate a member's role and grants, matched on file paths (`grantKey`, `grantMatches`), never entry IDs; a move needs both ends, new media an edit right, the redirects file the whole site. **DPoP** (RFC 9449): `createDpopKey` (non-extractable), `createDpopProof`, `verifyDpopProof`, `jwkThumbprint`, on WebCrypto. **Drafts** (§7.4): `saveDraft` keeps the bytes a save would write, checked by `validateChangeSet` against the site as its drafts show it, joining drafts a save touches; `overlayEntries` / `readOverlay` show the site with them; `publishChangeSet` makes the one commit that publishes some, expecting each file's base version; `rebaseDraft`, `discardDraft`. **The API**: its request and response types, `encodeChange` / `decodeChange`, and `CloudClient` (PKCE with `createPkce` and `authorizeUrl`, a DPoP proof on every request, the access token renewed with the rotating refresh token). Scheduled publishing (§6.17): `GET /schedule` says the site's trigger, whether it holds scheduled drafts and where each change stands; `POST /schedule` holds drafts until a time (`hold`), and `DELETE /schedule/{id}` releases them. `runCloudContract` at `@vespercms/core/cloud-testing` is what the studio relies on from the cloud: the fake cloud and the real one both run it. |
22
+ | **Field checks** | `fieldModelIssues` checks values from the field model alone (required, choices, numbers, patterns): GitHub mode's stand-in when the site's schemas can't load in the browser. |
23
+
24
+ Saves change only the bytes of values that changed: an unchanged save returns identical bytes. Every write is re-read and verified before it is returned. When a save can't be done exactly, it throws `SerializationError` and nothing is written.
25
+
26
+ See `test/README.md` for the round-trip corpus, and DECISIONS.md for the reasons behind each choice.
27
+
28
+ ## Development
29
+
30
+ From the repository root:
31
+
32
+ ```bash
33
+ npm test # Vitest, straight from src/
34
+ npm run typecheck # tsc -b plus the test tsconfig
35
+ npm run check:dist # builds dist/ and imports it the way npm consumers will
36
+ ```
37
+
38
+ Inside this workspace, `@vespercms/core` resolves to `src/index.ts` through the `@vesper/source` export condition. Published consumers get `dist/`.
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react/jsx-runtime.d.ts","../src/field-model.ts","../src/schema/humanize.ts","../src/schema/walk.ts","../src/files/equal.ts","../src/schema/variants.ts","../src/files/errors.ts","../src/files/frontmatter.ts","../src/files/text.ts","../src/files/patch.ts","../../../node_modules/@types/js-yaml/index.d.ts","../../../node_modules/@types/js-yaml/index.d.mts","../../../node_modules/yaml/dist/parse/line-counter.d.ts","../../../node_modules/yaml/dist/errors.d.ts","../../../node_modules/yaml/dist/doc/applyReviver.d.ts","../../../node_modules/yaml/dist/log.d.ts","../../../node_modules/yaml/dist/nodes/toJS.d.ts","../../../node_modules/yaml/dist/nodes/Scalar.d.ts","../../../node_modules/yaml/dist/stringify/stringify.d.ts","../../../node_modules/yaml/dist/nodes/Collection.d.ts","../../../node_modules/yaml/dist/nodes/YAMLSeq.d.ts","../../../node_modules/yaml/dist/schema/types.d.ts","../../../node_modules/yaml/dist/schema/common/map.d.ts","../../../node_modules/yaml/dist/schema/common/seq.d.ts","../../../node_modules/yaml/dist/schema/common/string.d.ts","../../../node_modules/yaml/dist/stringify/foldFlowLines.d.ts","../../../node_modules/yaml/dist/stringify/stringifyNumber.d.ts","../../../node_modules/yaml/dist/stringify/stringifyString.d.ts","../../../node_modules/yaml/dist/util.d.ts","../../../node_modules/yaml/dist/nodes/YAMLMap.d.ts","../../../node_modules/yaml/dist/nodes/identity.d.ts","../../../node_modules/yaml/dist/schema/Schema.d.ts","../../../node_modules/yaml/dist/doc/createNode.d.ts","../../../node_modules/yaml/dist/nodes/addPairToJSMap.d.ts","../../../node_modules/yaml/dist/nodes/Pair.d.ts","../../../node_modules/yaml/dist/schema/tags.d.ts","../../../node_modules/yaml/dist/options.d.ts","../../../node_modules/yaml/dist/nodes/Node.d.ts","../../../node_modules/yaml/dist/parse/cst-scalar.d.ts","../../../node_modules/yaml/dist/parse/cst-stringify.d.ts","../../../node_modules/yaml/dist/parse/cst-visit.d.ts","../../../node_modules/yaml/dist/parse/cst.d.ts","../../../node_modules/yaml/dist/nodes/Alias.d.ts","../../../node_modules/yaml/dist/doc/Document.d.ts","../../../node_modules/yaml/dist/doc/directives.d.ts","../../../node_modules/yaml/dist/compose/composer.d.ts","../../../node_modules/yaml/dist/parse/lexer.d.ts","../../../node_modules/yaml/dist/parse/parser.d.ts","../../../node_modules/yaml/dist/public-api.d.ts","../../../node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts","../../../node_modules/yaml/dist/schema/yaml-1.1/set.d.ts","../../../node_modules/yaml/dist/visit.d.ts","../../../node_modules/yaml/dist/index.d.ts","../src/files/yaml/read.ts","../src/files/date-offset.ts","../src/files/yaml/style.ts","../src/files/yaml/scalar.ts","../src/files/yaml/write.ts","../../../node_modules/jsonc-parser/lib/umd/main.d.ts","../src/files/json/write.ts","../src/files/entry-file.ts","../src/files/data-file.ts","../src/storage/types.ts","../src/storage/git-blob-sha.ts","../src/storage/paths.ts","../src/storage/validate.ts","../src/storage/memory.ts","../src/widgets/resolve.ts","../../../node_modules/github-slugger/index.d.ts","../../../node_modules/@types/picomatch/lib/constants.d.ts","../../../node_modules/@types/picomatch/lib/parse.d.ts","../../../node_modules/@types/picomatch/lib/scan.d.ts","../../../node_modules/@types/picomatch/lib/picomatch.d.ts","../../../node_modules/@types/picomatch/posix.d.ts","../src/collections/entries.ts","../src/a11y/contrast.ts","../src/a11y/rules.ts","../src/a11y/types.ts","../src/markdoc/types.ts","../src/markdoc/extract.ts","../src/markdoc/fields.ts","../src/images/ratios.ts","../src/urls/pattern.ts","../src/urls/redirects.ts","../src/urls/hosts.ts","../src/manifest/types.ts","../src/search/fields.ts","../src/manifest/hash.ts","../src/manifest/build.ts","../../../node_modules/@markdoc/markdoc/dist/src/ast/function.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/ast/variable.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/tag.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/types.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/ast/node.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/ast/index.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/formatter.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/functions/index.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/schema.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/renderers/html.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/renderers/react/react.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/renderers/react/static.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/renderers/index.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/tags/index.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/tags/conditional.d.ts","../../../node_modules/@types/linkify-it/index.d.ts","../../../node_modules/@types/mdurl/build/index.cjs.d.ts","../../../node_modules/@types/markdown-it/lib/common/utils.d.ts","../../../node_modules/@types/markdown-it/lib/token.d.ts","../../../node_modules/@types/markdown-it/lib/rules_inline/state_inline.d.ts","../../../node_modules/@types/markdown-it/lib/helpers/parse_link_label.d.ts","../../../node_modules/@types/markdown-it/lib/helpers/parse_link_destination.d.ts","../../../node_modules/@types/markdown-it/lib/helpers/parse_link_title.d.ts","../../../node_modules/@types/markdown-it/lib/helpers/index.d.ts","../../../node_modules/@types/markdown-it/lib/ruler.d.ts","../../../node_modules/@types/markdown-it/lib/rules_block/state_block.d.ts","../../../node_modules/@types/markdown-it/lib/parser_block.d.ts","../../../node_modules/@types/markdown-it/lib/rules_core/state_core.d.ts","../../../node_modules/@types/markdown-it/lib/parser_core.d.ts","../../../node_modules/@types/markdown-it/lib/parser_inline.d.ts","../../../node_modules/@types/markdown-it/lib/renderer.d.ts","../../../node_modules/@types/markdown-it/lib/index.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/tokenizer/index.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/transformer.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/transforms/table.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/transforms/index.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/utils.d.ts","../../../node_modules/@markdoc/markdoc/dist/src/validator.d.ts","../../../node_modules/@markdoc/markdoc/dist/index.d.ts","../src/body/types.ts","../src/body/util.ts","../src/body/list-value.ts","../src/body/markdoc-tag.ts","../src/body/table.ts","../src/body/markdoc.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../../../node_modules/micromark-util-types/index.d.ts","../../../node_modules/mdast-util-from-markdown/lib/types.d.ts","../../../node_modules/mdast-util-from-markdown/lib/index.d.ts","../../../node_modules/mdast-util-from-markdown/index.d.ts","../../../node_modules/mdast-util-to-markdown/lib/types.d.ts","../../../node_modules/mdast-util-to-markdown/lib/index.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/blockquote.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/break.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/code.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/definition.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/emphasis.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/heading.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/html.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/image.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/image-reference.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/inline-code.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/link.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/link-reference.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/list.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/list-item.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/paragraph.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/root.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/strong.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/text.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.d.ts","../../../node_modules/mdast-util-to-markdown/lib/handle/index.d.ts","../../../node_modules/mdast-util-to-markdown/index.d.ts","../../../node_modules/mdast-util-gfm-footnote/lib/index.d.ts","../../../node_modules/mdast-util-gfm-footnote/index.d.ts","../../../node_modules/markdown-table/index.d.ts","../../../node_modules/mdast-util-gfm-table/lib/index.d.ts","../../../node_modules/mdast-util-gfm-table/index.d.ts","../../../node_modules/mdast-util-gfm/lib/index.d.ts","../../../node_modules/mdast-util-gfm/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/estree-jsx/index.d.ts","../../../node_modules/@types/hast/index.d.ts","../../../node_modules/mdast-util-mdx-expression/lib/index.d.ts","../../../node_modules/mdast-util-mdx-expression/index.d.ts","../../../node_modules/mdast-util-mdx-jsx/lib/index.d.ts","../../../node_modules/mdast-util-mdx-jsx/index.d.ts","../../../node_modules/mdast-util-mdxjs-esm/lib/index.d.ts","../../../node_modules/mdast-util-mdxjs-esm/index.d.ts","../../../node_modules/mdast-util-mdx/lib/index.d.ts","../../../node_modules/mdast-util-mdx/index.d.ts","../../../node_modules/micromark-extension-gfm-footnote/lib/html.d.ts","../../../node_modules/micromark-extension-gfm-footnote/lib/syntax.d.ts","../../../node_modules/micromark-extension-gfm-footnote/index.d.ts","../../../node_modules/micromark-extension-gfm-strikethrough/lib/html.d.ts","../../../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.d.ts","../../../node_modules/micromark-extension-gfm-strikethrough/index.d.ts","../../../node_modules/micromark-extension-gfm/index.d.ts","../../../node_modules/acorn/dist/acorn.d.mts","../../../node_modules/micromark-util-events-to-acorn/lib/types.d.ts","../../../node_modules/micromark-util-events-to-acorn/lib/index.d.ts","../../../node_modules/micromark-util-events-to-acorn/index.d.ts","../../../node_modules/micromark-extension-mdx-expression/lib/syntax.d.ts","../../../node_modules/micromark-extension-mdx-expression/index.d.ts","../../../node_modules/micromark-extension-mdxjs/index.d.ts","../src/body/mdast.ts","../src/body/blocks.ts","../src/body/table-edit.ts","../src/body/jsx-tag.ts","../src/studio/protocol.ts","../src/body/validate.ts","../src/markdoc/config.ts","../src/studio/media.ts","../src/studio/links.ts","../src/studio/order.ts","../src/schedule/window.ts","../src/schedule/events.ts","../src/studio/service.ts","../src/studio/issues.ts","../src/files/yaml/text.ts","../src/studio/widget.ts","../src/urls/tree.ts","../src/urls/csv.ts","../src/urls/index.ts","../src/studio/pages.ts","../src/images/geometry.ts","../src/images/index.ts","../src/a11y/html.ts","../src/a11y/text.ts","../src/a11y/body.ts","../src/a11y/fields.ts","../src/a11y/entry.ts","../src/a11y/build.ts","../src/a11y/index.ts","../src/schedule/time.ts","../src/schedule/words.ts","../src/search/annotate.ts","../src/storage/github.ts","../src/studio/field-checks.ts","../src/cloud/grants.ts","../src/cloud/dpop.ts","../src/cloud/protocol.ts","../src/cloud/drafts.ts","../src/cloud/client.ts","../src/cloud/index.ts","../src/index.ts","../src/storage/contract.ts","../src/cloud/contract.ts","../src/schedule/index.ts"],"fileIdsList":[[155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,173,187,188,189,190,191,192],[158],[155,156,158,159],[164,165,166],[65,158],[173,186],[189],[155,156,157,159],[173],[236,237],[200],[76],[171],[175,176,177],[174],[176],[170,172,173,178,181,183,184,185],[173,179,180,186],[179,182],[173,174,179,186],[135,136,137],[138],[63,64],[65],[202,203,204,205,249,252,259],[201,202,203,205,240,242,244,249,252,259],[201,202,205,240,242,244,249,252,259],[228,229,233,242],[205,228,230,233,242],[205,228,230,232,242],[201,205,228,230,231,233,240,242,244],[230,233,234],[205,228,230,233,235,242],[201,237,238,239,240,242,244],[200,201,205,228,230,233,237,238,240,241,242,244],[240,242,244,245],[201,237,238,240,242,243,244],[205,228,230,233,242,244],[206,207,227],[201,228,230,233,240,242,244],[201,240,242,244],[208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226],[200,201,240,242,244],[202,205,247,248,252,259],[202,205,249,252,259],[202,205,249,250,251,259],[202,205,236,237,249,252,257,258],[202,205,249,252,254,256,259],[202,205,249,252,255,257,259],[202,205,236,237,249,252,259],[79,102,103,107,109,110],[79,83,86,95,96,97,100,102,103,108,110],[87,97,103,109],[109],[78],[78,79,83,86,87,95,96,97,100,101,102,103,107,108,109,111,112,113,114,115,116,117],[82,83,84,86,95,103,107,109],[96,97,103],[82,83,84,86,95,96,102,107,108,109],[82,84,96,97,98,99,103,107],[82,103,107],[82,83,84,85,94,97,100,103,107],[82,83,84,85,97,98,100,103,107],[82,95,100],[83,86,95,100,103,108,109],[103,109],[78,80,81,83,87,97,100,101,103,110],[79,83,103,107],[107],[104,105,106],[80,102,103,109,111],[87,96,100,102],[87],[87,102],[83,84,86,95,97,98,102,103],[82,86,87,94,95,97],[82,83,84,87,94,95,97,100],[102,108,109],[83],[83,84],[81,82,84,88,89,90,91,92,93,95,98,100],[66,74,142,143,144,194,199,201,240,242,244,261,283,284],[66,142],[66],[66,143,151,194,285,286],[66,67,71,141,142,143,284,285],[66,141,142,143,283,284,285,286,287,288],[66,74,194,199,261],[66,196,201,240,242,244,261],[66,193,196],[66,74,193,194,195,197,198],[66,194,195,198,201,205,233,235,240,242,244,246,253,260],[66,74,194,195,262],[66,194],[66,67,68,144,193,194,199,261,264,265],[66,296,297],[66,129,295,296,297,299,302],[66,128,129,130,131,297],[66,128,139,151,280],[66,295,296,297,298,299],[66,128,293,295,296],[66,134,139],[66,70,72,74,119,123,125,126],[66,70,72,73,74,119,123],[66,70,72,74,75,124],[66,70],[66,70,77,118],[66,70,118,119,120,121],[66,118],[66,70,118,119],[66,70,72,74,75,118,119,121,122],[66,147,281],[66,67,68,69,70,71,72,73,74,75,119,120,123,125,126,127,128,129,130,131,132,133,140,144,145,146,151,152,153,154,194,197,198,199,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,279,280,282,289,290,291,292,293,294,300],[66,67,68,69,71,127,133,140,141,142,143,144,145,146,147,148,150,151,152,153],[66,67,143,144,148,150],[66,144,193],[66,67,68,144],[66,67,68,69,144],[66,67],[66,70,151,271],[66,271,272,290,291],[66,120],[66,70,151],[66,70,151,271,290],[66,67,70],[66,67,68],[66,67,70,151,271,273],[66,67,70,151],[66,128,129],[66,128,129,130,131],[66,128,130],[66,67,70,71,265],[66,265],[66,67,70,71,148,194,197,201,240,242,244,261,264,268],[66,128,129,130,265,273],[66,70,72,74,119,121,122,123,126,127,128,129,140,148,149,150,151,194,265,269,271,273,277],[66,70,120,266],[66,70,72,73,74,119,123,126,127,128,129,134,140,148,151,153,265,266,268,269,270,271,272],[66,148,149],[66,148,149,150,277,278],[66,148]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"045c1b395851aa71ef76393398466330fe1eeebc113c8085eefc6d84abea3a88","impliedFormat":1},{"version":"b838d4c72740eb0afd284bf7575b74c624b105eff2e8c7b4aeead57e7ac320ff","impliedFormat":1},{"version":"e7bca2f2556444375b684c96bb47a5ddc14a122590de2c685498126d31b12e45","signature":"cf3bd6b48f58c212affc9a9bafcb8483ff1e0e6e4a64d3dcd09932badcd3dcc0","impliedFormat":99},{"version":"9425fb1f1c12a87e7bf84fbe6bcc39f2b6d73373ae0a5226b30f6dbb4456b38d","signature":"ff8eb98d14adb014a46e47838a4b52177906054bed69e91d29d2b1dfa652364c","impliedFormat":99},{"version":"eb099ffe266581b308e5b61d18f0cfca2d6f7b86f6c0973935902db2e92457d5","signature":"84739a361a52a28afad29b3d842e977c76ef0610a82ff39df1946247e7984d20","impliedFormat":99},{"version":"ee6aa1c4a19e6a7b63d1a75e14ae64cda7796a91b22aedfc48b633f6c5ced300","signature":"332832b6387305fabedb65661a3681555d694364f225fc9252820f0c8e02a675","impliedFormat":99},{"version":"eb05cb4b185ab61573041f721f1c50eceafb0fb50dc400a8061a5496f32776e8","signature":"f7286160219e37f0054eafc418307b7109fc5e1ee1619d269c87a67d4e525bac","impliedFormat":99},{"version":"3f93809b19fb354db098d6bfda2e409ee128b4c07e5385b7c4c16a86c1017730","signature":"4f76fda7da91aedc4ec6670218403ba7dccb3f33798fc813088808669847b1bd","impliedFormat":99},{"version":"114c41b041751c9ae3b5aa68ec6938c46fd078924ce737614d642e44e2f0cfb9","signature":"825f576f9cb32a49a2f824b0251e087fd902132ef2964192a1cd672631340a01","impliedFormat":99},{"version":"0da165ddde111c3a98ad0bac95c5a33c6515f78562f48a038134f1ec6084eda7","signature":"c2e0bb2774c0486d6bff6791d16915eac7a869cb012737741be716efd26605de","impliedFormat":99},{"version":"32e9e6636a5046b7d8161ef11812fccf92fbb008b07e73517c2496b4425acce1","signature":"873f408078cba1cc75bbd55e6bc2d5f10824325eb9c926646ae29e0721c961d1","impliedFormat":99},{"version":"7a1dd1e9c8bf5e23129495b10718b280340c7500570e0cfe5cffcdee51e13e48","impliedFormat":1},{"version":"95bf7c19205d7a4c92f1699dae58e217bb18f324276dfe06b1c2e312c7c75cf2","impliedFormat":99},{"version":"3dfcd0a3bfa70b53135db3cf2e4ddcb7eccc3e4418ce833ae24eecd06928328f","impliedFormat":1},{"version":"bea7cae6a8b2d41fd1a9d70475b54d741dd7ca2103904934858108eec0336a69","impliedFormat":1},{"version":"bc41a8e33caf4d193b0c49ec70d1e8db5ce3312eafe5447c6c1d5a2084fece12","impliedFormat":1},{"version":"7c33f11a56ba4e79efc4ddae85f8a4a888e216d2bf66c863f344d403437ffc74","impliedFormat":1},{"version":"cbef1abd1f8987dee5c9ed8c768a880fbfbff7f7053e063403090f48335c8e4e","impliedFormat":1},{"version":"afb5e9a110ff72b60783e0fe65ce1a28adbe6ab5f30d2dc31e2fb099e0f86de4","impliedFormat":1},{"version":"0132f67b7f128d4a47324f48d0918ec73cf4220a5e9ea8bd92b115397911254f","impliedFormat":1},{"version":"06b37153d512000a91cad6fcbae75ca795ecec00469effaa8916101a00d5b9e2","impliedFormat":1},{"version":"8a641e3402f2988bf993007bd814faba348b813fc4058fce5b06de3e81ed511a","impliedFormat":1},{"version":"281744305ba2dcb2d80e2021fae211b1b07e5d85cfc8e36f4520325fcf698dbb","impliedFormat":1},{"version":"e1b042779d17b69719d34f31822ddba8aa6f5eb15f221b02105785f4447e7f5b","impliedFormat":1},{"version":"6858337936b90bd31f1674c43bedda2edbab2a488d04adc02512aef47c792fd0","impliedFormat":1},{"version":"15cb3deecc635efb26133990f521f7f1cc95665d5db8d87e5056beaea564b0ce","impliedFormat":1},{"version":"e27605c8932e75b14e742558a4c3101d9f4fdd32e7e9a056b2ca83f37f973945","impliedFormat":1},{"version":"f0443725119ecde74b0d75c82555b1f95ee1c3cd371558e5528a83d1de8109de","impliedFormat":1},{"version":"7794810c4b3f03d2faa81189504b953a73eb80e5662a90e9030ea9a9a359a66f","impliedFormat":1},{"version":"b074516a691a30279f0fe6dff33cd76359c1daacf4ae024659e44a68756de602","impliedFormat":1},{"version":"57cbeb55ec95326d068a2ce33403e1b795f2113487f07c1f53b1eaf9c21ff2ce","impliedFormat":1},{"version":"a00362ee43d422bcd8239110b8b5da39f1122651a1809be83a518b1298fa6af8","impliedFormat":1},{"version":"a820499a28a5fcdbf4baec05cc069362041d735520ab5a94c38cc44db7df614c","impliedFormat":1},{"version":"33a6d7b07c85ac0cef9a021b78b52e2d901d2ebfd5458db68f229ca482c1910c","impliedFormat":1},{"version":"8f648847b52020c1c0cdfcc40d7bcab72ea470201a631004fde4d85ccbc0c4c7","impliedFormat":1},{"version":"7821d3b702e0c672329c4d036c7037ecf2e5e758eceb5e740dde1355606dc9f2","impliedFormat":1},{"version":"213e4f26ee5853e8ba314ecad3a73cd06ab244a0809749bb777cbc1619aa07d8","impliedFormat":1},{"version":"1720be851bdb7cdbff68061522a71d9ddaa69db1fe90c6819a26953da05942f2","impliedFormat":1},{"version":"961fa18e1658f3f8e38c23e1a9bc3f4d7be75b056a94700291d5f82f57524ff0","impliedFormat":1},{"version":"079c02dc397960da2786db71d7c9e716475377bcedd81dede034f8a9f94c71b8","impliedFormat":1},{"version":"a7595cbb1b354b54dff14a6bb87d471e6d53b63de101a1b4d9d82d3d3f6eddec","impliedFormat":1},{"version":"1f49a85a97e01a26245fd74232b3b301ebe408fb4e969e72e537aa6ffbd3fe14","impliedFormat":1},{"version":"9c38563e4eabfffa597c4d6b9aa16e11e7f9a636f0dd80dd0a8bce1f6f0b2108","impliedFormat":1},{"version":"a971cba9f67e1c87014a2a544c24bc58bad1983970dfa66051b42ae441da1f46","impliedFormat":1},{"version":"df9b266bceb94167c2e8ae25db37d31a28de02ae89ff58e8174708afdec26738","impliedFormat":1},{"version":"9e5b8137b7ee679d31b35221503282561e764116d8b007c5419b6f9d60765683","impliedFormat":1},{"version":"3e7ae921a43416e155d7bbe5b4229b7686cfa6a20af0a3ae5a79dfe127355c21","impliedFormat":1},{"version":"c7200ae85e414d5ed1d3c9507ae38c097050161f57eb1a70bef021d796af87a7","impliedFormat":1},{"version":"4edb4ff36b17b2cf19014b2c901a6bdcdd0d8f732bcf3a11aa6fd0a111198e27","impliedFormat":1},{"version":"810f0d14ce416a343dcdd0d3074c38c094505e664c90636b113d048471c292e2","impliedFormat":1},{"version":"9c37dc73c97cd17686edc94cc534486509e479a1b8809ef783067b7dde5c6713","impliedFormat":1},{"version":"5fe2ef29b33889d3279d5bc92f8e554ffd32145a02f48d272d30fc1eea8b4c89","impliedFormat":1},{"version":"e39090ffe9c45c59082c3746e2aa2546dc53e3c5eeb4ad83f8210be7e2e58022","impliedFormat":1},{"version":"9f85a1810d42f75e1abb4fc94be585aae1fdac8ae752c76b912d95aef61bf5de","impliedFormat":1},{"version":"603f03737c50ef0730eba9dcfa3087bbaa385d5f7542260fc33efc03994cfdcd","signature":"ea7668c62b1f21086674c0ac136c24c30bb9e662c482adcb3c6cbcf51ae7b58c","impliedFormat":99},{"version":"1b2ee0bc400a6249432bcb119798d14348e14cb93c9fd917c8481bdfad6b35fb","signature":"e8a9ee058c30c1e9d247773639c319ec64c98423b2335eee4ecbb7c18306e027","impliedFormat":99},{"version":"4fcaa7404c0bcdb43bc23184451c7dac60d55c78caa6ca653b0b36167a99f7af","signature":"0dd833c6e8cd8c8fc4ae8d118202b15b7c4df14d9c1203496325743706553b21","impliedFormat":99},{"version":"e42c6f97069b8b1b57586a99494e7ed14371c35d7d1fa508d682be244a314d43","signature":"3ad6547ac0118e65c27a7cbd4cadf87ea2683e26ded4225cf97a2853c5b9a83c","impliedFormat":99},{"version":"443ea7254e56163369aeecb61493cfde6e82802441394c0aa0e76dca939ce199","signature":"bbe355c1ba0560f244e241bc66873703c40f06fc976357a5ffe346d87a4204cc","impliedFormat":99},{"version":"f1d603af05e59e26aae3d9fa7bb0138e744bfbfc9f4793ddeaabe5c85da1d30f","impliedFormat":1},{"version":"7c671a7a3a3eb4ff8cb135b407e5804036cc3e16a3ac2491890b989654d78a1f","signature":"5b5a3f2a04ce0af3f23f69ee9a1821f9ce0652ecb8972ecc8a10add75bac77f8","impliedFormat":99},{"version":"f986fe73e8b7aaf3c0e781e4d4899c7f6dc9ca5dde51f082d4750d1b9db56a5c","signature":"af6ad35a27e42513ab0d30a5f9d9a3a4c70487267c348e789b0788dabdf5228c","impliedFormat":99},{"version":"9e35824e1501d8a8e49839b66daad680cf75f03397a3fd8417bca1ac5ab1ffe9","signature":"05563ab140873007a6418e6b54e73296f8c303be1757c57494582f5207225397","impliedFormat":99},{"version":"743c9ae7edeb61078e0efe63a6a4e5d234af9c388643d07d02a31d76dfc4e55c","signature":"b155511fc0c84c6f51e157cc83a3644448f1190b9a760ae05c36b49bf368c34e","impliedFormat":99},{"version":"c5a201b238a704722865d640303e857c750eea302665e2ecacd947ba9d912be0","signature":"537c0c2bac25a8de7b36c1ad656dbd47d36779494f029baffd746e7954e498bf","impliedFormat":99},{"version":"e3b068f89be862c0132816392b4a9ee39ff4728adddb918aa92e6ad3c0c1f6f3","signature":"5d2169375e80936fc44812b3bcabd81ef20ea4c96f9912599eba450abf243abe","impliedFormat":99},{"version":"8472bf62e230719018fc051d100a3eb1f880bd90296c2d8674579dcdf780a9ce","signature":"f43128305db88e5435e83dabd827b729dd0dcafb88dca15fe6bae29dfe1952fc","impliedFormat":99},{"version":"5e4dd26021ac5f37ff6d2dc085564778a4eef5e25d3a09ded55ade1d5c7974d2","signature":"c879babaf6de25f8021314dd578e74244467bce046d4adf714a03cf5fef5acf3","impliedFormat":99},{"version":"00fccd8f8aa163ff70df6f3aa0953da0300fc3f4ca7e4a6704cd672d0f8b358a","signature":"d15c20646060334b3009d5a74b8471440d01d0ceb00d39e15da2503ba0602a4a","impliedFormat":99},{"version":"1ac0f0d4aa1197aded0e7a41a08d2e687e7db61c967a2fad216b736f18a740fa","impliedFormat":99},{"version":"ff9590ea90db4a3c6d194f50582160b52ef78f83a93145a3d9d25541b03bccad","impliedFormat":1},{"version":"b90c23a457c16f77a282531a5caba5c911d2252eb097f3193a8ee2df6a3f21a2","impliedFormat":1},{"version":"18a78c980596d0c645668abcdeb14ea32b119f5535f0cb6ee28e7e16b61844e5","impliedFormat":1},{"version":"a33c23c5bdaf7d41b84f02e08ad7cf750a0769c90b1d44cc38d9539b597369f3","impliedFormat":1},{"version":"d5be608b445099a10fdacb72200005012ac87982a1802eea12df7ac3c632f705","impliedFormat":1},{"version":"b9d784aa821b7d26281f3ea6cc2e222a43928b264820d642232de08f6ba7dfbf","signature":"407f140cc360cae12aa0a1e0f8902a03d16dfc6c470ae7151b4c7e024c277653","impliedFormat":99},{"version":"285418edf1be90061016d15b3cb46b2c00d26162a80a67c1b916a5c021fac91b","signature":"ef734e8ad719e2d7fdb0a1e85d179fac45b5af02ad2f988a946ab1039c051715","impliedFormat":99},{"version":"bb1e71bb171aa0a5e36bac89fca9822c459922285e378ac2d75777d8f3e98a78","signature":"3e23f7a26ea55e46251b119ba8b98550b0625a706486acb76de24ba812eff737","impliedFormat":99},{"version":"53f42758c56387a363edc7de830bd5432f5e35d23abc6e551d0c75483908370c","signature":"140134dc4ac55a417c7ed72f40a87f413466a58b900c48f5ebe45d9805851ba1","impliedFormat":99},{"version":"b27bdcdf6cad84a7528fe7dcf8588e9f8231e07472619b6c1d13e2bd57e14f29","signature":"0b53dbc3ba4719f3de776535ba5fe924fa310eb0ed7389155ad2e522be207cb6","impliedFormat":99},{"version":"5fb55b9c93037942e1c3bd64c979df14a497016546f09c9c1701646ea1a29a8c","signature":"060a769407d2fa6f8b7d0d45423e3b5242ac1d4dfcbb91b8fe3200178bdcd01f","impliedFormat":99},{"version":"95f4e2874cd3b8a8b4952e020f4d620ea4a8e43fe643203032bb9310aa78a53e","signature":"6d388443f58a3c1f8dfca8b33a88418712927393f59e8405c0dbacb796a30669","impliedFormat":99},{"version":"f310ad8c3b89e19dcf9f6efb7c209a83e8d614757911118d46d41ce0b1990c9f","signature":"1cbdece5d161c11ddeff87293bf6c992eb34ab888e887e69bfb52f77a3581895","impliedFormat":99},{"version":"d7ef27f6a831fa42f52518df1735938ce8edd16807bca016905944f27082395c","signature":"337e27bcdccac8ab638da0eee575afd516ef0759df39111bdcc41d2bf4c1e034","impliedFormat":99},{"version":"23d39e75856b60187a7678fbb1d4cc8deef194e5e02c71586d30e578fa86bb9b","signature":"78e48b57407275c59003d5f7808ec8e1a95208083a6beb610962af7c8cf11b95","impliedFormat":99},{"version":"12a9e07a3f4be619a7f4e45e9f6f1bd62b5c2192cf1167d41efb37a8f284afcd","signature":"97f56b0927a854783162352e7b5d499d587e2c3461999af31e118ccf8296cbd6","impliedFormat":99},{"version":"097a4ca78ef7b8689e6feecb008ec696540057a4077242a805f144f91f5a921c","signature":"0ee8f816f5852c2c98c86cabc63a486a760b73d2dec4d218bc58ea36cbd6fe04","impliedFormat":99},{"version":"d7475a6a22c2c41a1416e75973fbde5eb9b9fdd2b66c5d5bb2dabdd97993d52b","signature":"1d49b41d695e7c75db725a634ea1197a49e109414ef28f4261c78d4c9343f25a","impliedFormat":99},{"version":"782c3c6b94bbc8c14a44a715e4d8097d6a4eeea72b1f4d9a88b94388e4b9cd52","signature":"e5c7e46fdb7027af83b5376e926a141cd5b11f37fbd510c5bec40a42ff8441ad","impliedFormat":99},{"version":"0dc7c7d2ffdb38c3f49d132547f6b733ed2304dcf89add6990a4370397cfd647","signature":"149f1b876d39e69fb658717e1cabbc78ef12177e6cd1a34a7d3cdf24279527ac","impliedFormat":99},{"version":"915c31993384f691bebb0405eefa10476664fa811894e5bbb7d4009ff9e74f04","impliedFormat":1},{"version":"f06978bfac1bc37af09033ce782a5c6e4ee70d59bcd0b34b3f8b18d6c52eed39","impliedFormat":1},{"version":"7dc99a3d4499cf7d1df28eee080a22d62fbddc75deebd4eb36f3250887d21878","impliedFormat":1},{"version":"491cba45b344f5fed5ac80c2397c21cd714d9e051c369d97c0f8ea2136c6b538","impliedFormat":1},{"version":"3e82bd3eabc219602229f16dbeb8e7ae3cfaf8a2187351566c13066d9f577292","impliedFormat":1},{"version":"e22722ec54777587f4c91f1e05160ebf63ab78fd7f9fc6f9e829dd0458441ae5","impliedFormat":1},{"version":"ab44933044d43ff7c4af0392b5a2c25907de260e90ab999335685d48c4bd43be","impliedFormat":1},{"version":"494c2a2e56846fd5c9b5d68e1645c45169e4bfa3036749b9462fdbcb1401341d","impliedFormat":1},{"version":"7fd130b62d91b7a358a7b67a6c6c730e6f23902fe9abcb8600e66e3da6640585","impliedFormat":1},{"version":"723eea5d7e2132657a69c36c4b2ab54cd03de20fa78f1b71f4e442b7139b0602","impliedFormat":1},{"version":"14f50f0e37dc4514537be451e385c1d35513e87f327698ead99e60e47985ebfb","impliedFormat":1},{"version":"204980bbcd0db5795a8055625e28f6beb1b3bb0f46950792dc8e6d16f47e78ba","impliedFormat":1},{"version":"a2b9008f8bc46841b98f330c09cb3ad5a817bd19ce3d99bbc19b6ab081228f7e","impliedFormat":1},{"version":"55aed69c833402a0c74b32eb0e5a920bebd772daf46ddcccfffff0b0823725b5","impliedFormat":1},{"version":"cba3185a149cb49b0d4a5ceae1b7f8b34c322f4b0913ac299bcbf2ab19114a93","impliedFormat":1},{"version":"d58289beaadf0380170b0063569e1a01c60ee6b8f2dc3cccfff4fd965154d555","impliedFormat":1},{"version":"0944f27ebff4b20646b71e7e3faaaae50a6debd40bc63e225de1320dd15c5795","impliedFormat":1},{"version":"0f9e381eecc5860f693c31fe463b3ca20a64ca9b8db0cf6208cd4a053f064809","impliedFormat":1},{"version":"95902d5561c6aac5dfc40568a12b0aca324037749dcd32a81f23423bfde69bab","impliedFormat":1},{"version":"5dfb2aca4136abdc5a2740f14be8134a6e6b66fd53470bb2e954e40f8abfaf3e","impliedFormat":1},{"version":"577463167dd69bd81f76697dfc3f7b22b77a6152f60a602a9218e52e3183ad67","impliedFormat":1},{"version":"b8396e9024d554b611cbe31a024b176ba7116063d19354b5a02dccd8f0118989","impliedFormat":1},{"version":"4b28e1c5bf88d891e07a1403358b81a51b3ba2eae1ffada51cca7476b5ac6407","impliedFormat":1},{"version":"7150ad575d28bf98fae321a1c0f10ad17b127927811f488ded6ff1d88d4244e5","impliedFormat":1},{"version":"8b155c4757d197969553de3762c8d23d5866710301de41e1b66b97c9ed867003","impliedFormat":1},{"version":"93733466609dd8bf72eace502a24ca7574bd073d934216e628f1b615c8d3cb3c","impliedFormat":1},{"version":"45e9228761aabcadb79c82fb3008523db334491525bdb8e74e0f26eaf7a4f7f4","impliedFormat":1},{"version":"aeacac2778c9821512b6b889da79ac31606a863610c8f28da1e483579627bf90","impliedFormat":1},{"version":"569fdb354062fc098a6a3ba93a029edf22d6fe480cf72b231b3c07832b2e7c97","impliedFormat":1},{"version":"bf9876e62fb7f4237deafab8c7444770ef6e82b4cad2d5dc768664ff340feeb2","impliedFormat":1},{"version":"6cf60e76d37faf0fbc2f80a873eab0fd545f6b1bf300e7f0823f956ddb3083e9","impliedFormat":1},{"version":"6adaa6103086f931e3eee20f0987e86e8879e9d13aa6bd6075ccfc58b9c5681c","impliedFormat":1},{"version":"26ff9dad442d4cd1db165e8fc131876c4ff53c12189bd21569352423751391dc","impliedFormat":1},{"version":"14556916da67af869bbdfe816698047e094f1f316fb92b6b706270fcf24cfa18","impliedFormat":1},{"version":"62aae001b6e0777a4aea22c30af9c3f15742375aa73276a85eb0e2b0642ae237","impliedFormat":1},{"version":"e4b8cfc838abbc5772040f7d1d653633435c89f7394d8ab4faeda274ef4861b6","impliedFormat":1},{"version":"a124e7f5ba860938200fda14fcbd6f6e9adbbcb940b976a01f1359dbe0b5323b","impliedFormat":1},{"version":"8fc16f4cf593be887d92b0e8fa252790409fa2fb8ab2a707750e5a26a96dc045","impliedFormat":1},{"version":"d4638ef60b5f2e2fd6b14bed38cdec1d00af53528b9b0c9ff8d9366535f2aeb6","impliedFormat":1},{"version":"12939477bd3d5814fed1e742ef0c16390f295cd011a7a7b687f4c4e26f6f02e3","signature":"be4e35dfc1e9269073e79133ae4e903067bd9d37fca8d444feb4a7342408b1f8","impliedFormat":99},{"version":"b8ce3e4376d735781d13315fb244be5c394e303fdec05e0a7300ed253b152b52","signature":"ccbd8b21b7032441cd2810f86582543fe1870cbb04409e7c75351dbabc024ae7","impliedFormat":99},{"version":"6c6aaeed358c96bb0ed4879db56fb22cd5d8b7744377b3079da65883ad52e587","signature":"90753a57b482cb497fa920daf354c40ad87e3b2ac0e13140b01b669dc0e1d2fa","impliedFormat":99},{"version":"508454a633be6c8a83782698e34f22f0bf157e6ee01f2627628c6af99c328ef0","signature":"0a1e41d72e9e35a5200bcfeb3cff3632e33d96294b03ac0f683c5b77befc94fd","impliedFormat":99},{"version":"a2f982455ce84acb0a5c3dea77ab020055a68d95e65489a195b70b1c4887d6ad","signature":"8ddfb82ee6a02ab536a79622aa6808c9e424fc877c62ebfb3a31195d16ec1b95","impliedFormat":99},{"version":"d66202d1df42b38d0ff046b1c1cb66056ec1cec25cfa61944ccbd1344e6640d4","signature":"77ee9f245ce44fdfd00aab0e789e45171348fc9a8572eb9cd0f67e06a4a7dcb0","impliedFormat":99},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","impliedFormat":1},{"version":"c1478970fa583a46e3a7641f23ef2bc005b72bb3f2ff1053ff6aa2a56b573dc7","impliedFormat":99},{"version":"6d2a12a0ebbf328bcdf3e94867f40bf385e3aa9147ae1e81a4803a216555e987","impliedFormat":99},{"version":"f8eb2909590ec619643841ead2fc4b4b183fbd859848ef051295d35fef9d8469","impliedFormat":99},{"version":"fe784567dd721417e2c4c7c1d7306f4b8611a4f232f5b7ce734382cf34b417d2","impliedFormat":99},{"version":"6ac31bd75989765d641f5c089dbedb9801d9693cc9a75e67136c58b8fb7ab051","impliedFormat":99},{"version":"cd40919f70c875ca07ecc5431cc740e366c008bcbe08ba14b8c78353fb4680df","impliedFormat":99},{"version":"e92cdf33df3d74e1216cbc56401f199ce28d33f5c4b1db733bab985da97edcbd","impliedFormat":99},{"version":"f1072babb8a65b8f87867fa3c539748295db64069fdf7ab85970296b6abd20ee","impliedFormat":99},{"version":"3ef21989a92abf5712acde843e9b8f5e02e3f2d193a761f4a03fdd11b6ee94b9","impliedFormat":99},{"version":"2a0d68607313f4b31153945884fe4d9435d27f87a064349e0c032e01c2eb0e3a","impliedFormat":99},{"version":"1a9ce931712a2499743bad5057edb24e813cefec0925596a77a6c51ea1759ceb","impliedFormat":99},{"version":"8d9367b373782f6903c4100e926919b67b440d557691908d8fca7e0423331c55","impliedFormat":99},{"version":"a708b58647a4f072b2aa9b45fb20d6627d9323160eb568b7c29316be6cf4a127","impliedFormat":99},{"version":"80adee5b8dda752c1b4fee074d3de3568d6b4a0e74754330c6acc7226f096d8d","impliedFormat":99},{"version":"dbb078fed2a92605016e60e49ba914e7d73b5843fb139f562767cb53a8ad1256","impliedFormat":99},{"version":"e861fa48edf8b13c7f3711b5a6899b24506055110b97a8d7da059a9c1c54814f","impliedFormat":99},{"version":"f4a5f5c297fd2b43b141a1aeba6d486cc7e8f7e818468ebcaf01591c4a1edad3","impliedFormat":99},{"version":"5c21912a2860da7217c097eba84458e310934ac9f1213e31bbedd41ca2f2df82","impliedFormat":99},{"version":"7f382329cfd80376af7277b95faf78d030e1642a5837a4b24837f4e1260637ac","impliedFormat":99},{"version":"17218b3f6f91ccd4c5889003646ad978f6680f6e8acbf49499d5e0cb425a05bd","impliedFormat":99},{"version":"cc6ff3929a72ceb3a86eb80a393accaa5dd740c8525f06038fb706864259b3a3","impliedFormat":99},{"version":"75e498cc726dfb097ab0755360fb24aa15e5efbb69646dff13d805ad79eba2c2","impliedFormat":99},{"version":"bb8cd1d0a4be5bb97cbecec78d88b9e898a75389f4eb45416bcbd0189ac897ce","impliedFormat":99},{"version":"06c491046c80f14782bde70b7d50e755f6607665b823ac866f38c380d8e102a7","impliedFormat":99},{"version":"d04f5c028c2f2985d2dfdfc35d88def7e227a732247b2f2865f8c4328ebb20a1","impliedFormat":99},{"version":"e41be8943835ad083a4f8a558bd2a89b7fe39619ed99f1880187c75e231d033e","impliedFormat":99},{"version":"4b4e0425d5c5121a15c082355f04bd5248733eed0b8a99ef05e10dc59f636944","impliedFormat":99},{"version":"413d50bc66826f899c842524e5f50f42d45c8cb3b26fd478a62f26ac8da3d90e","impliedFormat":99},{"version":"d9083e10a491b6f8291c7265555ba0e9d599d1f76282812c399ab7639019f365","impliedFormat":99},{"version":"09de774ebab62974edad71cb3c7c6fa786a3fda2644e6473392bd4b600a9c79c","impliedFormat":99},{"version":"e8bcc823792be321f581fcdd8d0f2639d417894e67604d884c38b699284a1a2a","impliedFormat":99},{"version":"7c99839c518dcf5ab8a741a97c190f0703c0a71e30c6d44f0b7921b0deec9f67","impliedFormat":99},{"version":"44c14e4da99cd71f9fe4e415756585cec74b9e7dc47478a837d5bedfb7db1e04","impliedFormat":99},{"version":"1f46ee2b76d9ae1159deb43d14279d04bcebcb9b75de4012b14b1f7486e36f82","impliedFormat":99},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"5d08a179b846f5ee674624b349ebebe2121c455e3a265dc93da4e8d9e89722b4","impliedFormat":1},{"version":"347a238c5800881e93ca9d17bece9f7eaf61b000dd1575b67264cb4ececc10b6","impliedFormat":1},{"version":"a3d5be0365b28b3281541d39d9db08d30b88de49576ddfbbb5d086155017b283","impliedFormat":99},{"version":"985d310b29f50ce5d4b4666cf2e5a06e841f3e37d1d507bd14186c78649aa3dd","impliedFormat":99},{"version":"5c6b3840cbc84f6f60abfc5c58c3b67b7296b5ebe26fd370710cfc89bbe3a5f1","impliedFormat":99},{"version":"91ef552cc29ec57d616e95d73ee09765198c710fa34e20b25cb9f9cf502821f1","impliedFormat":99},{"version":"1ab840e4672a64e3c705a9163142e2b79b898db88b3c18400e37dbe88a58fa60","impliedFormat":99},{"version":"48516730c1cf1b72cac2da04481983cfe61359101d8563314457ecb059b102a9","impliedFormat":99},{"version":"03f346d97547a4fe35c939c3d34af22827b845e4e23f05913706f21144cec349","impliedFormat":99},{"version":"7e864f3e2d8573eac961e3fc9b29be100feec58b48d0e7ca5c5ba58514f74e04","impliedFormat":99},{"version":"e87873f06fa094e76ac439c7756b264f3c76a41deb8bc7d39c1d30e0f03ef547","impliedFormat":99},{"version":"488861dc4f870c77c2f2f72c1f27a63fa2e81106f308e3fc345581938928f925","impliedFormat":99},{"version":"eff73acfacda1d3e62bb3cb5bc7200bb0257ea0c8857ce45b3fee5bfec38ad12","impliedFormat":99},{"version":"aff4ac6e11917a051b91edbb9a18735fe56bcfd8b1802ea9dbfb394ad8f6ce8e","impliedFormat":99},{"version":"1f68aed2648740ac69c6634c112fcaae4252fbae11379d6eabee09c0fbf00286","impliedFormat":99},{"version":"5e7c2eff249b4a86fb31e6b15e4353c3ddd5c8aefc253f4c3e4d9caeb4a739d4","impliedFormat":99},{"version":"14c8d1819e24a0ccb0aa64f85c61a6436c403eaf44c0e733cdaf1780fed5ec9f","impliedFormat":99},{"version":"df8107deaf41869871690db7306f87b587e59660d659b1fbb64a7a30cea7cf36","impliedFormat":99},{"version":"a80bb0a0144be8a9b919553eb9056a7e6bd5337feb277092e7df1688228883f5","impliedFormat":99},{"version":"bb32daa75d0536e4d4661255d46c1e8c3923a1bd58e51e6e27247b90ad480f8c","impliedFormat":99},{"version":"cc47f0e545e33a5edd4b7eaf0b5e9d9ac462ae461ad8173606dac303fbc91036","impliedFormat":99},{"version":"81a253b65f88bae00e03ef8e5c5ee3137112fa1b36ba135e0f9e6b230a41fb32","impliedFormat":99},{"version":"f7e016050175200cd383021454023ea2790b5ab6080452daeb5c854d349a1e99","impliedFormat":99},{"version":"dc91571f6ec589de62e6be4c78f926cfa410352069fc65a4a1718e8b835b788c","impliedFormat":99},{"version":"0b7c7a47ec8e435bed45ca05ff34b0830d52ad0440ffd98f0e6e8399702cbfeb","signature":"fd56b669ac00c23596cdc0ad8251f1e5a2ef681464d3d8175347e79083f06f80","impliedFormat":99},{"version":"f6cdfc0e32f712783b7f82313435414f55e71a5e0608dbfe82ca9a80946f5ec0","signature":"0324f18ad117f2a613559735c45c873418a18ea360642e5e7a9e2849046e38e4","impliedFormat":99},{"version":"def6d71f7f7ce8c97a5763b62ce5b4885c0a90f9691072cc3dc9fca1a55da299","signature":"ea2cafb1e0ab507e0ebb2ee70bb178661490e34163b9aff7ce751b44883b183c","impliedFormat":99},{"version":"690ada212b8c98f3fb92b4866f26dde41a69daac1bebaac1ddbb37c46cfbaf7e","signature":"e8ac48afcd25810e5a69022e64f7d25ff5614966c3e5ff214f2848edd734d5ed","impliedFormat":99},{"version":"37f152083aedbdd1c3611381a69630ccf7ec733fdbb12f98e8c3b6f530e7918a","signature":"52cf351ac013995a3e54aa5db184c018ac4ed2793d48f84e8462b3b8989faaae","impliedFormat":99},{"version":"54c8b9e05a13a3ed0e1791073420d58f552789879f646f7d6711c92e37cf59f4","signature":"b200f369026e97a7a493d1a5fda43a6242f6d2bad95cd10b9e86bd05a3c86a13","impliedFormat":99},{"version":"a3616fff04227dbd75ac8d56f3c27b4b33b4b0c82e42c30d4749c909aab461cb","signature":"7403b6ffa0892f3606bda58700a53650812a1354d494bb8f2158e2d09a7ab011","impliedFormat":99},{"version":"62c134e1082452d9b4bbc14f6a99892d17d97352e1103f72d43d14a07deb38fc","signature":"99c3970409190ef6e2280af58e6951a341d50c03329904c5512ca6f3a07f6796","impliedFormat":99},{"version":"f1259a46dea6ef51795dc20d95a921815133dc019612ca51498439c680c5dd85","signature":"84e711de74a288816a28f5d4b0a4cda995133a3a6731d30a5837b60b28a6e08a","impliedFormat":99},{"version":"bfe9776c9d3233d0bec45e88c23fa00b74b8969e4f92cdef71f1f84e0fe00684","signature":"a289f2605484a7a30c400e2d264b4b8bf709c63896837be6267e5d8c8530569d","impliedFormat":99},{"version":"031a710380bd72d35cb8a1f36ef0c7dad5e363c1fa21253cc4e1b7f92ec74d49","signature":"88ef13058bdae2a49c7b13a9a33c08e88ef68f05167cef30937f1e9eef20e0b3","impliedFormat":99},{"version":"085298b3bda8aeed2f9fd6caae4c2ab24e32985bc72e7846158f6f1e52d87e52","signature":"b50bc653d9cddeea4a49a04f0385180ea5d918dab7d787b99fd2c46530ad2739","impliedFormat":99},{"version":"eae5c3af5847203ee8f0fbc0659b0463ebd0d76fc7b2ae2b5cfbdbe38728d300","signature":"590ff9b49aef44bb2a05312e35ec862d837bfc3e0e2b993e54bab7d779a16c34","impliedFormat":99},{"version":"d42dd69507be26df4b715a74aa1e01b3c2f127ad34be361171d006ca8f82a1f6","signature":"2f6a5f6eecf858b6dfffaad876fca5ef4d555b5030efff5c4fa5438a9f0dac79","impliedFormat":99},{"version":"aecff626175298e112cb2e9c726cdb8b52c34601966f82783bd52d52ddf82663","signature":"afdeaf6dea05a49fa1e7720fc58c8e66d8c0cbd963312687c2675ae08b40c169","impliedFormat":99},{"version":"de5115b516219f9cdd56cad155a165f733d4583a41b90e8355710e15c44d27eb","signature":"19c3a57ef44cef40b7b4aedc73f2f9dc1d4865647c269c7ce2b328f6eab1f8d0","impliedFormat":99},{"version":"e1be453bd808cb507760fb82d335a6c6e32e4c6077aeedab0b8e9dca72ba11ed","signature":"8722bf0ccdbfdbf92e6ec4a62878204bad3c788a2217b7f920e837f820229353","impliedFormat":99},{"version":"312b4190cb406003deb33830b5d6432321df446928a968a256a97c1bfee97d56","signature":"1bd07751b5612d01ca9bf2149d49e14e444ad4275bfdbfbc8b2ea78da3494e9b","impliedFormat":99},{"version":"2c847ff79aba2505eba7979a6eed5f00714cf28aa301e537803d3a947781be97","signature":"94044dc493ffc4ff1ee42dce0e938e154da2a4dd91e4b5771958a1d42bdbc66b","impliedFormat":99},{"version":"9191e98400275154e16814d86b8b0dce5052107a0acb87f88a2e532a3294b4a5","signature":"ce643fe105321074d6bbb504b9dd740d2d11c39f1ceec1eabcfbcb48f36730dc","impliedFormat":99},{"version":"950327ac3fecba22fd5afaad2fcb1abf6463df3961be15d5e48b0666db5532e3","signature":"40f8a1c812984e4c6537136bbf79637b945dc309877fc7472bc4ff80045bd2c6","impliedFormat":99},{"version":"d9ae8189bce1e3882a86fc8d378a85b0252baea4f85a1a7b2b62ef6e739fa263","signature":"e933693425cd5dd22e246d186e0a2e952df6f0cdce8ec35acb7e418385e278b1","impliedFormat":99},{"version":"b4dd268358e96a0e41951e8f98b89c81f5fb5a39bf0ec9dca0d5df1638bf6faf","signature":"530d35b3343a98542f22eea4a2d0211e9ecaa1fcec5e88136a8f5417db754225","impliedFormat":99},{"version":"9098f4808eaad608eeba63a079f9810dad6af0ebd5bea6dec0df58c616ee76c5","signature":"07141452902f906c2bf8d2b5fd9214a25926478b04d589b1ecada3cbb3bda02b","impliedFormat":99},{"version":"36ddabff78d763e4ed80c0d1ce3576353b70bb2e0a8ae2da6eb00b2c9f568acf","signature":"02ab1e5b69f463ad4b545b5acc95efb643866de9fa05f74c6430d56602e597a1","impliedFormat":99},{"version":"6ab4355b5d6a60c1f64410e69fa6b35acc384e26a76ad6f538231d7c1066573a","signature":"753610cf45a8e266e0418729b76ef447afed09dbfaebbb9d6bda50f8df7b52ad","impliedFormat":99},{"version":"df07cf5299b74a267987fe7b86daa86a4aa523c4e50ebfafdb7c39340338d61e","signature":"5d373e89ca16c9be318612c93cf5ad0da51cfa214abf2f4e2fc39c0ec9a3a98c","impliedFormat":99},{"version":"3fa07eb9a1df131f816b8b9a59629d8f951b08dfd5d37a6f63500325f42c9b42","signature":"eaf02c6aabe5d365864955bae3c0ee8ad30ce87162272bd824cf6154de2305be","impliedFormat":99},{"version":"a8db198c1ab3e8645ae97fb71d513c65200b0f07844f0c5303b9bf3e27adafd3","signature":"6194a370eb27fc20ab297fe87ee1a691a46aefb6d310697e07b78990fc09a0b5","impliedFormat":99},{"version":"6d7255f198906fbc8ec0086ec88d964946d6e953fa9c13c4519602113c383008","signature":"402e5be8b71f77909928c0420e4765ee63bc4409b8282c404a33bbf6381ec887","impliedFormat":99},{"version":"c0ab662320e9a6c59597dd500d7a74441afc9e69d28786cb4245f5790648aae1","signature":"f71ca4200aa4221ed58fedd1cb546aa9e91ba291bc0199d5e85d8d13ee4254f2","impliedFormat":99},{"version":"c71b7d99355fed911b505e5bae058c662121170ad72249a16833bd29e62f4473","signature":"7abb36fa709cc1b47d9ec07155272832cca6ecb7c568952e35b1eeafc57a38f8","impliedFormat":99},{"version":"8ac7a96e8b4c0ec4aad462600de0665ff5580e814ba0276ca344900428e8113e","signature":"649eeb2c2c8dd4c113688d665bc9cac1671afc9bfdd3602bef5185fbf0621478","impliedFormat":99},{"version":"a9368b1e57989461b4a2d4950c87b6c36fa5badb5125043eb3dd553517768053","signature":"7ea6a299232c8153dc84022cdbbfaa633f9906e6b83a99a43672eb2b2349edf2","impliedFormat":99},{"version":"a18d1775d7300ea8707c8b75a26972a99b1e24f4bf45fa2f5cc62103b2f8f676","signature":"b018ae5d20cfb28383b969fc1303eda7da85e3d6dcf119c6fe2684e5b15c9cea","impliedFormat":99},{"version":"beeeae310a3120d441588f0aaad93edf408d051a6390c3d38948d7eec09f8d43","signature":"66adcae7257a433be21483fff8ce3678072fd6babe55ef98d34eb3cfeb3ad9f3","impliedFormat":99},{"version":"b5609f378bb11b8c5b7c2b368d2f3c40abc077fa6301ac07549366d7fdea171a","signature":"d6d9ecf8b44707c720b2f2136ce001fd94c1c4cb07b612421c8c4c1c2e95e19f","impliedFormat":99},{"version":"d072a4b417fb2ef13374cb8368d4d4385af9f2ca01ce06a04afb88c99e711449","signature":"410f175684a6784ed72d1c7da943980b3faca33af6aef617a360e4a3d92fdf5a","impliedFormat":99},{"version":"ab7428e9ae7beac50c232c7a3c7d61c5ca233602b0157e9df1b503e4e27f12e8","signature":"a9bf38a14b2e5545bb6f34d5b94863a247e5bfdbf0e23129bd86bafd2af3ee3a","impliedFormat":99},{"version":"8be6ec6ba65a4edc5ce45b9f3d17439248c44921f34a184165e0a29188e92689","signature":"f08307e38937770dc04247f360a9ebf58153d4569f46ff173544fdd8ef5cf59d","impliedFormat":99},{"version":"25807f34cd4fa4f2d1f69c49f0c78e7c49f914b31034e2592d955d59f47a4508","signature":"2b2f87e6d9e5759b842cf6a5e0f6e34a410187c788a5a439a91c12cecbfbfcf2","impliedFormat":99},{"version":"f81c549c888cad216e50f96d520010c19b335dd5e14d2f409fb3d1d85194f77f","signature":"bc0d96b9633fc953c3921a132ccb7342182b371a8824086d544f161571855687","impliedFormat":99},{"version":"5ef7c133671a9f59b20afcff3b537890dc58b7ca2c5348a4c0feefce1d3b92f0","signature":"111e1f73e7c126c96fe721311904fb7f1fce2e57de3d445fd438de3df88a08dc","impliedFormat":99},{"version":"c63ab77d23b2679445c5c326fb9ef268368e95b6c310cdd58d34c663e7bf7616","signature":"ac9bee73467869ea333e8cab3d09ad7c2278266495172c33926734be16e08447","impliedFormat":99}],"root":[[67,75],[119,123],[125,133],[140,154],[194,199],[261,304]],"options":{"composite":true,"declaration":true,"declarationMap":false,"erasableSyntaxOnly":true,"jsx":4,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rewriteRelativeImportExtensions":true,"rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":10,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":true},"referencedMap":[[193,1],[155,2],[160,3],[159,2],[156,2],[161,2],[162,2],[164,2],[167,4],[165,5],[166,5],[163,2],[157,2],[169,2],[168,2],[187,6],[188,2],[190,7],[189,2],[158,8],[191,9],[192,2],[237,10],[238,11],[77,12],[172,13],[178,14],[175,15],[177,16],[186,17],[181,18],[183,19],[184,20],[185,6],[180,6],[182,6],[174,6],[201,11],[138,21],[139,22],[65,23],[66,24],[205,25],[204,26],[203,27],[230,28],[229,29],[233,30],[232,31],[235,32],[234,33],[240,34],[239,29],[242,35],[241,29],[246,36],[245,29],[244,37],[243,38],[228,39],[208,40],[209,40],[210,40],[211,40],[212,40],[213,40],[214,41],[216,40],[215,40],[227,42],[217,40],[219,40],[218,40],[221,40],[220,40],[222,40],[223,40],[224,40],[225,40],[226,40],[207,40],[206,43],[249,44],[247,45],[248,45],[252,46],[250,45],[251,45],[253,45],[259,47],[258,45],[260,45],[257,48],[256,49],[255,50],[111,51],[109,52],[98,53],[110,54],[79,55],[118,56],[108,57],[85,58],[103,59],[100,60],[83,61],[95,62],[86,63],[99,64],[96,65],[82,66],[102,67],[104,68],[105,69],[106,69],[107,70],[113,69],[114,71],[97,72],[88,73],[89,73],[90,73],[101,74],[87,75],[115,76],[116,77],[84,78],[92,79],[93,80],[94,81],[117,65],[285,82],[288,83],[141,84],[287,85],[286,86],[283,84],[289,87],[142,84],[284,84],[143,83],[262,88],[264,89],[196,84],[197,90],[199,91],[261,92],[263,93],[198,94],[194,84],[195,94],[266,95],[299,96],[303,97],[296,84],[298,98],[295,99],[300,100],[297,101],[140,102],[67,84],[127,103],[120,84],[126,104],[70,84],[72,84],[73,84],[125,105],[75,106],[74,84],[119,107],[122,108],[121,109],[275,110],[123,111],[281,84],[282,112],[147,84],[301,113],[154,114],[153,84],[151,115],[267,116],[145,117],[146,118],[144,119],[272,120],[304,121],[290,122],[271,123],[291,124],[68,84],[71,125],[69,126],[292,127],[152,128],[302,129],[129,84],[293,130],[132,130],[130,84],[128,84],[131,131],[294,132],[274,133],[269,134],[268,135],[270,84],[280,136],[265,137],[273,138],[276,119],[278,139],[150,139],[279,140],[148,84],[149,141],[277,141],[133,119]],"latestChangedDtsFile":"./schedule/index.d.ts","version":"6.0.3"}
@@ -0,0 +1,76 @@
1
+ import type { BodyFormat, MarkdocParseOptions } from '../body/types.ts';
2
+ import type { MarkdocManifest, MdxManifest } from '../markdoc/types.ts';
3
+ import { type A11yRuleId } from './rules.ts';
4
+ import type { A11yNote, PdfTarget } from './types.ts';
5
+ type Span = {
6
+ start: number;
7
+ end: number;
8
+ };
9
+ export type BodyFact = Span & ({
10
+ kind: 'image';
11
+ alt: string | null;
12
+ src: string;
13
+ } | {
14
+ kind: 'link';
15
+ text: string;
16
+ href: string;
17
+ target?: string;
18
+ label?: string;
19
+ title?: string;
20
+ } | {
21
+ kind: 'heading';
22
+ level: number;
23
+ text: string;
24
+ } | {
25
+ kind: 'table';
26
+ header: boolean;
27
+ } | {
28
+ kind: 'paragraph';
29
+ source: string;
30
+ } | {
31
+ kind: 'tag';
32
+ syntax: 'markdoc' | 'mdx';
33
+ name: string;
34
+ /** Literal values; anything computed (a variable, an expression) is `{ dynamic: true }`. */
35
+ attributes: Record<string, unknown>;
36
+ });
37
+ /** What the tag rules need to know about one tag or component. */
38
+ export type TagDefinition = {
39
+ label: string;
40
+ /** Required attributes that are the embed's accessible name, with their labels. */
41
+ names: {
42
+ name: string;
43
+ label: string;
44
+ }[];
45
+ /** The attribute that says the video has captions, when the schema has one. */
46
+ captions?: string;
47
+ /** The attribute that tells one use from another (the block's summary), for the note's subject. */
48
+ summary?: string;
49
+ };
50
+ export type TagDefinitions = {
51
+ markdoc: ReadonlyMap<string, TagDefinition>;
52
+ mdx: ReadonlyMap<string, TagDefinition>;
53
+ };
54
+ /** The tag rules' view of the manifest's Markdoc tags and declared MDX components. */
55
+ export declare function tagDefinitions(markdoc?: MarkdocManifest, mdx?: MdxManifest): TagDefinitions;
56
+ export type BodyCheckOptions = {
57
+ /** The level the body's top headings should have (spec §6.18): 2 when the title is the page's h1. */
58
+ headingStart?: number;
59
+ /** Check heading order and empty headings. Off for compact Markdown fields. */
60
+ headings?: boolean;
61
+ markdoc?: MarkdocParseOptions;
62
+ tags?: TagDefinitions;
63
+ };
64
+ export type BodyCheck = {
65
+ notes: A11yNote[];
66
+ pdfs: PdfTarget[];
67
+ };
68
+ /** Accessibility notes for a body, in document order, and the PDFs it links to. */
69
+ export declare function checkBody(body: string, format: BodyFormat, options?: BodyCheckOptions): BodyCheck;
70
+ /** The alt-text problems of one image: missing (`null`: no alt at all), a file name, redundant, too long. */
71
+ export declare function altProblems(alt: string | null): [A11yRuleId, string][];
72
+ /** A link to a PDF on this site (an address with no scheme or host). */
73
+ export declare function isSitePdf(href: string): boolean;
74
+ /** The facts the rules read from a body, in document order. */
75
+ export declare function bodyFacts(body: string, format: BodyFormat, markdoc?: MarkdocParseOptions): BodyFact[];
76
+ export {};