@opetope/runtime 0.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 (314) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE +21 -0
  3. package/README.md +345 -0
  4. package/README.ru.md +344 -0
  5. package/dist/application-compiler-edges.d.ts +3 -0
  6. package/dist/application-compiler-edges.js +2 -0
  7. package/dist/application-compiler-edges.js.map +1 -0
  8. package/dist/application-compiler-graph.d.ts +8 -0
  9. package/dist/application-compiler-graph.js +2 -0
  10. package/dist/application-compiler-graph.js.map +1 -0
  11. package/dist/application-compiler.d.ts +116 -0
  12. package/dist/application-compiler.js +2 -0
  13. package/dist/application-compiler.js.map +1 -0
  14. package/dist/application-conditions.d.ts +18 -0
  15. package/dist/application-conditions.js +2 -0
  16. package/dist/application-conditions.js.map +1 -0
  17. package/dist/application-definition.d.ts +30 -0
  18. package/dist/application-definition.js +2 -0
  19. package/dist/application-definition.js.map +1 -0
  20. package/dist/application-error.d.ts +10 -0
  21. package/dist/application-error.js +2 -0
  22. package/dist/application-error.js.map +1 -0
  23. package/dist/application-execution.d.ts +43 -0
  24. package/dist/application-execution.js +2 -0
  25. package/dist/application-execution.js.map +1 -0
  26. package/dist/application-feature-bindings.d.ts +11 -0
  27. package/dist/application-feature-bindings.js +2 -0
  28. package/dist/application-feature-bindings.js.map +1 -0
  29. package/dist/application-feature-instance.d.ts +5 -0
  30. package/dist/application-feature-instance.js +2 -0
  31. package/dist/application-feature-instance.js.map +1 -0
  32. package/dist/application-group-order.d.ts +29 -0
  33. package/dist/application-group-order.js +2 -0
  34. package/dist/application-group-order.js.map +1 -0
  35. package/dist/application-instance-retirement.d.ts +36 -0
  36. package/dist/application-instance-retirement.js +2 -0
  37. package/dist/application-instance-retirement.js.map +1 -0
  38. package/dist/application-open-options.d.ts +29 -0
  39. package/dist/application-open-options.js +2 -0
  40. package/dist/application-open-options.js.map +1 -0
  41. package/dist/application-port-compiler.d.ts +28 -0
  42. package/dist/application-port-compiler.js +2 -0
  43. package/dist/application-port-compiler.js.map +1 -0
  44. package/dist/attachment-call-declaration.d.ts +43 -0
  45. package/dist/attachment-call-declaration.js +2 -0
  46. package/dist/attachment-call-declaration.js.map +1 -0
  47. package/dist/attachment-declaration.d.ts +68 -0
  48. package/dist/attachment-declaration.js +2 -0
  49. package/dist/attachment-declaration.js.map +1 -0
  50. package/dist/attachment-execution.d.ts +9 -0
  51. package/dist/attachment-execution.js +2 -0
  52. package/dist/attachment-execution.js.map +1 -0
  53. package/dist/attachment-retirement-scheduler.d.ts +14 -0
  54. package/dist/attachment-retirement-scheduler.js +2 -0
  55. package/dist/attachment-retirement-scheduler.js.map +1 -0
  56. package/dist/call-option-snapshot.d.ts +20 -0
  57. package/dist/call-option-snapshot.js +2 -0
  58. package/dist/call-option-snapshot.js.map +1 -0
  59. package/dist/compile-call-target-bindings.d.ts +14 -0
  60. package/dist/compile-call-target-bindings.js +2 -0
  61. package/dist/compile-call-target-bindings.js.map +1 -0
  62. package/dist/compile-module-template.d.ts +38 -0
  63. package/dist/compile-module-template.js +2 -0
  64. package/dist/compile-module-template.js.map +1 -0
  65. package/dist/condition-group-execution.d.ts +44 -0
  66. package/dist/condition-group-execution.js +2 -0
  67. package/dist/condition-group-execution.js.map +1 -0
  68. package/dist/condition-override.d.ts +28 -0
  69. package/dist/condition-override.js +2 -0
  70. package/dist/condition-override.js.map +1 -0
  71. package/dist/condition-source.d.ts +10 -0
  72. package/dist/condition-source.js +2 -0
  73. package/dist/condition-source.js.map +1 -0
  74. package/dist/condition-types.d.ts +14 -0
  75. package/dist/condition.d.ts +28 -0
  76. package/dist/condition.js +2 -0
  77. package/dist/condition.js.map +1 -0
  78. package/dist/control-registry.d.ts +56 -0
  79. package/dist/control-registry.js +2 -0
  80. package/dist/control-registry.js.map +1 -0
  81. package/dist/dynamic-scope-child.d.ts +23 -0
  82. package/dist/dynamic-scope-child.js +2 -0
  83. package/dist/dynamic-scope-child.js.map +1 -0
  84. package/dist/dynamic-scope-controller.d.ts +16 -0
  85. package/dist/dynamic-scope-controller.js +2 -0
  86. package/dist/dynamic-scope-controller.js.map +1 -0
  87. package/dist/feature-attachment-authoring-types.d.ts +51 -0
  88. package/dist/feature-attachment-lowering.d.ts +18 -0
  89. package/dist/feature-attachment-lowering.js +2 -0
  90. package/dist/feature-attachment-lowering.js.map +1 -0
  91. package/dist/feature-attachment.d.ts +45 -0
  92. package/dist/feature-attachment.js +2 -0
  93. package/dist/feature-attachment.js.map +1 -0
  94. package/dist/feature-authoring-types.d.ts +196 -0
  95. package/dist/feature-authoring.d.ts +15 -0
  96. package/dist/feature-authoring.js +2 -0
  97. package/dist/feature-authoring.js.map +1 -0
  98. package/dist/feature-body.d.ts +53 -0
  99. package/dist/feature-body.js +2 -0
  100. package/dist/feature-body.js.map +1 -0
  101. package/dist/feature-call-authority.d.ts +8 -0
  102. package/dist/feature-call-authority.js +2 -0
  103. package/dist/feature-call-authority.js.map +1 -0
  104. package/dist/feature-call-types.d.ts +39 -0
  105. package/dist/feature-call.d.ts +18 -0
  106. package/dist/feature-call.js +2 -0
  107. package/dist/feature-call.js.map +1 -0
  108. package/dist/feature-calls.d.ts +6 -0
  109. package/dist/feature-calls.js +2 -0
  110. package/dist/feature-calls.js.map +1 -0
  111. package/dist/feature-contract.d.ts +70 -0
  112. package/dist/feature-contract.js +2 -0
  113. package/dist/feature-contract.js.map +1 -0
  114. package/dist/feature-contribution-model.d.ts +38 -0
  115. package/dist/feature-contribution-model.js +2 -0
  116. package/dist/feature-contribution-model.js.map +1 -0
  117. package/dist/feature-contribution.d.ts +126 -0
  118. package/dist/feature-contribution.js +2 -0
  119. package/dist/feature-contribution.js.map +1 -0
  120. package/dist/feature-definition-api.d.ts +53 -0
  121. package/dist/feature-definition-support.d.ts +21 -0
  122. package/dist/feature-definition-support.js +2 -0
  123. package/dist/feature-definition-support.js.map +1 -0
  124. package/dist/feature-effect.d.ts +26 -0
  125. package/dist/feature-effect.js +2 -0
  126. package/dist/feature-effect.js.map +1 -0
  127. package/dist/feature-event.d.ts +32 -0
  128. package/dist/feature-event.js +2 -0
  129. package/dist/feature-event.js.map +1 -0
  130. package/dist/feature-generation.d.ts +34 -0
  131. package/dist/feature-generation.js +2 -0
  132. package/dist/feature-generation.js.map +1 -0
  133. package/dist/feature-lazy-generation.d.ts +6 -0
  134. package/dist/feature-lazy-generation.js +2 -0
  135. package/dist/feature-lazy-generation.js.map +1 -0
  136. package/dist/feature-lazy.d.ts +44 -0
  137. package/dist/feature-lazy.js +2 -0
  138. package/dist/feature-lazy.js.map +1 -0
  139. package/dist/feature-materialization-binding.d.ts +31 -0
  140. package/dist/feature-materialization-binding.js +2 -0
  141. package/dist/feature-materialization-binding.js.map +1 -0
  142. package/dist/feature-materialization-types.d.ts +45 -0
  143. package/dist/feature-model-dependencies.d.ts +23 -0
  144. package/dist/feature-model-dependencies.js +2 -0
  145. package/dist/feature-model-dependencies.js.map +1 -0
  146. package/dist/feature-model.d.ts +60 -0
  147. package/dist/feature-model.js +2 -0
  148. package/dist/feature-model.js.map +1 -0
  149. package/dist/feature-optional.d.ts +15 -0
  150. package/dist/feature-optional.js +2 -0
  151. package/dist/feature-optional.js.map +1 -0
  152. package/dist/feature-own-lowering.d.ts +22 -0
  153. package/dist/feature-own-lowering.js +2 -0
  154. package/dist/feature-own-lowering.js.map +1 -0
  155. package/dist/feature-port-binding.d.ts +6 -0
  156. package/dist/feature-port-binding.js +2 -0
  157. package/dist/feature-port-binding.js.map +1 -0
  158. package/dist/feature-port.d.ts +66 -0
  159. package/dist/feature-port.js +2 -0
  160. package/dist/feature-port.js.map +1 -0
  161. package/dist/feature-record.d.ts +6 -0
  162. package/dist/feature-record.js +2 -0
  163. package/dist/feature-record.js.map +1 -0
  164. package/dist/feature-resource.d.ts +29 -0
  165. package/dist/feature-resource.js +2 -0
  166. package/dist/feature-resource.js.map +1 -0
  167. package/dist/feature-scope-types.d.ts +35 -0
  168. package/dist/feature-scope.d.ts +29 -0
  169. package/dist/feature-scope.js +2 -0
  170. package/dist/feature-scope.js.map +1 -0
  171. package/dist/feature-stream.d.ts +37 -0
  172. package/dist/feature-stream.js +2 -0
  173. package/dist/feature-stream.js.map +1 -0
  174. package/dist/feature-timers.d.ts +14 -0
  175. package/dist/feature-timers.js +2 -0
  176. package/dist/feature-timers.js.map +1 -0
  177. package/dist/index.d.ts +19 -0
  178. package/dist/index.js +2 -0
  179. package/dist/index.js.map +1 -0
  180. package/dist/inspection-activity-protocol.d.ts +63 -0
  181. package/dist/inspection-activity.d.ts +54 -0
  182. package/dist/inspection-activity.js +2 -0
  183. package/dist/inspection-activity.js.map +1 -0
  184. package/dist/inspection-diff.d.ts +10 -0
  185. package/dist/inspection-diff.js +2 -0
  186. package/dist/inspection-diff.js.map +1 -0
  187. package/dist/inspection-module-activity.d.ts +4 -0
  188. package/dist/inspection-module-activity.js +2 -0
  189. package/dist/inspection-module-activity.js.map +1 -0
  190. package/dist/inspection-observer.d.ts +38 -0
  191. package/dist/inspection-observer.js +2 -0
  192. package/dist/inspection-observer.js.map +1 -0
  193. package/dist/inspection-plan.d.ts +33 -0
  194. package/dist/inspection-plan.js +2 -0
  195. package/dist/inspection-plan.js.map +1 -0
  196. package/dist/inspection-protocol.d.ts +333 -0
  197. package/dist/inspection-protocol.js +2 -0
  198. package/dist/inspection-protocol.js.map +1 -0
  199. package/dist/inspection-registry.d.ts +41 -0
  200. package/dist/inspection-registry.js +2 -0
  201. package/dist/inspection-registry.js.map +1 -0
  202. package/dist/inspection-session.d.ts +92 -0
  203. package/dist/inspection-session.js +2 -0
  204. package/dist/inspection-session.js.map +1 -0
  205. package/dist/inspection-snapshot.d.ts +4 -0
  206. package/dist/inspection-snapshot.js +2 -0
  207. package/dist/inspection-snapshot.js.map +1 -0
  208. package/dist/inspection-state.d.ts +91 -0
  209. package/dist/inspection-state.js +2 -0
  210. package/dist/inspection-state.js.map +1 -0
  211. package/dist/instance-demand.d.ts +31 -0
  212. package/dist/instance-demand.js +2 -0
  213. package/dist/instance-demand.js.map +1 -0
  214. package/dist/internal.d.ts +41 -0
  215. package/dist/internal.js +2 -0
  216. package/dist/internal.js.map +1 -0
  217. package/dist/keyed-scope-controller.d.ts +11 -0
  218. package/dist/keyed-scope-controller.js +2 -0
  219. package/dist/keyed-scope-controller.js.map +1 -0
  220. package/dist/model-kernel.d.ts +18 -0
  221. package/dist/model-kernel.js +2 -0
  222. package/dist/model-kernel.js.map +1 -0
  223. package/dist/module-call-context.d.ts +7 -0
  224. package/dist/module-call-context.js +2 -0
  225. package/dist/module-call-context.js.map +1 -0
  226. package/dist/module-call-runtime.d.ts +21 -0
  227. package/dist/module-call-runtime.js +2 -0
  228. package/dist/module-call-runtime.js.map +1 -0
  229. package/dist/module-generation.d.ts +57 -0
  230. package/dist/module-generation.js +2 -0
  231. package/dist/module-generation.js.map +1 -0
  232. package/dist/module-instance-types.d.ts +156 -0
  233. package/dist/module-instance.d.ts +19 -0
  234. package/dist/module-instance.js +2 -0
  235. package/dist/module-instance.js.map +1 -0
  236. package/dist/module-runtime-identity.d.ts +4 -0
  237. package/dist/module-runtime-identity.js +2 -0
  238. package/dist/module-runtime-identity.js.map +1 -0
  239. package/dist/module-scope-open.d.ts +4 -0
  240. package/dist/module-scope-open.js +2 -0
  241. package/dist/module-scope-open.js.map +1 -0
  242. package/dist/module-scope-retirement.d.ts +3 -0
  243. package/dist/module-scope-retirement.js +2 -0
  244. package/dist/module-scope-retirement.js.map +1 -0
  245. package/dist/module-template-ir.d.ts +59 -0
  246. package/dist/owner-generation-retirement.d.ts +6 -0
  247. package/dist/owner-generation-retirement.js +2 -0
  248. package/dist/owner-generation-retirement.js.map +1 -0
  249. package/dist/owner-generation-state.d.ts +123 -0
  250. package/dist/owner-generation-state.js +2 -0
  251. package/dist/owner-generation-state.js.map +1 -0
  252. package/dist/owner-generation.d.ts +16 -0
  253. package/dist/owner-generation.js +2 -0
  254. package/dist/owner-generation.js.map +1 -0
  255. package/dist/public-module-definition.d.ts +9 -0
  256. package/dist/public-module-definition.js +2 -0
  257. package/dist/public-module-definition.js.map +1 -0
  258. package/dist/public-module-instance.d.ts +6 -0
  259. package/dist/public-module-instance.js +2 -0
  260. package/dist/public-module-instance.js.map +1 -0
  261. package/dist/public-module-retirement-diagnostics.d.ts +5 -0
  262. package/dist/public-module-retirement-diagnostics.js +2 -0
  263. package/dist/public-module-retirement-diagnostics.js.map +1 -0
  264. package/dist/public-module-retirement.d.ts +3 -0
  265. package/dist/public-module-retirement.js +2 -0
  266. package/dist/public-module-retirement.js.map +1 -0
  267. package/dist/public-module-scope.d.ts +5 -0
  268. package/dist/public-module-scope.js +2 -0
  269. package/dist/public-module-scope.js.map +1 -0
  270. package/dist/public-module-state.d.ts +28 -0
  271. package/dist/public-module-state.js +2 -0
  272. package/dist/public-module-state.js.map +1 -0
  273. package/dist/public-module-types.d.ts +295 -0
  274. package/dist/public-module.d.ts +4 -0
  275. package/dist/resource-cache.d.ts +12 -0
  276. package/dist/resource-cache.js +2 -0
  277. package/dist/resource-cache.js.map +1 -0
  278. package/dist/resource-controller.d.ts +29 -0
  279. package/dist/resource-controller.js +2 -0
  280. package/dist/resource-controller.js.map +1 -0
  281. package/dist/resource-policy.d.ts +16 -0
  282. package/dist/resource-policy.js +2 -0
  283. package/dist/resource-policy.js.map +1 -0
  284. package/dist/resource-snapshot.d.ts +12 -0
  285. package/dist/resource-snapshot.js +2 -0
  286. package/dist/resource-snapshot.js.map +1 -0
  287. package/dist/resource-types.d.ts +3 -0
  288. package/dist/runtime-error-reporting.d.ts +4 -0
  289. package/dist/runtime-error-reporting.js +2 -0
  290. package/dist/runtime-error-reporting.js.map +1 -0
  291. package/dist/stream-backpressure.d.ts +18 -0
  292. package/dist/stream-backpressure.js +2 -0
  293. package/dist/stream-backpressure.js.map +1 -0
  294. package/dist/stream-cleanup.d.ts +17 -0
  295. package/dist/stream-cleanup.js +2 -0
  296. package/dist/stream-cleanup.js.map +1 -0
  297. package/dist/stream-controller-types.d.ts +51 -0
  298. package/dist/stream-controller.d.ts +5 -0
  299. package/dist/stream-controller.js +2 -0
  300. package/dist/stream-controller.js.map +1 -0
  301. package/docs/agent-guide.md +214 -0
  302. package/docs/agent-guide.ru.md +208 -0
  303. package/docs/cookbook.md +734 -0
  304. package/docs/cookbook.ru.md +729 -0
  305. package/docs/decisions.md +1437 -0
  306. package/docs/devtools.md +423 -0
  307. package/docs/devtools.ru.md +419 -0
  308. package/docs/how-it-works.md +521 -0
  309. package/docs/how-it-works.ru.md +495 -0
  310. package/docs/releases.md +78 -0
  311. package/docs/releases.ru.md +78 -0
  312. package/docs/spec.md +874 -0
  313. package/docs/spec.ru.md +884 -0
  314. package/package.json +72 -0
