@satorio/machinery 0.2.1

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 (341) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +71 -0
  3. package/dictionary/all.json +4656 -0
  4. package/dictionary/all.toon +639 -0
  5. package/dictionary/core.json +221 -0
  6. package/dictionary/core.toon +33 -0
  7. package/dictionary/graphql.json +212 -0
  8. package/dictionary/graphql.toon +32 -0
  9. package/dictionary/http.json +113 -0
  10. package/dictionary/http.toon +21 -0
  11. package/dictionary/identifiers.json +266 -0
  12. package/dictionary/identifiers.toon +38 -0
  13. package/dictionary/index.json +96 -0
  14. package/dictionary/index.toon +18 -0
  15. package/dictionary/integration.json +131 -0
  16. package/dictionary/integration.toon +23 -0
  17. package/dictionary/money.json +383 -0
  18. package/dictionary/money.toon +51 -0
  19. package/dictionary/ports.json +392 -0
  20. package/dictionary/ports.toon +52 -0
  21. package/dictionary/postgres.json +473 -0
  22. package/dictionary/postgres.toon +61 -0
  23. package/dictionary/publishing.json +131 -0
  24. package/dictionary/publishing.toon +23 -0
  25. package/dictionary/queue.json +365 -0
  26. package/dictionary/queue.toon +49 -0
  27. package/dictionary/reference/api.mdx +843 -0
  28. package/dictionary/reference/uk/api.mdx +844 -0
  29. package/dictionary/storage.json +194 -0
  30. package/dictionary/storage.toon +30 -0
  31. package/dictionary/testing.json +707 -0
  32. package/dictionary/testing.toon +87 -0
  33. package/dictionary/time.json +311 -0
  34. package/dictionary/time.toon +43 -0
  35. package/dictionary/vitest.json +356 -0
  36. package/dictionary/vitest.toon +48 -0
  37. package/dictionary/workflow.json +185 -0
  38. package/dictionary/workflow.toon +29 -0
  39. package/dist/bin/command.d.ts +45 -0
  40. package/dist/bin/command.js +113 -0
  41. package/dist/bin.d.ts +2 -0
  42. package/dist/bin.js +11 -0
  43. package/dist/core/bigint-json.d.ts +6 -0
  44. package/dist/core/bigint-json.js +6 -0
  45. package/dist/core/closed-set.d.ts +14 -0
  46. package/dist/core/closed-set.js +8 -0
  47. package/dist/core/domain-error.d.ts +8 -0
  48. package/dist/core/domain-error.js +11 -0
  49. package/dist/core/environment.d.ts +124 -0
  50. package/dist/core/environment.js +115 -0
  51. package/dist/core/index.d.ts +13 -0
  52. package/dist/core/index.js +13 -0
  53. package/dist/core/ulid.d.ts +27 -0
  54. package/dist/core/ulid.js +27 -0
  55. package/dist/graphql/builder.d.ts +36 -0
  56. package/dist/graphql/builder.js +35 -0
  57. package/dist/graphql/context.d.ts +36 -0
  58. package/dist/graphql/context.js +69 -0
  59. package/dist/graphql/failure-classification.d.ts +11 -0
  60. package/dist/graphql/failure-classification.js +1 -0
  61. package/dist/graphql/failures.d.ts +62 -0
  62. package/dist/graphql/failures.js +30 -0
  63. package/dist/graphql/graphiql.d.ts +45 -0
  64. package/dist/graphql/graphiql.js +56 -0
  65. package/dist/graphql/index.d.ts +15 -0
  66. package/dist/graphql/index.js +14 -0
  67. package/dist/graphql/layer.d.ts +15 -0
  68. package/dist/graphql/layer.js +23 -0
  69. package/dist/graphql/request-handler.d.ts +26 -0
  70. package/dist/graphql/request-handler.js +33 -0
  71. package/dist/graphql/server.d.ts +19 -0
  72. package/dist/graphql/server.js +16 -0
  73. package/dist/graphql/settings.d.ts +55 -0
  74. package/dist/graphql/settings.js +82 -0
  75. package/dist/http/health.d.ts +70 -0
  76. package/dist/http/health.js +60 -0
  77. package/dist/http/index.d.ts +5 -0
  78. package/dist/http/index.js +5 -0
  79. package/dist/identifiers/client-code.d.ts +37 -0
  80. package/dist/identifiers/client-code.js +41 -0
  81. package/dist/identifiers/creditor-reference.d.ts +38 -0
  82. package/dist/identifiers/creditor-reference.js +32 -0
  83. package/dist/identifiers/damm.d.ts +22 -0
  84. package/dist/identifiers/damm.js +50 -0
  85. package/dist/identifiers/document-number.d.ts +68 -0
  86. package/dist/identifiers/document-number.js +73 -0
  87. package/dist/identifiers/document-numbers.d.ts +27 -0
  88. package/dist/identifiers/document-numbers.js +16 -0
  89. package/dist/identifiers/failures.d.ts +46 -0
  90. package/dist/identifiers/failures.js +48 -0
  91. package/dist/identifiers/index.d.ts +14 -0
  92. package/dist/identifiers/index.js +13 -0
  93. package/dist/identifiers/next-document-number.d.ts +26 -0
  94. package/dist/identifiers/next-document-number.js +31 -0
  95. package/dist/identifiers/ulid.d.ts +28 -0
  96. package/dist/identifiers/ulid.js +71 -0
  97. package/dist/integration/external-http-client.d.ts +22 -0
  98. package/dist/integration/external-http-client.js +74 -0
  99. package/dist/integration/index.d.ts +12 -0
  100. package/dist/integration/index.js +12 -0
  101. package/dist/integration/layer.d.ts +19 -0
  102. package/dist/integration/layer.js +30 -0
  103. package/dist/integration/retry.d.ts +65 -0
  104. package/dist/integration/retry.js +54 -0
  105. package/dist/integration/settings.d.ts +73 -0
  106. package/dist/integration/settings.js +92 -0
  107. package/dist/money/amount.d.ts +60 -0
  108. package/dist/money/amount.js +67 -0
  109. package/dist/money/arithmetic.d.ts +60 -0
  110. package/dist/money/arithmetic.js +73 -0
  111. package/dist/money/currency.d.ts +25 -0
  112. package/dist/money/currency.js +24 -0
  113. package/dist/money/decimal.d.ts +29 -0
  114. package/dist/money/decimal.js +39 -0
  115. package/dist/money/exchange-rate.d.ts +32 -0
  116. package/dist/money/exchange-rate.js +28 -0
  117. package/dist/money/failures.d.ts +86 -0
  118. package/dist/money/failures.js +97 -0
  119. package/dist/money/index.d.ts +15 -0
  120. package/dist/money/index.js +15 -0
  121. package/dist/money/percent.d.ts +35 -0
  122. package/dist/money/percent.js +50 -0
  123. package/dist/money/schema.d.ts +25 -0
  124. package/dist/money/schema.js +41 -0
  125. package/dist/ports/blob-store.d.ts +42 -0
  126. package/dist/ports/blob-store.js +13 -0
  127. package/dist/ports/document-number-counter.d.ts +36 -0
  128. package/dist/ports/document-number-counter.js +12 -0
  129. package/dist/ports/event-publisher.d.ts +29 -0
  130. package/dist/ports/event-publisher.js +13 -0
  131. package/dist/ports/external-http-client.d.ts +60 -0
  132. package/dist/ports/external-http-client.js +25 -0
  133. package/dist/ports/index.d.ts +17 -0
  134. package/dist/ports/index.js +17 -0
  135. package/dist/ports/integration-event-outbox.d.ts +44 -0
  136. package/dist/ports/integration-event-outbox.js +13 -0
  137. package/dist/ports/port-unavailable.d.ts +21 -0
  138. package/dist/ports/port-unavailable.js +30 -0
  139. package/dist/ports/processed-event-registry.d.ts +57 -0
  140. package/dist/ports/processed-event-registry.js +24 -0
  141. package/dist/ports/queue-message-producer.d.ts +26 -0
  142. package/dist/ports/queue-message-producer.js +12 -0
  143. package/dist/ports/queue-message-source.d.ts +39 -0
  144. package/dist/ports/queue-message-source.js +13 -0
  145. package/dist/ports/readiness-probe.d.ts +27 -0
  146. package/dist/ports/readiness-probe.js +13 -0
  147. package/dist/ports/transaction-boundary.d.ts +28 -0
  148. package/dist/ports/transaction-boundary.js +13 -0
  149. package/dist/postgres/client.d.ts +51 -0
  150. package/dist/postgres/client.js +81 -0
  151. package/dist/postgres/document-number-counter.d.ts +14 -0
  152. package/dist/postgres/document-number-counter.js +27 -0
  153. package/dist/postgres/failures.d.ts +28 -0
  154. package/dist/postgres/failures.js +18 -0
  155. package/dist/postgres/index.d.ts +18 -0
  156. package/dist/postgres/index.js +18 -0
  157. package/dist/postgres/integration-event-outbox.d.ts +15 -0
  158. package/dist/postgres/integration-event-outbox.js +60 -0
  159. package/dist/postgres/jsonb-value.d.ts +10 -0
  160. package/dist/postgres/jsonb-value.js +9 -0
  161. package/dist/postgres/layer.d.ts +57 -0
  162. package/dist/postgres/layer.js +72 -0
  163. package/dist/postgres/migrations/advisory-lock.d.ts +47 -0
  164. package/dist/postgres/migrations/advisory-lock.js +59 -0
  165. package/dist/postgres/migrations/runner.d.ts +56 -0
  166. package/dist/postgres/migrations/runner.js +69 -0
  167. package/dist/postgres/migrations/sql-file-loader.d.ts +59 -0
  168. package/dist/postgres/migrations/sql-file-loader.js +99 -0
  169. package/dist/postgres/processed-event-registry.d.ts +13 -0
  170. package/dist/postgres/processed-event-registry.js +44 -0
  171. package/dist/postgres/readiness-probe.d.ts +27 -0
  172. package/dist/postgres/readiness-probe.js +33 -0
  173. package/dist/postgres/settings.d.ts +134 -0
  174. package/dist/postgres/settings.js +210 -0
  175. package/dist/postgres/sql/0001_processed_event.sql +4 -0
  176. package/dist/postgres/sql/0002_integration_event_outbox.sql +13 -0
  177. package/dist/postgres/sql/0003_document_number_counter.sql +6 -0
  178. package/dist/postgres/sql-failure.d.ts +19 -0
  179. package/dist/postgres/sql-failure.js +22 -0
  180. package/dist/postgres/store-failure.d.ts +17 -0
  181. package/dist/postgres/store-failure.js +16 -0
  182. package/dist/postgres/transaction-boundary.d.ts +13 -0
  183. package/dist/postgres/transaction-boundary.js +21 -0
  184. package/dist/publishing/event-publisher.sns.d.ts +66 -0
  185. package/dist/publishing/event-publisher.sns.js +75 -0
  186. package/dist/publishing/event-publisher.stdout.d.ts +15 -0
  187. package/dist/publishing/event-publisher.stdout.js +24 -0
  188. package/dist/publishing/index.d.ts +10 -0
  189. package/dist/publishing/index.js +10 -0
  190. package/dist/publishing/layer.d.ts +25 -0
  191. package/dist/publishing/layer.js +39 -0
  192. package/dist/publishing/settings.d.ts +60 -0
  193. package/dist/publishing/settings.js +85 -0
  194. package/dist/queue/consumer.d.ts +91 -0
  195. package/dist/queue/consumer.js +92 -0
  196. package/dist/queue/envelope.d.ts +39 -0
  197. package/dist/queue/envelope.js +39 -0
  198. package/dist/queue/failures.d.ts +33 -0
  199. package/dist/queue/failures.js +15 -0
  200. package/dist/queue/index.d.ts +14 -0
  201. package/dist/queue/index.js +14 -0
  202. package/dist/queue/layer.d.ts +33 -0
  203. package/dist/queue/layer.js +58 -0
  204. package/dist/queue/message-codec.d.ts +43 -0
  205. package/dist/queue/message-codec.js +33 -0
  206. package/dist/queue/queue-message-producer.d.ts +61 -0
  207. package/dist/queue/queue-message-producer.js +52 -0
  208. package/dist/queue/queue-message-source.d.ts +93 -0
  209. package/dist/queue/queue-message-source.js +86 -0
  210. package/dist/queue/readiness.d.ts +78 -0
  211. package/dist/queue/readiness.js +86 -0
  212. package/dist/queue/settings.d.ts +106 -0
  213. package/dist/queue/settings.js +160 -0
  214. package/dist/storage/blob-store.d.ts +84 -0
  215. package/dist/storage/blob-store.js +109 -0
  216. package/dist/storage/index.d.ts +9 -0
  217. package/dist/storage/index.js +9 -0
  218. package/dist/storage/layer.d.ts +17 -0
  219. package/dist/storage/layer.js +30 -0
  220. package/dist/storage/settings.d.ts +48 -0
  221. package/dist/storage/settings.js +65 -0
  222. package/dist/testing/blob-store.d.ts +27 -0
  223. package/dist/testing/blob-store.js +45 -0
  224. package/dist/testing/clock.d.ts +29 -0
  225. package/dist/testing/clock.js +41 -0
  226. package/dist/testing/dna-perturbator/attention.d.ts +55 -0
  227. package/dist/testing/dna-perturbator/attention.js +49 -0
  228. package/dist/testing/dna-perturbator/chains.d.ts +31 -0
  229. package/dist/testing/dna-perturbator/chains.js +53 -0
  230. package/dist/testing/dna-perturbator/report.d.ts +12 -0
  231. package/dist/testing/dna-perturbator/report.js +22 -0
  232. package/dist/testing/dna-perturbator/verdict.d.ts +26 -0
  233. package/dist/testing/dna-perturbator/verdict.js +28 -0
  234. package/dist/testing/dna-perturbator.d.ts +48 -0
  235. package/dist/testing/dna-perturbator.js +145 -0
  236. package/dist/testing/document-number-counter.d.ts +29 -0
  237. package/dist/testing/document-number-counter.js +39 -0
  238. package/dist/testing/event-publisher.d.ts +28 -0
  239. package/dist/testing/event-publisher.js +33 -0
  240. package/dist/testing/external-http-client.d.ts +29 -0
  241. package/dist/testing/external-http-client.js +49 -0
  242. package/dist/testing/index.d.ts +24 -0
  243. package/dist/testing/index.js +24 -0
  244. package/dist/testing/integration-event-outbox.d.ts +37 -0
  245. package/dist/testing/integration-event-outbox.js +67 -0
  246. package/dist/testing/mutation-settings.d.ts +71 -0
  247. package/dist/testing/mutation-settings.js +57 -0
  248. package/dist/testing/postgres-rows.d.ts +12 -0
  249. package/dist/testing/postgres-rows.js +19 -0
  250. package/dist/testing/processed-event-registry.d.ts +25 -0
  251. package/dist/testing/processed-event-registry.js +39 -0
  252. package/dist/testing/queue-message-producer.d.ts +27 -0
  253. package/dist/testing/queue-message-producer.js +41 -0
  254. package/dist/testing/queue-message-source.d.ts +54 -0
  255. package/dist/testing/queue-message-source.js +71 -0
  256. package/dist/testing/quiet-reporter.d.ts +86 -0
  257. package/dist/testing/quiet-reporter.js +81 -0
  258. package/dist/testing/readiness-probe.d.ts +27 -0
  259. package/dist/testing/readiness-probe.js +33 -0
  260. package/dist/testing/scenario.d.ts +94 -0
  261. package/dist/testing/scenario.js +81 -0
  262. package/dist/testing/transaction-boundary.d.ts +30 -0
  263. package/dist/testing/transaction-boundary.js +36 -0
  264. package/dist/testing/typed-failure.d.ts +8 -0
  265. package/dist/testing/typed-failure.js +15 -0
  266. package/dist/time/calendar-day.d.ts +83 -0
  267. package/dist/time/calendar-day.js +112 -0
  268. package/dist/time/failures.d.ts +51 -0
  269. package/dist/time/failures.js +56 -0
  270. package/dist/time/index.d.ts +11 -0
  271. package/dist/time/index.js +11 -0
  272. package/dist/time/instant.d.ts +64 -0
  273. package/dist/time/instant.js +67 -0
  274. package/dist/time/period.d.ts +45 -0
  275. package/dist/time/period.js +55 -0
  276. package/dist/vitest/container-reuse.d.ts +14 -0
  277. package/dist/vitest/container-reuse.js +15 -0
  278. package/dist/vitest/dotenv.d.ts +16 -0
  279. package/dist/vitest/dotenv.js +48 -0
  280. package/dist/vitest/effect-single-instance.d.ts +36 -0
  281. package/dist/vitest/effect-single-instance.js +125 -0
  282. package/dist/vitest/fast-check-single-instance.d.ts +11 -0
  283. package/dist/vitest/fast-check-single-instance.js +26 -0
  284. package/dist/vitest/index.d.ts +31 -0
  285. package/dist/vitest/index.js +30 -0
  286. package/dist/vitest/localstack-container.d.ts +32 -0
  287. package/dist/vitest/localstack-container.js +55 -0
  288. package/dist/vitest/port-contract-tester.d.ts +8 -0
  289. package/dist/vitest/port-contract-tester.js +1 -0
  290. package/dist/vitest/port-contracts/blob-store.contract.d.ts +22 -0
  291. package/dist/vitest/port-contracts/blob-store.contract.js +108 -0
  292. package/dist/vitest/port-contracts/document-number-counter.contract.d.ts +18 -0
  293. package/dist/vitest/port-contracts/document-number-counter.contract.js +90 -0
  294. package/dist/vitest/port-contracts/event-publisher.contract.d.ts +35 -0
  295. package/dist/vitest/port-contracts/event-publisher.contract.js +67 -0
  296. package/dist/vitest/port-contracts/external-http-client.contract.d.ts +35 -0
  297. package/dist/vitest/port-contracts/external-http-client.contract.js +52 -0
  298. package/dist/vitest/port-contracts/integration-event-outbox.contract.d.ts +23 -0
  299. package/dist/vitest/port-contracts/integration-event-outbox.contract.js +75 -0
  300. package/dist/vitest/port-contracts/processed-event-registry.contract.d.ts +18 -0
  301. package/dist/vitest/port-contracts/processed-event-registry.contract.js +84 -0
  302. package/dist/vitest/port-contracts/queue-message-producer.contract.d.ts +26 -0
  303. package/dist/vitest/port-contracts/queue-message-producer.contract.js +48 -0
  304. package/dist/vitest/port-contracts/queue-message-source.contract.d.ts +29 -0
  305. package/dist/vitest/port-contracts/queue-message-source.contract.js +71 -0
  306. package/dist/vitest/port-contracts/readiness-probe.contract.d.ts +18 -0
  307. package/dist/vitest/port-contracts/readiness-probe.contract.js +41 -0
  308. package/dist/vitest/port-contracts/transaction-boundary.contract.d.ts +21 -0
  309. package/dist/vitest/port-contracts/transaction-boundary.contract.js +64 -0
  310. package/dist/vitest/postgres-container.d.ts +57 -0
  311. package/dist/vitest/postgres-container.js +118 -0
  312. package/dist/vitest/reader-port-contract.d.ts +41 -0
  313. package/dist/vitest/reader-port-contract.js +43 -0
  314. package/dist/vitest/repo-source-files.d.ts +37 -0
  315. package/dist/vitest/repo-source-files.js +61 -0
  316. package/dist/vitest/reset-tables.d.ts +18 -0
  317. package/dist/vitest/reset-tables.js +30 -0
  318. package/dist/vitest/settings-contract.d.ts +38 -0
  319. package/dist/vitest/settings-contract.js +77 -0
  320. package/dist/vitest/stub-server.d.ts +43 -0
  321. package/dist/vitest/stub-server.js +60 -0
  322. package/dist/vitest/term-registry.json +730 -0
  323. package/dist/vitest/testclock-fork-isolated-files.d.ts +13 -0
  324. package/dist/vitest/testclock-fork-isolated-files.js +18 -0
  325. package/dist/vitest/testclock-fork-isolation.d.ts +77 -0
  326. package/dist/vitest/testclock-fork-isolation.js +188 -0
  327. package/dist/workflow/claim-once.d.ts +16 -0
  328. package/dist/workflow/claim-once.js +9 -0
  329. package/dist/workflow/failures.d.ts +47 -0
  330. package/dist/workflow/failures.js +22 -0
  331. package/dist/workflow/index.d.ts +12 -0
  332. package/dist/workflow/index.js +12 -0
  333. package/dist/workflow/on-claim.d.ts +17 -0
  334. package/dist/workflow/on-claim.js +8 -0
  335. package/dist/workflow/publish-pending-events.d.ts +31 -0
  336. package/dist/workflow/publish-pending-events.js +31 -0
  337. package/dist/workflow/transactionally.d.ts +8 -0
  338. package/dist/workflow/transactionally.js +8 -0
  339. package/dist/workflow/versioned-payload.d.ts +35 -0
  340. package/dist/workflow/versioned-payload.js +43 -0
  341. package/package.json +309 -0
