@superbee/core 0.2.0-pre.4 → 0.2.0-pre.40

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 (612) hide show
  1. package/README.md +1209 -0
  2. package/dist/artifact-contract.d.ts +90 -0
  3. package/dist/artifact-contract.d.ts.map +1 -0
  4. package/dist/artifact-contract.js +205 -0
  5. package/dist/artifact-contract.js.map +1 -0
  6. package/dist/backend.d.ts +22 -2
  7. package/dist/backend.d.ts.map +1 -1
  8. package/dist/backend.js +153 -38
  9. package/dist/backend.js.map +1 -1
  10. package/dist/blob-contract.d.ts +82 -0
  11. package/dist/blob-contract.d.ts.map +1 -0
  12. package/dist/blob-contract.js +134 -0
  13. package/dist/blob-contract.js.map +1 -0
  14. package/dist/blob-journal.d.ts +303 -0
  15. package/dist/blob-journal.d.ts.map +1 -0
  16. package/dist/blob-journal.js +541 -0
  17. package/dist/blob-journal.js.map +1 -0
  18. package/dist/body-replace-guards.d.ts +52 -0
  19. package/dist/body-replace-guards.d.ts.map +1 -0
  20. package/dist/body-replace-guards.js +176 -0
  21. package/dist/body-replace-guards.js.map +1 -0
  22. package/dist/builtin-recipes/content.d.ts +93 -0
  23. package/dist/builtin-recipes/content.d.ts.map +1 -0
  24. package/dist/builtin-recipes/content.js +288 -0
  25. package/dist/builtin-recipes/content.js.map +1 -0
  26. package/dist/builtin-recipes.d.ts +10 -0
  27. package/dist/builtin-recipes.d.ts.map +1 -0
  28. package/dist/builtin-recipes.js +97 -0
  29. package/dist/builtin-recipes.js.map +1 -0
  30. package/dist/bundle-health/index.d.ts +14 -0
  31. package/dist/bundle-health/index.d.ts.map +1 -0
  32. package/dist/bundle-health/index.js +12 -0
  33. package/dist/bundle-health/index.js.map +1 -0
  34. package/dist/bundle-health/kind-findings.d.ts +44 -0
  35. package/dist/bundle-health/kind-findings.d.ts.map +1 -0
  36. package/dist/bundle-health/kind-findings.js +68 -0
  37. package/dist/bundle-health/kind-findings.js.map +1 -0
  38. package/dist/bundle-health/legacy-page.d.ts +39 -0
  39. package/dist/bundle-health/legacy-page.d.ts.map +1 -0
  40. package/dist/bundle-health/legacy-page.js +50 -0
  41. package/dist/bundle-health/legacy-page.js.map +1 -0
  42. package/dist/bundle-health/report.d.ts +207 -0
  43. package/dist/bundle-health/report.d.ts.map +1 -0
  44. package/dist/bundle-health/report.js +454 -0
  45. package/dist/bundle-health/report.js.map +1 -0
  46. package/dist/bundle-ops.d.ts +3 -2
  47. package/dist/bundle-ops.d.ts.map +1 -1
  48. package/dist/bundle-ops.js +4 -4
  49. package/dist/bundle-ops.js.map +1 -1
  50. package/dist/bundle.d.ts +3 -4
  51. package/dist/bundle.d.ts.map +1 -1
  52. package/dist/bundle.js +5 -14
  53. package/dist/bundle.js.map +1 -1
  54. package/dist/code-point-order.d.ts +8 -0
  55. package/dist/code-point-order.d.ts.map +1 -0
  56. package/dist/code-point-order.js +20 -0
  57. package/dist/code-point-order.js.map +1 -0
  58. package/dist/code-unit-order.d.ts +15 -0
  59. package/dist/code-unit-order.d.ts.map +1 -0
  60. package/dist/code-unit-order.js +17 -0
  61. package/dist/code-unit-order.js.map +1 -0
  62. package/dist/connector-request.d.ts +112 -0
  63. package/dist/connector-request.d.ts.map +1 -0
  64. package/dist/connector-request.js +495 -0
  65. package/dist/connector-request.js.map +1 -0
  66. package/dist/connectors.d.ts +297 -0
  67. package/dist/connectors.d.ts.map +1 -0
  68. package/dist/connectors.js +1233 -0
  69. package/dist/connectors.js.map +1 -0
  70. package/dist/cross-bundle.d.ts +135 -0
  71. package/dist/cross-bundle.d.ts.map +1 -0
  72. package/dist/cross-bundle.js +191 -0
  73. package/dist/cross-bundle.js.map +1 -0
  74. package/dist/dependencies.d.ts +94 -0
  75. package/dist/dependencies.d.ts.map +1 -0
  76. package/dist/dependencies.js +180 -0
  77. package/dist/dependencies.js.map +1 -0
  78. package/dist/document-codec.d.ts +7 -2
  79. package/dist/document-codec.d.ts.map +1 -1
  80. package/dist/document-codec.js +8 -5
  81. package/dist/document-codec.js.map +1 -1
  82. package/dist/document-field-actions.d.ts +31 -1
  83. package/dist/document-field-actions.d.ts.map +1 -1
  84. package/dist/document-field-actions.js +137 -34
  85. package/dist/document-field-actions.js.map +1 -1
  86. package/dist/document-mutation.d.ts +35 -13
  87. package/dist/document-mutation.d.ts.map +1 -1
  88. package/dist/document-mutation.js +124 -60
  89. package/dist/document-mutation.js.map +1 -1
  90. package/dist/document-transfer.d.ts +208 -0
  91. package/dist/document-transfer.d.ts.map +1 -0
  92. package/dist/document-transfer.js +928 -0
  93. package/dist/document-transfer.js.map +1 -0
  94. package/dist/document-write-policy.d.ts.map +1 -1
  95. package/dist/document-write-policy.js +4 -2
  96. package/dist/document-write-policy.js.map +1 -1
  97. package/dist/domain-model.d.ts +73 -0
  98. package/dist/domain-model.d.ts.map +1 -0
  99. package/dist/domain-model.js +169 -0
  100. package/dist/domain-model.js.map +1 -0
  101. package/dist/engine.d.ts +21 -9
  102. package/dist/engine.d.ts.map +1 -1
  103. package/dist/engine.js +72 -14
  104. package/dist/engine.js.map +1 -1
  105. package/dist/file-journaled-backend-internal.d.ts +21 -0
  106. package/dist/file-journaled-backend-internal.d.ts.map +1 -0
  107. package/dist/file-journaled-backend-internal.js +12 -0
  108. package/dist/file-journaled-backend-internal.js.map +1 -0
  109. package/dist/file-journaled-backend.d.ts +160 -0
  110. package/dist/file-journaled-backend.d.ts.map +1 -0
  111. package/dist/file-journaled-backend.js +1345 -0
  112. package/dist/file-journaled-backend.js.map +1 -0
  113. package/dist/filesystem-host.d.ts +15 -0
  114. package/dist/filesystem-host.d.ts.map +1 -0
  115. package/dist/filesystem-host.js +20 -0
  116. package/dist/filesystem-host.js.map +1 -0
  117. package/dist/filesystem-identity.d.ts +97 -21
  118. package/dist/filesystem-identity.d.ts.map +1 -1
  119. package/dist/filesystem-identity.js +398 -119
  120. package/dist/filesystem-identity.js.map +1 -1
  121. package/dist/filesystem-lock.d.ts +16 -3
  122. package/dist/filesystem-lock.d.ts.map +1 -1
  123. package/dist/filesystem-lock.js +323 -77
  124. package/dist/filesystem-lock.js.map +1 -1
  125. package/dist/filesystem-push-role.d.ts +77 -0
  126. package/dist/filesystem-push-role.d.ts.map +1 -0
  127. package/dist/filesystem-push-role.js +165 -0
  128. package/dist/filesystem-push-role.js.map +1 -0
  129. package/dist/filesystem.d.ts +17 -0
  130. package/dist/filesystem.d.ts.map +1 -0
  131. package/dist/filesystem.js +18 -0
  132. package/dist/filesystem.js.map +1 -0
  133. package/dist/frontmatter.d.ts +8 -6
  134. package/dist/frontmatter.d.ts.map +1 -1
  135. package/dist/frontmatter.js +5 -4
  136. package/dist/frontmatter.js.map +1 -1
  137. package/dist/governed-body-write.d.ts +8 -1
  138. package/dist/governed-body-write.d.ts.map +1 -1
  139. package/dist/governed-body-write.js +9 -2
  140. package/dist/governed-body-write.js.map +1 -1
  141. package/dist/heads-digest.d.ts.map +1 -1
  142. package/dist/heads-digest.js +2 -1
  143. package/dist/heads-digest.js.map +1 -1
  144. package/dist/host-policy-snapshot.d.ts +9 -0
  145. package/dist/host-policy-snapshot.d.ts.map +1 -0
  146. package/dist/host-policy-snapshot.js +33 -0
  147. package/dist/host-policy-snapshot.js.map +1 -0
  148. package/dist/host-text.d.ts +31 -0
  149. package/dist/host-text.d.ts.map +1 -0
  150. package/dist/host-text.js +77 -0
  151. package/dist/host-text.js.map +1 -0
  152. package/dist/hosted-client/binding.d.ts +7 -0
  153. package/dist/hosted-client/binding.d.ts.map +1 -0
  154. package/dist/hosted-client/binding.js +10 -0
  155. package/dist/hosted-client/binding.js.map +1 -0
  156. package/dist/hosted-client/blob-delivery.d.ts +68 -0
  157. package/dist/hosted-client/blob-delivery.d.ts.map +1 -0
  158. package/dist/hosted-client/blob-delivery.js +170 -0
  159. package/dist/hosted-client/blob-delivery.js.map +1 -0
  160. package/dist/hosted-client/blob-write.d.ts +387 -0
  161. package/dist/hosted-client/blob-write.d.ts.map +1 -0
  162. package/dist/hosted-client/blob-write.js +770 -0
  163. package/dist/hosted-client/blob-write.js.map +1 -0
  164. package/dist/hosted-client/bundle-listing.d.ts +46 -0
  165. package/dist/hosted-client/bundle-listing.d.ts.map +1 -0
  166. package/dist/hosted-client/bundle-listing.js +36 -0
  167. package/dist/hosted-client/bundle-listing.js.map +1 -0
  168. package/dist/hosted-client/client.d.ts +219 -0
  169. package/dist/hosted-client/client.d.ts.map +1 -0
  170. package/dist/hosted-client/client.js +309 -0
  171. package/dist/hosted-client/client.js.map +1 -0
  172. package/dist/hosted-client/directory.d.ts +46 -0
  173. package/dist/hosted-client/directory.d.ts.map +1 -0
  174. package/dist/hosted-client/directory.js +74 -0
  175. package/dist/hosted-client/directory.js.map +1 -0
  176. package/dist/hosted-client/errors.d.ts +26 -0
  177. package/dist/hosted-client/errors.d.ts.map +1 -0
  178. package/dist/hosted-client/errors.js +35 -0
  179. package/dist/hosted-client/errors.js.map +1 -0
  180. package/dist/hosted-client/inbox.d.ts +320 -0
  181. package/dist/hosted-client/inbox.d.ts.map +1 -0
  182. package/dist/hosted-client/inbox.js +379 -0
  183. package/dist/hosted-client/inbox.js.map +1 -0
  184. package/dist/hosted-client/index.d.ts +30 -0
  185. package/dist/hosted-client/index.d.ts.map +1 -0
  186. package/dist/hosted-client/index.js +32 -0
  187. package/dist/hosted-client/index.js.map +1 -0
  188. package/dist/hosted-client/journal.d.ts +103 -0
  189. package/dist/hosted-client/journal.d.ts.map +1 -0
  190. package/dist/hosted-client/journal.js +464 -0
  191. package/dist/hosted-client/journal.js.map +1 -0
  192. package/dist/hosted-client/node.d.ts +74 -0
  193. package/dist/hosted-client/node.d.ts.map +1 -0
  194. package/dist/hosted-client/node.js +219 -0
  195. package/dist/hosted-client/node.js.map +1 -0
  196. package/dist/hosted-client/reference.d.ts +12 -0
  197. package/dist/hosted-client/reference.d.ts.map +1 -0
  198. package/dist/hosted-client/reference.js +29 -0
  199. package/dist/hosted-client/reference.js.map +1 -0
  200. package/dist/hosted-client/write.d.ts +217 -0
  201. package/dist/hosted-client/write.d.ts.map +1 -0
  202. package/dist/hosted-client/write.js +418 -0
  203. package/dist/hosted-client/write.js.map +1 -0
  204. package/dist/hosted-transport/answer-rows.d.ts +243 -0
  205. package/dist/hosted-transport/answer-rows.d.ts.map +1 -0
  206. package/dist/hosted-transport/answer-rows.js +457 -0
  207. package/dist/hosted-transport/answer-rows.js.map +1 -0
  208. package/dist/hosted-transport/blob-reads.d.ts +35 -0
  209. package/dist/hosted-transport/blob-reads.d.ts.map +1 -0
  210. package/dist/hosted-transport/blob-reads.js +179 -0
  211. package/dist/hosted-transport/blob-reads.js.map +1 -0
  212. package/dist/hosted-transport/blob-write.d.ts +34 -0
  213. package/dist/hosted-transport/blob-write.d.ts.map +1 -0
  214. package/dist/hosted-transport/blob-write.js +115 -0
  215. package/dist/hosted-transport/blob-write.js.map +1 -0
  216. package/dist/hosted-transport/carrier.d.ts +151 -0
  217. package/dist/hosted-transport/carrier.d.ts.map +1 -0
  218. package/dist/hosted-transport/carrier.js +260 -0
  219. package/dist/hosted-transport/carrier.js.map +1 -0
  220. package/dist/hosted-transport/history-pages.d.ts +55 -0
  221. package/dist/hosted-transport/history-pages.d.ts.map +1 -0
  222. package/dist/hosted-transport/history-pages.js +69 -0
  223. package/dist/hosted-transport/history-pages.js.map +1 -0
  224. package/dist/hosted-transport/index.d.ts +18 -0
  225. package/dist/hosted-transport/index.d.ts.map +1 -0
  226. package/dist/hosted-transport/index.js +18 -0
  227. package/dist/hosted-transport/index.js.map +1 -0
  228. package/dist/hosted-transport/operations.d.ts +85 -0
  229. package/dist/hosted-transport/operations.d.ts.map +1 -0
  230. package/dist/hosted-transport/operations.js +128 -0
  231. package/dist/hosted-transport/operations.js.map +1 -0
  232. package/dist/hosted-transport/paged-reads.d.ts +87 -0
  233. package/dist/hosted-transport/paged-reads.d.ts.map +1 -0
  234. package/dist/hosted-transport/paged-reads.js +238 -0
  235. package/dist/hosted-transport/paged-reads.js.map +1 -0
  236. package/dist/hosted-transport/read-adapter.d.ts +256 -0
  237. package/dist/hosted-transport/read-adapter.d.ts.map +1 -0
  238. package/dist/hosted-transport/read-adapter.js +568 -0
  239. package/dist/hosted-transport/read-adapter.js.map +1 -0
  240. package/dist/hosted-transport/root-write.d.ts +114 -0
  241. package/dist/hosted-transport/root-write.d.ts.map +1 -0
  242. package/dist/hosted-transport/root-write.js +171 -0
  243. package/dist/hosted-transport/root-write.js.map +1 -0
  244. package/dist/hosted-transport/whole-document-transport.d.ts +204 -0
  245. package/dist/hosted-transport/whole-document-transport.d.ts.map +1 -0
  246. package/dist/hosted-transport/whole-document-transport.js +447 -0
  247. package/dist/hosted-transport/whole-document-transport.js.map +1 -0
  248. package/dist/identity-fold.d.ts +18 -0
  249. package/dist/identity-fold.d.ts.map +1 -0
  250. package/dist/identity-fold.js +22 -0
  251. package/dist/identity-fold.js.map +1 -0
  252. package/dist/index.d.ts +41 -11
  253. package/dist/index.d.ts.map +1 -1
  254. package/dist/index.js +31 -9
  255. package/dist/index.js.map +1 -1
  256. package/dist/indexeddb-backend.d.ts +25 -33
  257. package/dist/indexeddb-backend.d.ts.map +1 -1
  258. package/dist/indexeddb-backend.js +264 -8
  259. package/dist/indexeddb-backend.js.map +1 -1
  260. package/dist/inventory-guard.d.ts +58 -0
  261. package/dist/inventory-guard.d.ts.map +1 -0
  262. package/dist/inventory-guard.js +169 -0
  263. package/dist/inventory-guard.js.map +1 -0
  264. package/dist/journaled-backend.d.ts +149 -9
  265. package/dist/journaled-backend.d.ts.map +1 -1
  266. package/dist/journaled-backend.js +64 -58
  267. package/dist/journaled-backend.js.map +1 -1
  268. package/dist/kind-authoring.d.ts +170 -0
  269. package/dist/kind-authoring.d.ts.map +1 -0
  270. package/dist/kind-authoring.js +452 -0
  271. package/dist/kind-authoring.js.map +1 -0
  272. package/dist/kind-changes.d.ts +45 -0
  273. package/dist/kind-changes.d.ts.map +1 -0
  274. package/dist/kind-changes.js +96 -0
  275. package/dist/kind-changes.js.map +1 -0
  276. package/dist/kind-conformance-error.d.ts +15 -0
  277. package/dist/kind-conformance-error.d.ts.map +1 -0
  278. package/dist/kind-conformance-error.js +20 -0
  279. package/dist/kind-conformance-error.js.map +1 -0
  280. package/dist/kind-coverage.d.ts +99 -0
  281. package/dist/kind-coverage.d.ts.map +1 -0
  282. package/dist/kind-coverage.js +186 -0
  283. package/dist/kind-coverage.js.map +1 -0
  284. package/dist/kind-deprecation.d.ts +32 -0
  285. package/dist/kind-deprecation.d.ts.map +1 -0
  286. package/dist/kind-deprecation.js +141 -0
  287. package/dist/kind-deprecation.js.map +1 -0
  288. package/dist/kind-field-mutation.d.ts +4 -0
  289. package/dist/kind-field-mutation.d.ts.map +1 -1
  290. package/dist/kind-field-mutation.js +28 -3
  291. package/dist/kind-field-mutation.js.map +1 -1
  292. package/dist/kinds-load.js +4 -4
  293. package/dist/kinds-load.js.map +1 -1
  294. package/dist/kinds.d.ts +111 -2
  295. package/dist/kinds.d.ts.map +1 -1
  296. package/dist/kinds.js +386 -20
  297. package/dist/kinds.js.map +1 -1
  298. package/dist/link-emit.d.ts +29 -0
  299. package/dist/link-emit.d.ts.map +1 -0
  300. package/dist/link-emit.js +39 -0
  301. package/dist/link-emit.js.map +1 -0
  302. package/dist/link-types.d.ts +27 -0
  303. package/dist/link-types.d.ts.map +1 -0
  304. package/dist/link-types.js +60 -0
  305. package/dist/link-types.js.map +1 -0
  306. package/dist/links.d.ts +52 -3
  307. package/dist/links.d.ts.map +1 -1
  308. package/dist/links.js +259 -18
  309. package/dist/links.js.map +1 -1
  310. package/dist/managed-document-metadata.d.ts +2 -0
  311. package/dist/managed-document-metadata.d.ts.map +1 -0
  312. package/dist/managed-document-metadata.js +9 -0
  313. package/dist/managed-document-metadata.js.map +1 -0
  314. package/dist/memory-backend.d.ts +3 -0
  315. package/dist/memory-backend.d.ts.map +1 -1
  316. package/dist/memory-backend.js +44 -2
  317. package/dist/memory-backend.js.map +1 -1
  318. package/dist/okf-actor.d.ts +1 -0
  319. package/dist/okf-actor.d.ts.map +1 -1
  320. package/dist/okf-actor.js +1 -0
  321. package/dist/okf-actor.js.map +1 -1
  322. package/dist/okf-authoring.d.ts +4 -0
  323. package/dist/okf-authoring.d.ts.map +1 -0
  324. package/dist/okf-authoring.js +12 -0
  325. package/dist/okf-authoring.js.map +1 -0
  326. package/dist/okf-standard-fields.d.ts +3 -0
  327. package/dist/okf-standard-fields.d.ts.map +1 -1
  328. package/dist/okf-standard-fields.js +3 -0
  329. package/dist/okf-standard-fields.js.map +1 -1
  330. package/dist/path-fold.d.ts +39 -0
  331. package/dist/path-fold.d.ts.map +1 -0
  332. package/dist/path-fold.js +41 -0
  333. package/dist/path-fold.js.map +1 -0
  334. package/dist/paths.d.ts +18 -0
  335. package/dist/paths.d.ts.map +1 -1
  336. package/dist/paths.js +32 -0
  337. package/dist/paths.js.map +1 -1
  338. package/dist/platform.d.ts +13 -2
  339. package/dist/platform.d.ts.map +1 -1
  340. package/dist/platform.js +16 -0
  341. package/dist/platform.js.map +1 -1
  342. package/dist/portable-export.d.ts +119 -0
  343. package/dist/portable-export.d.ts.map +1 -0
  344. package/dist/portable-export.js +501 -0
  345. package/dist/portable-export.js.map +1 -0
  346. package/dist/publication-filesystem.d.ts +1 -1
  347. package/dist/publication-filesystem.d.ts.map +1 -1
  348. package/dist/publication-filesystem.js +1 -1
  349. package/dist/publication-filesystem.js.map +1 -1
  350. package/dist/qualified-links.d.ts +67 -0
  351. package/dist/qualified-links.d.ts.map +1 -0
  352. package/dist/qualified-links.js +117 -0
  353. package/dist/qualified-links.js.map +1 -0
  354. package/dist/query-filter.d.ts +16 -2
  355. package/dist/query-filter.d.ts.map +1 -1
  356. package/dist/query-filter.js +40 -1
  357. package/dist/query-filter.js.map +1 -1
  358. package/dist/query-order.d.ts +22 -0
  359. package/dist/query-order.d.ts.map +1 -0
  360. package/dist/query-order.js +43 -0
  361. package/dist/query-order.js.map +1 -0
  362. package/dist/recipe-lifecycle/errors.d.ts +96 -0
  363. package/dist/recipe-lifecycle/errors.d.ts.map +1 -0
  364. package/dist/recipe-lifecycle/errors.js +122 -0
  365. package/dist/recipe-lifecycle/errors.js.map +1 -0
  366. package/dist/recipe-lifecycle/evolution.d.ts +124 -0
  367. package/dist/recipe-lifecycle/evolution.d.ts.map +1 -0
  368. package/dist/recipe-lifecycle/evolution.js +993 -0
  369. package/dist/recipe-lifecycle/evolution.js.map +1 -0
  370. package/dist/recipe-lifecycle/index.d.ts +34 -0
  371. package/dist/recipe-lifecycle/index.d.ts.map +1 -0
  372. package/dist/recipe-lifecycle/index.js +28 -0
  373. package/dist/recipe-lifecycle/index.js.map +1 -0
  374. package/dist/recipe-lifecycle/install.d.ts +155 -0
  375. package/dist/recipe-lifecycle/install.d.ts.map +1 -0
  376. package/dist/recipe-lifecycle/install.js +604 -0
  377. package/dist/recipe-lifecycle/install.js.map +1 -0
  378. package/dist/recipe-lifecycle/legacy-aliases.d.ts +16 -0
  379. package/dist/recipe-lifecycle/legacy-aliases.d.ts.map +1 -0
  380. package/dist/recipe-lifecycle/legacy-aliases.js +51 -0
  381. package/dist/recipe-lifecycle/legacy-aliases.js.map +1 -0
  382. package/dist/recipe-lifecycle/retirement-apply.d.ts +59 -0
  383. package/dist/recipe-lifecycle/retirement-apply.d.ts.map +1 -0
  384. package/dist/recipe-lifecycle/retirement-apply.js +165 -0
  385. package/dist/recipe-lifecycle/retirement-apply.js.map +1 -0
  386. package/dist/recipe-lifecycle/retirement.d.ts +89 -0
  387. package/dist/recipe-lifecycle/retirement.d.ts.map +1 -0
  388. package/dist/recipe-lifecycle/retirement.js +347 -0
  389. package/dist/recipe-lifecycle/retirement.js.map +1 -0
  390. package/dist/recipe-lifecycle/stamp.d.ts +151 -0
  391. package/dist/recipe-lifecycle/stamp.d.ts.map +1 -0
  392. package/dist/recipe-lifecycle/stamp.js +364 -0
  393. package/dist/recipe-lifecycle/stamp.js.map +1 -0
  394. package/dist/recipe-set-preflight.d.ts +139 -0
  395. package/dist/recipe-set-preflight.d.ts.map +1 -0
  396. package/dist/recipe-set-preflight.js +536 -0
  397. package/dist/recipe-set-preflight.js.map +1 -0
  398. package/dist/recipes.d.ts +29 -1
  399. package/dist/recipes.d.ts.map +1 -1
  400. package/dist/recipes.js +137 -1
  401. package/dist/recipes.js.map +1 -1
  402. package/dist/record-overlay/apply.d.ts +43 -0
  403. package/dist/record-overlay/apply.d.ts.map +1 -0
  404. package/dist/record-overlay/apply.js +527 -0
  405. package/dist/record-overlay/apply.js.map +1 -0
  406. package/dist/record-overlay/canonical.d.ts +22 -0
  407. package/dist/record-overlay/canonical.d.ts.map +1 -0
  408. package/dist/record-overlay/canonical.js +47 -0
  409. package/dist/record-overlay/canonical.js.map +1 -0
  410. package/dist/record-overlay/digest.d.ts +4 -0
  411. package/dist/record-overlay/digest.d.ts.map +1 -0
  412. package/dist/record-overlay/digest.js +11 -0
  413. package/dist/record-overlay/digest.js.map +1 -0
  414. package/dist/record-overlay/errors.d.ts +44 -0
  415. package/dist/record-overlay/errors.d.ts.map +1 -0
  416. package/dist/record-overlay/errors.js +55 -0
  417. package/dist/record-overlay/errors.js.map +1 -0
  418. package/dist/record-overlay/findings.d.ts +5 -0
  419. package/dist/record-overlay/findings.d.ts.map +1 -0
  420. package/dist/record-overlay/findings.js +83 -0
  421. package/dist/record-overlay/findings.js.map +1 -0
  422. package/dist/record-overlay/index.d.ts +23 -0
  423. package/dist/record-overlay/index.d.ts.map +1 -0
  424. package/dist/record-overlay/index.js +21 -0
  425. package/dist/record-overlay/index.js.map +1 -0
  426. package/dist/record-overlay/plan.d.ts +12 -0
  427. package/dist/record-overlay/plan.d.ts.map +1 -0
  428. package/dist/record-overlay/plan.js +285 -0
  429. package/dist/record-overlay/plan.js.map +1 -0
  430. package/dist/record-overlay/policy.d.ts +74 -0
  431. package/dist/record-overlay/policy.d.ts.map +1 -0
  432. package/dist/record-overlay/policy.js +235 -0
  433. package/dist/record-overlay/policy.js.map +1 -0
  434. package/dist/record-overlay/redact.d.ts +3 -0
  435. package/dist/record-overlay/redact.d.ts.map +1 -0
  436. package/dist/record-overlay/redact.js +27 -0
  437. package/dist/record-overlay/redact.js.map +1 -0
  438. package/dist/record-overlay/signal-kind.d.ts +30 -0
  439. package/dist/record-overlay/signal-kind.d.ts.map +1 -0
  440. package/dist/record-overlay/signal-kind.js +38 -0
  441. package/dist/record-overlay/signal-kind.js.map +1 -0
  442. package/dist/record-overlay/signal-text.d.ts +45 -0
  443. package/dist/record-overlay/signal-text.d.ts.map +1 -0
  444. package/dist/record-overlay/signal-text.js +116 -0
  445. package/dist/record-overlay/signal-text.js.map +1 -0
  446. package/dist/record-overlay/source-index.d.ts +19 -0
  447. package/dist/record-overlay/source-index.d.ts.map +1 -0
  448. package/dist/record-overlay/source-index.js +102 -0
  449. package/dist/record-overlay/source-index.js.map +1 -0
  450. package/dist/record-overlay/types.d.ts +291 -0
  451. package/dist/record-overlay/types.d.ts.map +1 -0
  452. package/dist/record-overlay/types.js +2 -0
  453. package/dist/record-overlay/types.js.map +1 -0
  454. package/dist/remote-backend.d.ts +58 -13
  455. package/dist/remote-backend.d.ts.map +1 -1
  456. package/dist/remote-backend.js +156 -36
  457. package/dist/remote-backend.js.map +1 -1
  458. package/dist/remote-document-codec.d.ts +2 -1
  459. package/dist/remote-document-codec.d.ts.map +1 -1
  460. package/dist/remote-document-codec.js +3 -2
  461. package/dist/remote-document-codec.js.map +1 -1
  462. package/dist/remote-error.d.ts +17 -1
  463. package/dist/remote-error.d.ts.map +1 -1
  464. package/dist/remote-error.js +32 -2
  465. package/dist/remote-error.js.map +1 -1
  466. package/dist/remote-operations.d.ts +0 -40
  467. package/dist/remote-operations.d.ts.map +1 -1
  468. package/dist/remote-operations.js +26 -6
  469. package/dist/remote-operations.js.map +1 -1
  470. package/dist/remote-parsers.d.ts +1 -1
  471. package/dist/remote-parsers.js +1 -1
  472. package/dist/search/backend-source.d.ts +6 -0
  473. package/dist/search/backend-source.d.ts.map +1 -0
  474. package/dist/search/backend-source.js +33 -0
  475. package/dist/search/backend-source.js.map +1 -0
  476. package/dist/search/contract.d.ts +151 -0
  477. package/dist/search/contract.d.ts.map +1 -0
  478. package/dist/search/contract.js +78 -0
  479. package/dist/search/contract.js.map +1 -0
  480. package/dist/search/errors.d.ts +30 -0
  481. package/dist/search/errors.d.ts.map +1 -0
  482. package/dist/search/errors.js +50 -0
  483. package/dist/search/errors.js.map +1 -0
  484. package/dist/search/identity.d.ts +12 -0
  485. package/dist/search/identity.d.ts.map +1 -0
  486. package/dist/search/identity.js +90 -0
  487. package/dist/search/identity.js.map +1 -0
  488. package/dist/search/index.d.ts +16 -0
  489. package/dist/search/index.d.ts.map +1 -0
  490. package/dist/search/index.js +15 -0
  491. package/dist/search/index.js.map +1 -0
  492. package/dist/search/memory-source.d.ts +36 -0
  493. package/dist/search/memory-source.d.ts.map +1 -0
  494. package/dist/search/memory-source.js +235 -0
  495. package/dist/search/memory-source.js.map +1 -0
  496. package/dist/search/rank.d.ts +34 -0
  497. package/dist/search/rank.d.ts.map +1 -0
  498. package/dist/search/rank.js +129 -0
  499. package/dist/search/rank.js.map +1 -0
  500. package/dist/search/row-text.d.ts +38 -0
  501. package/dist/search/row-text.d.ts.map +1 -0
  502. package/dist/search/row-text.js +88 -0
  503. package/dist/search/row-text.js.map +1 -0
  504. package/dist/search/search.d.ts +28 -0
  505. package/dist/search/search.d.ts.map +1 -0
  506. package/dist/search/search.js +257 -0
  507. package/dist/search/search.js.map +1 -0
  508. package/dist/search/source.d.ts +67 -0
  509. package/dist/search/source.d.ts.map +1 -0
  510. package/dist/search/source.js +2 -0
  511. package/dist/search/source.js.map +1 -0
  512. package/dist/search/text.d.ts +47 -0
  513. package/dist/search/text.d.ts.map +1 -0
  514. package/dist/search/text.js +150 -0
  515. package/dist/search/text.js.map +1 -0
  516. package/dist/site-capabilities.d.ts +345 -0
  517. package/dist/site-capabilities.d.ts.map +1 -0
  518. package/dist/site-capabilities.js +724 -0
  519. package/dist/site-capabilities.js.map +1 -0
  520. package/dist/source-engine/driver.d.ts +40 -0
  521. package/dist/source-engine/driver.d.ts.map +1 -0
  522. package/dist/source-engine/driver.js +392 -0
  523. package/dist/source-engine/driver.js.map +1 -0
  524. package/dist/source-engine/evidence.d.ts +39 -0
  525. package/dist/source-engine/evidence.d.ts.map +1 -0
  526. package/dist/source-engine/evidence.js +54 -0
  527. package/dist/source-engine/evidence.js.map +1 -0
  528. package/dist/source-engine/guard.d.ts +87 -0
  529. package/dist/source-engine/guard.d.ts.map +1 -0
  530. package/dist/source-engine/guard.js +427 -0
  531. package/dist/source-engine/guard.js.map +1 -0
  532. package/dist/source-engine/index.d.ts +33 -0
  533. package/dist/source-engine/index.d.ts.map +1 -0
  534. package/dist/source-engine/index.js +26 -0
  535. package/dist/source-engine/index.js.map +1 -0
  536. package/dist/source-engine/machine-state.d.ts +74 -0
  537. package/dist/source-engine/machine-state.d.ts.map +1 -0
  538. package/dist/source-engine/machine-state.js +48 -0
  539. package/dist/source-engine/machine-state.js.map +1 -0
  540. package/dist/source-engine/observe.d.ts +10 -0
  541. package/dist/source-engine/observe.d.ts.map +1 -0
  542. package/dist/source-engine/observe.js +270 -0
  543. package/dist/source-engine/observe.js.map +1 -0
  544. package/dist/source-engine/overlay.d.ts +50 -0
  545. package/dist/source-engine/overlay.d.ts.map +1 -0
  546. package/dist/source-engine/overlay.js +114 -0
  547. package/dist/source-engine/overlay.js.map +1 -0
  548. package/dist/source-engine/robots.d.ts +53 -0
  549. package/dist/source-engine/robots.d.ts.map +1 -0
  550. package/dist/source-engine/robots.js +158 -0
  551. package/dist/source-engine/robots.js.map +1 -0
  552. package/dist/source-engine/snapshot.d.ts +104 -0
  553. package/dist/source-engine/snapshot.d.ts.map +1 -0
  554. package/dist/source-engine/snapshot.js +240 -0
  555. package/dist/source-engine/snapshot.js.map +1 -0
  556. package/dist/source-engine/types.d.ts +292 -0
  557. package/dist/source-engine/types.d.ts.map +1 -0
  558. package/dist/source-engine/types.js +2 -0
  559. package/dist/source-engine/types.js.map +1 -0
  560. package/dist/source-harness/conformance.d.ts +16 -0
  561. package/dist/source-harness/conformance.d.ts.map +1 -0
  562. package/dist/source-harness/conformance.js +266 -0
  563. package/dist/source-harness/conformance.js.map +1 -0
  564. package/dist/source-harness/fixture.d.ts +97 -0
  565. package/dist/source-harness/fixture.d.ts.map +1 -0
  566. package/dist/source-harness/fixture.js +276 -0
  567. package/dist/source-harness/fixture.js.map +1 -0
  568. package/dist/source-harness/index.d.ts +22 -0
  569. package/dist/source-harness/index.d.ts.map +1 -0
  570. package/dist/source-harness/index.js +19 -0
  571. package/dist/source-harness/index.js.map +1 -0
  572. package/dist/source-harness/peer.d.ts +74 -0
  573. package/dist/source-harness/peer.d.ts.map +1 -0
  574. package/dist/source-harness/peer.js +106 -0
  575. package/dist/source-harness/peer.js.map +1 -0
  576. package/dist/source-profiles/index.d.ts +31 -0
  577. package/dist/source-profiles/index.d.ts.map +1 -0
  578. package/dist/source-profiles/index.js +206 -0
  579. package/dist/source-profiles/index.js.map +1 -0
  580. package/dist/source-profiles/link-header.d.ts +6 -0
  581. package/dist/source-profiles/link-header.d.ts.map +1 -0
  582. package/dist/source-profiles/link-header.js +131 -0
  583. package/dist/source-profiles/link-header.js.map +1 -0
  584. package/dist/storage.d.ts +9 -2
  585. package/dist/storage.d.ts.map +1 -1
  586. package/dist/storage.js +6 -1
  587. package/dist/storage.js.map +1 -1
  588. package/dist/string-identity-agreement.d.ts +35 -0
  589. package/dist/string-identity-agreement.d.ts.map +1 -0
  590. package/dist/string-identity-agreement.js +72 -0
  591. package/dist/string-identity-agreement.js.map +1 -0
  592. package/dist/types.d.ts +41 -6
  593. package/dist/types.d.ts.map +1 -1
  594. package/dist/types.js +0 -10
  595. package/dist/types.js.map +1 -1
  596. package/dist/uncertain-write.d.ts +157 -17
  597. package/dist/uncertain-write.d.ts.map +1 -1
  598. package/dist/uncertain-write.js +86 -30
  599. package/dist/uncertain-write.js.map +1 -1
  600. package/dist/versioning.d.ts +9 -4
  601. package/dist/versioning.d.ts.map +1 -1
  602. package/dist/versioning.js +9 -4
  603. package/dist/versioning.js.map +1 -1
  604. package/dist/view-launch-contract.d.ts +14 -0
  605. package/dist/view-launch-contract.d.ts.map +1 -0
  606. package/dist/view-launch-contract.js +23 -0
  607. package/dist/view-launch-contract.js.map +1 -0
  608. package/dist/write-identity.d.ts +5 -0
  609. package/dist/write-identity.d.ts.map +1 -0
  610. package/dist/write-identity.js +9 -0
  611. package/dist/write-identity.js.map +1 -0
  612. package/package.json +140 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conformance.js","sourceRoot":"","sources":["../../src/source-harness/conformance.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAkC,MAAM,kBAAkB,CAAC;AACtH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAsB,MAAM,4BAA4B,CAAC;AAE/E,OAAO,EAAE,YAAY,EAAiE,MAAM,WAAW,CAAC;AAcxG,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC;IACjD,6BAA6B;IAC7B,8BAA8B;IAC9B,8BAA8B;IAC9B,6BAA6B;IAC7B,yBAAyB;IACzB,0BAA0B;CAClB,CAAC,CAAC;AAEZ,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,MAAM,YAAY,GAAG,mBAAmB,CAAC;AACzC,MAAM,YAAY,GAAG,uBAAuB,CAAC;AAC7C,MAAM,KAAK,GAAG,mBAAmB,CAAC;AAClC,MAAM,QAAQ,GAAG,aAAa,CAAC,mEAAmE,CAAkB,CAAC;AACrH,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,0BAA0B;IAC1B,2BAA2B;IAC3B,iBAAiB;IACjB,8BAA8B;IAC9B,2CAA2C;IAC3C,sDAAsD;IACtD,qBAAqB;IACrB,+BAA+B;IAC/B,yBAAyB;CAC1B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,iBAAiB,GAA0E,MAAM,CAAC,MAAM,CAAC;IAC7G,EAAE,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,WAAW,YAAY,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE;IACnG,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,WAAW,YAAY,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE;IAC5F,EAAE,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,UAAU,eAAe,0BAA0B,EAAE,cAAc,EAAE,IAAI,EAAE;IACzH,EAAE,IAAI,EAAE,0CAA0C,EAAE,GAAG,EAAE,WAAW,eAAe,IAAI,YAAY,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;IAC/H,EAAE,IAAI,EAAE,sDAAsD,EAAE,GAAG,EAAE,eAAe,eAAe,0BAA0B,EAAE,cAAc,EAAE,IAAI,EAAE;IACrJ,EAAE,IAAI,EAAE,yCAAyC,EAAE,GAAG,EAAE,WAAW,eAAe,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE;IAC/G,EAAE,IAAI,EAAE,iCAAiC,EAAE,GAAG,EAAE,WAAW,eAAe,IAAI,YAAY,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;IACtH,EAAE,IAAI,EAAE,qCAAqC,EAAE,GAAG,EAAE,WAAW,eAAe,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE;IAC/G,EAAE,IAAI,EAAE,oDAAoD,EAAE,GAAG,EAAE,WAAW,eAAe,0BAA0B,EAAE,cAAc,EAAE,KAAK,EAAE;CACjJ,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,KAAc,EAAoC,EAAE,CAClE,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE,kGAAkG;AAClG,MAAM,KAAK,GAAyD;IAClE,EAAE,EAAE,KAAK;IACT,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,SAAS;IACf,YAAY,CAAC,IAAI;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QACzH,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;IACrD,CAAC;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IAC9D,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;QAC/B,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACpF,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACzE,CAAC;CACF,CAAC;AAEF,IAAI,KAA6D,CAAC;AAElE,SAAS,UAAU;IACjB,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/M,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE;YACtF,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,6BAA6B,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC;YAC7H,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,EAAE,EAAC,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,eAAe,uBAAuB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;SACzT,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjH,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,WAAW,EAAE;YAC5F,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,eAAe,mBAAmB,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC;SAClJ,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,KAAK,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,WAAW,GAAG,GAA0B,EAAE,CAAC;IAC/C,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,6BAA6B,EAAE;IAChI,qGAAqG;IACrG,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,sBAAsB,EAAE;CACxH,CAAC;AAEF;;;GAGG;AACH,SAAS,OAAO,CAAC,OAAoB,EAAE,UAA+B;IACpE,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;IACrD,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACtB,IAAI,CAAC;QAAC,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACzH,CAAC;AAED,6FAA6F;AAC7F,SAAS,KAAK,CAAC,IAAkB,EAAE,UAA+B;IAChE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QACtC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrF,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,MAAoC,EAAE,EAAE,CAAC,CAAC,OAAoB,EAAgB,EAAE;IAC9F,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,GAAG,CAAC,QAAQ,KAAK,aAAa;QAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACrE,OAAO,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAC7E,CAAC,CAAC;AAEF,KAAK,UAAU,aAAa,CAAC,MAAkC,EAAE,UAA+B,EAAE,MAAoC,EAAE,IAAsC,EAAE,QAAiB;IAC/L,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,EAAC,GAAG,KAAK,EAAE,MAAM,EAAE,EAAC,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAC,EAAC,EAAC,CAAC;IACjI,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC;QAClC,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,kBAAkB,EAAE,EAAE,QAAQ,EAAE,QAAQ;QACpJ,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;KACpH,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,SAAoB,EAAE,GAAW,EAAE,UAA2D,EAAE;IACpH,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK,EAAE,CAAC,CAAC;IACvL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAID,MAAM,MAAM,GAA0D;IACpE,KAAK,CAAC,6BAA6B,CAAC,MAAM;QACxC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACnE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,WAAW,eAAe,0BAA0B,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9H,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YACxE,IAAI,IAAI,KAAK,UAAU,CAAC,KAAK;gBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,MAAM,6BAA6B,eAAe,EAAE,CAAC,CAAC;YACrH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,WAAW,eAAe,0BAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,eAAe,0BAA0B,EAAE,CAAC,CAAC;YACzN,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,UAAU,CAAC,KAAK;gBAAE,QAAQ,CAAC,IAAI,CAAC,yBAAyB,UAAU,CAAC,MAAM,6BAA6B,eAAe,EAAE,CAAC,CAAC;QACjM,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,MAAM;QACzC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAClD,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACpC,MAAM,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;gBAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;gBAC9F,IAAI,OAAO,CAAC,MAAM;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,gBAAgB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,MAAM;QACzC,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC;YACnC,CAAC,WAAW,eAAe,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,eAAe,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAClH,CAAC,WAAW,eAAe,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;SAC9D,CAAC,CAAC,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAW,CAAC,EAAE,WAAW,eAAe,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACxH,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,MAAM,YAAY,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG;YAAE,QAAQ,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;aACvH,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,WAAW,eAAe,IAAI;YAAE,QAAQ,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACxJ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,QAAQ,CAAC,MAAM,wBAAwB,CAAC,CAAC;QAClH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,MAAM;QACxC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAuE;YAChF,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,WAAW,eAAe,0BAA0B,EAAE,EAAE,EAAE,WAAW,YAAY,QAAQ,EAAE;YAClJ,EAAE,IAAI,EAAE,oCAAoC,EAAE,IAAI,EAAE,WAAW,YAAY,0BAA0B,EAAE,EAAE,EAAE,WAAW,YAAY,QAAQ,EAAE;YAC5I,EAAE,IAAI,EAAE,4CAA4C,EAAE,IAAI,EAAE,WAAW,eAAe,0BAA0B,EAAE,EAAE,EAAE,WAAW,YAAY,0BAA0B,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE;YAC/L,EAAE,IAAI,EAAE,8CAA8C,EAAE,IAAI,EAAE,WAAW,YAAY,0BAA0B,EAAE,EAAE,EAAE,WAAW,eAAe,IAAI,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE;SAC/K,CAAC;QACF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,EAAE,CAAC;YACvC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;gBACtC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE;oBAChE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;oBAChE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;iBACpC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACzD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;gBACvF,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,mBAAmB,OAAO,CAAC,OAAO,eAAe,CAAC,CAAC;gBAC7G,IAAI,OAAO;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,uBAAuB,MAAM,EAAE,CAAC,CAAC;gBACjF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,cAAc,IAAI,EAAE,CAAC,CAAC;YACjH,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,MAAM;QACpC,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,wEAAwE;QACxE,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC;YACnC,CAAC,WAAW,eAAe,0BAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;YACnF,CAAC,WAAW,eAAe,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE;SACnE,CAAC,CAAC,CAAC;QACJ,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAW,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,WAAW,eAAe,0BAA0B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACxI,IAAI,OAAO,YAAY,KAAK,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,KAAK,WAAW;YAAE,QAAQ,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;QACtK,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,WAAW,eAAe,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACvH,IAAI,QAAQ,YAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI;YAAE,QAAQ,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACzK,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,UAAW,EAAE,EAAE,CAAC,WAAW,eAAe,0BAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,eAAe,0BAA0B,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3N,IAAI,OAAO,CAAC,OAAO,KAAK,WAAW;YAAE,QAAQ,CAAC,IAAI,CAAC,mCAAmC,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;QACxH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,MAAM;QACrC,MAAM,CAAC,UAAU,CAAC,GAAG,WAAW,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,eAAe,0BAA0B,EAAE,WAAW,YAAY,0BAA0B,CAAC,EAAE,CAAC;YAC7H,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;gBACjC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,UAAW,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpJ,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACjC,OAAO,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC;gBACvG,CAAC,CAAC,CAAC,MAAM,CAAC;gBACV,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,EAAE,mBAAmB,OAAO,CAAC,OAAO,eAAe,CAAC,CAAC;gBACpH,IAAI,OAAO;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,EAAE,KAAK,OAAO,wBAAwB,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,4DAA4D;AAC5D,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,MAAkC;IAC9E,MAAM,IAAI,GAAqB,EAAE,CAAC;IAClC,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7G,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACjH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * The fixture harness: replay a profile's scripted provider answers through the engine, map and
