@jterrazz/test 16.0.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 (210) hide show
  1. package/dist/appium.adapter.js +59 -4
  2. package/dist/browser/index.js +88 -40
  3. package/dist/checker.js +272 -63
  4. package/dist/index.d.ts +33 -4
  5. package/dist/index.js +47 -24
  6. package/dist/oxlint.cjs +100 -27
  7. package/dist/oxlint.js +100 -27
  8. package/dist/playwright.adapter.js +14 -65
  9. package/dist/{ambiguity.js → substring-warning.js} +99 -1
  10. package/dist/vitest.js +71 -11
  11. package/docs/01-architecture.md +95 -0
  12. package/docs/02-developing.md +351 -0
  13. package/docs/03-testing.md +495 -0
  14. package/docs/04-operating.md +101 -0
  15. package/docs/05-module-tests.md +152 -0
  16. package/docs/06-integration.md +180 -0
  17. package/docs/07-component.md +246 -0
  18. package/docs/08-website.md +404 -0
  19. package/docs/09-mobile.md +270 -0
  20. package/docs/10-api.md +264 -0
  21. package/docs/11-jobs.md +157 -0
  22. package/docs/12-cli.md +677 -0
  23. package/docs/13-elements.md +242 -0
  24. package/docs/14-assertions.md +314 -0
  25. package/docs/15-tokens.md +253 -0
  26. package/docs/16-contracts.md +438 -0
  27. package/docs/17-services.md +188 -0
  28. package/docs/18-conventions.md +305 -0
  29. package/docs/19-linting.md +510 -0
  30. package/docs/README.md +36 -0
  31. package/docs/decisions/001-v9-conventions-on-three-channels.md +50 -0
  32. package/docs/decisions/002-the-statique-channel-holds-only-what-upstream-does-not.md +49 -0
  33. package/docs/decisions/003-a-rendered-component-is-a-facet-on-vitest-browser-mode.md +84 -0
  34. package/docs/decisions/004-a-module-against-real-services-or-a-golden-is-the-integration-facet.md +81 -0
  35. package/docs/decisions/005-the-doubles-ladder-is-closed.md +86 -0
  36. package/docs/decisions/006-the-catalogue-reaches-a-file-by-its-role.md +245 -0
  37. package/docs/decisions/007-compose-mode-leaves-the-package.md +53 -0
  38. package/docs/decisions/008-vitest-5-node-24-and-the-native-seams-as-optional-peers.md +75 -0
  39. package/docs/decisions/_template.md +22 -0
  40. package/docs/reference/classes/Matcher.md +120 -0
  41. package/docs/reference/classes/ProcessHandle.md +368 -0
  42. package/docs/reference/functions/defineContract.md +39 -0
  43. package/docs/reference/functions/defineContracts.md +36 -0
  44. package/docs/reference/functions/disabled.md +28 -0
  45. package/docs/reference/functions/enabled.md +20 -0
  46. package/docs/reference/functions/focused.md +26 -0
  47. package/docs/reference/functions/mockOf.md +79 -0
  48. package/docs/reference/functions/postgres.md +31 -0
  49. package/docs/reference/functions/process.md +33 -0
  50. package/docs/reference/functions/redis.md +28 -0
  51. package/docs/reference/functions/required.md +41 -0
  52. package/docs/reference/functions/selected.md +26 -0
  53. package/docs/reference/functions/sqlite.md +33 -0
  54. package/docs/reference/functions/testId.md +20 -0
  55. package/docs/reference/functions/text.md +40 -0
  56. package/docs/reference/functions/valued.md +28 -0
  57. package/docs/reference/functions/waitUntil.md +46 -0
  58. package/docs/reference/functions/within.md +29 -0
  59. package/docs/reference/index.md +196 -0
  60. package/docs/reference/interfaces/BaseResult.md +87 -0
  61. package/docs/reference/interfaces/CallResult.md +160 -0
  62. package/docs/reference/interfaces/CaptureScope.md +82 -0
  63. package/docs/reference/interfaces/CliResult.md +253 -0
  64. package/docs/reference/interfaces/ContainerAccessor.md +166 -0
  65. package/docs/reference/interfaces/DirectoryAccessor.md +33 -0
  66. package/docs/reference/interfaces/FetchResult.md +180 -0
  67. package/docs/reference/interfaces/FilesystemAccessor.md +46 -0
  68. package/docs/reference/interfaces/HttpResult.md +126 -0
  69. package/docs/reference/interfaces/JsonAccessor.md +46 -0
  70. package/docs/reference/interfaces/PageResult.md +356 -0
  71. package/docs/reference/interfaces/RenderResult.md +72 -0
  72. package/docs/reference/interfaces/RenderedText.md +110 -0
  73. package/docs/reference/interfaces/ResponseAccessor.md +47 -0
  74. package/docs/reference/interfaces/ScreenResult.md +128 -0
  75. package/docs/reference/interfaces/TableAccessor.md +26 -0
  76. package/docs/reference/interfaces/TextAccessor.md +96 -0
  77. package/docs/reference/type-aliases/ApiHandle.md +68 -0
  78. package/docs/reference/type-aliases/ApiSpecification.md +213 -0
  79. package/docs/reference/type-aliases/ApiSpecificationOptions.md +68 -0
  80. package/docs/reference/type-aliases/BrowserConsoleMessage.md +30 -0
  81. package/docs/reference/type-aliases/BrowserLinkElement.md +50 -0
  82. package/docs/reference/type-aliases/BrowserMetaElement.md +40 -0
  83. package/docs/reference/type-aliases/BrowserOpenOptions.md +87 -0
  84. package/docs/reference/type-aliases/BrowserPage.md +132 -0
  85. package/docs/reference/type-aliases/BrowserPort.md +51 -0
  86. package/docs/reference/type-aliases/CliEnv.md +11 -0
  87. package/docs/reference/type-aliases/CliHandle.md +80 -0
  88. package/docs/reference/type-aliases/CliInput.md +36 -0
  89. package/docs/reference/type-aliases/CliOutput.md +46 -0
  90. package/docs/reference/type-aliases/CliPort.md +58 -0
  91. package/docs/reference/type-aliases/CliSpecification.md +144 -0
  92. package/docs/reference/type-aliases/CliSpecificationOptions.md +134 -0
  93. package/docs/reference/type-aliases/ComponentChain.md +156 -0
  94. package/docs/reference/type-aliases/ComponentScenario.md +20 -0
  95. package/docs/reference/type-aliases/ComponentUi.md +47 -0
  96. package/docs/reference/type-aliases/ComponentVisitor.md +10 -0
  97. package/docs/reference/type-aliases/ContainerPort.md +113 -0
  98. package/docs/reference/type-aliases/Contract.md +68 -0
  99. package/docs/reference/type-aliases/ContractInput.md +13 -0
  100. package/docs/reference/type-aliases/ContractRequest.md +95 -0
  101. package/docs/reference/type-aliases/ContractResponder.md +23 -0
  102. package/docs/reference/type-aliases/ContractResponse.md +78 -0
  103. package/docs/reference/type-aliases/ContractResponseValue.md +13 -0
  104. package/docs/reference/type-aliases/Contracts.md +48 -0
  105. package/docs/reference/type-aliases/DatabaseKeys.md +16 -0
  106. package/docs/reference/type-aliases/DatabasePort.md +72 -0
  107. package/docs/reference/type-aliases/DeviceOpenOptions.md +46 -0
  108. package/docs/reference/type-aliases/DevicePort.md +51 -0
  109. package/docs/reference/type-aliases/DeviceScreen.md +32 -0
  110. package/docs/reference/type-aliases/DeviceTimeouts.md +39 -0
  111. package/docs/reference/type-aliases/DockerSpecConfig.md +43 -0
  112. package/docs/reference/type-aliases/DomMount.md +21 -0
  113. package/docs/reference/type-aliases/ElementKind.md +27 -0
  114. package/docs/reference/type-aliases/ElementMatch.md +74 -0
  115. package/docs/reference/type-aliases/ElementOptions.md +29 -0
  116. package/docs/reference/type-aliases/ElementRef.md +128 -0
  117. package/docs/reference/type-aliases/ExecOptions.md +37 -0
  118. package/docs/reference/type-aliases/FileAccessor.md +54 -0
  119. package/docs/reference/type-aliases/HonoApp.md +31 -0
  120. package/docs/reference/type-aliases/HttpContractFilter.md +49 -0
  121. package/docs/reference/type-aliases/HttpResponseInit.md +46 -0
  122. package/docs/reference/type-aliases/HttpStreamInit.md +58 -0
  123. package/docs/reference/type-aliases/IntegrationHandle.md +46 -0
  124. package/docs/reference/type-aliases/IntegrationSpecification.md +111 -0
  125. package/docs/reference/type-aliases/IntegrationSpecificationOptions.md +42 -0
  126. package/docs/reference/type-aliases/Intercept.md +19 -0
  127. package/docs/reference/type-aliases/InterceptOptions.md +28 -0
  128. package/docs/reference/type-aliases/InterceptScope.md +11 -0
  129. package/docs/reference/type-aliases/IsolationStrategy.md +75 -0
  130. package/docs/reference/type-aliases/JobHandle.md +34 -0
  131. package/docs/reference/type-aliases/JobsHandle.md +57 -0
  132. package/docs/reference/type-aliases/JobsResult.md +16 -0
  133. package/docs/reference/type-aliases/JobsSpecification.md +94 -0
  134. package/docs/reference/type-aliases/JobsSpecificationOptions.md +56 -0
  135. package/docs/reference/type-aliases/LandmarkKind.md +20 -0
  136. package/docs/reference/type-aliases/LiterateRunFlags.md +27 -0
  137. package/docs/reference/type-aliases/LiterateServeRegistration.md +70 -0
  138. package/docs/reference/type-aliases/MatchFixtureOptions.md +27 -0
  139. package/docs/reference/type-aliases/MatchableRequest.md +61 -0
  140. package/docs/reference/type-aliases/MatcherKind.md +34 -0
  141. package/docs/reference/type-aliases/MobileBackendOptions.md +28 -0
  142. package/docs/reference/type-aliases/MobileElementKind.md +14 -0
  143. package/docs/reference/type-aliases/MobileElementMatch.md +60 -0
  144. package/docs/reference/type-aliases/MobileElementRef.md +20 -0
  145. package/docs/reference/type-aliases/MobileHandle.md +65 -0
  146. package/docs/reference/type-aliases/MobileScenario.md +20 -0
  147. package/docs/reference/type-aliases/MobileSpecification.md +51 -0
  148. package/docs/reference/type-aliases/MobileSpecificationOptions.md +126 -0
  149. package/docs/reference/type-aliases/MobileVisitor.md +81 -0
  150. package/docs/reference/type-aliases/MockOfOptions.md +26 -0
  151. package/docs/reference/type-aliases/MockPort.md +10 -0
  152. package/docs/reference/type-aliases/PinnedClock.md +10 -0
  153. package/docs/reference/type-aliases/PostgresOptions.md +32 -0
  154. package/docs/reference/type-aliases/ProcessOptions.md +112 -0
  155. package/docs/reference/type-aliases/RedisOptions.md +20 -0
  156. package/docs/reference/type-aliases/RenderSubject.md +12 -0
  157. package/docs/reference/type-aliases/ScreenNode.md +67 -0
  158. package/docs/reference/type-aliases/ServerPort.md +36 -0
  159. package/docs/reference/type-aliases/ServerResponse.md +46 -0
  160. package/docs/reference/type-aliases/ServerSpec.md +21 -0
  161. package/docs/reference/type-aliases/ServiceHandle.md +216 -0
  162. package/docs/reference/type-aliases/ServiceRecord.md +12 -0
  163. package/docs/reference/type-aliases/SpecDocument.md +84 -0
  164. package/docs/reference/type-aliases/SpecEnvToken.md +21 -0
  165. package/docs/reference/type-aliases/SpecFileAssertion.md +27 -0
  166. package/docs/reference/type-aliases/SpecFixture.md +30 -0
  167. package/docs/reference/type-aliases/SpecKind.md +8 -0
  168. package/docs/reference/type-aliases/SpecRun.md +108 -0
  169. package/docs/reference/type-aliases/SpecServeEntry.md +40 -0
  170. package/docs/reference/type-aliases/SpecStream.md +32 -0
  171. package/docs/reference/type-aliases/SpecificationConfig.md +290 -0
  172. package/docs/reference/type-aliases/SqliteOptions.md +36 -0
  173. package/docs/reference/type-aliases/SseEvent.md +58 -0
  174. package/docs/reference/type-aliases/StreamBody.md +61 -0
  175. package/docs/reference/type-aliases/TextFilter.md +22 -0
  176. package/docs/reference/type-aliases/VisitScenario.md +20 -0
  177. package/docs/reference/type-aliases/Visitor.md +215 -0
  178. package/docs/reference/type-aliases/WaitUntilOptions.md +46 -0
  179. package/docs/reference/type-aliases/WebsiteBackendOptions.md +37 -0
  180. package/docs/reference/type-aliases/WebsiteHandle.md +51 -0
  181. package/docs/reference/type-aliases/WebsiteSpecification.md +118 -0
  182. package/docs/reference/type-aliases/WebsiteSpecificationOptions.md +40 -0
  183. package/docs/reference/variables/anthropic.md +19 -0
  184. package/docs/reference/variables/banner.md +10 -0
  185. package/docs/reference/variables/button.md +10 -0
  186. package/docs/reference/variables/clock.md +16 -0
  187. package/docs/reference/variables/complementary.md +10 -0
  188. package/docs/reference/variables/component.md +10 -0
  189. package/docs/reference/variables/content.md +10 -0
  190. package/docs/reference/variables/contentinfo.md +10 -0
  191. package/docs/reference/variables/dialog.md +10 -0
  192. package/docs/reference/variables/field.md +10 -0
  193. package/docs/reference/variables/form.md +10 -0
  194. package/docs/reference/variables/heading.md +10 -0
  195. package/docs/reference/variables/http.md +40 -0
  196. package/docs/reference/variables/intercept.md +11 -0
  197. package/docs/reference/variables/link.md +10 -0
  198. package/docs/reference/variables/listitem.md +10 -0
  199. package/docs/reference/variables/main.md +10 -0
  200. package/docs/reference/variables/match.md +8 -0
  201. package/docs/reference/variables/navigation.md +10 -0
  202. package/docs/reference/variables/openai.md +21 -0
  203. package/docs/reference/variables/option.md +17 -0
  204. package/docs/reference/variables/region.md +10 -0
  205. package/docs/reference/variables/row.md +10 -0
  206. package/docs/reference/variables/search.md +10 -0
  207. package/docs/reference/variables/specification.md +8 -0
  208. package/docs/reference/variables/status.md +10 -0
  209. package/docs/reference/variables/table.md +10 -0
  210. package/package.json +2 -1