@@ -0,0 +1,473 @@
1
+ {
2
+ "package": "@satorio/machinery",
3
+ "version": "0.2.1",
4
+ "mechanism": {
5
+ "mechanism": "postgres",
6
+ "import": "@satorio/machinery/postgres",
7
+ "kind": "adapter",
8
+ "page": "mechanisms/postgres",
9
+ "what": "Public entry to the postgres mechanism: every port this machinery defines, bound to a real database.",
10
+ "whatUk": "Публічний вхід до механізму postgres: кожен порт, який визначає ця машинерія (machinery), прив'язаний до справжньої бази.",
11
+ "rows": [
12
+ {
13
+ "name": "AdvisoryLock",
14
+ "kind": "value",
15
+ "signature": "interface",
16
+ "fallback": "",
17
+ "caption": "A lock somebody else may already hold: its name, the attempt to take it, and the release that follows.",
18
+ "captionUk": "Замок, який хтось інший може вже тримати: його назва, спроба взяти його і звільнення, що йде слідом.",
19
+ "anchor": "postgres-AdvisoryLock-value"
20
+ },
21
+ {
22
+ "name": "DEFAULT_APPLICATION_NAME",
23
+ "kind": "value",
24
+ "signature": "const",
25
+ "fallback": "",
26
+ "caption": "The name this service shows under in the database's own list of connections when nobody names it.",
27
+ "captionUk": "Назва, під якою цей сервіс видно у власному списку з'єднань бази, коли її ніхто не називає.",
28
+ "anchor": "postgres-DEFAULT-APPLICATION-NAME-value"
29
+ },
30
+ {
31
+ "name": "DEFAULT_AUTH_MODE",
32
+ "kind": "value",
33
+ "signature": "'iam' | 'password'",
34
+ "fallback": "",
35
+ "caption": "How a service proves who it is when nothing says otherwise.",
36
+ "captionUk": "Як сервіс доводить, хто він, коли ніщо не каже інакше.",
37
+ "anchor": "postgres-DEFAULT-AUTH-MODE-value"
38
+ },
39
+ {
40
+ "name": "DEFAULT_POSTGRES_PORT",
41
+ "kind": "value",
42
+ "signature": "const",
43
+ "fallback": "",
44
+ "caption": "The port a Postgres server listens on when nobody says otherwise.",
45
+ "captionUk": "Порт, на якому слухає сервер Postgres, коли ніхто не каже інакше.",
46
+ "anchor": "postgres-DEFAULT-POSTGRES-PORT-value"
47
+ },
48
+ {
49
+ "name": "DEFAULT_POSTGRES_SCHEMA",
50
+ "kind": "value",
51
+ "signature": "const",
52
+ "fallback": "",
53
+ "caption": "The schema every statement runs against when nobody names one.",
54
+ "captionUk": "Схема, проти якої біжить кожен запит, коли ніхто її не називає.",
55
+ "anchor": "postgres-DEFAULT-POSTGRES-SCHEMA-value"
56
+ },
57
+ {
58
+ "name": "DEFAULT_POSTGRES_SSL_MODE",
59
+ "kind": "value",
60
+ "signature": "PostgresSslMode",
61
+ "fallback": "",
62
+ "caption": "How a connection is encrypted when nobody says otherwise: the chain is verified, so the safe choice is the one you get by saying nothing.",
63
+ "captionUk": "Як шифрується з'єднання, коли ніхто не каже інакше: ланцюг перевіряють, тож безпечний вибір — той, який ви дістаєте, не сказавши нічого.",
64
+ "anchor": "postgres-DEFAULT-POSTGRES-SSL-MODE-value"
65
+ },
66
+ {
67
+ "name": "ENVIRONMENT",
68
+ "kind": "value",
69
+ "signature": "readonly EnvironmentEntry[]",
70
+ "fallback": "",
71
+ "caption": "Every variable this adapter reads, and the one state each of them stands in.",
72
+ "captionUk": "Кожна змінна, яку читає цей адаптер, і один стан, у якому стоїть кожна з них.",
73
+ "anchor": "postgres-ENVIRONMENT-value"
74
+ },
75
+ {
76
+ "name": "MACHINERY_MIGRATIONS_DIRECTORY",
77
+ "kind": "value",
78
+ "signature": "const",
79
+ "fallback": "",
80
+ "caption": "Directory holding the machinery's shared migrations: the processed-event registry and the outbox.",
81
+ "captionUk": "Директорія зі спільними міграціями (migration) машинерії: реєстр відпрацьованих подій і буфер трансмітера.",
82
+ "anchor": "postgres-MACHINERY-MIGRATIONS-DIRECTORY-value"
83
+ },
84
+ {
85
+ "name": "MIGRATION_LOCK_NAME",
86
+ "kind": "value",
87
+ "signature": "const",
88
+ "fallback": "",
89
+ "caption": "The name every migration lock is built from, so one reader finds them all.",
90
+ "captionUk": "Назва, з якої будують кожен замок міграцій, тож один читач знаходить їх усі.",
91
+ "anchor": "postgres-MIGRATION-LOCK-NAME-value"
92
+ },
93
+ {
94
+ "name": "POSTGRES_SSL_MODES",
95
+ "kind": "value",
96
+ "signature": "const",
97
+ "fallback": "",
98
+ "caption": "Every way a connection can be encrypted and verified, from no encryption at all to a fully verified chain.",
99
+ "captionUk": "Кожен спосіб зашифрувати й перевірити з'єднання — від жодного шифрування до цілком перевіреного ланцюга.",
100
+ "anchor": "postgres-POSTGRES-SSL-MODES-value"
101
+ },
102
+ {
103
+ "name": "PostgresAuthentication",
104
+ "kind": "value",
105
+ "signature": "type",
106
+ "fallback": "",
107
+ "caption": "The two ways to prove to the database who you are: a short-lived IAM token or a password.",
108
+ "captionUk": "Два способи довести базі, хто ви: короткоживучий токен IAM або пароль.",
109
+ "anchor": "postgres-PostgresAuthentication-value"
110
+ },
111
+ {
112
+ "name": "PostgresConnectionSettings",
113
+ "kind": "value",
114
+ "signature": "interface",
115
+ "fallback": "",
116
+ "caption": "Everything one connection needs, read in one go: where the server is, who connects, and how the connection is proven and encrypted.",
117
+ "captionUk": "Усе, що потрібно одному з'єднанню, прочитане за раз: де сервер, хто під'єднується і як з'єднання доводять та шифрують.",
118
+ "anchor": "postgres-PostgresConnectionSettings-value"
119
+ },
120
+ {
121
+ "name": "postgresConnectionSettings",
122
+ "kind": "value",
123
+ "signature": "Config.Config<PostgresConnectionSettings>",
124
+ "fallback": "",
125
+ "caption": "Every variable of `ENVIRONMENT`, read in one go.",
126
+ "captionUk": "Кожна змінна з `ENVIRONMENT`, прочитана за раз.",
127
+ "anchor": "postgres-postgresConnectionSettings-value"
128
+ },
129
+ {
130
+ "name": "PostgresPorts",
131
+ "kind": "value",
132
+ "signature": "type",
133
+ "fallback": "",
134
+ "caption": "The ports this mechanism implements, named together as one type.",
135
+ "captionUk": "Порти, які реалізує цей механізм, названі разом одним типом.",
136
+ "anchor": "postgres-PostgresPorts-value"
137
+ },
138
+ {
139
+ "name": "PostgresSslMode",
140
+ "kind": "value",
141
+ "signature": "(typeof POSTGRES_SSL_MODES)[number]",
142
+ "fallback": "",
143
+ "caption": "One of the ways a connection can be encrypted and verified.",
144
+ "captionUk": "Один зі способів зашифрувати й перевірити з'єднання.",
145
+ "anchor": "postgres-PostgresSslMode-value"
146
+ },
147
+ {
148
+ "name": "READINESS_QUERY_DEADLINE_MILLIS",
149
+ "kind": "value",
150
+ "signature": "const",
151
+ "fallback": "",
152
+ "caption": "How long the probe waits for its query before it reports \"down\".",
153
+ "captionUk": "Скільки проба чекає на свій запит, перш ніж звітувати «лежить».",
154
+ "anchor": "postgres-READINESS-QUERY-DEADLINE-MILLIS-value"
155
+ },
156
+ {
157
+ "name": "READINESS_REASON_WHEN_THE_DATABASE_STAYS_SILENT",
158
+ "kind": "value",
159
+ "signature": "const",
160
+ "fallback": "",
161
+ "caption": "Reason reported when the readiness query answers with a failure.",
162
+ "captionUk": "Причина, про яку звітують, коли запит готовності відповідає відмовою.",
163
+ "anchor": "postgres-READINESS-REASON-WHEN-THE-DATABASE-STAYS-SILENT-value"
164
+ },
165
+ {
166
+ "name": "READINESS_REASON_WHEN_THE_QUERY_TIMES_OUT",
167
+ "kind": "value",
168
+ "signature": "const",
169
+ "fallback": "",
170
+ "caption": "Reason reported when the readiness query times out.",
171
+ "captionUk": "Причина, про яку звітують, коли запитові готовності виходить строк.",
172
+ "anchor": "postgres-READINESS-REASON-WHEN-THE-QUERY-TIMES-OUT-value"
173
+ },
174
+ {
175
+ "name": "applyMigrations",
176
+ "kind": "procedure",
177
+ "signature": "(directories: readonly string[] = [MACHINERY_MIGRATIONS_DIRECTORY])",
178
+ "fallback": "",
179
+ "caption": "Applies pending migrations from the given directories, the machinery's own directory first, then the caller's.",
180
+ "captionUk": "Застосовує міграції, що чекають, із поданих директорій: спершу власна директорія машинерії, тоді директорія викликача.",
181
+ "anchor": "postgres-applyMigrations-procedure"
182
+ },
183
+ {
184
+ "name": "configProviderPreferring",
185
+ "kind": "procedure",
186
+ "signature": "(primary: ConfigProvider.ConfigProvider, fallbackKey: string, fallbackValue: string) => ConfigProvider.ConfigProvider",
187
+ "fallback": "",
188
+ "caption": "Builds a config provider that reads from `primary`, falling back to one fixed value when `primary` has no such key.",
189
+ "captionUk": "Будує постачальника конфігурації, який читає з `primary` і падає на одне фіксоване значення, коли в `primary` такого ключа немає.",
190
+ "anchor": "postgres-configProviderPreferring-procedure"
191
+ },
192
+ {
193
+ "name": "firstRow",
194
+ "kind": "procedure",
195
+ "signature": "<A>(rows: readonly A[]) => Option.Option<A>",
196
+ "fallback": "",
197
+ "caption": "Returns the first row, or `Option.none()` for an empty result.",
198
+ "captionUk": "Повертає перший рядок або `Option.none()` для порожнього результату.",
199
+ "anchor": "postgres-firstRow-procedure"
200
+ },
201
+ {
202
+ "name": "holdingAdvisoryLock",
203
+ "kind": "procedure",
204
+ "signature": "<ELock, RLock, ScheduleOut, RSchedule>(lock: AdvisoryLock<ELock, RLock>, retryWhileBusy: Schedule.Schedule<ScheduleOut, unknown, RSchedule>)",
205
+ "fallback": "",
206
+ "caption": "Runs an effect while holding the lock, waiting on the given schedule while somebody else holds it, and letting go however the effect ends.",
207
+ "captionUk": "Виконує ефект, тримаючи замок, чекає за поданим розкладом, поки замок тримає хтось інший, і відпускає його, хай як ефект скінчиться.",
208
+ "anchor": "postgres-holdingAdvisoryLock-procedure"
209
+ },
210
+ {
211
+ "name": "isUniqueViolation",
212
+ "kind": "procedure",
213
+ "signature": "(error: SqlError) => boolean",
214
+ "fallback": "",
215
+ "caption": "Whether this driver failure is a duplicate key rather than anything else the database could refuse.",
216
+ "captionUk": "Чи ця відмова драйвера є дублем ключа, а не чимось іншим, чому база могла б відмовити.",
217
+ "anchor": "postgres-isUniqueViolation-procedure"
218
+ },
219
+ {
220
+ "name": "jsonbValue",
221
+ "kind": "procedure",
222
+ "signature": "(sql: SqlClient.SqlClient, value: unknown) => Fragment",
223
+ "fallback": "",
224
+ "caption": "Hands a value to a `jsonb` column as JSON, whatever its shape.",
225
+ "captionUk": "Подає значення в колонку `jsonb` як JSON, хай яка в нього форма.",
226
+ "anchor": "postgres-jsonbValue-procedure"
227
+ },
228
+ {
229
+ "name": "migrationLockNameFor",
230
+ "kind": "procedure",
231
+ "signature": "(schema: string) => string",
232
+ "fallback": "",
233
+ "caption": "The lock one schema's migrations take, so two services migrating two schemas never wait on each other.",
234
+ "captionUk": "Замок, який беруть міграції однієї схеми, тож два сервіси, що мігрують дві схеми, ніколи не чекають один одного.",
235
+ "anchor": "postgres-migrationLockNameFor-procedure"
236
+ },
237
+ {
238
+ "name": "onUniqueViolation",
239
+ "kind": "procedure",
240
+ "signature": "<Conflict, Unavailable>(operation: string, branches: { readonly unique: () => Conflict; readonly unavailable: ( operation: string, ) => (cause: unknown) => Unavailable })",
241
+ "fallback": "",
242
+ "caption": "Splits a write path at the database boundary: a unique violation becomes a domain conflict, any other SqlError becomes \"store unavailable\".",
243
+ "captionUk": "Ділить шлях запису на межі бази: порушення унікальності стає доменним конфліктом, будь-який інший `SqlError` стає «сховище недоступне».",
244
+ "anchor": "postgres-onUniqueViolation-procedure"
245
+ },
246
+ {
247
+ "name": "postgresAdvisoryLock",
248
+ "kind": "procedure",
249
+ "signature": "(name: string) => AdvisoryLock<SqlError.SqlError, SqlClient.SqlClient>",
250
+ "fallback": "",
251
+ "caption": "A named advisory lock on the connection's own database.",
252
+ "captionUk": "Названий консультативний замок на власній базі цього з'єднання.",
253
+ "anchor": "postgres-postgresAdvisoryLock-procedure"
254
+ },
255
+ {
256
+ "name": "readinessProbeAsking",
257
+ "kind": "procedure",
258
+ "signature": "(aQueryTheDatabaseMustAnswer: Effect.Effect<unknown, SqlError>)",
259
+ "fallback": "",
260
+ "caption": "Builds a probe around one query the database must answer, with a deadline over it so an unreachable database reports \"down\" instead of hanging.",
261
+ "captionUk": "Будує пробу навколо одного запиту, на який має відповісти база, зі строком над ним, тож недосяжна база звітує «лежить», а не зависає.",
262
+ "anchor": "postgres-readinessProbeAsking-procedure"
263
+ },
264
+ {
265
+ "name": "reportApplied",
266
+ "kind": "procedure",
267
+ "signature": "(applied: ReadonlyArray<readonly [number, string]>) => Effect.Effect<void>",
268
+ "fallback": "",
269
+ "caption": "Says in one line what the run applied, or that the database was already current.",
270
+ "captionUk": "Каже одним рядком, що прогін застосував, або що база вже поточна.",
271
+ "anchor": "postgres-reportApplied-procedure"
272
+ },
273
+ {
274
+ "name": "schemaDefaultingTo",
275
+ "kind": "procedure",
276
+ "signature": "(schema: string) => ConfigProvider.ConfigProvider",
277
+ "fallback": "",
278
+ "caption": "Default schema for one service when `PGSCHEMA` isn't set.",
279
+ "captionUk": "Схема за замовчуванням для одного сервісу, коли `PGSCHEMA` не поставлено.",
280
+ "anchor": "postgres-schemaDefaultingTo-procedure"
281
+ },
282
+ {
283
+ "name": "MigrationPgClientLive",
284
+ "kind": "adapter",
285
+ "signature": "Layer.Layer<PgClient.PgClient | SqlClient.SqlClient, ConfigError | PlatformError | SqlError, FileSystem.FileSystem>",
286
+ "fallback": "",
287
+ "caption": "The client the migration runner uses: one connection, under its own name.",
288
+ "captionUk": "Клієнт, яким користується виконавець міграцій: одне з'єднання під власною назвою.",
289
+ "anchor": "postgres-MigrationPgClientLive-adapter"
290
+ },
291
+ {
292
+ "name": "PgDocumentNumberCounterLive",
293
+ "kind": "adapter",
294
+ "signature": "Layer.Layer<DocumentNumberCounter, never, PgClient.PgClient>",
295
+ "fallback": "",
296
+ "caption": "The document number counter on a real `document_number_counter` table.",
297
+ "captionUk": "Лічильник номерів документів на справжній таблиці `document_number_counter`.",
298
+ "anchor": "postgres-PgDocumentNumberCounterLive-adapter"
299
+ },
300
+ {
301
+ "name": "PgIntegrationEventOutboxLive",
302
+ "kind": "adapter",
303
+ "signature": "Layer.Layer<IntegrationEventOutbox, never, PgClient.PgClient>",
304
+ "fallback": "",
305
+ "caption": "The outbox on a real `integration_event_outbox` table.",
306
+ "captionUk": "Буфер трансмітера на справжній таблиці `integration_event_outbox`.",
307
+ "anchor": "postgres-PgIntegrationEventOutboxLive-adapter"
308
+ },
309
+ {
310
+ "name": "PgProcessedEventRegistryLive",
311
+ "kind": "adapter",
312
+ "signature": "Layer.Layer<ProcessedEventRegistry, never, PgClient.PgClient>",
313
+ "fallback": "",
314
+ "caption": "The exactly-once claim on a real `processed_event` table.",
315
+ "captionUk": "Резервація рівно один раз на справжній таблиці `processed_event`.",
316
+ "anchor": "postgres-PgProcessedEventRegistryLive-adapter"
317
+ },
318
+ {
319
+ "name": "PgReadinessProbeLive",
320
+ "kind": "adapter",
321
+ "signature": "Layer.Layer<ReadinessProbe, never, SqlClient.SqlClient>",
322
+ "fallback": "",
323
+ "caption": "The readiness probe on one `SELECT 1` against the service's own pool.",
324
+ "captionUk": "Проба готовності на одному `SELECT 1` проти власного пулу сервісу.",
325
+ "anchor": "postgres-PgReadinessProbeLive-adapter"
326
+ },
327
+ {
328
+ "name": "PgTransactionBoundaryLive",
329
+ "kind": "adapter",
330
+ "signature": "Layer.Layer<TransactionBoundary, never, SqlClient.SqlClient>",
331
+ "fallback": "",
332
+ "caption": "The transaction boundary on a real Postgres transaction.",
333
+ "captionUk": "Межа транзакції на справжній транзакції Postgres.",
334
+ "anchor": "postgres-PgTransactionBoundaryLive-adapter"
335
+ },
336
+ {
337
+ "name": "PostgresClientLive",
338
+ "kind": "adapter",
339
+ "signature": "Layer.Layer<PgClient.PgClient | SqlClient.SqlClient, ConfigError | PlatformError | SqlError, FileSystem.FileSystem>",
340
+ "fallback": "",
341
+ "caption": "The `@effect/sql-pg` client every other layer here builds on, opened from the environment `settings.ts` names.",
342
+ "captionUk": "Клієнт `@effect/sql-pg`, на якому стоїть кожен інший шар тут, відкритий з оточення, яке називає `settings.ts`.",
343
+ "anchor": "postgres-PostgresClientLive-adapter"
344
+ },
345
+ {
346
+ "name": "PostgresPortsLive",
347
+ "kind": "adapter",
348
+ "signature": "Layer.Layer<PostgresPorts | PgClient.PgClient | SqlClient.SqlClient, ConfigError | PlatformError | SqlError, FileSystem.FileSystem>",
349
+ "fallback": "",
350
+ "caption": "Every port this mechanism implements, on one client, for a service that supplies its own `FileSystem`.",
351
+ "captionUk": "Кожен порт, який реалізує цей механізм, на одному клієнті, для сервісу, що подає власну `FileSystem`.",
352
+ "anchor": "postgres-PostgresPortsLive-adapter"
353
+ },
354
+ {
355
+ "name": "PostgresPortsOnBunLive",
356
+ "kind": "adapter",
357
+ "signature": "Layer.Layer<PostgresPorts | PgClient.PgClient | SqlClient.SqlClient, ConfigError | PlatformError | SqlError>",
358
+ "fallback": "",
359
+ "caption": "The same bundle on Bun's own file system, which is the whole Postgres side of the machinery in one layer.",
360
+ "captionUk": "Той самий набір на власній файловій системі Bun, і це вся частина машинерії з боку Postgres в одному шарі.",
361
+ "anchor": "postgres-PostgresPortsOnBunLive-adapter"
362
+ },
363
+ {
364
+ "name": "MigrationLockBusyError",
365
+ "kind": "failure",
366
+ "signature": "Data.TaggedError<{ readonly lockName: string }>",
367
+ "fallback": "",
368
+ "caption": "A second process already holds the migration lock and did not let go within the retry window.",
369
+ "captionUk": "Другий процес уже тримає замок міграцій і не відпустив його у вікні спроб.",
370
+ "anchor": "postgres-MigrationLockBusyError-failure"
371
+ },
372
+ {
373
+ "name": "PGHOST",
374
+ "kind": "environment variable",
375
+ "signature": "refuses",
376
+ "fallback": "",
377
+ "caption": "The host this service opens its connection pool against.",
378
+ "captionUk": "Хост, проти якого цей сервіс відкриває свій пул з'єднань.",
379
+ "anchor": "postgres-PGHOST-environment-variable"
380
+ },
381
+ {
382
+ "name": "PGPORT",
383
+ "kind": "environment variable",
384
+ "signature": "falls back",
385
+ "fallback": "5432",
386
+ "caption": "The TCP port the database listens on.",
387
+ "captionUk": "Порт TCP, на якому слухає база.",
388
+ "anchor": "postgres-PGPORT-environment-variable"
389
+ },
390
+ {
391
+ "name": "PGUSER",
392
+ "kind": "environment variable",
393
+ "signature": "refuses",
394
+ "fallback": "",
395
+ "caption": "The Postgres role this service connects as.",
396
+ "captionUk": "Роль Postgres, під якою під'єднується цей сервіс.",
397
+ "anchor": "postgres-PGUSER-environment-variable"
398
+ },
399
+ {
400
+ "name": "PGDATABASE",
401
+ "kind": "environment variable",
402
+ "signature": "refuses",
403
+ "fallback": "",
404
+ "caption": "The database this service reads and writes.",
405
+ "captionUk": "База, яку цей сервіс читає і пише.",
406
+ "anchor": "postgres-PGDATABASE-environment-variable"
407
+ },
408
+ {
409
+ "name": "PGSCHEMA",
410
+ "kind": "environment variable",
411
+ "signature": "falls back",
412
+ "fallback": "app",
413
+ "caption": "The schema every statement runs against, set as the connection's search_path.",
414
+ "captionUk": "Схема, проти якої біжить кожен запит, поставлена як `search_path` з'єднання.",
415
+ "anchor": "postgres-PGSCHEMA-environment-variable"
416
+ },
417
+ {
418
+ "name": "PGAPPNAME",
419
+ "kind": "environment variable",
420
+ "signature": "falls back",
421
+ "fallback": "machinery",
422
+ "caption": "The name this service shows under in pg_stat_activity.",
423
+ "captionUk": "Назва, під якою цей сервіс видно в `pg_stat_activity`.",
424
+ "anchor": "postgres-PGAPPNAME-environment-variable"
425
+ },
426
+ {
427
+ "name": "PGSSLMODE",
428
+ "kind": "environment variable",
429
+ "signature": "falls back",
430
+ "fallback": "verify-full",
431
+ "caption": "How the connection is encrypted and verified, one of disable, allow, prefer, require, verify-ca, verify-full.",
432
+ "captionUk": "Як з'єднання шифрують і перевіряють; один із `disable`, `allow`, `prefer`, `require`, `verify-ca`, `verify-full`.",
433
+ "anchor": "postgres-PGSSLMODE-environment-variable"
434
+ },
435
+ {
436
+ "name": "PGSSLROOTCERT",
437
+ "kind": "environment variable",
438
+ "signature": "handed on",
439
+ "fallback": "",
440
+ "caption": "The path to a certificate authority file the database chain is verified against.",
441
+ "captionUk": "Шлях до файлу центру сертифікації, проти якого перевіряють ланцюг бази.",
442
+ "anchor": "postgres-PGSSLROOTCERT-environment-variable"
443
+ },
444
+ {
445
+ "name": "AUTH_MODE",
446
+ "kind": "environment variable",
447
+ "signature": "falls back",
448
+ "fallback": "password",
449
+ "caption": "Which of the two ways this service proves who it is, iam or password.",
450
+ "captionUk": "Котрим із двох способів цей сервіс доводить, хто він: `iam` чи `password`.",
451
+ "anchor": "postgres-AUTH-MODE-environment-variable"
452
+ },
453
+ {
454
+ "name": "PGPASSWORD",
455
+ "kind": "environment variable",
456
+ "signature": "refuses",
457
+ "fallback": "",
458
+ "caption": "The database password, read under the default password mode.",
459
+ "captionUk": "Пароль бази, який читають у режимі `password` за замовчуванням.",
460
+ "anchor": "postgres-PGPASSWORD-environment-variable"
461
+ },
462
+ {
463
+ "name": "AWS_REGION",
464
+ "kind": "environment variable",
465
+ "signature": "handed on",
466
+ "fallback": "",
467
+ "caption": "The region the IAM token signer signs against, read under AUTH_MODE=iam.",
468
+ "captionUk": "Регіон, проти якого підписує підписувач токенів IAM; його читають при `AUTH_MODE=iam`.",
469
+ "anchor": "postgres-AWS-REGION-environment-variable"
470
+ }
471
+ ]
472
+ }
473
+ }
@@ -0,0 +1,61 @@
1
+ package: @satorio/machinery
2
+ version: 0.2.1
3
+ mechanism:
4
+ mechanism: postgres
5
+ import: @satorio/machinery/postgres
6
+ kind: adapter
7
+ page: mechanisms/postgres
8
+ what: "Public entry to the postgres mechanism: every port this machinery defines, bound to a real database."
9
+ whatUk: "Публічний вхід до механізму postgres: кожен порт, який визначає ця машинерія (machinery), прив'язаний до справжньої бази."
10
+ rows[51]{name,kind,signature,fallback,caption,captionUk,anchor}:
11
+ AdvisoryLock,value,interface,"","A lock somebody else may already hold: its name, the attempt to take it, and the release that follows.","Замок, який хтось інший може вже тримати: його назва, спроба взяти його і звільнення, що йде слідом.",postgres-AdvisoryLock-value
12
+ DEFAULT_APPLICATION_NAME,value,const,"",The name this service shows under in the database's own list of connections when nobody names it.,"Назва, під якою цей сервіс видно у власному списку з'єднань бази, коли її ніхто не називає.",postgres-DEFAULT-APPLICATION-NAME-value
13
+ DEFAULT_AUTH_MODE,value,'iam' | 'password',"",How a service proves who it is when nothing says otherwise.,"Як сервіс доводить, хто він, коли ніщо не каже інакше.",postgres-DEFAULT-AUTH-MODE-value
14
+ DEFAULT_POSTGRES_PORT,value,const,"",The port a Postgres server listens on when nobody says otherwise.,"Порт, на якому слухає сервер Postgres, коли ніхто не каже інакше.",postgres-DEFAULT-POSTGRES-PORT-value
15
+ DEFAULT_POSTGRES_SCHEMA,value,const,"",The schema every statement runs against when nobody names one.,"Схема, проти якої біжить кожен запит, коли ніхто її не називає.",postgres-DEFAULT-POSTGRES-SCHEMA-value
16
+ DEFAULT_POSTGRES_SSL_MODE,value,PostgresSslMode,"","How a connection is encrypted when nobody says otherwise: the chain is verified, so the safe choice is the one you get by saying nothing.","Як шифрується з'єднання, коли ніхто не каже інакше: ланцюг перевіряють, тож безпечний вибір — той, який ви дістаєте, не сказавши нічого.",postgres-DEFAULT-POSTGRES-SSL-MODE-value
17
+ ENVIRONMENT,value,"readonly EnvironmentEntry[]","","Every variable this adapter reads, and the one state each of them stands in.","Кожна змінна, яку читає цей адаптер, і один стан, у якому стоїть кожна з них.",postgres-ENVIRONMENT-value
18
+ MACHINERY_MIGRATIONS_DIRECTORY,value,const,"","Directory holding the machinery's shared migrations: the processed-event registry and the outbox.","Директорія зі спільними міграціями (migration) машинерії: реєстр відпрацьованих подій і буфер трансмітера.",postgres-MACHINERY-MIGRATIONS-DIRECTORY-value
19
+ MIGRATION_LOCK_NAME,value,const,"","The name every migration lock is built from, so one reader finds them all.","Назва, з якої будують кожен замок міграцій, тож один читач знаходить їх усі.",postgres-MIGRATION-LOCK-NAME-value
20
+ POSTGRES_SSL_MODES,value,const,"","Every way a connection can be encrypted and verified, from no encryption at all to a fully verified chain.",Кожен спосіб зашифрувати й перевірити з'єднання — від жодного шифрування до цілком перевіреного ланцюга.,postgres-POSTGRES-SSL-MODES-value
21
+ PostgresAuthentication,value,type,"","The two ways to prove to the database who you are: a short-lived IAM token or a password.","Два способи довести базі, хто ви: короткоживучий токен IAM або пароль.",postgres-PostgresAuthentication-value
22
+ PostgresConnectionSettings,value,interface,"","Everything one connection needs, read in one go: where the server is, who connects, and how the connection is proven and encrypted.","Усе, що потрібно одному з'єднанню, прочитане за раз: де сервер, хто під'єднується і як з'єднання доводять та шифрують.",postgres-PostgresConnectionSettings-value
23
+ postgresConnectionSettings,value,Config.Config<PostgresConnectionSettings>,"","Every variable of `ENVIRONMENT`, read in one go.","Кожна змінна з `ENVIRONMENT`, прочитана за раз.",postgres-postgresConnectionSettings-value
24
+ PostgresPorts,value,type,"","The ports this mechanism implements, named together as one type.","Порти, які реалізує цей механізм, названі разом одним типом.",postgres-PostgresPorts-value
25
+ PostgresSslMode,value,"(typeof POSTGRES_SSL_MODES)[number]","",One of the ways a connection can be encrypted and verified.,Один зі способів зашифрувати й перевірити з'єднання.,postgres-PostgresSslMode-value
26
+ READINESS_QUERY_DEADLINE_MILLIS,value,const,"","How long the probe waits for its query before it reports \"down\".","Скільки проба чекає на свій запит, перш ніж звітувати «лежить».",postgres-READINESS-QUERY-DEADLINE-MILLIS-value
27
+ READINESS_REASON_WHEN_THE_DATABASE_STAYS_SILENT,value,const,"",Reason reported when the readiness query answers with a failure.,"Причина, про яку звітують, коли запит готовності відповідає відмовою.",postgres-READINESS-REASON-WHEN-THE-DATABASE-STAYS-SILENT-value
28
+ READINESS_REASON_WHEN_THE_QUERY_TIMES_OUT,value,const,"",Reason reported when the readiness query times out.,"Причина, про яку звітують, коли запитові готовності виходить строк.",postgres-READINESS-REASON-WHEN-THE-QUERY-TIMES-OUT-value
29
+ applyMigrations,procedure,"(directories: readonly string[] = [MACHINERY_MIGRATIONS_DIRECTORY])","","Applies pending migrations from the given directories, the machinery's own directory first, then the caller's.","Застосовує міграції, що чекають, із поданих директорій: спершу власна директорія машинерії, тоді директорія викликача.",postgres-applyMigrations-procedure
30
+ configProviderPreferring,procedure,"(primary: ConfigProvider.ConfigProvider, fallbackKey: string, fallbackValue: string) => ConfigProvider.ConfigProvider","","Builds a config provider that reads from `primary`, falling back to one fixed value when `primary` has no such key.","Будує постачальника конфігурації, який читає з `primary` і падає на одне фіксоване значення, коли в `primary` такого ключа немає.",postgres-configProviderPreferring-procedure
31
+ firstRow,procedure,"<A>(rows: readonly A[]) => Option.Option<A>","","Returns the first row, or `Option.none()` for an empty result.",Повертає перший рядок або `Option.none()` для порожнього результату.,postgres-firstRow-procedure
32
+ holdingAdvisoryLock,procedure,"<ELock, RLock, ScheduleOut, RSchedule>(lock: AdvisoryLock<ELock, RLock>, retryWhileBusy: Schedule.Schedule<ScheduleOut, unknown, RSchedule>)","","Runs an effect while holding the lock, waiting on the given schedule while somebody else holds it, and letting go however the effect ends.","Виконує ефект, тримаючи замок, чекає за поданим розкладом, поки замок тримає хтось інший, і відпускає його, хай як ефект скінчиться.",postgres-holdingAdvisoryLock-procedure
33
+ isUniqueViolation,procedure,"(error: SqlError) => boolean","",Whether this driver failure is a duplicate key rather than anything else the database could refuse.,"Чи ця відмова драйвера є дублем ключа, а не чимось іншим, чому база могла б відмовити.",postgres-isUniqueViolation-procedure
34
+ jsonbValue,procedure,"(sql: SqlClient.SqlClient, value: unknown) => Fragment","","Hands a value to a `jsonb` column as JSON, whatever its shape.","Подає значення в колонку `jsonb` як JSON, хай яка в нього форма.",postgres-jsonbValue-procedure
35
+ migrationLockNameFor,procedure,"(schema: string) => string","","The lock one schema's migrations take, so two services migrating two schemas never wait on each other.","Замок, який беруть міграції однієї схеми, тож два сервіси, що мігрують дві схеми, ніколи не чекають один одного.",postgres-migrationLockNameFor-procedure
36
+ onUniqueViolation,procedure,"<Conflict, Unavailable>(operation: string, branches: { readonly unique: () => Conflict; readonly unavailable: ( operation: string, ) => (cause: unknown) => Unavailable })","","Splits a write path at the database boundary: a unique violation becomes a domain conflict, any other SqlError becomes \"store unavailable\".","Ділить шлях запису на межі бази: порушення унікальності стає доменним конфліктом, будь-який інший `SqlError` стає «сховище недоступне».",postgres-onUniqueViolation-procedure
37
+ postgresAdvisoryLock,procedure,"(name: string) => AdvisoryLock<SqlError.SqlError, SqlClient.SqlClient>","",A named advisory lock on the connection's own database.,Названий консультативний замок на власній базі цього з'єднання.,postgres-postgresAdvisoryLock-procedure
38
+ readinessProbeAsking,procedure,"(aQueryTheDatabaseMustAnswer: Effect.Effect<unknown, SqlError>)","","Builds a probe around one query the database must answer, with a deadline over it so an unreachable database reports \"down\" instead of hanging.","Будує пробу навколо одного запиту, на який має відповісти база, зі строком над ним, тож недосяжна база звітує «лежить», а не зависає.",postgres-readinessProbeAsking-procedure
39
+ reportApplied,procedure,"(applied: ReadonlyArray<readonly [number, string]>) => Effect.Effect<void>","","Says in one line what the run applied, or that the database was already current.","Каже одним рядком, що прогін застосував, або що база вже поточна.",postgres-reportApplied-procedure
40
+ schemaDefaultingTo,procedure,"(schema: string) => ConfigProvider.ConfigProvider","",Default schema for one service when `PGSCHEMA` isn't set.,"Схема за замовчуванням для одного сервісу, коли `PGSCHEMA` не поставлено.",postgres-schemaDefaultingTo-procedure
41
+ MigrationPgClientLive,adapter,"Layer.Layer<PgClient.PgClient | SqlClient.SqlClient, ConfigError | PlatformError | SqlError, FileSystem.FileSystem>","","The client the migration runner uses: one connection, under its own name.","Клієнт, яким користується виконавець міграцій: одне з'єднання під власною назвою.",postgres-MigrationPgClientLive-adapter
42
+ PgDocumentNumberCounterLive,adapter,"Layer.Layer<DocumentNumberCounter, never, PgClient.PgClient>","",The document number counter on a real `document_number_counter` table.,Лічильник номерів документів на справжній таблиці `document_number_counter`.,postgres-PgDocumentNumberCounterLive-adapter
43
+ PgIntegrationEventOutboxLive,adapter,"Layer.Layer<IntegrationEventOutbox, never, PgClient.PgClient>","",The outbox on a real `integration_event_outbox` table.,Буфер трансмітера на справжній таблиці `integration_event_outbox`.,postgres-PgIntegrationEventOutboxLive-adapter
44
+ PgProcessedEventRegistryLive,adapter,"Layer.Layer<ProcessedEventRegistry, never, PgClient.PgClient>","",The exactly-once claim on a real `processed_event` table.,Резервація рівно один раз на справжній таблиці `processed_event`.,postgres-PgProcessedEventRegistryLive-adapter
45
+ PgReadinessProbeLive,adapter,"Layer.Layer<ReadinessProbe, never, SqlClient.SqlClient>","",The readiness probe on one `SELECT 1` against the service's own pool.,Проба готовності на одному `SELECT 1` проти власного пулу сервісу.,postgres-PgReadinessProbeLive-adapter
46
+ PgTransactionBoundaryLive,adapter,"Layer.Layer<TransactionBoundary, never, SqlClient.SqlClient>","",The transaction boundary on a real Postgres transaction.,Межа транзакції на справжній транзакції Postgres.,postgres-PgTransactionBoundaryLive-adapter
47
+ PostgresClientLive,adapter,"Layer.Layer<PgClient.PgClient | SqlClient.SqlClient, ConfigError | PlatformError | SqlError, FileSystem.FileSystem>","","The `@effect/sql-pg` client every other layer here builds on, opened from the environment `settings.ts` names.","Клієнт `@effect/sql-pg`, на якому стоїть кожен інший шар тут, відкритий з оточення, яке називає `settings.ts`.",postgres-PostgresClientLive-adapter
48
+ PostgresPortsLive,adapter,"Layer.Layer<PostgresPorts | PgClient.PgClient | SqlClient.SqlClient, ConfigError | PlatformError | SqlError, FileSystem.FileSystem>","","Every port this mechanism implements, on one client, for a service that supplies its own `FileSystem`.","Кожен порт, який реалізує цей механізм, на одному клієнті, для сервісу, що подає власну `FileSystem`.",postgres-PostgresPortsLive-adapter
49
+ PostgresPortsOnBunLive,adapter,"Layer.Layer<PostgresPorts | PgClient.PgClient | SqlClient.SqlClient, ConfigError | PlatformError | SqlError>","","The same bundle on Bun's own file system, which is the whole Postgres side of the machinery in one layer.","Той самий набір на власній файловій системі Bun, і це вся частина машинерії з боку Postgres в одному шарі.",postgres-PostgresPortsOnBunLive-adapter
50
+ MigrationLockBusyError,failure,"Data.TaggedError<{ readonly lockName: string }>","",A second process already holds the migration lock and did not let go within the retry window.,Другий процес уже тримає замок міграцій і не відпустив його у вікні спроб.,postgres-MigrationLockBusyError-failure
51
+ PGHOST,environment variable,refuses,"",The host this service opens its connection pool against.,"Хост, проти якого цей сервіс відкриває свій пул з'єднань.",postgres-PGHOST-environment-variable
52
+ PGPORT,environment variable,falls back,"5432",The TCP port the database listens on.,"Порт TCP, на якому слухає база.",postgres-PGPORT-environment-variable
53
+ PGUSER,environment variable,refuses,"",The Postgres role this service connects as.,"Роль Postgres, під якою під'єднується цей сервіс.",postgres-PGUSER-environment-variable
54
+ PGDATABASE,environment variable,refuses,"",The database this service reads and writes.,"База, яку цей сервіс читає і пише.",postgres-PGDATABASE-environment-variable
55
+ PGSCHEMA,environment variable,falls back,app,"The schema every statement runs against, set as the connection's search_path.","Схема, проти якої біжить кожен запит, поставлена як `search_path` з'єднання.",postgres-PGSCHEMA-environment-variable
56
+ PGAPPNAME,environment variable,falls back,machinery,The name this service shows under in pg_stat_activity.,"Назва, під якою цей сервіс видно в `pg_stat_activity`.",postgres-PGAPPNAME-environment-variable
57
+ PGSSLMODE,environment variable,falls back,verify-full,"How the connection is encrypted and verified, one of disable, allow, prefer, require, verify-ca, verify-full.","Як з'єднання шифрують і перевіряють; один із `disable`, `allow`, `prefer`, `require`, `verify-ca`, `verify-full`.",postgres-PGSSLMODE-environment-variable
58
+ PGSSLROOTCERT,environment variable,handed on,"",The path to a certificate authority file the database chain is verified against.,"Шлях до файлу центру сертифікації, проти якого перевіряють ланцюг бази.",postgres-PGSSLROOTCERT-environment-variable
59
+ AUTH_MODE,environment variable,falls back,password,"Which of the two ways this service proves who it is, iam or password.","Котрим із двох способів цей сервіс доводить, хто він: `iam` чи `password`.",postgres-AUTH-MODE-environment-variable
60
+ PGPASSWORD,environment variable,refuses,"","The database password, read under the default password mode.","Пароль бази, який читають у режимі `password` за замовчуванням.",postgres-PGPASSWORD-environment-variable
61
+ AWS_REGION,environment variable,handed on,"","The region the IAM token signer signs against, read under AUTH_MODE=iam.","Регіон, проти якого підписує підписувач токенів IAM; його читають при `AUTH_MODE=iam`.",postgres-AWS-REGION-environment-variable