3
+ * write each committed page through record-overlay over a MemoryBackend bundle, and check each
4
+ * required scenario's outcome rule. The rules are profile-independent, so one list holds every
5
+ * profile, generic or extension, to the same behaviour.
6
+ */
7
+ import { type Connector } from "../connectors.js";
8
+ import type { OverlayReceipt, RecordChange } from "../record-overlay/types.js";
9
+ import { type SourceState } from "../source-engine/machine-state.js";
10
+ import { type FetchIdentity } from "../source-engine/robots.js";
11
+ import type { ObserveSourceOptions, SourceBudget, SourceProfile, SourceRunReceipt } from "../source-engine/types.js";
12
+ import type { ConceptId, Frontmatter, OkfDocument } from "../types.js";
13
+ import { type PeerRequest, type ScriptedExchange, type TransportCredential } from "./peer.js";
14
+ /** Every profile's fixture includes these; a name may add a variant after a dot (`cursor.resume.page-number`). */
15
+ export declare const REQUIRED_SCENARIOS: readonly ["errors.auth", "errors.rate-limit", "errors.server", "errors.malformed", "page.incomplete", "cursor.resume", "cursor.hostile", "complete.disappear", "fields.owned-conflict", "fields.unmapped", "fields.null", "identity.missing", "hosts.redirect", "hosts.undeclared"];
16
+ export type RequiredScenario = (typeof REQUIRED_SCENARIOS)[number];
17
+ /** The required scenario a name counts toward, or undefined. */
18
+ export declare function scenarioBase(name: string): RequiredScenario | undefined;
19
+ /** Required scenarios no name covers. */
20
+ export declare function missingScenarios(names: Iterable<string>): RequiredScenario[];
21
+ export interface SourceFixture {
22
+ connector: Connector;
23
+ profile: SourceProfile<any, any>;
24
+ spec: unknown;
25
+ /**
26
+ * The bundle's starting documents: Conventions for the target Kind, `Signal` and `Source Feed`,
27
+ * the Source Feed, and any overlay documents.
28
+ */
29
+ documents: readonly OkfDocument[];
30
+ feed: ConceptId;
31
+ identity?: FetchIdentity;
32
+ credential?: TransportCredential;
33
+ /** Explicit fixture-only host assertion; never inferred from a declaration or used for live consent. */
34
+ readPolicyApproval?: ObserveSourceOptions["readPolicyApproval"];
35
+ }
36
+ export interface SourceRunScript {
37
+ mode?: "incremental" | "complete";
38
+ /** The run's observation time; runs default to one hour apart. */
39
+ at?: string;
40
+ exchanges: readonly ScriptedExchange[];
41
+ /** Editor edits applied before the run. */
42
+ edits?: ReadonlyArray<{
43
+ id: ConceptId;
44
+ set: Record<string, unknown>;
45
+ }>;
46
+ budget?: Partial<SourceBudget>;
47
+ }
48
+ export interface SourceScenario {
49
+ name: string;
50
+ /** Replaces the fixture's spec for this scenario. */
51
+ spec?: unknown;
52
+ runs: readonly SourceRunScript[];
53
+ }
54
+ export interface ScenarioRun {
55
+ receipt: SourceRunReceipt;
56
+ /** Every change a commit carried, replays of pending changes included. */
57
+ changes: RecordChange[];
58
+ /** One record-overlay receipt per committed page. */
59
+ overlay: OverlayReceipt[];
60
+ /** The run's findings, written. */
61
+ findings: OverlayReceipt;
62
+ /** Requests that reached the provider. */
63
+ received: PeerRequest[];
64
+ unscripted: string[];
65
+ unused: ScriptedExchange[];
66
+ stateBefore: SourceState | null;
67
+ state: SourceState | null;
68
+ /** Every document's frontmatter after the run. */
69
+ documents: Record<string, Frontmatter>;
70
+ }
71
+ export interface ScenarioResult {
72
+ name: string;
73
+ base: RequiredScenario | undefined;
74
+ /** The declared hosts the scenario's spec may reach. */
75
+ hosts: string[];
76
+ threshold: number;
77
+ edits: Array<{
78
+ run: number;
79
+ id: ConceptId;
80
+ set: Record<string, unknown>;
81
+ }>;
82
+ runs: ScenarioRun[];
83
+ }
84
+ /** Run one scenario's runs in order over one fresh bundle and one machine state. */
85
+ export declare function runSourceScenario(fixture: SourceFixture, scenario: SourceScenario): Promise<ScenarioResult>;
86
+ /**
87
+ * The problems with one scenario's result: its required outcome rule, plus for every scenario no
88
+ * request to a host outside the declared set and no request the fixture did not script.
89
+ */
90
+ export declare function checkScenario(result: ScenarioResult): string[];
91
+ /** Run every scenario of a fixture, check each, and list the required scenarios it lacks. */
92
+ export declare function runSourceFixture(fixture: SourceFixture, scenarios: readonly SourceScenario[]): Promise<{
93
+ results: ScenarioResult[];
94
+ problems: Record<string, string[]>;
95
+ missing: RequiredScenario[];
96
+ }>;
97
+ //# sourceMappingURL=fixture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../../src/source-harness/fixture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,276 @@
1
+ /**
2
+ * The fixture harness: replay a profile's scripted provider answers through the engine, map and
3
+ * write each committed page through record-overlay over a MemoryBackend bundle, and check each
4
+ * required scenario's outcome rule. The rules are profile-independent, so one list holds every
5
+ * profile, generic or extension, to the same behaviour.
6
+ */
7
+ import { bindSourceFeed, credentialHosts } from "../connectors.js";
8
+ import { mutateDocument } from "../document-mutation.js";
9
+ import { loadKinds } from "../kinds-load.js";
10
+ import { MemoryBackend } from "../memory-backend.js";
11
+ import { buildSourceIndex } from "../record-overlay/source-index.js";
12
+ import { createSourceOverlayAdapter } from "../source-engine/overlay.js";
13
+ import { MemoryMachineState } from "../source-engine/machine-state.js";
14
+ import { observeSource } from "../source-engine/observe.js";
15
+ import { fetchIdentity } from "../source-engine/robots.js";
16
+ import { ExchangePeer, peerTransport } from "./peer.js";
17
+ /** Every profile's fixture includes these; a name may add a variant after a dot (`cursor.resume.page-number`). */
18
+ export const REQUIRED_SCENARIOS = Object.freeze([
19
+ "errors.auth",
20
+ "errors.rate-limit",
21
+ "errors.server",
22
+ "errors.malformed",
23
+ "page.incomplete",
24
+ "cursor.resume",
25
+ "cursor.hostile",
26
+ "complete.disappear",
27
+ "fields.owned-conflict",
28
+ "fields.unmapped",
29
+ "fields.null",
30
+ "identity.missing",
31
+ "hosts.redirect",
32
+ "hosts.undeclared",
33
+ ]);
34
+ /** The required scenario a name counts toward, or undefined. */
35
+ export function scenarioBase(name) {
36
+ return REQUIRED_SCENARIOS.find((base) => name === base || name.startsWith(`${base}.`));
37
+ }
38
+ /** Required scenarios no name covers. */
39
+ export function missingScenarios(names) {
40
+ const covered = new Set();
41
+ for (const name of names) {
42
+ const base = scenarioBase(name);
43
+ if (base)
44
+ covered.add(base);
45
+ }
46
+ return REQUIRED_SCENARIOS.filter((base) => !covered.has(base));
47
+ }
48
+ const FIXTURE_IDENTITY = fetchIdentity("SuperbeeSourceFixture/1 (+https://superbee.example.org/source-fixture)");
49
+ const SOURCE_ACTOR = "process:source-fixture";
50
+ const EDITOR = "human:fixture-editor";
51
+ const START = Date.parse("2026-01-01T00:00:00.000Z");
52
+ function declaredHosts(fixture, spec, bound) {
53
+ if (bound.source.request?.read_policy !== undefined)
54
+ return [bound.source.request.host];
55
+ try {
56
+ const checked = fixture.profile.validateSpec(spec);
57
+ if (!checked.ok)
58
+ return [];
59
+ const reach = new Set([...credentialHosts(fixture.connector.auth), ...fixture.connector.domains]);
60
+ return [...new Set(fixture.profile.hostsFor(checked.spec, bound))].filter((host) => reach.has(host)).sort();
61
+ }
62
+ catch {
63
+ return [];
64
+ }
65
+ }
66
+ /** Run one scenario's runs in order over one fresh bundle and one machine state. */
67
+ export async function runSourceScenario(fixture, scenario) {
68
+ const backend = new MemoryBackend();
69
+ await backend.writeReserved("", "index.md", "---\nokf_version: '0.2'\n---\n# Source fixture\n");
70
+ const bundle = { root: "memory://source-fixture", backend };
71
+ for (const doc of fixture.documents)
72
+ await backend.write(doc.id, { id: doc.id, frontmatter: structuredClone(doc.frontmatter), body: doc.body });
73
+ const registry = await loadKinds(bundle);
74
+ const overlay = { bundle, registry, okfVersion: "0.2" };
75
+ const bound = bindSourceFeed(fixture.connector, (await backend.read(fixture.feed)).doc, registry, { okfVersion: "0.2" });
76
+ const state = new MemoryMachineState();
77
+ let accepted = { v: 1, entries: [] };
78
+ const spec = scenario.spec !== undefined ? scenario.spec : fixture.spec;
79
+ const slug = `${fixture.feed.split("/").pop().replace(/[^a-z0-9-]+/gi, "-").toLowerCase()}-source`;
80
+ const result = {
81
+ name: scenario.name, base: scenarioBase(scenario.name), hosts: declaredHosts(fixture, spec, bound),
82
+ threshold: bound.policy.missing_threshold ?? 2, edits: [], runs: [],
83
+ };
84
+ for (const [index, script] of scenario.runs.entries()) {
85
+ for (const edit of script.edits ?? []) {
86
+ result.edits.push({ run: index, id: edit.id, set: { ...edit.set } });
87
+ await mutateDocument({
88
+ bundle, id: edit.id, mode: "patch", registry, strict: false, actor: EDITOR,
89
+ buildCandidate: (existing) => ({ frontmatter: { ...existing.frontmatter, ...edit.set }, body: existing.body }),
90
+ });
91
+ }
92
+ const controller = new AbortController();
93
+ const peer = new ExchangePeer(script.exchanges, { onHang: () => controller.abort() });
94
+ const at = script.at ?? new Date(START + index * 3_600_000).toISOString();
95
+ const stateBefore = (await state.read(fixture.feed))?.state ?? null;
96
+ const changes = [];
97
+ const overlayReceipts = [];
98
+ const adapter = createSourceOverlayAdapter({ content: overlay, policy: bound.policy, actor: SOURCE_ACTOR,
99
+ overlays: await buildSourceIndex(bundle), accepted, slug });
100
+ if (stateBefore) {
101
+ await adapter.reconcile(stateBefore, at);
102
+ accepted = adapter.stagedSnapshot();
103
+ adapter.consume();
104
+ }
105
+ const jointState = {
106
+ read: state.read.bind(state),
107
+ async write(key, value, expected) {
108
+ try {
109
+ const version = await state.write(key, value, expected);
110
+ accepted = adapter.stagedSnapshot() ?? adapter.snapshot();
111
+ adapter.consume();
112
+ return version;
113
+ }
114
+ catch (error) {
115
+ adapter.discard();
116
+ throw error;
117
+ }
118
+ },
119
+ };
120
+ const receipt = await observeSource({
121
+ connector: fixture.connector, bound, profile: fixture.profile, spec, state: jointState, identity: fixture.identity ?? FIXTURE_IDENTITY,
122
+ transport: peerTransport(peer, fixture.credential ? { credential: fixture.credential } : {}),
123
+ readPolicyApproval: fixture.readPolicyApproval,
124
+ mode: script.mode ?? "incremental", signal: controller.signal, now: () => new Date(at),
125
+ ...(script.budget ? { budget: script.budget } : {}),
126
+ commit: async (page) => {
127
+ const applied = await adapter.commit(page);
128
+ changes.push(...page.changes);
129
+ overlayReceipts.push(applied.receipt);
130
+ return applied;
131
+ },
132
+ });
133
+ const findings = await adapter.applyFindings(receipt.findings, at);
134
+ const documents = {};
135
+ for (const id of await backend.list())
136
+ documents[id] = (await backend.read(id)).doc.frontmatter;
137
+ result.runs.push({
138
+ receipt, changes, overlay: overlayReceipts, findings, received: [...peer.received], unscripted: [...peer.unscripted], unused: peer.unused(),
139
+ stateBefore, state: (await state.read(fixture.feed))?.state ?? null, documents,
140
+ });
141
+ }
142
+ return result;
143
+ }
144
+ const json = (value) => JSON.stringify(value ?? null);
145
+ const outcomeFindings = (run) => run.receipt.findings.filter((finding) => finding.key.startsWith("source:"));
146
+ const hasCode = (run, ...codes) => run.receipt.diagnostics.some((d) => codes.includes(d.code));
147
+ const writesNothing = (run) => run.receipt.pages === 0 && run.changes.length === 0;
148
+ const cursorKept = (run) => json(run.state?.cursor) === json(run.stateBefore?.cursor);
149
+ const hostOf = (url) => {
150
+ try {
151
+ return new URL(url).hostname;
152
+ }
153
+ catch {
154
+ return undefined;
155
+ }
156
+ };
157
+ const reachedHost = (run, url) => run.received.some((request) => hostOf(request.url) === hostOf(url));
158
+ /** At least one run satisfies `predicate`, or the scenario fails with `missing`. */
159
+ function some(result, missing, predicate) {
160
+ return result.runs.some(predicate) ? [] : [missing];
161
+ }
162
+ const CHECKS = {
163
+ "errors.auth": (r) => some(r, "no run ends credential_refused with nothing written, no retry, the cursor kept and one finding", (run) => run.receipt.outcome === "credential_refused" && !run.receipt.retry && writesNothing(run) && cursorKept(run) && outcomeFindings(run).length === 1),
164
+ "errors.rate-limit": (r) => some(r, "no run commits a page and then ends deferred on 429 with a Retry-After, the cursor at its last committed page", (run) => run.receipt.outcome === "deferred" && run.receipt.status === 429 && run.receipt.pages >= 1 && run.receipt.retry_after !== undefined
165
+ && run.state?.open === true && json(run.state.cursor) === json(run.receipt.cursor)),
166
+ "errors.server": (r) => some(r, "no run ends provider_unavailable on a 5xx with nothing written and one finding", (run) => run.receipt.outcome === "provider_unavailable" && (run.receipt.status ?? 0) >= 500 && writesNothing(run) && outcomeFindings(run).length === 1),
167
+ "errors.malformed": (r) => [
168
+ ...some(r, "no run ends unsupported_content with nothing written and one finding", (run) => run.receipt.outcome === "unsupported_content" && writesNothing(run) && outcomeFindings(run).length === 1),
169
+ ...some(r, "no run ends too_large with nothing written and one finding", (run) => run.receipt.outcome === "too_large" && writesNothing(run) && outcomeFindings(run).length === 1),
170
+ ],
171
+ "page.incomplete": (r) => some(r, "no run commits a page, stops before the pass ends and stores the cursor of its last committed page as a partial observation", (run) => run.receipt.pages >= 1 && !run.receipt.pass.ended && !run.receipt.pass.complete && run.receipt.outcome !== "observed"
172
+ && run.state?.open === true && json(run.state.cursor) === json(run.receipt.cursor) && run.receipt.changes.disappeared === 0),
173
+ "cursor.resume": (r) => {
174
+ const resumed = r.runs.map((run, index) => ({ run, index })).filter(({ run, index }) => index > 0 && run.receipt.pass.resumed && r.runs[index - 1].state?.open === true);
175
+ if (!resumed.length)
176
+ return ["no run resumes a pass an earlier run left open"];
177
+ const problems = [];
178
+ for (const { run, index } of resumed) {
179
+ if (run.receipt.pass.complete)
180
+ problems.push(`run ${index + 1} resumed a pass and counted it complete`);
181
+ const known = run.stateBefore?.records ?? {};
182
+ for (const change of run.changes) {
183
+ if (change.change_kind === "new" && Object.hasOwn(known, change.external_id) && !known[change.external_id].gone)
184
+ problems.push(`run ${index + 1} reported ${change.external_id} as new after resuming`);
185
+ if (change.change_kind === "changed" && known[change.external_id]?.digest === change.content_digest)
186
+ problems.push(`run ${index + 1} reported an overlap record ${change.external_id} as changed`);
187
+ }
188
+ }
189
+ return problems;
190
+ },
191
+ "cursor.hostile": (r) => some(r, "no run refuses a provider-steered request (a host, redirect, address, scheme or url refusal) after a committed page", (run) => run.receipt.pages >= 1 && run.receipt.outcome === "refused"
192
+ && run.receipt.requests.some((row) => row.purpose === "page" && row.refused !== undefined && /^(host|redirect|address|scheme|url)_/.test(row.refused))),
193
+ "complete.disappear": (r) => {
194
+ const problems = [];
195
+ let disappeared = 0;
196
+ let completeSeen = false;
197
+ let partialBetween = false;
198
+ r.runs.forEach((run, index) => {
199
+ const before = run.stateBefore?.records ?? {};
200
+ const after = run.state?.records ?? {};
201
+ for (const [id, entry] of Object.entries(after)) {
202
+ const grew = entry.missing - (before[id]?.missing ?? 0);
203
+ if (!run.receipt.pass.complete && grew > 0)
204
+ problems.push(`run ${index + 1} is not complete and counted ${id} missing`);
205
+ if (grew > 1)
206
+ problems.push(`run ${index + 1} counted ${id} missing more than once`);
207
+ }
208
+ for (const change of run.changes.filter((c) => c.change_kind === "disappeared")) {
209
+ disappeared += 1;
210
+ if (!run.receipt.pass.complete)
211
+ problems.push(`run ${index + 1} reported ${change.external_id} disappeared without a complete observation`);
212
+ if (change.missing_count !== r.threshold)
213
+ problems.push(`${change.external_id} disappeared after ${change.missing_count} complete observations, not ${r.threshold}`);
214
+ }
215
+ if (run.receipt.pass.complete)
216
+ completeSeen = true;
217
+ else if (completeSeen && run.receipt.pages >= 1)
218
+ partialBetween = true;
219
+ });
220
+ if (!disappeared)
221
+ problems.push("no record disappeared");
222
+ if (!partialBetween)
223
+ problems.push("no partial or resumed pass ran between complete observations");
224
+ return problems;
225
+ },
226
+ "fields.owned-conflict": (r) => some(r, "no run refuses an owned field the editor changed, keeps the editor's value and raises a Signal", (run, index) => run.overlay.some((receipt) => receipt.refusals.some((refusal) => refusal.code === "OVERLAY_DOC_CONFLICT" && refusal.target !== undefined && refusal.field !== undefined
227
+ && r.edits.some((edit) => edit.run <= index && edit.id === refusal.target && Object.hasOwn(edit.set, refusal.field) && json(run.documents[refusal.target]?.[refusal.field]) === json(edit.set[refusal.field])))
228
+ && receipt.results.some((step) => (step.op === "create-signal" || step.op === "collapse-signal") && step.outcome === "applied"))),
229
+ "fields.unmapped": (r) => some(r, "no run keeps or refuses a value outside the values table with a mapping finding and no write of that field", (run) => run.receipt.diagnostics.some((d) => (d.code === "VALUE_UNMAPPED" || d.code === "RECORD_REFUSED")
230
+ && run.receipt.findings.some((f) => f.key.startsWith("mapping:") && f.facts?.code === d.code)
231
+ && !run.changes.some((c) => c.external_id === d.external_id && c.changed_fields.includes(d.field)))),
232
+ "fields.null": (r) => [
233
+ ...some(r, "no committed change removes an optional field the provider sent empty", (run) => run.changes.some((c) => c.before !== null && c.after !== null && Object.keys(c.before).some((field) => !Object.hasOwn(c.after, field) && c.changed_fields.includes(field)))),
234
+ ...some(r, "no run keeps a required field the provider sent empty (VALUE_MISSING)", (run) => hasCode(run, "VALUE_MISSING")),
235
+ ],
236
+ "identity.missing": (r) => some(r, "no run skips a record without an identity and raises a finding", (run) => hasCode(run, "IDENTITY_MISSING") && run.receipt.findings.some((f) => f.key.endsWith(":IDENTITY_MISSING"))),
237
+ "hosts.redirect": (r) => some(r, "no run refuses a redirect to another host before requesting it", (run) => run.receipt.outcome === "refused" && (run.receipt.reason === "host_refused" || run.receipt.reason === "redirect_refused")
238
+ && run.receipt.requests.some((row) => row.refused === run.receipt.reason && !reachedHost(run, row.url))),
239
+ "hosts.undeclared": (r) => some(r, "no run refuses an undeclared host or method with no request to it", (run) => run.receipt.outcome === "refused" && ((run.receipt.reason === "hosts_undeclared" && run.received.length === 0)
240
+ || (run.receipt.reason === "host_refused" && run.receipt.requests.some((row) => row.refused === "host_refused" && !reachedHost(run, row.url)))
241
+ || (run.receipt.reason === "method_refused" && run.receipt.requests.some((row) => row.refused === "method_refused" && !run.received.some((request) => request.method === row.method && request.url === row.url))))),
242
+ };
243
+ /**
244
+ * The problems with one scenario's result: its required outcome rule, plus for every scenario no
245
+ * request to a host outside the declared set and no request the fixture did not script.
246
+ */
247
+ export function checkScenario(result) {
248
+ const problems = [];
249
+ const allowed = new Set(result.hosts);
250
+ result.runs.forEach((run, index) => {
251
+ for (const request of run.received) {
252
+ const host = new URL(request.url).hostname;
253
+ if (!allowed.has(host))
254
+ problems.push(`run ${index + 1} reached undeclared host ${host}`);
255
+ }
256
+ for (const request of run.unscripted)
257
+ problems.push(`run ${index + 1} made an unscripted request: ${request}`);
258
+ });
259
+ if (result.base)
260
+ problems.push(...CHECKS[result.base](result));
261
+ return problems;
262
+ }
263
+ /** Run every scenario of a fixture, check each, and list the required scenarios it lacks. */
264
+ export async function runSourceFixture(fixture, scenarios) {
265
+ const results = [];
266
+ const problems = {};
267
+ for (const scenario of scenarios) {
268
+ const result = await runSourceScenario(fixture, scenario);
269
+ results.push(result);
270
+ const found = checkScenario(result);
271
+ if (found.length)
272
+ problems[scenario.name] = found;
273
+ }
274
+ return { results, problems, missing: missingScenarios(scenarios.map((s) => s.name)) };
275
+ }
276
+ //# sourceMappingURL=fixture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixture.js","sourceRoot":"","sources":["../../src/source-harness/fixture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * `@superbee/core/source-harness`: how a profile and a transport prove the source engine's rules
3
+ * offline.
4
+ *
5
+ * {@link runSourceScenario} replays a profile's scripted provider answers through
6
+ * `observeSource`, writing each committed page through record-overlay over a MemoryBackend
7
+ * bundle, and {@link checkScenario} holds the result to the required scenario's outcome rule
8
+ * ({@link REQUIRED_SCENARIOS}). {@link runTransportConformance} is the suite every transport passes
9
+ * against a scripted peer: the credential only to its host (a custom header included), redirects
10
+ * returned unfollowed, a body over the bound refused, and behind the engine a cross-host or
11
+ * private-address redirect that reaches nothing. {@link peerTransport} is a memory transport that
12
+ * passes it. Results are rows, not assertions, so any test runner can use them.
13
+ *
14
+ * Storage-neutral: no Node globals or builtins, and nothing here calls `fetch`.
15
+ */
16
+ export { ExchangePeer, peerTransport, ScriptedPeer } from "./peer.js";
17
+ export type { PeerRequest, PeerResponse, ScriptedExchange, TransportCredential } from "./peer.js";
18
+ export { CONFORMANCE_SCENARIOS, runTransportConformance } from "./conformance.js";
19
+ export type { ConformanceRow, TransportConformanceTarget } from "./conformance.js";
20
+ export { checkScenario, missingScenarios, REQUIRED_SCENARIOS, runSourceFixture, runSourceScenario, scenarioBase } from "./fixture.js";
21
+ export type { RequiredScenario, ScenarioResult, ScenarioRun, SourceFixture, SourceRunScript, SourceScenario } from "./fixture.js";
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/source-harness/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACtE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAClF,YAAY,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACtI,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * `@superbee/core/source-harness`: how a profile and a transport prove the source engine's rules
3
+ * offline.
4
+ *
5
+ * {@link runSourceScenario} replays a profile's scripted provider answers through
6
+ * `observeSource`, writing each committed page through record-overlay over a MemoryBackend
7
+ * bundle, and {@link checkScenario} holds the result to the required scenario's outcome rule
8
+ * ({@link REQUIRED_SCENARIOS}). {@link runTransportConformance} is the suite every transport passes
9
+ * against a scripted peer: the credential only to its host (a custom header included), redirects
10
+ * returned unfollowed, a body over the bound refused, and behind the engine a cross-host or
11
+ * private-address redirect that reaches nothing. {@link peerTransport} is a memory transport that
12
+ * passes it. Results are rows, not assertions, so any test runner can use them.
13
+ *
14
+ * Storage-neutral: no Node globals or builtins, and nothing here calls `fetch`.
15
+ */
16
+ export { ExchangePeer, peerTransport, ScriptedPeer } from "./peer.js";
17
+ export { CONFORMANCE_SCENARIOS, runTransportConformance } from "./conformance.js";
18
+ export { checkScenario, missingScenarios, REQUIRED_SCENARIOS, runSourceFixture, runSourceScenario, scenarioBase } from "./fixture.js";
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/source-harness/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEtE,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * A scripted provider and the memory transport that reaches it. The peer stands in for the
3
+ * network: it answers every request from a script and records exactly what arrived, headers
4
+ * included, so a test can see what a transport sent. The memory transport honours the transport
5
+ * contract (no redirect following, a refused rather than truncated body over the bound, the
6
+ * credential only toward its hosts over https), so it passes the conformance suite.
7
+ */
8
+ import type { HttpMethod, Transport } from "../source-engine/types.js";
9
+ /** A request as it reached the provider. */
10
+ export interface PeerRequest {
11
+ url: string;
12
+ method: HttpMethod;
13
+ headers: Record<string, string>;
14
+ body?: string;
15
+ }
16
+ export type PeerResponse = {
17
+ status: number;
18
+ headers?: Readonly<Record<string, string>>;
19
+ body?: string;
20
+ }
21
+ /** Never answers: the request waits for the run's deadline. */
22
+ | {
23
+ hang: true;
24
+ }
25
+ /** The connection fails. */
26
+ | {
27
+ fail: true;
28
+ };
29
+ export interface ScriptedExchange {
30
+ request: {
31
+ method?: HttpMethod;
32
+ url: string;
33
+ };
34
+ response: PeerResponse;
35
+ }
36
+ /** The credential a transport under test holds: a header sent only toward `hosts` over https. */
37
+ export interface TransportCredential {
38
+ hosts: readonly string[];
39
+ header: string;
40
+ value: string;
41
+ }
42
+ export declare class ScriptedPeer {
43
+ /** Every request that reached the provider, in order. */
44
+ readonly received: PeerRequest[];
45
+ private readonly handler;
46
+ private readonly onHang;
47
+ constructor(handler: (request: PeerRequest) => PeerResponse, options?: {
48
+ onHang?: () => void;
49
+ });
50
+ answer(request: PeerRequest): PeerResponse;
51
+ /** Requests received for one hostname. */
52
+ to(hostname: string): PeerRequest[];
53
+ }
54
+ /** A peer answering from exchanges, each used once, matched on method and URL in order. */
55
+ export declare class ExchangePeer extends ScriptedPeer {
56
+ /** Requests no exchange matched (answered 404); robots.txt is answered 404 without being listed. */
57
+ readonly unscripted: string[];
58
+ private readonly pending;
59
+ constructor(exchanges: readonly ScriptedExchange[], options?: {
60
+ onHang?: () => void;
61
+ });
62
+ /** Exchanges no request used. */
63
+ unused(): ScriptedExchange[];
64
+ }
65
+ /**
66
+ * A transport over a scripted peer. It adds `credential` only when the engine marks the request
67
+ * as toward a credential host and the URL itself is https on the default port with a host exactly
68
+ * one of the credential's hosts. It returns redirects unfollowed, refuses a body over `maxBytes`
69
+ * and rejects when the request's signal aborts.
70
+ */
71
+ export declare function peerTransport(peer: ScriptedPeer, options?: {
72
+ credential?: TransportCredential;
73
+ }): Transport;
74
+ //# sourceMappingURL=peer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../src/source-harness/peer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAmB,MAAM,2BAA2B,CAAC;AAExF,4CAA4C;AAC5C,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AAC/E,+DAA+D;GAC7D;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE;AAChB,4BAA4B;GAC1B;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAEnB,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED,iGAAiG;AACjG,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,YAAY;IACvB,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAM;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;gBAEtC,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,YAAY,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;KAAO;IAKlG,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY;IAQ1C,0CAA0C;IAC1C,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;CAGpC;AAYD,2FAA2F;AAC3F,qBAAa,YAAa,SAAQ,YAAY;IAC5C,oGAAoG;IACpG,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAEjC,SAAS,EAAE,SAAS,gBAAgB,EAAE,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;KAAO;IAgBzF,iCAAiC;IACjC,MAAM,IAAI,gBAAgB,EAAE;CAG7B;AAMD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,mBAAmB,CAAA;CAAO,GAAG,SAAS,CA6B/G"}