@pwfabric/runtime 0.0.0-stage → 1.0.0-rc.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 (603) hide show
  1. package/LICENSE +90 -0
  2. package/README.md +13 -2
  3. package/dist/__tests__/dom-test-setup.d.ts +21 -0
  4. package/dist/__tests__/dom-test-setup.d.ts.map +1 -0
  5. package/dist/__tests__/dom-test-setup.js +36 -0
  6. package/dist/__tests__/dom-test-setup.js.map +1 -0
  7. package/dist/a11y/announcer.d.ts +66 -0
  8. package/dist/a11y/announcer.d.ts.map +1 -0
  9. package/dist/a11y/announcer.js +140 -0
  10. package/dist/a11y/announcer.js.map +1 -0
  11. package/dist/a11y/contrast.d.ts +55 -0
  12. package/dist/a11y/contrast.d.ts.map +1 -0
  13. package/dist/a11y/contrast.js +93 -0
  14. package/dist/a11y/contrast.js.map +1 -0
  15. package/dist/a11y/focus.d.ts +124 -0
  16. package/dist/a11y/focus.d.ts.map +1 -0
  17. package/dist/a11y/focus.js +282 -0
  18. package/dist/a11y/focus.js.map +1 -0
  19. package/dist/a11y/index.d.ts +22 -0
  20. package/dist/a11y/index.d.ts.map +1 -0
  21. package/dist/a11y/index.js +18 -0
  22. package/dist/a11y/index.js.map +1 -0
  23. package/dist/a11y/keyboard.d.ts +145 -0
  24. package/dist/a11y/keyboard.d.ts.map +1 -0
  25. package/dist/a11y/keyboard.js +317 -0
  26. package/dist/a11y/keyboard.js.map +1 -0
  27. package/dist/adapters/default-image.d.ts +26 -0
  28. package/dist/adapters/default-image.d.ts.map +1 -0
  29. package/dist/adapters/default-image.js +37 -0
  30. package/dist/adapters/default-image.js.map +1 -0
  31. package/dist/adapters/index.d.ts +28 -0
  32. package/dist/adapters/index.d.ts.map +1 -0
  33. package/dist/adapters/index.js +28 -0
  34. package/dist/adapters/index.js.map +1 -0
  35. package/dist/adapters/next-image.d.ts +39 -0
  36. package/dist/adapters/next-image.d.ts.map +1 -0
  37. package/dist/adapters/next-image.js +124 -0
  38. package/dist/adapters/next-image.js.map +1 -0
  39. package/dist/adapters/types.d.ts +62 -0
  40. package/dist/adapters/types.d.ts.map +1 -0
  41. package/dist/adapters/types.js +11 -0
  42. package/dist/adapters/types.js.map +1 -0
  43. package/dist/analytics/index.d.ts +15 -0
  44. package/dist/analytics/index.d.ts.map +1 -0
  45. package/dist/analytics/index.js +15 -0
  46. package/dist/analytics/index.js.map +1 -0
  47. package/dist/analytics/tracker.d.ts +66 -0
  48. package/dist/analytics/tracker.d.ts.map +1 -0
  49. package/dist/analytics/tracker.js +251 -0
  50. package/dist/analytics/tracker.js.map +1 -0
  51. package/dist/analytics/types.d.ts +131 -0
  52. package/dist/analytics/types.d.ts.map +1 -0
  53. package/dist/analytics/types.js +11 -0
  54. package/dist/analytics/types.js.map +1 -0
  55. package/dist/auth/index.d.ts +16 -0
  56. package/dist/auth/index.d.ts.map +1 -0
  57. package/dist/auth/index.js +14 -0
  58. package/dist/auth/index.js.map +1 -0
  59. package/dist/auth/provider.d.ts +133 -0
  60. package/dist/auth/provider.d.ts.map +1 -0
  61. package/dist/auth/provider.js +473 -0
  62. package/dist/auth/provider.js.map +1 -0
  63. package/dist/auth/types.d.ts +118 -0
  64. package/dist/auth/types.d.ts.map +1 -0
  65. package/dist/auth/types.js +9 -0
  66. package/dist/auth/types.js.map +1 -0
  67. package/dist/binding/collection.d.ts +191 -0
  68. package/dist/binding/collection.d.ts.map +1 -0
  69. package/dist/binding/collection.js +358 -0
  70. package/dist/binding/collection.js.map +1 -0
  71. package/dist/binding/datasource.d.ts +320 -0
  72. package/dist/binding/datasource.d.ts.map +1 -0
  73. package/dist/binding/datasource.js +556 -0
  74. package/dist/binding/datasource.js.map +1 -0
  75. package/dist/binding/engine.d.ts +66 -0
  76. package/dist/binding/engine.d.ts.map +1 -0
  77. package/dist/binding/engine.js +268 -0
  78. package/dist/binding/engine.js.map +1 -0
  79. package/dist/binding/expression.d.ts +151 -0
  80. package/dist/binding/expression.d.ts.map +1 -0
  81. package/dist/binding/expression.js +787 -0
  82. package/dist/binding/expression.js.map +1 -0
  83. package/dist/binding/index.d.ts +20 -0
  84. package/dist/binding/index.d.ts.map +1 -0
  85. package/dist/binding/index.js +14 -0
  86. package/dist/binding/index.js.map +1 -0
  87. package/dist/binding/two-way.d.ts +150 -0
  88. package/dist/binding/two-way.d.ts.map +1 -0
  89. package/dist/binding/two-way.js +462 -0
  90. package/dist/binding/two-way.js.map +1 -0
  91. package/dist/binding/types.d.ts +120 -0
  92. package/dist/binding/types.d.ts.map +1 -0
  93. package/dist/binding/types.js +9 -0
  94. package/dist/binding/types.js.map +1 -0
  95. package/dist/blocks/__test-fixtures__/block-fixtures.d.ts +40 -0
  96. package/dist/blocks/__test-fixtures__/block-fixtures.d.ts.map +1 -0
  97. package/dist/blocks/__test-fixtures__/block-fixtures.js +506 -0
  98. package/dist/blocks/__test-fixtures__/block-fixtures.js.map +1 -0
  99. package/dist/blocks/component-types.d.ts +82 -0
  100. package/dist/blocks/component-types.d.ts.map +1 -0
  101. package/dist/blocks/component-types.js +11 -0
  102. package/dist/blocks/component-types.js.map +1 -0
  103. package/dist/blocks/composition-rules.d.ts +169 -0
  104. package/dist/blocks/composition-rules.d.ts.map +1 -0
  105. package/dist/blocks/composition-rules.js +391 -0
  106. package/dist/blocks/composition-rules.js.map +1 -0
  107. package/dist/blocks/hooks.d.ts +32 -0
  108. package/dist/blocks/hooks.d.ts.map +1 -0
  109. package/dist/blocks/hooks.js +42 -0
  110. package/dist/blocks/hooks.js.map +1 -0
  111. package/dist/blocks/index.d.ts +16 -0
  112. package/dist/blocks/index.d.ts.map +1 -0
  113. package/dist/blocks/index.js +24 -0
  114. package/dist/blocks/index.js.map +1 -0
  115. package/dist/blocks/registry.d.ts +85 -0
  116. package/dist/blocks/registry.d.ts.map +1 -0
  117. package/dist/blocks/registry.js +136 -0
  118. package/dist/blocks/registry.js.map +1 -0
  119. package/dist/blocks/rule-engine.d.ts +132 -0
  120. package/dist/blocks/rule-engine.d.ts.map +1 -0
  121. package/dist/blocks/rule-engine.js +321 -0
  122. package/dist/blocks/rule-engine.js.map +1 -0
  123. package/dist/blocks/surface-event-context.d.ts +14 -0
  124. package/dist/blocks/surface-event-context.d.ts.map +1 -0
  125. package/dist/blocks/surface-event-context.js +14 -0
  126. package/dist/blocks/surface-event-context.js.map +1 -0
  127. package/dist/blocks/surface-id-context.d.ts +14 -0
  128. package/dist/blocks/surface-id-context.d.ts.map +1 -0
  129. package/dist/blocks/surface-id-context.js +15 -0
  130. package/dist/blocks/surface-id-context.js.map +1 -0
  131. package/dist/bus.d.ts +42 -0
  132. package/dist/bus.d.ts.map +1 -0
  133. package/dist/bus.js +158 -0
  134. package/dist/bus.js.map +1 -0
  135. package/dist/cache/index.d.ts +10 -0
  136. package/dist/cache/index.d.ts.map +1 -0
  137. package/dist/cache/index.js +10 -0
  138. package/dist/cache/index.js.map +1 -0
  139. package/dist/cache/memory.d.ts +33 -0
  140. package/dist/cache/memory.d.ts.map +1 -0
  141. package/dist/cache/memory.js +138 -0
  142. package/dist/cache/memory.js.map +1 -0
  143. package/dist/cache/types.d.ts +63 -0
  144. package/dist/cache/types.d.ts.map +1 -0
  145. package/dist/cache/types.js +9 -0
  146. package/dist/cache/types.js.map +1 -0
  147. package/dist/capability/index.d.ts +73 -0
  148. package/dist/capability/index.d.ts.map +1 -0
  149. package/dist/capability/index.js +87 -0
  150. package/dist/capability/index.js.map +1 -0
  151. package/dist/capability/kernel-capabilities.d.ts +32 -0
  152. package/dist/capability/kernel-capabilities.d.ts.map +1 -0
  153. package/dist/capability/kernel-capabilities.js +36 -0
  154. package/dist/capability/kernel-capabilities.js.map +1 -0
  155. package/dist/capability/platform-capabilities.d.ts +72 -0
  156. package/dist/capability/platform-capabilities.d.ts.map +1 -0
  157. package/dist/capability/platform-capabilities.js +267 -0
  158. package/dist/capability/platform-capabilities.js.map +1 -0
  159. package/dist/capability/type-mapping.d.ts +71 -0
  160. package/dist/capability/type-mapping.d.ts.map +1 -0
  161. package/dist/capability/type-mapping.js +107 -0
  162. package/dist/capability/type-mapping.js.map +1 -0
  163. package/dist/capability/validation.d.ts +47 -0
  164. package/dist/capability/validation.d.ts.map +1 -0
  165. package/dist/capability/validation.js +54 -0
  166. package/dist/capability/validation.js.map +1 -0
  167. package/dist/connectors/declared-connector.d.ts +49 -0
  168. package/dist/connectors/declared-connector.d.ts.map +1 -0
  169. package/dist/connectors/declared-connector.js +333 -0
  170. package/dist/connectors/declared-connector.js.map +1 -0
  171. package/dist/connectors/engine-registry.d.ts +51 -0
  172. package/dist/connectors/engine-registry.d.ts.map +1 -0
  173. package/dist/connectors/engine-registry.js +135 -0
  174. package/dist/connectors/engine-registry.js.map +1 -0
  175. package/dist/connectors/index.d.ts +15 -0
  176. package/dist/connectors/index.d.ts.map +1 -0
  177. package/dist/connectors/index.js +14 -0
  178. package/dist/connectors/index.js.map +1 -0
  179. package/dist/connectors/module-loader.d.ts +71 -0
  180. package/dist/connectors/module-loader.d.ts.map +1 -0
  181. package/dist/connectors/module-loader.js +143 -0
  182. package/dist/connectors/module-loader.js.map +1 -0
  183. package/dist/connectors/types.d.ts +175 -0
  184. package/dist/connectors/types.d.ts.map +1 -0
  185. package/dist/connectors/types.js +23 -0
  186. package/dist/connectors/types.js.map +1 -0
  187. package/dist/context.d.ts +28 -0
  188. package/dist/context.d.ts.map +1 -0
  189. package/dist/context.js +38 -0
  190. package/dist/context.js.map +1 -0
  191. package/dist/data/DataCapabilityProvider.d.ts +40 -0
  192. package/dist/data/DataCapabilityProvider.d.ts.map +1 -0
  193. package/dist/data/DataCapabilityProvider.js +58 -0
  194. package/dist/data/DataCapabilityProvider.js.map +1 -0
  195. package/dist/data/index.d.ts +18 -0
  196. package/dist/data/index.d.ts.map +1 -0
  197. package/dist/data/index.js +18 -0
  198. package/dist/data/index.js.map +1 -0
  199. package/dist/data/manager.d.ts +41 -0
  200. package/dist/data/manager.d.ts.map +1 -0
  201. package/dist/data/manager.js +442 -0
  202. package/dist/data/manager.js.map +1 -0
  203. package/dist/data/types.d.ts +219 -0
  204. package/dist/data/types.d.ts.map +1 -0
  205. package/dist/data/types.js +2 -0
  206. package/dist/data/types.js.map +1 -0
  207. package/dist/entity/aggregate.d.ts +9 -0
  208. package/dist/entity/aggregate.d.ts.map +1 -0
  209. package/dist/entity/aggregate.js +24 -0
  210. package/dist/entity/aggregate.js.map +1 -0
  211. package/dist/entity/apply-query.d.ts +59 -0
  212. package/dist/entity/apply-query.d.ts.map +1 -0
  213. package/dist/entity/apply-query.js +264 -0
  214. package/dist/entity/apply-query.js.map +1 -0
  215. package/dist/entity/behavior.d.ts +95 -0
  216. package/dist/entity/behavior.d.ts.map +1 -0
  217. package/dist/entity/behavior.js +78 -0
  218. package/dist/entity/behavior.js.map +1 -0
  219. package/dist/entity/connector.d.ts +142 -0
  220. package/dist/entity/connector.d.ts.map +1 -0
  221. package/dist/entity/connector.js +89 -0
  222. package/dist/entity/connector.js.map +1 -0
  223. package/dist/entity/connectors/index.d.ts +13 -0
  224. package/dist/entity/connectors/index.d.ts.map +1 -0
  225. package/dist/entity/connectors/index.js +11 -0
  226. package/dist/entity/connectors/index.js.map +1 -0
  227. package/dist/entity/connectors/static.d.ts +52 -0
  228. package/dist/entity/connectors/static.d.ts.map +1 -0
  229. package/dist/entity/connectors/static.js +245 -0
  230. package/dist/entity/connectors/static.js.map +1 -0
  231. package/dist/entity/entity-datasource.d.ts +51 -0
  232. package/dist/entity/entity-datasource.d.ts.map +1 -0
  233. package/dist/entity/entity-datasource.js +33 -0
  234. package/dist/entity/entity-datasource.js.map +1 -0
  235. package/dist/entity/facade.d.ts +71 -0
  236. package/dist/entity/facade.d.ts.map +1 -0
  237. package/dist/entity/facade.js +70 -0
  238. package/dist/entity/facade.js.map +1 -0
  239. package/dist/entity/http-connector.d.ts +124 -0
  240. package/dist/entity/http-connector.d.ts.map +1 -0
  241. package/dist/entity/http-connector.js +295 -0
  242. package/dist/entity/http-connector.js.map +1 -0
  243. package/dist/entity/index.d.ts +39 -0
  244. package/dist/entity/index.d.ts.map +1 -0
  245. package/dist/entity/index.js +31 -0
  246. package/dist/entity/index.js.map +1 -0
  247. package/dist/entity/postgres-connector.d.ts +65 -0
  248. package/dist/entity/postgres-connector.d.ts.map +1 -0
  249. package/dist/entity/postgres-connector.js +239 -0
  250. package/dist/entity/postgres-connector.js.map +1 -0
  251. package/dist/entity/registry.d.ts +60 -0
  252. package/dist/entity/registry.d.ts.map +1 -0
  253. package/dist/entity/registry.js +90 -0
  254. package/dist/entity/registry.js.map +1 -0
  255. package/dist/entity/store.d.ts +67 -0
  256. package/dist/entity/store.d.ts.map +1 -0
  257. package/dist/entity/store.js +349 -0
  258. package/dist/entity/store.js.map +1 -0
  259. package/dist/entity/types.d.ts +181 -0
  260. package/dist/entity/types.d.ts.map +1 -0
  261. package/dist/entity/types.js +10 -0
  262. package/dist/entity/types.js.map +1 -0
  263. package/dist/execution-context.d.ts +89 -0
  264. package/dist/execution-context.d.ts.map +1 -0
  265. package/dist/execution-context.js +146 -0
  266. package/dist/execution-context.js.map +1 -0
  267. package/dist/executor.d.ts +28 -0
  268. package/dist/executor.d.ts.map +1 -0
  269. package/dist/executor.js +33 -0
  270. package/dist/executor.js.map +1 -0
  271. package/dist/forms/form-entity-bridge.d.ts +95 -0
  272. package/dist/forms/form-entity-bridge.d.ts.map +1 -0
  273. package/dist/forms/form-entity-bridge.js +96 -0
  274. package/dist/forms/form-entity-bridge.js.map +1 -0
  275. package/dist/forms/form-write-target.d.ts +35 -0
  276. package/dist/forms/form-write-target.d.ts.map +1 -0
  277. package/dist/forms/form-write-target.js +81 -0
  278. package/dist/forms/form-write-target.js.map +1 -0
  279. package/dist/forms/index.d.ts +23 -0
  280. package/dist/forms/index.d.ts.map +1 -0
  281. package/dist/forms/index.js +25 -0
  282. package/dist/forms/index.js.map +1 -0
  283. package/dist/forms/named-control-values.d.ts +28 -0
  284. package/dist/forms/named-control-values.d.ts.map +1 -0
  285. package/dist/forms/named-control-values.js +42 -0
  286. package/dist/forms/named-control-values.js.map +1 -0
  287. package/dist/forms/processor.d.ts +56 -0
  288. package/dist/forms/processor.d.ts.map +1 -0
  289. package/dist/forms/processor.js +154 -0
  290. package/dist/forms/processor.js.map +1 -0
  291. package/dist/forms/types.d.ts +175 -0
  292. package/dist/forms/types.d.ts.map +1 -0
  293. package/dist/forms/types.js +33 -0
  294. package/dist/forms/types.js.map +1 -0
  295. package/dist/forms/validator.d.ts +62 -0
  296. package/dist/forms/validator.d.ts.map +1 -0
  297. package/dist/forms/validator.js +218 -0
  298. package/dist/forms/validator.js.map +1 -0
  299. package/dist/graph/index.d.ts +11 -0
  300. package/dist/graph/index.d.ts.map +1 -0
  301. package/dist/graph/index.js +9 -0
  302. package/dist/graph/index.js.map +1 -0
  303. package/dist/graph/resolver.d.ts +67 -0
  304. package/dist/graph/resolver.d.ts.map +1 -0
  305. package/dist/graph/resolver.js +243 -0
  306. package/dist/graph/resolver.js.map +1 -0
  307. package/dist/graph/types.d.ts +126 -0
  308. package/dist/graph/types.d.ts.map +1 -0
  309. package/dist/graph/types.js +9 -0
  310. package/dist/graph/types.js.map +1 -0
  311. package/dist/hooks/useInstalledAtoms.d.ts +97 -0
  312. package/dist/hooks/useInstalledAtoms.d.ts.map +1 -0
  313. package/dist/hooks/useInstalledAtoms.js +92 -0
  314. package/dist/hooks/useInstalledAtoms.js.map +1 -0
  315. package/dist/i18n/index.d.ts +16 -0
  316. package/dist/i18n/index.d.ts.map +1 -0
  317. package/dist/i18n/index.js +14 -0
  318. package/dist/i18n/index.js.map +1 -0
  319. package/dist/i18n/translator.d.ts +77 -0
  320. package/dist/i18n/translator.d.ts.map +1 -0
  321. package/dist/i18n/translator.js +357 -0
  322. package/dist/i18n/translator.js.map +1 -0
  323. package/dist/i18n/types.d.ts +94 -0
  324. package/dist/i18n/types.d.ts.map +1 -0
  325. package/dist/i18n/types.js +9 -0
  326. package/dist/i18n/types.js.map +1 -0
  327. package/dist/index.d.ts +65 -0
  328. package/dist/index.d.ts.map +1 -0
  329. package/dist/index.js +95 -0
  330. package/dist/index.js.map +1 -0
  331. package/dist/kernel.d.ts +48 -0
  332. package/dist/kernel.d.ts.map +1 -0
  333. package/dist/kernel.js +258 -0
  334. package/dist/kernel.js.map +1 -0
  335. package/dist/perf/budget.d.ts +93 -0
  336. package/dist/perf/budget.d.ts.map +1 -0
  337. package/dist/perf/budget.js +122 -0
  338. package/dist/perf/budget.js.map +1 -0
  339. package/dist/perf/index.d.ts +17 -0
  340. package/dist/perf/index.d.ts.map +1 -0
  341. package/dist/perf/index.js +13 -0
  342. package/dist/perf/index.js.map +1 -0
  343. package/dist/perf/render-timer.d.ts +91 -0
  344. package/dist/perf/render-timer.d.ts.map +1 -0
  345. package/dist/perf/render-timer.js +136 -0
  346. package/dist/perf/render-timer.js.map +1 -0
  347. package/dist/perf/reporter.d.ts +127 -0
  348. package/dist/perf/reporter.d.ts.map +1 -0
  349. package/dist/perf/reporter.js +241 -0
  350. package/dist/perf/reporter.js.map +1 -0
  351. package/dist/perf/web-vitals.d.ts +112 -0
  352. package/dist/perf/web-vitals.d.ts.map +1 -0
  353. package/dist/perf/web-vitals.js +268 -0
  354. package/dist/perf/web-vitals.js.map +1 -0
  355. package/dist/registry.d.ts +64 -0
  356. package/dist/registry.d.ts.map +1 -0
  357. package/dist/registry.js +126 -0
  358. package/dist/registry.js.map +1 -0
  359. package/dist/render/BehaviorSurfaceProvider.d.ts +66 -0
  360. package/dist/render/BehaviorSurfaceProvider.d.ts.map +1 -0
  361. package/dist/render/BehaviorSurfaceProvider.js +185 -0
  362. package/dist/render/BehaviorSurfaceProvider.js.map +1 -0
  363. package/dist/render/BlockErrorBoundary.d.ts +27 -0
  364. package/dist/render/BlockErrorBoundary.d.ts.map +1 -0
  365. package/dist/render/BlockErrorBoundary.js +41 -0
  366. package/dist/render/BlockErrorBoundary.js.map +1 -0
  367. package/dist/render/DataBoundSurfaceRenderer.d.ts +79 -0
  368. package/dist/render/DataBoundSurfaceRenderer.d.ts.map +1 -0
  369. package/dist/render/DataBoundSurfaceRenderer.js +998 -0
  370. package/dist/render/DataBoundSurfaceRenderer.js.map +1 -0
  371. package/dist/render/DynamicBlockWrapper.d.ts +24 -0
  372. package/dist/render/DynamicBlockWrapper.d.ts.map +1 -0
  373. package/dist/render/DynamicBlockWrapper.js +117 -0
  374. package/dist/render/DynamicBlockWrapper.js.map +1 -0
  375. package/dist/render/appearance-resolver.d.ts +51 -0
  376. package/dist/render/appearance-resolver.d.ts.map +1 -0
  377. package/dist/render/appearance-resolver.js +78 -0
  378. package/dist/render/appearance-resolver.js.map +1 -0
  379. package/dist/render/capability-gate.d.ts +70 -0
  380. package/dist/render/capability-gate.d.ts.map +1 -0
  381. package/dist/render/capability-gate.js +94 -0
  382. package/dist/render/capability-gate.js.map +1 -0
  383. package/dist/render/conditional-states-css.d.ts +42 -0
  384. package/dist/render/conditional-states-css.d.ts.map +1 -0
  385. package/dist/render/conditional-states-css.js +82 -0
  386. package/dist/render/conditional-states-css.js.map +1 -0
  387. package/dist/render/connections-context.d.ts +32 -0
  388. package/dist/render/connections-context.d.ts.map +1 -0
  389. package/dist/render/connections-context.js +34 -0
  390. package/dist/render/connections-context.js.map +1 -0
  391. package/dist/render/dark-theme-css.d.ts +37 -0
  392. package/dist/render/dark-theme-css.d.ts.map +1 -0
  393. package/dist/render/dark-theme-css.js +67 -0
  394. package/dist/render/dark-theme-css.js.map +1 -0
  395. package/dist/render/data-binding-types.d.ts +192 -0
  396. package/dist/render/data-binding-types.d.ts.map +1 -0
  397. package/dist/render/data-binding-types.js +11 -0
  398. package/dist/render/data-binding-types.js.map +1 -0
  399. package/dist/render/data-cache.d.ts +31 -0
  400. package/dist/render/data-cache.d.ts.map +1 -0
  401. package/dist/render/data-cache.js +37 -0
  402. package/dist/render/data-cache.js.map +1 -0
  403. package/dist/render/derive-dark-theme.d.ts +18 -0
  404. package/dist/render/derive-dark-theme.d.ts.map +1 -0
  405. package/dist/render/derive-dark-theme.js +18 -0
  406. package/dist/render/derive-dark-theme.js.map +1 -0
  407. package/dist/render/dynamic-artifact-context.d.ts +78 -0
  408. package/dist/render/dynamic-artifact-context.d.ts.map +1 -0
  409. package/dist/render/dynamic-artifact-context.js +89 -0
  410. package/dist/render/dynamic-artifact-context.js.map +1 -0
  411. package/dist/render/dynamic-block-loader.d.ts +81 -0
  412. package/dist/render/dynamic-block-loader.d.ts.map +1 -0
  413. package/dist/render/dynamic-block-loader.js +197 -0
  414. package/dist/render/dynamic-block-loader.js.map +1 -0
  415. package/dist/render/endpoint.d.ts +19 -0
  416. package/dist/render/endpoint.d.ts.map +1 -0
  417. package/dist/render/endpoint.js +109 -0
  418. package/dist/render/endpoint.js.map +1 -0
  419. package/dist/render/entity-facade-context.d.ts +35 -0
  420. package/dist/render/entity-facade-context.d.ts.map +1 -0
  421. package/dist/render/entity-facade-context.js +37 -0
  422. package/dist/render/entity-facade-context.js.map +1 -0
  423. package/dist/render/group-states-css.d.ts +42 -0
  424. package/dist/render/group-states-css.d.ts.map +1 -0
  425. package/dist/render/group-states-css.js +73 -0
  426. package/dist/render/group-states-css.js.map +1 -0
  427. package/dist/render/hooks/useSurfaceEvents.d.ts +9 -0
  428. package/dist/render/hooks/useSurfaceEvents.d.ts.map +1 -0
  429. package/dist/render/hooks/useSurfaceEvents.js +9 -0
  430. package/dist/render/hooks/useSurfaceEvents.js.map +1 -0
  431. package/dist/render/hooks/useSurfaceId.d.ts +9 -0
  432. package/dist/render/hooks/useSurfaceId.d.ts.map +1 -0
  433. package/dist/render/hooks/useSurfaceId.js +9 -0
  434. package/dist/render/hooks/useSurfaceId.js.map +1 -0
  435. package/dist/render/index.d.ts +49 -0
  436. package/dist/render/index.d.ts.map +1 -0
  437. package/dist/render/index.js +61 -0
  438. package/dist/render/index.js.map +1 -0
  439. package/dist/render/interaction-rule-engine.d.ts +13 -0
  440. package/dist/render/interaction-rule-engine.d.ts.map +1 -0
  441. package/dist/render/interaction-rule-engine.js +47 -0
  442. package/dist/render/interaction-rule-engine.js.map +1 -0
  443. package/dist/render/keyframes-css.d.ts +32 -0
  444. package/dist/render/keyframes-css.d.ts.map +1 -0
  445. package/dist/render/keyframes-css.js +44 -0
  446. package/dist/render/keyframes-css.js.map +1 -0
  447. package/dist/render/query-state.d.ts +4 -0
  448. package/dist/render/query-state.d.ts.map +1 -0
  449. package/dist/render/query-state.js +70 -0
  450. package/dist/render/query-state.js.map +1 -0
  451. package/dist/render/renderer.d.ts +45 -0
  452. package/dist/render/renderer.d.ts.map +1 -0
  453. package/dist/render/renderer.js +937 -0
  454. package/dist/render/renderer.js.map +1 -0
  455. package/dist/render/resolve-expressions.d.ts +38 -0
  456. package/dist/render/resolve-expressions.d.ts.map +1 -0
  457. package/dist/render/resolve-expressions.js +309 -0
  458. package/dist/render/resolve-expressions.js.map +1 -0
  459. package/dist/render/responsive-style-css.d.ts +43 -0
  460. package/dist/render/responsive-style-css.d.ts.map +1 -0
  461. package/dist/render/responsive-style-css.js +123 -0
  462. package/dist/render/responsive-style-css.js.map +1 -0
  463. package/dist/render/responsive.d.ts +50 -0
  464. package/dist/render/responsive.d.ts.map +1 -0
  465. package/dist/render/responsive.js +99 -0
  466. package/dist/render/responsive.js.map +1 -0
  467. package/dist/render/scoped-css.d.ts +72 -0
  468. package/dist/render/scoped-css.d.ts.map +1 -0
  469. package/dist/render/scoped-css.js +102 -0
  470. package/dist/render/scoped-css.js.map +1 -0
  471. package/dist/render/shell-selection.d.ts +70 -0
  472. package/dist/render/shell-selection.d.ts.map +1 -0
  473. package/dist/render/shell-selection.js +117 -0
  474. package/dist/render/shell-selection.js.map +1 -0
  475. package/dist/render/states-css.d.ts +33 -0
  476. package/dist/render/states-css.d.ts.map +1 -0
  477. package/dist/render/states-css.js +63 -0
  478. package/dist/render/states-css.js.map +1 -0
  479. package/dist/render/surface-data-context.d.ts +19 -0
  480. package/dist/render/surface-data-context.d.ts.map +1 -0
  481. package/dist/render/surface-data-context.js +21 -0
  482. package/dist/render/surface-data-context.js.map +1 -0
  483. package/dist/render/surface-event-bus.d.ts +20 -0
  484. package/dist/render/surface-event-bus.d.ts.map +1 -0
  485. package/dist/render/surface-event-bus.js +68 -0
  486. package/dist/render/surface-event-bus.js.map +1 -0
  487. package/dist/render/surface-event-context.d.ts +12 -0
  488. package/dist/render/surface-event-context.d.ts.map +1 -0
  489. package/dist/render/surface-event-context.js +12 -0
  490. package/dist/render/surface-event-context.js.map +1 -0
  491. package/dist/render/surface-id-context.d.ts +9 -0
  492. package/dist/render/surface-id-context.d.ts.map +1 -0
  493. package/dist/render/surface-id-context.js +9 -0
  494. package/dist/render/surface-id-context.js.map +1 -0
  495. package/dist/render/theme-utils.d.ts +15 -0
  496. package/dist/render/theme-utils.d.ts.map +1 -0
  497. package/dist/render/theme-utils.js +15 -0
  498. package/dist/render/theme-utils.js.map +1 -0
  499. package/dist/render/types.d.ts +283 -0
  500. package/dist/render/types.d.ts.map +1 -0
  501. package/dist/render/types.js +9 -0
  502. package/dist/render/types.js.map +1 -0
  503. package/dist/render/visibility-css.d.ts +43 -0
  504. package/dist/render/visibility-css.d.ts.map +1 -0
  505. package/dist/render/visibility-css.js +119 -0
  506. package/dist/render/visibility-css.js.map +1 -0
  507. package/dist/render/width-scope.d.ts +35 -0
  508. package/dist/render/width-scope.d.ts.map +1 -0
  509. package/dist/render/width-scope.js +44 -0
  510. package/dist/render/width-scope.js.map +1 -0
  511. package/dist/render/write-only-sources.d.ts +34 -0
  512. package/dist/render/write-only-sources.d.ts.map +1 -0
  513. package/dist/render/write-only-sources.js +99 -0
  514. package/dist/render/write-only-sources.js.map +1 -0
  515. package/dist/routing/index.d.ts +15 -0
  516. package/dist/routing/index.d.ts.map +1 -0
  517. package/dist/routing/index.js +15 -0
  518. package/dist/routing/index.js.map +1 -0
  519. package/dist/routing/router.d.ts +43 -0
  520. package/dist/routing/router.d.ts.map +1 -0
  521. package/dist/routing/router.js +218 -0
  522. package/dist/routing/router.js.map +1 -0
  523. package/dist/routing/types.d.ts +125 -0
  524. package/dist/routing/types.d.ts.map +1 -0
  525. package/dist/routing/types.js +9 -0
  526. package/dist/routing/types.js.map +1 -0
  527. package/dist/seo/generator.d.ts +40 -0
  528. package/dist/seo/generator.d.ts.map +1 -0
  529. package/dist/seo/generator.js +236 -0
  530. package/dist/seo/generator.js.map +1 -0
  531. package/dist/seo/index.d.ts +15 -0
  532. package/dist/seo/index.d.ts.map +1 -0
  533. package/dist/seo/index.js +15 -0
  534. package/dist/seo/index.js.map +1 -0
  535. package/dist/seo/types.d.ts +182 -0
  536. package/dist/seo/types.d.ts.map +1 -0
  537. package/dist/seo/types.js +9 -0
  538. package/dist/seo/types.js.map +1 -0
  539. package/dist/state/index.d.ts +16 -0
  540. package/dist/state/index.d.ts.map +1 -0
  541. package/dist/state/index.js +16 -0
  542. package/dist/state/index.js.map +1 -0
  543. package/dist/state/manager.d.ts +34 -0
  544. package/dist/state/manager.d.ts.map +1 -0
  545. package/dist/state/manager.js +81 -0
  546. package/dist/state/manager.js.map +1 -0
  547. package/dist/state/store.d.ts +41 -0
  548. package/dist/state/store.d.ts.map +1 -0
  549. package/dist/state/store.js +145 -0
  550. package/dist/state/store.js.map +1 -0
  551. package/dist/state/types.d.ts +108 -0
  552. package/dist/state/types.d.ts.map +1 -0
  553. package/dist/state/types.js +9 -0
  554. package/dist/state/types.js.map +1 -0
  555. package/dist/surface/expression.d.ts +66 -0
  556. package/dist/surface/expression.d.ts.map +1 -0
  557. package/dist/surface/expression.js +179 -0
  558. package/dist/surface/expression.js.map +1 -0
  559. package/dist/surface/index.d.ts +33 -0
  560. package/dist/surface/index.d.ts.map +1 -0
  561. package/dist/surface/index.js +25 -0
  562. package/dist/surface/index.js.map +1 -0
  563. package/dist/surface/interpreter.d.ts +97 -0
  564. package/dist/surface/interpreter.d.ts.map +1 -0
  565. package/dist/surface/interpreter.js +231 -0
  566. package/dist/surface/interpreter.js.map +1 -0
  567. package/dist/surface/layout.d.ts +55 -0
  568. package/dist/surface/layout.d.ts.map +1 -0
  569. package/dist/surface/layout.js +288 -0
  570. package/dist/surface/layout.js.map +1 -0
  571. package/dist/surface/output.d.ts +91 -0
  572. package/dist/surface/output.d.ts.map +1 -0
  573. package/dist/surface/output.js +104 -0
  574. package/dist/surface/output.js.map +1 -0
  575. package/dist/surface/primitives.d.ts +181 -0
  576. package/dist/surface/primitives.d.ts.map +1 -0
  577. package/dist/surface/primitives.js +339 -0
  578. package/dist/surface/primitives.js.map +1 -0
  579. package/dist/surface/renderer.d.ts +97 -0
  580. package/dist/surface/renderer.d.ts.map +1 -0
  581. package/dist/surface/renderer.js +190 -0
  582. package/dist/surface/renderer.js.map +1 -0
  583. package/dist/surface/schemas.d.ts +182 -0
  584. package/dist/surface/schemas.d.ts.map +1 -0
  585. package/dist/surface/schemas.js +142 -0
  586. package/dist/surface/schemas.js.map +1 -0
  587. package/dist/surface/transforms.d.ts +145 -0
  588. package/dist/surface/transforms.d.ts.map +1 -0
  589. package/dist/surface/transforms.js +120 -0
  590. package/dist/surface/transforms.js.map +1 -0
  591. package/dist/surface/types.d.ts +161 -0
  592. package/dist/surface/types.d.ts.map +1 -0
  593. package/dist/surface/types.js +51 -0
  594. package/dist/surface/types.js.map +1 -0
  595. package/dist/surface/validation.d.ts +124 -0
  596. package/dist/surface/validation.d.ts.map +1 -0
  597. package/dist/surface/validation.js +147 -0
  598. package/dist/surface/validation.js.map +1 -0
  599. package/dist/validator.d.ts +56 -0
  600. package/dist/validator.d.ts.map +1 -0
  601. package/dist/validator.js +100 -0
  602. package/dist/validator.js.map +1 -0
  603. package/package.json +105 -3