@@ -0,0 +1,78 @@
1
+ # Publishing a release
2
+
3
+ The five packages share one version: Core, Runtime, React, Devtools and Lint. Before 1.0, use a minor changeset
4
+ for a breaking change and a patch changeset for a compatible fix. Run `npm run changeset`; the version workflow
5
+ opens a release PR. Review its changelogs and exact peer versions before merging.
6
+
7
+ ## Published artifacts
8
+
9
+ The npm packages ship minified ESM (`minify: true`, `keepNames: false`), TypeScript declarations (`.d.ts`), and
10
+ source maps containing the original sources in `sourcesContent` (D254). Minification targets smaller uncompressed
11
+ JavaScript; tarball size and the consuming application's final bundle must be measured separately.
12
+
13
+ Reflected `fn.name` and `constructor.name` are not stable API. Explicit declaration IDs, public `error.name` and
14
+ `error.code` values, and `instanceof` checks against exported error classes retain their contract. Source-map-aware
15
+ tools can locate the original TypeScript; the shipped maps expose those sources, so minification does not conceal
16
+ implementation code.
17
+
18
+ ## Acceptance
19
+
20
+ From a clean checkout of the reviewed commit, using the pinned Node/npm toolchain:
21
+
22
+ ```sh
23
+ npm ci
24
+ npx playwright install --with-deps chromium firefox webkit
25
+ npm run check
26
+ ```
27
+
28
+ CI and release acceptance use the official Playwright image, pinned by version and digest to match the locked
29
+ Playwright dependency. Update the dependency, image tag and digest together. The local commands above install
30
+ browsers and their platform dependencies without requiring that image.
31
+
32
+ `ci:pack` creates five real tarballs and installs them in isolated consumers. It verifies all export entries,
33
+ NodeNext/Bundler declarations, renderer and headless paths, Lint without runtime packages, maps and shipped links. React/React DOM and their type packages are installed separately at `19.0.0` and at the contributor toolchain versions; both renderer/Devtools consumers also run on Node `20.19.0`.
34
+ Its accepted manifest and archives are in `.cache/release/`. Preserve this exact directory until publication
35
+ finishes. `pack-local` prepares archives for development and does not mark them accepted for release.
36
+
37
+ The Git commit and archive checksums must match at publication. Do not edit or rebuild the packages after
38
+ acceptance. The publish script rejects an unaccepted manifest, another commit or a dirty checkout.
39
+
40
+ ## First release and authentication
41
+
42
+ Authenticate interactively with `npm login` using an account allowed to publish in `@opetope`. For the first release,
43
+ publish the accepted set:
44
+
45
+ ```sh
46
+ node tooling/release/publish.mjs --version 0.1.0
47
+ ```
48
+
49
+ The script publishes exact archives with lifecycle scripts disabled. Release candidates use `next`; stable
50
+ versions first use `candidate`. It checks existing versions before writing and resumes a partial publication only
51
+ when the already-published integrity matches. It never overwrites versions or changes `latest`.
52
+
53
+ After the first package versions exist, configure each package's npm trusted publisher with owner `telchardev`,
54
+ repository `opetope`, workflow `release.yml`, and permission for direct `npm publish`. The workflow uses a
55
+ GitHub-hosted runner and OIDC. No permanent npm write token is needed. This repository is private, so provenance
56
+ is disabled. See [npm trusted publishing](https://docs.npmjs.com/trusted-publishers/).
57
+
58
+ For subsequent releases, dispatch **Release** from the reviewed `main` commit and provide its exact version. The
59
+ workflow repeats acceptance and publishes those same archives. Pushes to `main` prepare release PRs; they do not
60
+ publish arbitrary commits. Enable GitHub Actions' permission to create PRs in the repository settings.
61
+
62
+ ## Registry acceptance and promotion
63
+
64
+ Install the complete version set from the registry in a clean application with no workspace/source overrides and
65
+ run its build, type, integration and browser checks. Check the lockfile's registry URLs and integrity. Only then
66
+ promote a stable set, using interactive npm authentication:
67
+
68
+ ```sh
69
+ npm dist-tag add @opetope/core@0.1.0 latest
70
+ npm dist-tag add @opetope/runtime@0.1.0 latest
71
+ npm dist-tag add @opetope/react@0.1.0 latest
72
+ npm dist-tag add @opetope/devtools@0.1.0 latest
73
+ npm dist-tag add @opetope/lint@0.1.0 latest
74
+ ```
75
+
76
+ Replace `0.1.0` with the accepted stable version. Verify all five tags before updating applications. Neither
77
+ package publication nor tag promotion is atomic. OIDC authenticates publish operations; tag management requires
78
+ separate account authentication. Keep a record of the accepted commit, archive checksums and registry checks.
@@ -0,0 +1,78 @@
1
+ # Публикация релиза
2
+
3
+ Пять пакетов используют общую версию: Core, Runtime, React, Devtools и Lint. До 1.0 для breaking change выбирайте
4
+ minor changeset, для совместимого исправления — patch. `npm run changeset` описывает изменение; workflow версий
5
+ создаёт release PR. Перед merge проверьте changelog и точные версии peers.
6
+
7
+ ## Содержимое пакетов
8
+
9
+ npm-пакеты поставляют минифицированный ESM (`minify: true`, `keepNames: false`), декларации TypeScript (`.d.ts`) и
10
+ source maps с исходниками в `sourcesContent` (D254). Цель минификации — уменьшить несжатый JavaScript; размер tarball
11
+ и итогового бандла приложения-потребителя измеряются отдельно.
12
+
13
+ Значения `fn.name` и `constructor.name`, полученные через рефлексию, не являются стабильным API. Явные ID деклараций,
14
+ публичные значения `error.name` и `error.code`, а также проверки `instanceof` с экспортируемыми классами ошибок
15
+ сохраняют контракт. Инструменты с поддержкой source maps могут показать исходный TypeScript; карты поставляют эти
16
+ исходники, поэтому минификация не скрывает реализацию.
17
+
18
+ ## Приёмка
19
+
20
+ В чистом checkout проверенного commit с закреплёнными Node/npm:
21
+
22
+ ```sh
23
+ npm ci
24
+ npx playwright install --with-deps chromium firefox webkit
25
+ npm run check
26
+ ```
27
+
28
+ CI и release acceptance используют официальный образ Playwright, закреплённый по версии и digest в соответствии
29
+ с версией Playwright в lockfile. Обновляйте зависимость, тег образа и digest вместе. Локальные команды выше
30
+ устанавливают браузеры и нужные системе зависимости без необходимости использовать этот образ.
31
+
32
+ `ci:pack` создаёт пять настоящих tarballs и устанавливает их в изолированных потребителях. Проверяются все export
33
+ entries, типы NodeNext/Bundler, renderer и headless пути, Lint без runtime-пакетов, maps и ссылки документов. React/React DOM и их типы устанавливаются отдельно в версии `19.0.0` и версиях contributor toolchain; оба renderer/Devtools consumer также исполняются на Node `20.19.0`.
34
+ Принятый manifest и архивы лежат в `.cache/release/`. Сохраните этот каталог до окончания публикации.
35
+ `pack-local` готовит архивы для разработки, но не отмечает их принятыми для релиза.
36
+
37
+ При публикации должны совпасть Git commit и контрольные суммы. После приёмки не меняйте и не пересобирайте
38
+ пакеты. Скрипт отклоняет непринятый manifest, другой commit и грязное рабочее дерево.
39
+
40
+ ## Первый выпуск и аутентификация
41
+
42
+ Выполните интерактивный `npm login` под аккаунтом с правом публикации в `@opetope`. Для первого выпуска опубликуйте
43
+ принятый набор:
44
+
45
+ ```sh
46
+ node tooling/release/publish.mjs --version 0.1.0
47
+ ```
48
+
49
+ Скрипт отправляет точные архивы с отключёнными lifecycle scripts. RC используют `next`, stable сначала использует
50
+ `candidate`. До записи скрипт проверяет существующие версии; частичную публикацию можно продолжить только при
51
+ совпадении integrity уже опубликованного содержимого. Версии не перезаписываются, `latest` не меняется.
52
+
53
+ После появления первых версий настройте для каждого пакета npm trusted publisher: owner `telchardev`, repository
54
+ `opetope`, workflow `release.yml`, разрешение прямого `npm publish`. Workflow использует GitHub-hosted runner и
55
+ OIDC без постоянного npm write token. Репозиторий приватный, поэтому provenance выключен.
56
+ См. [npm trusted publishing](https://docs.npmjs.com/trusted-publishers/).
57
+
58
+ Для последующих релизов запустите **Release** вручную из проверенного commit в `main`, указав точную версию.
59
+ Workflow повторяет приёмку и публикует эти же архивы. Push в `main` готовит release PR, но не публикует произвольные
60
+ commits. В настройках репозитория разрешите GitHub Actions создавать PR.
61
+
62
+ ## Приёмка registry и продвижение
63
+
64
+ Установите весь набор из registry в чистое приложение без workspace/source overrides. Пройдите build, type,
65
+ integration и browser проверки. Проверьте registry URLs и integrity lockfile. Только затем продвигайте stable
66
+ набор с интерактивной npm-аутентификацией:
67
+
68
+ ```sh
69
+ npm dist-tag add @opetope/core@0.1.0 latest
70
+ npm dist-tag add @opetope/runtime@0.1.0 latest
71
+ npm dist-tag add @opetope/react@0.1.0 latest
72
+ npm dist-tag add @opetope/devtools@0.1.0 latest
73
+ npm dist-tag add @opetope/lint@0.1.0 latest
74
+ ```
75
+
76
+ Подставьте принятую stable версию вместо `0.1.0`. До обновления приложения проверьте все пять тегов. Публикация
77
+ пакетов и продвижение тегов не атомарны. OIDC аутентифицирует publish; управление тегами требует отдельной
78
+ аутентификации аккаунта. Сохраните commit, контрольные суммы архивов и результаты проверки registry.