@@ -0,0 +1,126 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: MobileSpecificationOptions\<Services\>
3
+
4
+ ```ts
5
+ type MobileSpecificationOptions<Services> = object;
6
+ ```
7
+
8
+ Defined in: [src/facets/mobile/mobile.specification.ts:33](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L33)
9
+
10
+ Options for startMobile \| specification.mobile.
11
+
12
+ ## Type Parameters
13
+
14
+ | Type Parameter | Default type |
15
+ | ------ | ------ |
16
+ | `Services` *extends* [`ServiceRecord`](ServiceRecord.md) | [`ServiceRecord`](ServiceRecord.md) |
17
+
18
+ ## Properties
19
+
20
+ ### app
21
+
22
+ ```ts
23
+ app: object;
24
+ ```
25
+
26
+ Defined in: [src/facets/mobile/mobile.specification.ts:35](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L35)
27
+
28
+ The app under test — terminated and relaunched by every `.open()`.
29
+
30
+ #### bundleId
31
+
32
+ ```ts
33
+ bundleId: string;
34
+ ```
35
+
36
+ Bundle id of the installed app (`com.example.app`).
37
+
38
+ ***
39
+
40
+ ### backend?
41
+
42
+ ```ts
43
+ optional backend?: MobileBackendOptions;
44
+ ```
45
+
46
+ Defined in: [src/facets/mobile/mobile.specification.ts:44](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L44)
47
+
48
+ Declared stub backend: started with the runner, serving the contracts
49
+ each chain declares via `.intercept(...)`. The handle gains
50
+ `backendUrl` — inject it into your bundler env yourself.
51
+
52
+ ***
53
+
54
+ ### device
55
+
56
+ ```ts
57
+ device: object;
58
+ ```
59
+
60
+ Defined in: [src/facets/mobile/mobile.specification.ts:46](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L46)
61
+
62
+ The simulator to run on — resolved through `xcrun simctl`.
63
+
64
+ #### name
65
+
66
+ ```ts
67
+ name: string;
68
+ ```
69
+
70
+ Simulator name, matched exactly (`iPhone 17`).
71
+
72
+ #### os?
73
+
74
+ ```ts
75
+ optional os?: string;
76
+ ```
77
+
78
+ OS narrowing when the name exists on several runtimes — `'26.5'` or `'iOS 26.5'`.
79
+
80
+ #### udid?
81
+
82
+ ```ts
83
+ optional udid?: string;
84
+ ```
85
+
86
+ Explicit UDID — skips name/os resolution entirely.
87
+
88
+ ***
89
+
90
+ ### root?
91
+
92
+ ```ts
93
+ optional root?: string;
94
+ ```
95
+
96
+ Defined in: [src/facets/mobile/mobile.specification.ts:59](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L59)
97
+
98
+ Project-root override (CONVENTIONS A9): where the appium binary is
99
+ resolved from (`node_modules/.bin`). Auto-discovered from the calling
100
+ file when absent.
101
+
102
+ ***
103
+
104
+ ### services?
105
+
106
+ ```ts
107
+ optional services?: Services;
108
+ ```
109
+
110
+ Defined in: [src/facets/mobile/mobile.specification.ts:73](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L73)
111
+
112
+ Named services started with the runner and stopped with it — a
113
+ `process()` for the bundler the app loads from, a database a dev build
114
+ reads. Metro stops being a `beforeAll` the repository maintains: it is
115
+ `process({ command: 'expo start', ready: /Metro waiting on .*:(\\d+)/ })`
116
+ like every other external process the framework owns.
117
+
118
+ ***
119
+
120
+ ### timeouts?
121
+
122
+ ```ts
123
+ optional timeouts?: DeviceTimeouts;
124
+ ```
125
+
126
+ Defined in: [src/facets/mobile/mobile.specification.ts:74](https://github.com/jterrazz/package-test/blob/main/src/facets/mobile/mobile.specification.ts#L74)
@@ -0,0 +1,81 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: MobileVisitor
3
+
4
+ ```ts
5
+ type MobileVisitor = object;
6
+ ```
7
+
8
+ Defined in: [src/model/ports/device.port.ts:50](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L50)
9
+
10
+ The visitor — the interaction vocabulary handed to a mobile scenario.
11
+ Every verb auto-waits by polling until a visible match exists; acting
12
+ verbs then enforce exactly-one (W3), while `see()` — the single
13
+ synchronization primitive — is satisfied by any visible match. There is
14
+ no sleep and no conditional helper.
15
+
16
+ ## Properties
17
+
18
+ ### fill
19
+
20
+ ```ts
21
+ fill: (element, value) => Promise<void>;
22
+ ```
23
+
24
+ Defined in: [src/model/ports/device.port.ts:52](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L52)
25
+
26
+ Fill a text field with a value.
27
+
28
+ #### Parameters
29
+
30
+ | Parameter | Type |
31
+ | ------ | ------ |
32
+ | `element` | [`MobileElementRef`](MobileElementRef.md) |
33
+ | `value` | `string` |
34
+
35
+ #### Returns
36
+
37
+ `Promise`\<`void`\>
38
+
39
+ ***
40
+
41
+ ### see
42
+
43
+ ```ts
44
+ see: (element) => Promise<void>;
45
+ ```
46
+
47
+ Defined in: [src/model/ports/device.port.ts:54](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L54)
48
+
49
+ Wait until the element is visible — the only synchronization primitive.
50
+
51
+ #### Parameters
52
+
53
+ | Parameter | Type |
54
+ | ------ | ------ |
55
+ | `element` | [`MobileElementRef`](MobileElementRef.md) |
56
+
57
+ #### Returns
58
+
59
+ `Promise`\<`void`\>
60
+
61
+ ***
62
+
63
+ ### tap
64
+
65
+ ```ts
66
+ tap: (element) => Promise<void>;
67
+ ```
68
+
69
+ Defined in: [src/model/ports/device.port.ts:56](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L56)
70
+
71
+ Tap the element.
72
+
73
+ #### Parameters
74
+
75
+ | Parameter | Type |
76
+ | ------ | ------ |
77
+ | `element` | [`MobileElementRef`](MobileElementRef.md) |
78
+
79
+ #### Returns
80
+
81
+ `Promise`\<`void`\>
@@ -0,0 +1,26 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: MockOfOptions
3
+
4
+ ```ts
5
+ type MockOfOptions = object;
6
+ ```
7
+
8
+ Defined in: [src/model/doubles/mock-of.ts:5](https://github.com/jterrazz/package-test/blob/main/src/model/doubles/mock-of.ts#L5)
9
+
10
+ How much of the port the double answers for.
11
+
12
+ ## Properties
13
+
14
+ ### deep?
15
+
16
+ ```ts
17
+ optional deep?: boolean;
18
+ ```
19
+
20
+ Defined in: [src/model/doubles/mock-of.ts:13](https://github.com/jterrazz/package-test/blob/main/src/model/doubles/mock-of.ts#L13)
21
+
22
+ Deep (the default): reading a member that was never stubbed hands back
23
+ another double, however far down the port nests. `false` gives the flat
24
+ proxy — every member of `T` and nothing beneath them, which is what a
25
+ port with a nested namespace wants when the test only ever touches the
26
+ first level.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: MockPort
3
+
4
+ ```ts
5
+ type MockPort = typeof mockOf;
6
+ ```
7
+
8
+ Defined in: [src/model/doubles/mock-of.ts:35](https://github.com/jterrazz/package-test/blob/main/src/model/doubles/mock-of.ts#L35)
9
+
10
+ The factory's own shape — kept as a name so a consumer can annotate with it.
@@ -0,0 +1,10 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: PinnedClock
3
+
4
+ ```ts
5
+ type PinnedClock = Disposable;
6
+ ```
7
+
8
+ Defined in: [src/model/clock/clock.ts:23](https://github.com/jterrazz/package-test/blob/main/src/model/clock/clock.ts#L23)
9
+
10
+ A pinned clock — released when the `using` scope that declared it ends.
@@ -0,0 +1,32 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: PostgresOptions
3
+
4
+ ```ts
5
+ type PostgresOptions = object;
6
+ ```
7
+
8
+ Defined in: [src/seams/postgres/postgres.ts:23](https://github.com/jterrazz/package-test/blob/main/src/seams/postgres/postgres.ts#L23)
9
+
10
+ ## Properties
11
+
12
+ ### env?
13
+
14
+ ```ts
15
+ optional env?: Record<string, string>;
16
+ ```
17
+
18
+ Defined in: [src/seams/postgres/postgres.ts:27](https://github.com/jterrazz/package-test/blob/main/src/seams/postgres/postgres.ts#L27)
19
+
20
+ Override environment variables.
21
+
22
+ ***
23
+
24
+ ### image?
25
+
26
+ ```ts
27
+ optional image?: string;
28
+ ```
29
+
30
+ Defined in: [src/seams/postgres/postgres.ts:25](https://github.com/jterrazz/package-test/blob/main/src/seams/postgres/postgres.ts#L25)
31
+
32
+ Override image.
@@ -0,0 +1,112 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: ProcessOptions
3
+
4
+ ```ts
5
+ type ProcessOptions = object;
6
+ ```
7
+
8
+ Defined in: [src/seams/process/serve.adapter.ts:18](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L18)
9
+
10
+ The ONE shape an external process takes — the site under test, a backend a
11
+ page talks to, a bundler a simulator loads from. Built by `process()`
12
+ (chapter 17) and accepted wherever a facet starts something outside this
13
+ process: `website({ server })`, `services: { api: process(…) }`, and the
14
+ literate `serve:` registry.
15
+
16
+ ## Properties
17
+
18
+ ### before?
19
+
20
+ ```ts
21
+ optional before?: string;
22
+ ```
23
+
24
+ Defined in: [src/seams/process/serve.adapter.ts:24](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L24)
25
+
26
+ A one-shot command run ONCE per specification, before the process is
27
+ spawned, which must exit 0 — a build, a migration, a fixture load. Its
28
+ failure is the specification's, and it says so.
29
+
30
+ ***
31
+
32
+ ### command
33
+
34
+ ```ts
35
+ command: string;
36
+ ```
37
+
38
+ Defined in: [src/seams/process/serve.adapter.ts:26](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L26)
39
+
40
+ Shell command that starts the process. Receives the chosen port as `PORT`.
41
+
42
+ ***
43
+
44
+ ### cwd?
45
+
46
+ ```ts
47
+ optional cwd?: string;
48
+ ```
49
+
50
+ Defined in: [src/seams/process/serve.adapter.ts:28](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L28)
51
+
52
+ Working directory, relative to the project root. Default: the root itself.
53
+
54
+ ***
55
+
56
+ ### env?
57
+
58
+ ```ts
59
+ optional env?:
60
+ | ((services) => Record<string, string>)
61
+ | Record<string, string>;
62
+ ```
63
+
64
+ Defined in: [src/seams/process/serve.adapter.ts:34](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L34)
65
+
66
+ Environment for the child, on top of the runner's own. A function
67
+ receives the services already started beside this one, so a process can
68
+ be handed a sibling's connection string.
69
+
70
+ ***
71
+
72
+ ### port?
73
+
74
+ ```ts
75
+ optional port?: number;
76
+ ```
77
+
78
+ Defined in: [src/seams/process/serve.adapter.ts:38](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L38)
79
+
80
+ Fixed port. Default: an OS-assigned free port, injected as `PORT`.
81
+
82
+ ***
83
+
84
+ ### ready?
85
+
86
+ ```ts
87
+ optional ready?: RegExp | string;
88
+ ```
89
+
90
+ Defined in: [src/seams/process/serve.adapter.ts:50](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L50)
91
+
92
+ How readiness is observed. Two forms:
93
+
94
+ - a **path** (or nothing) — the framework picks the port, injects it as
95
+ `PORT`, and polls `<baseUrl><path>` until it answers any HTTP status
96
+ (default `/`). This is `specification.website()`'s form.
97
+ - a **regex over the child's output** with ONE capture group holding the
98
+ port the server chose itself. Nothing is injected as `PORT`: the server
99
+ announces its port and the framework reads it from the banner. This is
100
+ the form a literate `serve:` registration uses.
101
+
102
+ ***
103
+
104
+ ### timeout?
105
+
106
+ ```ts
107
+ optional timeout?: number;
108
+ ```
109
+
110
+ Defined in: [src/seams/process/serve.adapter.ts:52](https://github.com/jterrazz/package-test/blob/main/src/seams/process/serve.adapter.ts#L52)
111
+
112
+ Readiness budget in milliseconds. Default 30 000.
@@ -0,0 +1,20 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: RedisOptions
3
+
4
+ ```ts
5
+ type RedisOptions = object;
6
+ ```
7
+
8
+ Defined in: [src/seams/redis/redis.ts:6](https://github.com/jterrazz/package-test/blob/main/src/seams/redis/redis.ts#L6)
9
+
10
+ ## Properties
11
+
12
+ ### image?
13
+
14
+ ```ts
15
+ optional image?: string;
16
+ ```
17
+
18
+ Defined in: [src/seams/redis/redis.ts:8](https://github.com/jterrazz/package-test/blob/main/src/seams/redis/redis.ts#L8)
19
+
20
+ Override image.
@@ -0,0 +1,12 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: RenderSubject
3
+
4
+ ```ts
5
+ type RenderSubject = ComponentUi | DomMount;
6
+ ```
7
+
8
+ Defined in: [src/facets/component/component.types.ts:31](https://github.com/jterrazz/package-test/blob/main/src/facets/component/component.types.ts#L31)
9
+
10
+ What `.render()` mounts. A React tree is an element (`<PostTable />`); a
11
+ vanilla DOM subject is the FUNCTION that fills a container, which is how a
12
+ DOM-only module is called in production too.
@@ -0,0 +1,67 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: ScreenNode
3
+
4
+ ```ts
5
+ type ScreenNode = object;
6
+ ```
7
+
8
+ Defined in: [src/model/ports/device.port.ts:68](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L68)
9
+
10
+ One node of the projected accessibility tree — the XCUITest page source
11
+ with its noise collapsed: unlabeled, identifier-less, valueless wrapper
12
+ nodes are dropped and their children hoisted, so the projection stays
13
+ stable and golden-friendly. Type names lose the `XCUIElementType` prefix.
14
+
15
+ ## Properties
16
+
17
+ ### children?
18
+
19
+ ```ts
20
+ optional children?: ScreenNode[];
21
+ ```
22
+
23
+ Defined in: [src/model/ports/device.port.ts:69](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L69)
24
+
25
+ ***
26
+
27
+ ### identifier?
28
+
29
+ ```ts
30
+ optional identifier?: string;
31
+ ```
32
+
33
+ Defined in: [src/model/ports/device.port.ts:71](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L71)
34
+
35
+ The accessibility identifier, only when it differs from the label.
36
+
37
+ ***
38
+
39
+ ### label?
40
+
41
+ ```ts
42
+ optional label?: string;
43
+ ```
44
+
45
+ Defined in: [src/model/ports/device.port.ts:72](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L72)
46
+
47
+ ***
48
+
49
+ ### type
50
+
51
+ ```ts
52
+ type: string;
53
+ ```
54
+
55
+ Defined in: [src/model/ports/device.port.ts:74](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L74)
56
+
57
+ Element type without the `XCUIElementType` prefix — `Button`, `StaticText`.
58
+
59
+ ***
60
+
61
+ ### value?
62
+
63
+ ```ts
64
+ optional value?: string;
65
+ ```
66
+
67
+ Defined in: [src/model/ports/device.port.ts:75](https://github.com/jterrazz/package-test/blob/main/src/model/ports/device.port.ts#L75)
@@ -0,0 +1,36 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: ServerPort
3
+
4
+ ```ts
5
+ type ServerPort = object;
6
+ ```
7
+
8
+ Defined in: [src/model/ports/server.port.ts:17](https://github.com/jterrazz/package-test/blob/main/src/model/ports/server.port.ts#L17)
9
+
10
+ Abstract server interface for specification runners.
11
+ Integration mode uses an in-process Hono app; E2E mode uses real HTTP via fetch.
12
+
13
+ ## Properties
14
+
15
+ ### request
16
+
17
+ ```ts
18
+ request: (method, path, body?, headers?) => Promise<ServerResponse>;
19
+ ```
20
+
21
+ Defined in: [src/model/ports/server.port.ts:19](https://github.com/jterrazz/package-test/blob/main/src/model/ports/server.port.ts#L19)
22
+
23
+ Send an HTTP request and return the parsed response.
24
+
25
+ #### Parameters
26
+
27
+ | Parameter | Type |
28
+ | ------ | ------ |
29
+ | `method` | `string` |
30
+ | `path` | `string` |
31
+ | `body?` | `unknown` |
32
+ | `headers?` | `Record`\<`string`, `string`\> |
33
+
34
+ #### Returns
35
+
36
+ `Promise`\<[`ServerResponse`](ServerResponse.md)\>
@@ -0,0 +1,46 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: ServerResponse
3
+
4
+ ```ts
5
+ type ServerResponse = object;
6
+ ```
7
+
8
+ Defined in: [src/model/ports/server.port.ts:4](https://github.com/jterrazz/package-test/blob/main/src/model/ports/server.port.ts#L4)
9
+
10
+ HTTP response returned by a server port, with parsed JSON body.
11
+
12
+ ## Properties
13
+
14
+ ### body
15
+
16
+ ```ts
17
+ body: unknown;
18
+ ```
19
+
20
+ Defined in: [src/model/ports/server.port.ts:8](https://github.com/jterrazz/package-test/blob/main/src/model/ports/server.port.ts#L8)
21
+
22
+ Parsed JSON response body, or null if parsing failed.
23
+
24
+ ***
25
+
26
+ ### headers
27
+
28
+ ```ts
29
+ headers: Record<string, string>;
30
+ ```
31
+
32
+ Defined in: [src/model/ports/server.port.ts:10](https://github.com/jterrazz/package-test/blob/main/src/model/ports/server.port.ts#L10)
33
+
34
+ Response headers as a flat key-value map.
35
+
36
+ ***
37
+
38
+ ### status
39
+
40
+ ```ts
41
+ status: number;
42
+ ```
43
+
44
+ Defined in: [src/model/ports/server.port.ts:6](https://github.com/jterrazz/package-test/blob/main/src/model/ports/server.port.ts#L6)
45
+
46
+ HTTP status code.
@@ -0,0 +1,21 @@
1
+ <!-- GENERATED by `typescript docs` — DO NOT EDIT -->
2
+ # Type Alias: ServerSpec\<Services\>
3
+
4
+ ```ts
5
+ type ServerSpec<Services> =
6
+ | ((services) =>
7
+ | ProcessHandle
8
+ | ProcessOptions)
9
+ | ProcessHandle
10
+ | ProcessOptions;
11
+ ```
12
+
13
+ Defined in: [src/facets/website/website.specification.ts:32](https://github.com/jterrazz/package-test/blob/main/src/facets/website/website.specification.ts#L32)
14
+
15
+ What `server` may be handed as, and what it resolves to.
16
+
17
+ ## Type Parameters
18
+
19
+ | Type Parameter |
20
+ | ------ |
21
+ | `Services` *extends* [`ServiceRecord`](ServiceRecord.md) |