@@ -0,0 +1,267 @@
1
+ /**
2
+ * Platform Capability Definitions
3
+ *
4
+ * Canonical capability taxonomy.
5
+ * - persistence replaces data + state (merged)
6
+ * - interaction replaces behaviors (Tier 2)
7
+ * - entities is the canonical form write path
8
+ *
9
+ * platform/auth phantom capability removed — real auth
10
+ * enforcement lives in JWT middleware (requireAuthenticated()), not
11
+ * the capability system.
12
+ *
13
+ * platform/input retired — form submissions flow through
14
+ * platform/entities (entity_records), hard cutover, no fallback.
15
+ *
16
+ * Active capabilities: persistence, entities, navigation, interaction.
17
+ *
18
+ * @module @pwfabric/runtime/capability/platform-capabilities
19
+ */
20
+ import { defineCapability, defineContract, defineConfigSchema, anySchema, } from '@pwfabric/core';
21
+ import { createDataService } from '../data/manager.js';
22
+ // ============================================================
23
+ // PASSTHROUGH CONTRACT
24
+ // ============================================================
25
+ /**
26
+ * A passthrough contract for declaration-only capabilities.
27
+ * Accepts any input and produces any output with no validation.
28
+ * Used by: persistence, navigation, interaction, entities.
29
+ */
30
+ const passthroughContract = defineContract()
31
+ .id('platform/passthrough')
32
+ .name('Platform Passthrough')
33
+ .description('Passthrough contract for platform capability declarations')
34
+ .state('stable')
35
+ .input(anySchema())
36
+ .output(anySchema())
37
+ .build();
38
+ // ============================================================
39
+ // CONFIG SCHEMAS
40
+ // ============================================================
41
+ /**
42
+ * persistenceConfigSchema merges former dataConfigSchema and stateConfigSchema.
43
+ * data fields: defaultCacheTtl, maxRetries, timeout
44
+ * state fields: persistenceEnabled, storageKey
45
+ */
46
+ const persistenceConfigSchema = defineConfigSchema()
47
+ .field('defaultCacheTtl', (f) => f
48
+ .number()
49
+ .default(300)
50
+ .label('Default Cache TTL')
51
+ .description('Default cache time-to-live in seconds')
52
+ .min(0)
53
+ .max(86400))
54
+ .field('maxRetries', (f) => f
55
+ .number()
56
+ .default(3)
57
+ .label('Max Retries')
58
+ .description('Maximum number of retry attempts for failed requests')
59
+ .min(0)
60
+ .max(10))
61
+ .field('timeout', (f) => f
62
+ .number()
63
+ .default(5000)
64
+ .label('Request Timeout')
65
+ .description('Request timeout in milliseconds')
66
+ .min(1000)
67
+ .max(30000))
68
+ .field('persistenceEnabled', (f) => f
69
+ .boolean()
70
+ .default(true)
71
+ .label('Enable Persistence')
72
+ .description('Persist state to local storage'))
73
+ .field('storageKey', (f) => f
74
+ .string()
75
+ .default('pwfabric-state')
76
+ .label('Storage Key')
77
+ .description('Local storage key prefix for persisted state'))
78
+ .build();
79
+ const navigationConfigSchema = defineConfigSchema()
80
+ .field('basePath', (f) => f.string().default('/').label('Base Path').description('Base path prefix for all routes'))
81
+ .field('trailingSlash', (f) => f.boolean().default(false).label('Trailing Slash').description('Append trailing slash to URLs'))
82
+ .build();
83
+ const interactionConfigSchema = defineConfigSchema()
84
+ .field('executionMode', (f) => f
85
+ .select([
86
+ {
87
+ value: 'sync',
88
+ label: 'Synchronous',
89
+ description: 'Actions block the event chain until complete',
90
+ },
91
+ {
92
+ value: 'async',
93
+ label: 'Asynchronous',
94
+ description: 'Actions run in background without blocking',
95
+ },
96
+ ])
97
+ .default('async')
98
+ .label('Execution Mode')
99
+ .description('How behavior actions are executed when a trigger fires'))
100
+ .field('maxConcurrent', (f) => f
101
+ .number()
102
+ .default(5)
103
+ .label('Max Concurrent')
104
+ .description('Maximum number of behaviors that can execute simultaneously')
105
+ .min(1)
106
+ .max(20))
107
+ .field('errorPolicy', (f) => f
108
+ .select([
109
+ { value: 'ignore', label: 'Ignore', description: 'Silently swallow errors' },
110
+ {
111
+ value: 'log',
112
+ label: 'Log',
113
+ description: 'Log errors to console without stopping execution',
114
+ },
115
+ { value: 'halt', label: 'Halt', description: 'Stop the behavior chain on first error' },
116
+ ])
117
+ .default('log')
118
+ .label('Error Policy')
119
+ .description('How errors in behavior actions are handled'))
120
+ .field('debugMode', (f) => f
121
+ .boolean()
122
+ .default(false)
123
+ .label('Debug Mode')
124
+ .description('Emit detailed trace events for behavior execution'))
125
+ .build();
126
+ // ============================================================
127
+ // PLATFORM CAPABILITY DEFINITIONS
128
+ // ============================================================
129
+ /**
130
+ * Persistence capability
131
+ *
132
+ * Merges former data + state capabilities.
133
+ * Provides data fetching, mutation, persistence operations, and
134
+ * client-side state management with optional local storage persistence.
135
+ */
136
+ export const persistenceCapability = defineCapability()
137
+ .id('platform/persistence')
138
+ .name('Data & State Persistence')
139
+ .description('Data fetching, mutation, persistence operations, and client-side state management')
140
+ .version('1.0.0')
141
+ .state('stable')
142
+ .tags(['data', 'state', 'persistence', 'api'])
143
+ .contract(passthroughContract)
144
+ .configSchema(persistenceConfigSchema)
145
+ .execute(async (config) => {
146
+ const cfg = config;
147
+ return createDataService({
148
+ ...(cfg?.defaultCacheTtl != null ? { defaultCacheTtl: cfg.defaultCacheTtl } : {}),
149
+ ...(cfg?.maxRetries != null ? { maxRetries: cfg.maxRetries } : {}),
150
+ ...(cfg?.timeout != null ? { timeout: cfg.timeout } : {}),
151
+ });
152
+ })
153
+ .build();
154
+ /**
155
+ * Navigation capability
156
+ *
157
+ * Provides multi-page surface navigation, base path configuration, and route handling.
158
+ * Renamed from routingCapability (platform/routing) to avoid confusion with framework-level routing.
159
+ */
160
+ export const navigationCapability = defineCapability()
161
+ .id('platform/navigation')
162
+ .name('Navigation')
163
+ .description('Multi-page surface navigation, base path configuration, and route handling')
164
+ .version('1.0.0')
165
+ .state('stable')
166
+ .tags(['navigation', 'routing', 'url'])
167
+ .contract(passthroughContract)
168
+ .configSchema(navigationConfigSchema)
169
+ .execute(async (input) => {
170
+ const data = input;
171
+ const path = data?.path ?? '/';
172
+ const config = data?.config ?? {};
173
+ const basePath = config.basePath ?? '/';
174
+ const trailingSlash = config.trailingSlash ?? false;
175
+ let resolvedPath = path.startsWith(basePath) ? path : `${basePath}${path}`.replace(/\/+/g, '/');
176
+ if (trailingSlash && !resolvedPath.endsWith('/'))
177
+ resolvedPath += '/';
178
+ else if (!trailingSlash && resolvedPath.length > 1 && resolvedPath.endsWith('/'))
179
+ resolvedPath = resolvedPath.slice(0, -1);
180
+ return { resolvedPath, params: {} };
181
+ })
182
+ .build();
183
+ /**
184
+ * Interaction capability
185
+ *
186
+ * Replaces former behaviors capability.
187
+ * Provides event-driven interaction rules for dynamic surfaces.
188
+ */
189
+ export const interactionCapability = defineCapability()
190
+ .id('platform/interaction')
191
+ .name('Interaction Rules')
192
+ .description('Event-driven interaction rules — attach triggers and actions to surface events for interactive, dynamic surfaces')
193
+ .version('1.0.0')
194
+ .state('stable')
195
+ .tags(['interaction', 'events', 'automation'])
196
+ .contract(passthroughContract)
197
+ .configSchema(interactionConfigSchema)
198
+ .execute(async () => ({ success: true }))
199
+ .build();
200
+ /**
201
+ * Entities capability — NEW Tier 1 capability.
202
+ *
203
+ * Schema-driven entity definitions, CRUD store, and connector abstraction.
204
+ */
205
+ export const entitiesCapability = defineCapability()
206
+ .id('platform/entities')
207
+ .name('Entity System')
208
+ .description('Schema-driven entity definitions, CRUD store, connector abstraction')
209
+ .version('1.0.0')
210
+ .state('stable')
211
+ .tags(['entities', 'schema', 'crud'])
212
+ .contract(passthroughContract)
213
+ .configSchema(defineConfigSchema()
214
+ .field('enableLifecycleHooks', (f) => f
215
+ .boolean()
216
+ .default(true)
217
+ .label('Enable Lifecycle Hooks')
218
+ .description('Enable entity lifecycle hook callbacks'))
219
+ .field('enableEventBridge', (f) => f
220
+ .boolean()
221
+ .default(false)
222
+ .label('Enable Event Bridge')
223
+ .description('Emit entity events to the platform event bridge'))
224
+ .build())
225
+ .execute(async () => ({ success: true }))
226
+ .build();
227
+ // ============================================================
228
+ // AGGREGATE EXPORTS
229
+ // ============================================================
230
+ /**
231
+ * All platform capabilities as an array.
232
+ *
233
+ * SOURCE OF TRUTH — derive all other lists from this array (see index.ts).
234
+ * platform/auth removed (phantom capability).
235
+ * routing renamed to navigation.
236
+ * platform/input removed — form writes flow through platform/entities.
237
+ */
238
+ export const platformCapabilities = [
239
+ persistenceCapability,
240
+ entitiesCapability,
241
+ navigationCapability,
242
+ interactionCapability,
243
+ ];
244
+ /**
245
+ * Register all platform capabilities with a registry
246
+ *
247
+ * @param registry - The capability registry to register with
248
+ * @returns An object with successfully registered IDs and any errors
249
+ */
250
+ export function registerPlatformCapabilities(registry) {
251
+ const registered = [];
252
+ const errors = [];
253
+ for (const capability of platformCapabilities) {
254
+ const result = registry.register(capability);
255
+ if (result.success) {
256
+ registered.push(capability.id);
257
+ }
258
+ else {
259
+ errors.push({
260
+ id: capability.id,
261
+ error: result.error.type,
262
+ });
263
+ }
264
+ }
265
+ return { registered, errors };
266
+ }
267
+ //# sourceMappingURL=platform-capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-capabilities.js","sourceRoot":"","sources":["../../src/capability/platform-capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Capability Type Mapping
3
+ *
4
+ * Maps short-form CapabilityType strings to their corresponding platform
5
+ * capability IDs used in the registry.
6
+ *
7
+ * @module @pwfabric/runtime/capability/type-mapping
8
+ */
9
+ import type { CapabilityId } from '@pwfabric/contracts';
10
+ /**
11
+ * Maps short-form CapabilityType strings to registry CapabilityId values.
12
+ *
13
+ * Keys are the short-form types (e.g., 'persistence').
14
+ * Values are the full platform capability IDs (e.g., 'platform/persistence').
15
+ */
16
+ export declare const CAPABILITY_TYPE_TO_ID: Record<string, string>;
17
+ /**
18
+ * All known capability type keys
19
+ */
20
+ export declare const CAPABILITY_TYPES: readonly string[];
21
+ /**
22
+ * All known capability IDs
23
+ */
24
+ export declare const CAPABILITY_IDS: readonly string[];
25
+ /**
26
+ * Resolve a CapabilityType string to a CapabilityId.
27
+ *
28
+ * @param type - The capability type string (e.g., 'auth')
29
+ * @returns The corresponding CapabilityId, or null if not found
30
+ */
31
+ export declare function resolveCapabilityId(type: string): CapabilityId | null;
32
+ /**
33
+ * Resolve a CapabilityId back to a CapabilityType string.
34
+ *
35
+ * @param id - The capability ID (e.g., 'platform/persistence')
36
+ * @returns The corresponding type string, or null if not found
37
+ */
38
+ export declare function resolveCapabilityType(id: string): string | null;
39
+ /**
40
+ * Check if a CapabilityType string is known.
41
+ *
42
+ * @param type - The capability type string to check
43
+ * @returns true if the type is a known platform capability type
44
+ */
45
+ export declare function isKnownCapabilityType(type: string): boolean;
46
+ /**
47
+ * The canonical id, from EITHER spelling.
48
+ *
49
+ * Every reader that compares a capability id should go through this: a raw
50
+ * comparison against `'platform/…'` misses anything written the short way.
51
+ *
52
+ * Both spellings occur in real documents (`navigation`, `persistence`,
53
+ * `entities` next to `platform/navigation` …). Both are legitimate — the plan
54
+ * layer's contract types the short one, the registry and the pack's atoms use
55
+ * the long one — so a reader that accepts only one is blind to real data.
56
+ *
57
+ * `null` for anything outside the canonical four, which is the answer a caller
58
+ * needs for a retired name (`auth`, `input`) or one that never existed (`seo`):
59
+ * not a silent pass-through that would let a ghost look like a capability.
60
+ */
61
+ export declare function canonicalCapabilityId(value: string): CapabilityId | null;
62
+ /**
63
+ * Does this capability entry name the given canonical capability?
64
+ *
65
+ * The shape every one of those fourteen sites was hand-rolling:
66
+ * `caps.find((c) => c.capability === 'platform/persistence')`.
67
+ */
68
+ export declare function isCapability(entry: {
69
+ capability?: string;
70
+ } | null | undefined, id: string): boolean;
71
+ //# sourceMappingURL=type-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-mapping.d.ts","sourceRoot":"","sources":["../../src/capability/type-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAMvD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK/C,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAyC,SAAS,MAAM,EAAE,CAAA;AAEvF;;GAEG;AACH,eAAO,MAAM,cAAc,EAA2C,SAAS,MAAM,EAAE,CAAA;AAMvF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAIrE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK/D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAMxE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAKnG"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Capability Type Mapping
3
+ *
4
+ * Maps short-form CapabilityType strings to their corresponding platform
5
+ * capability IDs used in the registry.
6
+ *
7
+ * @module @pwfabric/runtime/capability/type-mapping
8
+ */
9
+ import { capabilityId } from '@pwfabric/contracts';
10
+ // ============================================================
11
+ // TYPE-TO-ID MAPPING
12
+ // ============================================================
13
+ /**
14
+ * Maps short-form CapabilityType strings to registry CapabilityId values.
15
+ *
16
+ * Keys are the short-form types (e.g., 'persistence').
17
+ * Values are the full platform capability IDs (e.g., 'platform/persistence').
18
+ */
19
+ export const CAPABILITY_TYPE_TO_ID = {
20
+ persistence: 'platform/persistence',
21
+ entities: 'platform/entities',
22
+ navigation: 'platform/navigation',
23
+ interaction: 'platform/interaction',
24
+ };
25
+ /**
26
+ * All known capability type keys
27
+ */
28
+ export const CAPABILITY_TYPES = Object.keys(CAPABILITY_TYPE_TO_ID);
29
+ /**
30
+ * All known capability IDs
31
+ */
32
+ export const CAPABILITY_IDS = Object.values(CAPABILITY_TYPE_TO_ID);
33
+ // ============================================================
34
+ // LOOKUP FUNCTIONS
35
+ // ============================================================
36
+ /**
37
+ * Resolve a CapabilityType string to a CapabilityId.
38
+ *
39
+ * @param type - The capability type string (e.g., 'auth')
40
+ * @returns The corresponding CapabilityId, or null if not found
41
+ */
42
+ export function resolveCapabilityId(type) {
43
+ const id = CAPABILITY_TYPE_TO_ID[type];
44
+ if (!id)
45
+ return null;
46
+ return capabilityId(id);
47
+ }
48
+ /**
49
+ * Resolve a CapabilityId back to a CapabilityType string.
50
+ *
51
+ * @param id - The capability ID (e.g., 'platform/persistence')
52
+ * @returns The corresponding type string, or null if not found
53
+ */
54
+ export function resolveCapabilityType(id) {
55
+ for (const [type, capId] of Object.entries(CAPABILITY_TYPE_TO_ID)) {
56
+ if (capId === id)
57
+ return type;
58
+ }
59
+ return null;
60
+ }
61
+ /**
62
+ * Check if a CapabilityType string is known.
63
+ *
64
+ * @param type - The capability type string to check
65
+ * @returns true if the type is a known platform capability type
66
+ */
67
+ export function isKnownCapabilityType(type) {
68
+ return type in CAPABILITY_TYPE_TO_ID;
69
+ }
70
+ /**
71
+ * The canonical id, from EITHER spelling.
72
+ *
73
+ * Every reader that compares a capability id should go through this: a raw
74
+ * comparison against `'platform/…'` misses anything written the short way.
75
+ *
76
+ * Both spellings occur in real documents (`navigation`, `persistence`,
77
+ * `entities` next to `platform/navigation` …). Both are legitimate — the plan
78
+ * layer's contract types the short one, the registry and the pack's atoms use
79
+ * the long one — so a reader that accepts only one is blind to real data.
80
+ *
81
+ * `null` for anything outside the canonical four, which is the answer a caller
82
+ * needs for a retired name (`auth`, `input`) or one that never existed (`seo`):
83
+ * not a silent pass-through that would let a ghost look like a capability.
84
+ */
85
+ export function canonicalCapabilityId(value) {
86
+ const trimmed = value.trim();
87
+ if (trimmed === '')
88
+ return null;
89
+ const mapped = CAPABILITY_TYPE_TO_ID[trimmed];
90
+ if (mapped)
91
+ return capabilityId(mapped);
92
+ return CAPABILITY_IDS.includes(trimmed) ? capabilityId(trimmed) : null;
93
+ }
94
+ /**
95
+ * Does this capability entry name the given canonical capability?
96
+ *
97
+ * The shape every one of those fourteen sites was hand-rolling:
98
+ * `caps.find((c) => c.capability === 'platform/persistence')`.
99
+ */
100
+ export function isCapability(entry, id) {
101
+ const declared = entry?.capability;
102
+ if (typeof declared !== 'string')
103
+ return false;
104
+ const canonical = canonicalCapabilityId(id);
105
+ return canonical !== null && canonicalCapabilityId(declared) === canonical;
106
+ }
107
+ //# sourceMappingURL=type-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-mapping.js","sourceRoot":"","sources":["../../src/capability/type-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD,+DAA+D;AAC/D,qBAAqB;AACrB,+DAA+D;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,WAAW,EAAE,sBAAsB;IACnC,QAAQ,EAAE,mBAAmB;IAC7B,UAAU,EAAE,qBAAqB;IACjC,WAAW,EAAE,sBAAsB;CAC3B,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAsB,CAAA;AAEvF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAsB,CAAA;AAEvF,+DAA+D;AAC/D,mBAAmB;AACnB,+DAA+D;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAA;IACpB,OAAO,YAAY,CAAC,EAAE,CAAC,CAAA;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAU;IAC9C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAClE,IAAI,KAAK,KAAK,EAAE;YAAE,OAAO,IAAI,CAAA;IAC/B,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO,IAAI,IAAI,qBAAqB,CAAA;AACtC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,IAAI,CAAA;IAC/B,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAC7C,IAAI,MAAM;QAAE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAA;IACvC,OAAO,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACxE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAiD,EAAE,EAAU;IACxF,MAAM,QAAQ,GAAG,KAAK,EAAE,UAAU,CAAA;IAClC,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC9C,MAAM,SAAS,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAA;IAC3C,OAAO,SAAS,KAAK,IAAI,IAAI,qBAAqB,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAA;AAC5E,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Surface Capability Validation
3
+ *
4
+ * Validates that a surface's capability requirements
5
+ * can be satisfied by the capabilities registered in a registry.
6
+ *
7
+ * @module @pwfabric/runtime/capability/validation
8
+ */
9
+ import type { CapabilityRegistry } from '../registry.js';
10
+ /**
11
+ * A capability requirement declared by a surface.
12
+ */
13
+ export interface CapabilityRequirement {
14
+ /** The capability type string (e.g., 'persistence' or 'platform/persistence') */
15
+ readonly capability: string;
16
+ /** Whether this capability is required (true) or optional (false) */
17
+ readonly required: boolean;
18
+ /** Optional configuration for the capability */
19
+ readonly config?: Record<string, unknown>;
20
+ }
21
+ /**
22
+ * Result of validating surface capabilities against a registry.
23
+ */
24
+ export interface CapabilityValidationResult {
25
+ /** Whether all required capabilities are satisfied */
26
+ readonly valid: boolean;
27
+ /** IDs of capabilities that are registered and satisfy requirements */
28
+ readonly satisfied: readonly string[];
29
+ /** IDs of required capabilities that are NOT registered */
30
+ readonly missing: readonly string[];
31
+ /** IDs of optional capabilities that are NOT registered */
32
+ readonly optional: readonly string[];
33
+ }
34
+ /**
35
+ * Validate that a surface's capability requirements can be met
36
+ * by the capabilities available in the registry.
37
+ *
38
+ * Capability strings can be either:
39
+ * - Short-form types from starters (e.g., 'persistence') which are resolved via type-mapping
40
+ * - Full capability IDs (e.g., 'platform/persistence') used directly
41
+ *
42
+ * @param requirements - The capability requirements declared by a surface
43
+ * @param registry - The capability registry to validate against
44
+ * @returns A ValidationResult indicating which requirements are met
45
+ */
46
+ export declare function validateSurfaceCapabilities(requirements: readonly CapabilityRequirement[], registry: CapabilityRegistry): CapabilityValidationResult;
47
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/capability/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAOxD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,SAAS,qBAAqB,EAAE,EAC9C,QAAQ,EAAE,kBAAkB,GAC3B,0BAA0B,CA+B5B"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Surface Capability Validation
3
+ *
4
+ * Validates that a surface's capability requirements
5
+ * can be satisfied by the capabilities registered in a registry.
6
+ *
7
+ * @module @pwfabric/runtime/capability/validation
8
+ */
9
+ import { resolveCapabilityId } from './type-mapping.js';
10
+ // ============================================================
11
+ // VALIDATION
12
+ // ============================================================
13
+ /**
14
+ * Validate that a surface's capability requirements can be met
15
+ * by the capabilities available in the registry.
16
+ *
17
+ * Capability strings can be either:
18
+ * - Short-form types from starters (e.g., 'persistence') which are resolved via type-mapping
19
+ * - Full capability IDs (e.g., 'platform/persistence') used directly
20
+ *
21
+ * @param requirements - The capability requirements declared by a surface
22
+ * @param registry - The capability registry to validate against
23
+ * @returns A ValidationResult indicating which requirements are met
24
+ */
25
+ export function validateSurfaceCapabilities(requirements, registry) {
26
+ const satisfied = [];
27
+ const missing = [];
28
+ const optional = [];
29
+ for (const requirement of requirements) {
30
+ const { capability, required } = requirement;
31
+ // Try to resolve short-form type to full ID, or use as-is
32
+ const resolvedId = resolveCapabilityId(capability);
33
+ const lookupId = resolvedId ?? capability;
34
+ // Check if the capability is registered
35
+ // Use capabilityId() cast since registry.has() expects a branded CapabilityId
36
+ const isRegistered = registry.has(lookupId);
37
+ if (isRegistered) {
38
+ satisfied.push(capability);
39
+ }
40
+ else if (required) {
41
+ missing.push(capability);
42
+ }
43
+ else {
44
+ optional.push(capability);
45
+ }
46
+ }
47
+ return {
48
+ valid: missing.length === 0,
49
+ satisfied,
50
+ missing,
51
+ optional,
52
+ };
53
+ }
54
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/capability/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAgCvD,+DAA+D;AAC/D,aAAa;AACb,+DAA+D;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,2BAA2B,CACzC,YAA8C,EAC9C,QAA4B;IAE5B,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAA;QAE5C,0DAA0D;QAC1D,MAAM,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;QAClD,MAAM,QAAQ,GAAG,UAAU,IAAI,UAAU,CAAA;QAEzC,wCAAwC;QACxC,8EAA8E;QAC9E,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,QAA2D,CAAC,CAAA;QAE9F,IAAI,YAAY,EAAE,CAAC;YACjB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC5B,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1B,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;QAC3B,SAAS;QACT,OAAO;QACP,QAAQ;KACT,CAAA;AACH,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * build an engine from its DECLARATION.
3
+ *
4
+ * A REST engine is not a class. A class has a call signature, and a
5
+ * hand-written engine that takes one options object where the runtime passes
6
+ * two positional arguments ends up asking SharePoint for `lists/undefined`.
7
+ * A declaration has no signature to get wrong.
8
+ *
9
+ * WHAT THIS MODULE IS ALLOWED TO KNOW: how to turn seven declared facts into
10
+ * an `HttpEntityConnector`. It must not know a vendor's name, and the
11
+ * placement test measures exactly that — no provider name anywhere in
12
+ * `packages/runtime`. Everything SharePoint-shaped lives in the declaration,
13
+ * which lives in the pack that ships the connector.
14
+ *
15
+ * WHAT THE BASE DOES NOT LEARN. `entityPathMapper` and `responseMapper` stay
16
+ * plain functions on `HttpConnectorConfig`; this builds them. The pre-flight —
17
+ * Graph cannot address a list before its site id is resolved — is handled by
18
+ * constructing ONE base per resolved binding, so the mapper stays synchronous.
19
+ * Making it asynchronous would teach a shared contract one vendor's
20
+ * addressing dance.
21
+ *
22
+ * @module @pwfabric/runtime/connectors/declared-connector
23
+ */
24
+ import type { EngineDeclaration } from '@pwfabric/contracts';
25
+ import type { EntityConnector } from '../entity/connector.js';
26
+ /**
27
+ * The only value transforms a declaration may name.
28
+ *
29
+ * CLOSED ON PURPOSE. A declaration carries a NAME, never a function — the
30
+ * moment it could carry a function it would be a class again with extra steps,
31
+ * and an AI-written declaration would regain the power to get something wrong.
32
+ * An unknown name throws at construction (see `resolveTransform`) rather than
33
+ * passing values through unchanged, because a silently skipped transform looks
34
+ * exactly like a field the source never sent.
35
+ *
36
+ * These two are named for what they DO, not for who needs them: the runtime
37
+ * must not learn a vendor's name.
38
+ */
39
+ export declare const VALUE_TRANSFORMS: Readonly<Record<string, (value: unknown) => unknown>>;
40
+ export interface DeclaredConnectorOptions {
41
+ /** Connection name — the engine reports it, and the registry keys on it. */
42
+ readonly name: string;
43
+ readonly declaration: EngineDeclaration;
44
+ /** Per-connection config the declaration's templates draw on. */
45
+ readonly config: Readonly<Record<string, unknown>>;
46
+ readonly getAccessToken: () => Promise<string | null>;
47
+ }
48
+ export declare function createDeclaredConnector(options: DeclaredConnectorOptions): EntityConnector;
49
+ //# sourceMappingURL=declared-connector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declared-connector.d.ts","sourceRoot":"","sources":["../../src/connectors/declared-connector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAG5D,OAAO,KAAK,EAGV,eAAe,EAChB,MAAM,wBAAwB,CAAA;AAQ/B;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,CAuBlF,CAAA;AAmED,MAAM,WAAW,wBAAwB;IACvC,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;IACvC,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;CACtD;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,eAAe,CAuN1F"}