@jterrazz/test 15.3.0 → 16.1.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 (222) hide show
  1. package/README.md +120 -427
  2. package/dist/appium.adapter.js +71 -15
  3. package/dist/artifacts.js +25 -1735
  4. package/dist/browser/index.js +304 -233
  5. package/dist/checker.d.ts +1 -1
  6. package/dist/checker.js +1103 -97
  7. package/dist/fixtures.js +110 -0
  8. package/dist/index.d.ts +956 -971
  9. package/dist/index.js +2159 -2281
  10. package/dist/literate.js +1747 -0
  11. package/dist/match.js +625 -84
  12. package/dist/oxlint.cjs +3585 -1480
  13. package/dist/oxlint.d.cts +60 -48
  14. package/dist/oxlint.d.ts +60 -48
  15. package/dist/oxlint.js +3585 -1480
  16. package/dist/playwright.adapter.js +51 -8
  17. package/dist/{intercept.js → server.js} +2 -2
  18. package/dist/stream.js +6 -6
  19. package/dist/{ambiguity.js → substring-warning.js} +106 -7
  20. package/dist/vitest.d.ts +67 -48
  21. package/dist/vitest.js +229 -93
  22. package/docs/01-architecture.md +95 -0
  23. package/docs/02-developing.md +351 -0
  24. package/docs/03-testing.md +495 -0
  25. package/docs/04-operating.md +101 -0
  26. package/docs/05-module-tests.md +152 -0
  27. package/docs/06-integration.md +180 -0
  28. package/docs/07-component.md +246 -0
  29. package/docs/08-website.md +404 -0
  30. package/docs/09-mobile.md +270 -0
  31. package/docs/10-api.md +264 -0
  32. package/docs/11-jobs.md +157 -0
  33. package/docs/12-cli.md +677 -0
  34. package/docs/13-elements.md +242 -0
  35. package/docs/14-assertions.md +314 -0
  36. package/docs/15-tokens.md +253 -0
  37. package/docs/16-contracts.md +438 -0
  38. package/docs/17-services.md +188 -0
  39. package/docs/18-conventions.md +305 -0
  40. package/docs/19-linting.md +510 -0
  41. package/docs/README.md +36 -0
  42. package/docs/decisions/001-v9-conventions-on-three-channels.md +50 -0
  43. package/docs/decisions/002-the-statique-channel-holds-only-what-upstream-does-not.md +49 -0
  44. package/docs/decisions/003-a-rendered-component-is-a-facet-on-vitest-browser-mode.md +84 -0
  45. package/docs/decisions/004-a-module-against-real-services-or-a-golden-is-the-integration-facet.md +81 -0
  46. package/docs/decisions/005-the-doubles-ladder-is-closed.md +86 -0
  47. package/docs/decisions/006-the-catalogue-reaches-a-file-by-its-role.md +245 -0
  48. package/docs/decisions/007-compose-mode-leaves-the-package.md +53 -0
  49. package/docs/decisions/008-vitest-5-node-24-and-the-native-seams-as-optional-peers.md +75 -0
  50. package/docs/decisions/_template.md +22 -0
  51. package/docs/reference/classes/Matcher.md +120 -0
  52. package/docs/reference/classes/ProcessHandle.md +368 -0
  53. package/docs/reference/functions/defineContract.md +39 -0
  54. package/docs/reference/functions/defineContracts.md +36 -0
  55. package/docs/reference/functions/disabled.md +28 -0
  56. package/docs/reference/functions/enabled.md +20 -0
  57. package/docs/reference/functions/focused.md +26 -0
  58. package/docs/reference/functions/mockOf.md +79 -0
  59. package/docs/reference/functions/postgres.md +31 -0
  60. package/docs/reference/functions/process.md +33 -0
  61. package/docs/reference/functions/redis.md +28 -0
  62. package/docs/reference/functions/required.md +41 -0
  63. package/docs/reference/functions/selected.md +26 -0
  64. package/docs/reference/functions/sqlite.md +33 -0
  65. package/docs/reference/functions/testId.md +20 -0
  66. package/docs/reference/functions/text.md +40 -0
  67. package/docs/reference/functions/valued.md +28 -0
  68. package/docs/reference/functions/waitUntil.md +46 -0
  69. package/docs/reference/functions/within.md +29 -0
  70. package/docs/reference/index.md +196 -0
  71. package/docs/reference/interfaces/BaseResult.md +87 -0
  72. package/docs/reference/interfaces/CallResult.md +160 -0
  73. package/docs/reference/interfaces/CaptureScope.md +82 -0
  74. package/docs/reference/interfaces/CliResult.md +253 -0
  75. package/docs/reference/interfaces/ContainerAccessor.md +166 -0
  76. package/docs/reference/interfaces/DirectoryAccessor.md +33 -0
  77. package/docs/reference/interfaces/FetchResult.md +180 -0
  78. package/docs/reference/interfaces/FilesystemAccessor.md +46 -0
  79. package/docs/reference/interfaces/HttpResult.md +126 -0
  80. package/docs/reference/interfaces/JsonAccessor.md +46 -0
  81. package/docs/reference/interfaces/PageResult.md +356 -0
  82. package/docs/reference/interfaces/RenderResult.md +72 -0
  83. package/docs/reference/interfaces/RenderedText.md +110 -0
  84. package/docs/reference/interfaces/ResponseAccessor.md +47 -0
  85. package/docs/reference/interfaces/ScreenResult.md +128 -0
  86. package/docs/reference/interfaces/TableAccessor.md +26 -0
  87. package/docs/reference/interfaces/TextAccessor.md +96 -0
  88. package/docs/reference/type-aliases/ApiHandle.md +68 -0
  89. package/docs/reference/type-aliases/ApiSpecification.md +213 -0
  90. package/docs/reference/type-aliases/ApiSpecificationOptions.md +68 -0
  91. package/docs/reference/type-aliases/BrowserConsoleMessage.md +30 -0
  92. package/docs/reference/type-aliases/BrowserLinkElement.md +50 -0
  93. package/docs/reference/type-aliases/BrowserMetaElement.md +40 -0
  94. package/docs/reference/type-aliases/BrowserOpenOptions.md +87 -0
  95. package/docs/reference/type-aliases/BrowserPage.md +132 -0
  96. package/docs/reference/type-aliases/BrowserPort.md +51 -0
  97. package/docs/reference/type-aliases/CliEnv.md +11 -0
  98. package/docs/reference/type-aliases/CliHandle.md +80 -0
  99. package/docs/reference/type-aliases/CliInput.md +36 -0
  100. package/docs/reference/type-aliases/CliOutput.md +46 -0
  101. package/docs/reference/type-aliases/CliPort.md +58 -0
  102. package/docs/reference/type-aliases/CliSpecification.md +144 -0
  103. package/docs/reference/type-aliases/CliSpecificationOptions.md +134 -0
  104. package/docs/reference/type-aliases/ComponentChain.md +156 -0
  105. package/docs/reference/type-aliases/ComponentScenario.md +20 -0
  106. package/docs/reference/type-aliases/ComponentUi.md +47 -0
  107. package/docs/reference/type-aliases/ComponentVisitor.md +10 -0
  108. package/docs/reference/type-aliases/ContainerPort.md +113 -0
  109. package/docs/reference/type-aliases/Contract.md +68 -0
  110. package/docs/reference/type-aliases/ContractInput.md +13 -0
  111. package/docs/reference/type-aliases/ContractRequest.md +95 -0
  112. package/docs/reference/type-aliases/ContractResponder.md +23 -0
  113. package/docs/reference/type-aliases/ContractResponse.md +78 -0
  114. package/docs/reference/type-aliases/ContractResponseValue.md +13 -0
  115. package/docs/reference/type-aliases/Contracts.md +48 -0
  116. package/docs/reference/type-aliases/DatabaseKeys.md +16 -0
  117. package/docs/reference/type-aliases/DatabasePort.md +72 -0
  118. package/docs/reference/type-aliases/DeviceOpenOptions.md +46 -0
  119. package/docs/reference/type-aliases/DevicePort.md +51 -0
  120. package/docs/reference/type-aliases/DeviceScreen.md +32 -0
  121. package/docs/reference/type-aliases/DeviceTimeouts.md +39 -0
  122. package/docs/reference/type-aliases/DockerSpecConfig.md +43 -0
  123. package/docs/reference/type-aliases/DomMount.md +21 -0
  124. package/docs/reference/type-aliases/ElementKind.md +27 -0
  125. package/docs/reference/type-aliases/ElementMatch.md +74 -0
  126. package/docs/reference/type-aliases/ElementOptions.md +29 -0
  127. package/docs/reference/type-aliases/ElementRef.md +128 -0
  128. package/docs/reference/type-aliases/ExecOptions.md +37 -0
  129. package/docs/reference/type-aliases/FileAccessor.md +54 -0
  130. package/docs/reference/type-aliases/HonoApp.md +31 -0
  131. package/docs/reference/type-aliases/HttpContractFilter.md +49 -0
  132. package/docs/reference/type-aliases/HttpResponseInit.md +46 -0
  133. package/docs/reference/type-aliases/HttpStreamInit.md +58 -0
  134. package/docs/reference/type-aliases/IntegrationHandle.md +46 -0
  135. package/docs/reference/type-aliases/IntegrationSpecification.md +111 -0
  136. package/docs/reference/type-aliases/IntegrationSpecificationOptions.md +42 -0
  137. package/docs/reference/type-aliases/Intercept.md +19 -0
  138. package/docs/reference/type-aliases/InterceptOptions.md +28 -0
  139. package/docs/reference/type-aliases/InterceptScope.md +11 -0
  140. package/docs/reference/type-aliases/IsolationStrategy.md +75 -0
  141. package/docs/reference/type-aliases/JobHandle.md +34 -0
  142. package/docs/reference/type-aliases/JobsHandle.md +57 -0
  143. package/docs/reference/type-aliases/JobsResult.md +16 -0
  144. package/docs/reference/type-aliases/JobsSpecification.md +94 -0
  145. package/docs/reference/type-aliases/JobsSpecificationOptions.md +56 -0
  146. package/docs/reference/type-aliases/LandmarkKind.md +20 -0
  147. package/docs/reference/type-aliases/LiterateRunFlags.md +27 -0
  148. package/docs/reference/type-aliases/LiterateServeRegistration.md +70 -0
  149. package/docs/reference/type-aliases/MatchFixtureOptions.md +27 -0
  150. package/docs/reference/type-aliases/MatchableRequest.md +61 -0
  151. package/docs/reference/type-aliases/MatcherKind.md +34 -0
  152. package/docs/reference/type-aliases/MobileBackendOptions.md +28 -0
  153. package/docs/reference/type-aliases/MobileElementKind.md +14 -0
  154. package/docs/reference/type-aliases/MobileElementMatch.md +60 -0
  155. package/docs/reference/type-aliases/MobileElementRef.md +20 -0
  156. package/docs/reference/type-aliases/MobileHandle.md +65 -0
  157. package/docs/reference/type-aliases/MobileScenario.md +20 -0
  158. package/docs/reference/type-aliases/MobileSpecification.md +51 -0
  159. package/docs/reference/type-aliases/MobileSpecificationOptions.md +126 -0
  160. package/docs/reference/type-aliases/MobileVisitor.md +81 -0
  161. package/docs/reference/type-aliases/MockOfOptions.md +26 -0
  162. package/docs/reference/type-aliases/MockPort.md +10 -0
  163. package/docs/reference/type-aliases/PinnedClock.md +10 -0
  164. package/docs/reference/type-aliases/PostgresOptions.md +32 -0
  165. package/docs/reference/type-aliases/ProcessOptions.md +112 -0
  166. package/docs/reference/type-aliases/RedisOptions.md +20 -0
  167. package/docs/reference/type-aliases/RenderSubject.md +12 -0
  168. package/docs/reference/type-aliases/ScreenNode.md +67 -0
  169. package/docs/reference/type-aliases/ServerPort.md +36 -0
  170. package/docs/reference/type-aliases/ServerResponse.md +46 -0
  171. package/docs/reference/type-aliases/ServerSpec.md +21 -0
  172. package/docs/reference/type-aliases/ServiceHandle.md +216 -0
  173. package/docs/reference/type-aliases/ServiceRecord.md +12 -0
  174. package/docs/reference/type-aliases/SpecDocument.md +84 -0
  175. package/docs/reference/type-aliases/SpecEnvToken.md +21 -0
  176. package/docs/reference/type-aliases/SpecFileAssertion.md +27 -0
  177. package/docs/reference/type-aliases/SpecFixture.md +30 -0
  178. package/docs/reference/type-aliases/SpecKind.md +8 -0
  179. package/docs/reference/type-aliases/SpecRun.md +108 -0
  180. package/docs/reference/type-aliases/SpecServeEntry.md +40 -0
  181. package/docs/reference/type-aliases/SpecStream.md +32 -0
  182. package/docs/reference/type-aliases/SpecificationConfig.md +290 -0
  183. package/docs/reference/type-aliases/SqliteOptions.md +36 -0
  184. package/docs/reference/type-aliases/SseEvent.md +58 -0
  185. package/docs/reference/type-aliases/StreamBody.md +61 -0
  186. package/docs/reference/type-aliases/TextFilter.md +22 -0
  187. package/docs/reference/type-aliases/VisitScenario.md +20 -0
  188. package/docs/reference/type-aliases/Visitor.md +215 -0
  189. package/docs/reference/type-aliases/WaitUntilOptions.md +46 -0
  190. package/docs/reference/type-aliases/WebsiteBackendOptions.md +37 -0
  191. package/docs/reference/type-aliases/WebsiteHandle.md +51 -0
  192. package/docs/reference/type-aliases/WebsiteSpecification.md +118 -0
  193. package/docs/reference/type-aliases/WebsiteSpecificationOptions.md +40 -0
  194. package/docs/reference/variables/anthropic.md +19 -0
  195. package/docs/reference/variables/banner.md +10 -0
  196. package/docs/reference/variables/button.md +10 -0
  197. package/docs/reference/variables/clock.md +16 -0
  198. package/docs/reference/variables/complementary.md +10 -0
  199. package/docs/reference/variables/component.md +10 -0
  200. package/docs/reference/variables/content.md +10 -0
  201. package/docs/reference/variables/contentinfo.md +10 -0
  202. package/docs/reference/variables/dialog.md +10 -0
  203. package/docs/reference/variables/field.md +10 -0
  204. package/docs/reference/variables/form.md +10 -0
  205. package/docs/reference/variables/heading.md +10 -0
  206. package/docs/reference/variables/http.md +40 -0
  207. package/docs/reference/variables/intercept.md +11 -0
  208. package/docs/reference/variables/link.md +10 -0
  209. package/docs/reference/variables/listitem.md +10 -0
  210. package/docs/reference/variables/main.md +10 -0
  211. package/docs/reference/variables/match.md +8 -0
  212. package/docs/reference/variables/navigation.md +10 -0
  213. package/docs/reference/variables/openai.md +21 -0
  214. package/docs/reference/variables/option.md +17 -0
  215. package/docs/reference/variables/region.md +10 -0
  216. package/docs/reference/variables/row.md +10 -0
  217. package/docs/reference/variables/search.md +10 -0
  218. package/docs/reference/variables/specification.md +8 -0
  219. package/docs/reference/variables/status.md +10 -0
  220. package/docs/reference/variables/table.md +10 -0
  221. package/package.json +32 -11
  222. package/dist/spec-document.js +0 -651
@@ -0,0 +1,46 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: WaitUntilOptions
3
+
4
+ ```ts
5
+ type WaitUntilOptions = object;
6
+ ```
7
+
8
+ Defined in: [src/model/assertions/wait-until.ts:4](https://github.com/jterrazz/package-test/blob/main/src/model/assertions/wait-until.ts#L4)
9
+
10
+ How long to wait, and how often to look.
11
+
12
+ ## Properties
13
+
14
+ ### interval?
15
+
16
+ ```ts
17
+ optional interval?: number;
18
+ ```
19
+
20
+ Defined in: [src/model/assertions/wait-until.ts:6](https://github.com/jterrazz/package-test/blob/main/src/model/assertions/wait-until.ts#L6)
21
+
22
+ Milliseconds between two readings. Default 50.
23
+
24
+ ***
25
+
26
+ ### timeout?
27
+
28
+ ```ts
29
+ optional timeout?: number;
30
+ ```
31
+
32
+ Defined in: [src/model/assertions/wait-until.ts:8](https://github.com/jterrazz/package-test/blob/main/src/model/assertions/wait-until.ts#L8)
33
+
34
+ How long the condition has to become true. Default 5 000 ms.
35
+
36
+ ***
37
+
38
+ ### why?
39
+
40
+ ```ts
41
+ optional why?: string;
42
+ ```
43
+
44
+ Defined in: [src/model/assertions/wait-until.ts:10](https://github.com/jterrazz/package-test/blob/main/src/model/assertions/wait-until.ts#L10)
45
+
46
+ What the condition is, named in the failure. Default: the predicate's source.
@@ -0,0 +1,37 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: WebsiteBackendOptions
3
+
4
+ ```ts
5
+ type WebsiteBackendOptions = object;
6
+ ```
7
+
8
+ Defined in: [src/facets/website/website.specification.ts:62](https://github.com/jterrazz/package-test/blob/main/src/facets/website/website.specification.ts#L62)
9
+
10
+ The declared stub backend behind the site under test — started before the
11
+ server command, torn down with the runner. Its URL is injected into the
12
+ server child's environment under `env`; the contracts each chain declares
13
+ via `.intercept(...)` are what it serves.
14
+
15
+ ## Properties
16
+
17
+ ### env
18
+
19
+ ```ts
20
+ env: string;
21
+ ```
22
+
23
+ Defined in: [src/facets/website/website.specification.ts:64](https://github.com/jterrazz/package-test/blob/main/src/facets/website/website.specification.ts#L64)
24
+
25
+ Env var receiving the stub's URL in the server child (e.g. `'API_URL'`).
26
+
27
+ ***
28
+
29
+ ### port?
30
+
31
+ ```ts
32
+ optional port?: number;
33
+ ```
34
+
35
+ Defined in: [src/facets/website/website.specification.ts:66](https://github.com/jterrazz/package-test/blob/main/src/facets/website/website.specification.ts#L66)
36
+
37
+ Fixed port — pins a stable stub URL across runs. Default: a free OS-assigned port.
@@ -0,0 +1,51 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: WebsiteHandle
3
+
4
+ ```ts
5
+ type WebsiteHandle = object;
6
+ ```
7
+
8
+ Defined in: [src/facets/website/website.specification.ts:213](https://github.com/jterrazz/package-test/blob/main/src/facets/website/website.specification.ts#L213)
9
+
10
+ The record returned by startWebsite \| specification.website.
11
+ Destructure with the canonical names (CONVENTIONS A3):
12
+
13
+ const { website, cleanup } = await specification.website(…);
14
+
15
+ ## Properties
16
+
17
+ ### cleanup
18
+
19
+ ```ts
20
+ cleanup: () => Promise<void>;
21
+ ```
22
+
23
+ Defined in: [src/facets/website/website.specification.ts:215](https://github.com/jterrazz/package-test/blob/main/src/facets/website/website.specification.ts#L215)
24
+
25
+ Stop the server process and the shared browser instance.
26
+
27
+ #### Returns
28
+
29
+ `Promise`\<`void`\>
30
+
31
+ ***
32
+
33
+ ### url
34
+
35
+ ```ts
36
+ url: string;
37
+ ```
38
+
39
+ Defined in: [src/facets/website/website.specification.ts:217](https://github.com/jterrazz/package-test/blob/main/src/facets/website/website.specification.ts#L217)
40
+
41
+ The base URL the specs run against.
42
+
43
+ ***
44
+
45
+ ### website
46
+
47
+ ```ts
48
+ website: WebsiteSpecification;
49
+ ```
50
+
51
+ Defined in: [src/facets/website/website.specification.ts:218](https://github.com/jterrazz/package-test/blob/main/src/facets/website/website.specification.ts#L218)
@@ -0,0 +1,118 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: WebsiteSpecification
3
+
4
+ ```ts
5
+ type WebsiteSpecification = object;
6
+ ```
7
+
8
+ Defined in: [src/model/chain/builder.ts:302](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L302)
9
+
10
+ The `website` facet — page chain entry handed out by
11
+ `specification.website()`. Setup methods chain; action methods are
12
+ terminal. `.visit()` renders the page in the shared browser; `.fetch()`
13
+ performs one raw HTTP exchange and never follows redirects.
14
+
15
+ ## Properties
16
+
17
+ ### clock
18
+
19
+ ```ts
20
+ clock: (iso) => WebsiteSpecification;
21
+ ```
22
+
23
+ Defined in: [src/model/chain/builder.ts:307](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L307)
24
+
25
+ Pin the PAGE's `Date` at `iso` for this chain — what the site's own
26
+ scripts read. A `.fetch()` opens no page and refuses the setup.
27
+
28
+ #### Parameters
29
+
30
+ | Parameter | Type |
31
+ | ------ | ------ |
32
+ | `iso` | `string` |
33
+
34
+ #### Returns
35
+
36
+ `WebsiteSpecification`
37
+
38
+ ***
39
+
40
+ ### fetch
41
+
42
+ ```ts
43
+ fetch: (path) => Promise<FetchResult>;
44
+ ```
45
+
46
+ Defined in: [src/model/chain/builder.ts:317](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L317)
47
+
48
+ Perform one raw HTTP GET — redirects surface as 3xx results, never followed.
49
+
50
+ #### Parameters
51
+
52
+ | Parameter | Type |
53
+ | ------ | ------ |
54
+ | `path` | `string` |
55
+
56
+ #### Returns
57
+
58
+ `Promise`\<[`FetchResult`](../interfaces/FetchResult.md)\>
59
+
60
+ ***
61
+
62
+ ### headers
63
+
64
+ ```ts
65
+ headers: (headers) => WebsiteSpecification;
66
+ ```
67
+
68
+ Defined in: [src/model/chain/builder.ts:309](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L309)
69
+
70
+ Set HTTP headers for the exchange (incl. User-Agent overrides). Multiple calls merge.
71
+
72
+ #### Parameters
73
+
74
+ | Parameter | Type |
75
+ | ------ | ------ |
76
+ | `headers` | `Record`\<`string`, `string`\> |
77
+
78
+ #### Returns
79
+
80
+ `WebsiteSpecification`
81
+
82
+ ***
83
+
84
+ ### intercept
85
+
86
+ ```ts
87
+ intercept: InterceptMethod<WebsiteSpecification>;
88
+ ```
89
+
90
+ Defined in: [src/model/chain/builder.ts:314](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L314)
91
+
92
+ Declare the chain's backend contracts — served by the declared stub
93
+ backend (requires the runner's `backend` option). Multiple calls append.
94
+
95
+ ***
96
+
97
+ ### visit
98
+
99
+ ```ts
100
+ visit: (path, scenario?) => Promise<PageResult>;
101
+ ```
102
+
103
+ Defined in: [src/model/chain/builder.ts:323](https://github.com/jterrazz/package-test/blob/main/src/model/chain/builder.ts#L323)
104
+
105
+ Render the page in the shared browser and resolve with the captured
106
+ document. With a scenario, the visitor interacts first (the When) and
107
+ the capture reflects the FINAL page state.
108
+
109
+ #### Parameters
110
+
111
+ | Parameter | Type |
112
+ | ------ | ------ |
113
+ | `path` | `string` |
114
+ | `scenario?` | [`VisitScenario`](VisitScenario.md) |
115
+
116
+ #### Returns
117
+
118
+ `Promise`\<[`PageResult`](../interfaces/PageResult.md)\>
@@ -0,0 +1,40 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: WebsiteSpecificationOptions\<Services\>
3
+
4
+ ```ts
5
+ type WebsiteSpecificationOptions<Services> = object &
6
+ | {
7
+ backend?: WebsiteBackendOptions;
8
+ server: ServerSpec<Services>;
9
+ url?: never;
10
+ }
11
+ | {
12
+ backend?: never;
13
+ server?: never;
14
+ url: string;
15
+ };
16
+ ```
17
+
18
+ Defined in: [src/facets/website/website.specification.ts:77](https://github.com/jterrazz/package-test/blob/main/src/facets/website/website.specification.ts#L77)
19
+
20
+ Options for startWebsite \| specification.website. `server` (start
21
+ the site locally) and `url` (target a running site) are mutually
22
+ exclusive BY TYPE — the union makes the invalid combinations
23
+ inexpressible rather than runtime-checked. `backend` requires `server`
24
+ mode for the same reason: a deployed site cannot be pointed at a local
25
+ stub.
26
+
27
+ ## Type Declaration
28
+
29
+ | Name | Type | Description | Defined in |
30
+ | ------ | ------ | ------ | ------ |
31
+ | `external?` | `"allow"` \| `"block"` | Cross-origin request policy for visits. Default: `'block'` with a local `server` (deterministic — analytics and CDNs never leave the machine), `'allow'` with a deployed `url`. | [src/facets/website/website.specification.ts:83](https://github.com/jterrazz/package-test/blob/main/src/facets/website/website.specification.ts#L83) |
32
+ | `root?` | `string` | Project-root override (CONVENTIONS A9): the working directory of the `server` command. Auto-discovered from the calling file when absent. | [src/facets/website/website.specification.ts:88](https://github.com/jterrazz/package-test/blob/main/src/facets/website/website.specification.ts#L88) |
33
+ | `services?` | `Services` | Named services started with the runner, before the site is: a database the site reads, a `process()` backend it calls. They are started in declaration order and stopped with the specification, and `server` may be a function of them — which is how a site is handed the URL of the API it was started beside. | [src/facets/website/website.specification.ts:96](https://github.com/jterrazz/package-test/blob/main/src/facets/website/website.specification.ts#L96) |
34
+ | `transform()?` | (`text`) => `string` | Escape hatch: normaliser applied to every compared reading of a result — the head projection and the json-ld among them — before the comparison (CONVENTIONS D6). Does NOT mutate the raw `.text` accessor. Prefer `{{token}}` placeholders in fixtures; this is for what a token cannot name, a meta a FRAMEWORK owns and the page never asked for. | [src/facets/website/website.specification.ts:104](https://github.com/jterrazz/package-test/blob/main/src/facets/website/website.specification.ts#L104) |
35
+
36
+ ## Type Parameters
37
+
38
+ | Type Parameter | Default type |
39
+ | ------ | ------ |
40
+ | `Services` *extends* [`ServiceRecord`](ServiceRecord.md) | [`ServiceRecord`](ServiceRecord.md) |
@@ -0,0 +1,19 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: anthropic
3
+
4
+ ```ts
5
+ const anthropic: object;
6
+ ```
7
+
8
+ Defined in: [src/seams/anthropic/anthropic.ts:55](https://github.com/jterrazz/package-test/blob/main/src/seams/anthropic/anthropic.ts#L55)
9
+
10
+ Anthropic API intercept helpers.
11
+
12
+ ## Type Declaration
13
+
14
+ | Name | Type | Description | Defined in |
15
+ | ------ | ------ | ------ | ------ |
16
+ | `error()` | (`status`, `message?`) => [`ContractResponse`](../type-aliases/ContractResponse.md) | Response: return an Anthropic error. | [src/seams/anthropic/anthropic.ts:91](https://github.com/jterrazz/package-test/blob/main/src/seams/anthropic/anthropic.ts#L91) |
17
+ | `messages()` | (`filter?`, `url?`) => [`ContractRequest`](../type-aliases/ContractRequest.md) | Request: match Messages API calls, optionally routed through a custom gateway URL. When used with a JSON fixture file, the data is returned as-is (no wrapping) because Anthropic fixtures are typically already in the Messages API response shape. **Example** `anthropic.messages() anthropic.messages({ system: /classify/ }) anthropic.messages({ user: buildPrompt() }) // string = EXACT equality anthropic.messages({ user: /classify/ }, GATEWAY)` | [src/seams/anthropic/anthropic.ts:68](https://github.com/jterrazz/package-test/blob/main/src/seams/anthropic/anthropic.ts#L68) |
18
+ | `reply()` | (`data`) => [`ContractResponse`](../type-aliases/ContractResponse.md) | Response: wrap data in Anthropic messages format. | [src/seams/anthropic/anthropic.ts:86](https://github.com/jterrazz/package-test/blob/main/src/seams/anthropic/anthropic.ts#L86) |
19
+ | `timeout()` | () => [`ContractResponse`](../type-aliases/ContractResponse.md) | Response: simulate a timeout. | [src/seams/anthropic/anthropic.ts:105](https://github.com/jterrazz/package-test/blob/main/src/seams/anthropic/anthropic.ts#L105) |
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: banner
3
+
4
+ ```ts
5
+ const banner: LandmarkFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:80](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L80)
9
+
10
+ The `banner` landmark — the page header.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: button
3
+
4
+ ```ts
5
+ const button: ElementFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:45](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L45)
9
+
10
+ A button (or element with the button role), by accessible name.
@@ -0,0 +1,16 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: clock
3
+
4
+ ```ts
5
+ const clock: object;
6
+ ```
7
+
8
+ Defined in: [src/model/clock/clock.ts:62](https://github.com/jterrazz/package-test/blob/main/src/model/clock/clock.ts#L62)
9
+
10
+ ## Type Declaration
11
+
12
+ | Name | Type | Description | Defined in |
13
+ | ------ | ------ | ------ | ------ |
14
+ | `advance()` | (`ms`) => `Promise`\<`void`\> | Move the pinned clock forward by `ms` — and, under [clock.run](#run), fire every callback that came due, awaiting what each of them started. Only a pinned clock moves: called with no clock taken, it says so rather than silently doing nothing to the real one. | [src/model/clock/clock.ts:70](https://github.com/jterrazz/package-test/blob/main/src/model/clock/clock.ts#L70) |
15
+ | `at()` | (`iso`) => `Disposable` | Pin `Date` at `iso` for the current scope. `Date` ONLY: the scheduler stays real, so a subject that awaits, renders or polls keeps running. **Example** `using _ = clock.at('2026-03-04T09:30:00Z'); expect(stampedAt()).toBe('2026-03-04T09:30:00.000Z');` | [src/model/clock/clock.ts:88](https://github.com/jterrazz/package-test/blob/main/src/model/clock/clock.ts#L88) |
16
+ | `run()` | (`iso?`) => `Disposable` | Take the scheduler as well as the calendar: `setTimeout`, `setInterval` and their friends queue instead of firing, and [clock.advance](#advance) is what makes them due. For a subject whose behaviour IS elapsed time — a debounce, a retry backoff, a poll — where waiting for real would be the arbitrary sleep J2 forbids. **Example** `using _ = clock.run('2026-03-04T09:30:00Z'); const pending = retrying(failsTwice); await clock.advance(5_000); await expect(pending).resolves.toBe('ok');` | [src/model/clock/clock.ts:105](https://github.com/jterrazz/package-test/blob/main/src/model/clock/clock.ts#L105) |
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: complementary
3
+
4
+ ```ts
5
+ const complementary: LandmarkFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:83](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L83)
9
+
10
+ The `complementary` landmark — an `<aside>`, a sidebar.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: component
3
+
4
+ ```ts
5
+ const component: ComponentChain;
6
+ ```
7
+
8
+ Defined in: [src/facets/component/component.specification.ts:21](https://github.com/jterrazz/package-test/blob/main/src/facets/component/component.specification.ts#L21)
9
+
10
+ Present, typed, and refusing — every setup and the terminal action alike.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: content
3
+
4
+ ```ts
5
+ const content: ElementFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:57](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L57)
9
+
10
+ An element containing the given text.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: contentinfo
3
+
4
+ ```ts
5
+ const contentinfo: LandmarkFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:86](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L86)
9
+
10
+ The `contentinfo` landmark — the page footer.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: dialog
3
+
4
+ ```ts
5
+ const dialog: LandmarkFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:127](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L127)
9
+
10
+ A modal or non-modal `<dialog>`, by accessible name. A closed one is absent.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: field
3
+
4
+ ```ts
5
+ const field: ElementFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:48](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L48)
9
+
10
+ A form field, by label.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: form
3
+
4
+ ```ts
5
+ const form: LandmarkFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:89](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L89)
9
+
10
+ The `form` landmark — a form carrying an accessible name.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: heading
3
+
4
+ ```ts
5
+ const heading: ElementFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:51](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L51)
9
+
10
+ A heading, by accessible name.
@@ -0,0 +1,40 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: http
3
+
4
+ ```ts
5
+ const http: object;
6
+ ```
7
+
8
+ Defined in: [src/model/contracts/http.ts:164](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L164)
9
+
10
+ Generic HTTP contract helpers for any URL. The url is absolute (string or
11
+ RegExp), or a PATH FORM starting with `/` — `http.get('/articles/{{uuid}}')`
12
+ matches that path on ANY origin, which is what an app calling its own
13
+ backend needs. An optional [HttpContractFilter](../type-aliases/HttpContractFilter.md) narrows matching by
14
+ body, headers, or query — a request that hits the URL/method but fails the
15
+ filter counts as unmatched (strict contracts, CONVENTIONS D7).
16
+
17
+ ## Type Declaration
18
+
19
+ | Name | Type | Description | Defined in |
20
+ | ------ | ------ | ------ | ------ |
21
+ | `any()` | (`url`, `filter?`) => [`ContractRequest`](../type-aliases/ContractRequest.md) | - | [src/model/contracts/http.ts:165](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L165) |
22
+ | `delete()` | (`url`, `filter?`) => [`ContractRequest`](../type-aliases/ContractRequest.md) | - | [src/model/contracts/http.ts:169](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L169) |
23
+ | `empty()` | (`status?`) => [`ContractResponse`](../type-aliases/ContractResponse.md) | Response: a body-less reply (204 by default). | [src/model/contracts/http.ts:190](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L190) |
24
+ | `error()` | (`status`, `body?`) => [`ContractResponse`](../type-aliases/ContractResponse.md) | Response: an error status. Without a body, `{ error: 'HTTP <status>' }`. | [src/model/contracts/http.ts:195](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L195) |
25
+ | `get()` | (`url`, `filter?`) => [`ContractRequest`](../type-aliases/ContractRequest.md) | - | [src/model/contracts/http.ts:173](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L173) |
26
+ | `json()` | (`body`, `init?`) => [`ContractResponse`](../type-aliases/ContractResponse.md) | Response: a JSON body (200 by default). | [src/model/contracts/http.ts:200](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L200) |
27
+ | `patch()` | (`url`, `filter?`) => [`ContractRequest`](../type-aliases/ContractRequest.md) | - | [src/model/contracts/http.ts:177](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L177) |
28
+ | `post()` | (`url`, `filter?`) => [`ContractRequest`](../type-aliases/ContractRequest.md) | - | [src/model/contracts/http.ts:181](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L181) |
29
+ | `put()` | (`url`, `filter?`) => [`ContractRequest`](../type-aliases/ContractRequest.md) | - | [src/model/contracts/http.ts:185](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L185) |
30
+ | `sse()` | (`events`, `init?`) => [`ContractResponse`](../type-aliases/ContractResponse.md) | Response: a server-sent event stream — one chunk per event, framed the way an `EventSource` reads them, served as `text/event-stream`. **Example** `http.sse([{ data: { token: 'Hel' } }, { data: { token: 'lo' } }, { event: 'done', data: '' }])` | [src/model/contracts/http.ts:249](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L249) |
31
+ | `stream()` | (`chunks`, `init?`) => [`ContractResponse`](../type-aliases/ContractResponse.md) | Response: a body that arrives in PIECES, written in order. A subject that reads a response as it lands — a token-by-token render, a progress bar, a reconnect on a half-read body — is specified by the chunks and their order, which a single serialised body cannot state. Honoured by all three engines: msw's server, msw's worker, and the `node:http` stub the website and mobile facets serve from. **Example** `http.stream(['Hel', 'lo, ', 'world'], { contentType: 'text/plain', delay: 10 })` | [src/model/contracts/http.ts:229](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L229) |
32
+ | `text()` | (`body`, `init?`) => [`ContractResponse`](../type-aliases/ContractResponse.md) | Response: a text body, served as `text/plain` (200 by default). | [src/model/contracts/http.ts:263](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L263) |
33
+ | `unreachable()` | () => [`ContractResponse`](../type-aliases/ContractResponse.md) | Response: no response at all — the request fails in transport, the way a server that is not running fails it. `fetch` rejects; no status is served. | [src/model/contracts/http.ts:213](https://github.com/jterrazz/package-test/blob/main/src/model/contracts/http.ts#L213) |
34
+
35
+ ## Example
36
+
37
+ ```ts
38
+ defineContract({ request: http.get('/articles/{{uuid}}'), response: http.json(article) })
39
+ defineContract({ request: http.post(URL, { body: { user: 'alice' } }), response: http.empty() })
40
+ ```
@@ -0,0 +1,11 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: intercept
3
+
4
+ ```ts
5
+ const intercept: Intercept;
6
+ ```
7
+
8
+ Defined in: [src/index.ts:16](https://github.com/jterrazz/package-test/blob/main/src/index.ts#L16)
9
+
10
+ The module-scope network double, on msw's node server — what a test with no
11
+ chain to hang contracts on reaches for (chapter 16).
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: link
3
+
4
+ ```ts
5
+ const link: ElementFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:54](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L54)
9
+
10
+ A link, by accessible name.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: listitem
3
+
4
+ ```ts
5
+ const listitem: LandmarkFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:139](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L139)
9
+
10
+ An item of a list, by its text. Retires the `.first()` of an unnamed `<li>`.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: main
3
+
4
+ ```ts
5
+ const main: LandmarkFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:92](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L92)
9
+
10
+ The `main` landmark — the primary content of the document.
@@ -0,0 +1,8 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: match
3
+
4
+ ```ts
5
+ const match: MatchFactories;
6
+ ```
7
+
8
+ Defined in: [src/model/matching/match.ts:150](https://github.com/jterrazz/package-test/blob/main/src/model/matching/match.ts#L150)
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: navigation
3
+
4
+ ```ts
5
+ const navigation: LandmarkFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:95](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L95)
9
+
10
+ The `navigation` landmark — a `<nav>`. Name it when a page has several.
@@ -0,0 +1,21 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: openai
3
+
4
+ ```ts
5
+ const openai: object;
6
+ ```
7
+
8
+ Defined in: [src/seams/openai/openai.ts:128](https://github.com/jterrazz/package-test/blob/main/src/seams/openai/openai.ts#L128)
9
+
10
+ OpenAI API intercept helpers.
11
+
12
+ ## Type Declaration
13
+
14
+ | Name | Type | Description | Defined in |
15
+ | ------ | ------ | ------ | ------ |
16
+ | `chat()` | (`filter?`) => [`ContractRequest`](../type-aliases/ContractRequest.md) | Request: match Chat Completions API calls. STRING filters mean EXACT equality (pass the app's own prompt builder); loosen deliberately with a RegExp or `match.includes(...)`. **Example** `openai.chat() // any chat call openai.chat({ model: 'gpt-4o' }) // exact model openai.chat({ system: buildPrompt() }) // exact system prompt openai.chat({ system: /classify/ }) // pattern` | [src/seams/openai/openai.ts:140](https://github.com/jterrazz/package-test/blob/main/src/seams/openai/openai.ts#L140) |
17
+ | `error()` | (`status`, `message?`) => [`ContractResponse`](../type-aliases/ContractResponse.md) | Response: return an OpenAI error. | [src/seams/openai/openai.ts:183](https://github.com/jterrazz/package-test/blob/main/src/seams/openai/openai.ts#L183) |
18
+ | `malformed()` | (`content`) => [`ContractResponse`](../type-aliases/ContractResponse.md) | Response: return malformed content. | [src/seams/openai/openai.ts:197](https://github.com/jterrazz/package-test/blob/main/src/seams/openai/openai.ts#L197) |
19
+ | `reply()` | (`data`) => [`ContractResponse`](../type-aliases/ContractResponse.md) | Response: wrap data in Chat Completions format. **Example** `openai.reply({ categories: ['TECH'] })` | [src/seams/openai/openai.ts:178](https://github.com/jterrazz/package-test/blob/main/src/seams/openai/openai.ts#L178) |
20
+ | `responses()` | (`filter?`, `url?`) => [`ContractRequest`](../type-aliases/ContractRequest.md) | Request: match Responses API calls (AI SDK v5+) with auto-wrapping. String filters mean EXACT equality (see [openai.chat](#chat)). When used with a JSON file, the data is automatically wrapped in the Responses API envelope. **Example** `openai.responses({ user: /Report Ingestion/ }, GATEWAY)` | [src/seams/openai/openai.ts:162](https://github.com/jterrazz/package-test/blob/main/src/seams/openai/openai.ts#L162) |
21
+ | `timeout()` | () => [`ContractResponse`](../type-aliases/ContractResponse.md) | Response: simulate a timeout. | [src/seams/openai/openai.ts:202](https://github.com/jterrazz/package-test/blob/main/src/seams/openai/openai.ts#L202) |
@@ -0,0 +1,17 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: option
3
+
4
+ ```ts
5
+ const option: ElementFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:151](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L151)
9
+
10
+ An option of a select or a listbox, by its label — named inside the field
11
+ that holds it: `within(field('Channel'), option('LinkedIn'))`.
12
+
13
+ Asserted by PRESENCE, not by visibility: the options of a collapsed
14
+ `<select>` are in the document and in the accessibility tree, and none of
15
+ them has a box on the screen until it is opened. `see(option('LinkedIn'))`
16
+ therefore asks "is it offered", and `see(selected(option('LinkedIn')))`
17
+ asks which one the field is on.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: region
3
+
4
+ ```ts
5
+ const region: LandmarkFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:98](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L98)
9
+
10
+ The `region` landmark — a `<section>` carrying an accessible name.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: row
3
+
4
+ ```ts
5
+ const row: LandmarkFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:136](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L136)
9
+
10
+ A row of a table or grid, by the text of its cells.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Variable: search
3
+
4
+ ```ts
5
+ const search: LandmarkFactory;
6
+ ```
7
+
8
+ Defined in: [src/model/elements/elements.ts:101](https://github.com/jterrazz/package-test/blob/main/src/model/elements/elements.ts#L101)
9
+
10
+ The `search` landmark.