@appport/sdk 1.0.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 (387) hide show
  1. package/LICENSE +126 -0
  2. package/README.md +39 -0
  3. package/dist/index.d.ts +14 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +14 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/node.d.ts +3 -0
  8. package/dist/node.d.ts.map +1 -0
  9. package/dist/node.js +3 -0
  10. package/dist/node.js.map +1 -0
  11. package/node_modules/@appport/authorization/README.md +28 -0
  12. package/node_modules/@appport/authorization/dist/index.d.ts +94 -0
  13. package/node_modules/@appport/authorization/dist/index.d.ts.map +1 -0
  14. package/node_modules/@appport/authorization/dist/index.js +131 -0
  15. package/node_modules/@appport/authorization/dist/index.js.map +1 -0
  16. package/node_modules/@appport/authorization/package.json +28 -0
  17. package/node_modules/@appport/client/README.md +35 -0
  18. package/node_modules/@appport/client/dist/channel.d.ts +14 -0
  19. package/node_modules/@appport/client/dist/channel.d.ts.map +1 -0
  20. package/node_modules/@appport/client/dist/channel.js +58 -0
  21. package/node_modules/@appport/client/dist/channel.js.map +1 -0
  22. package/node_modules/@appport/client/dist/client.d.ts +61 -0
  23. package/node_modules/@appport/client/dist/client.d.ts.map +1 -0
  24. package/node_modules/@appport/client/dist/client.js +214 -0
  25. package/node_modules/@appport/client/dist/client.js.map +1 -0
  26. package/node_modules/@appport/client/dist/contract.d.ts +55 -0
  27. package/node_modules/@appport/client/dist/contract.d.ts.map +1 -0
  28. package/node_modules/@appport/client/dist/contract.js +12 -0
  29. package/node_modules/@appport/client/dist/contract.js.map +1 -0
  30. package/node_modules/@appport/client/dist/discovery.d.ts +17 -0
  31. package/node_modules/@appport/client/dist/discovery.d.ts.map +1 -0
  32. package/node_modules/@appport/client/dist/discovery.js +56 -0
  33. package/node_modules/@appport/client/dist/discovery.js.map +1 -0
  34. package/node_modules/@appport/client/dist/duplex.d.ts +25 -0
  35. package/node_modules/@appport/client/dist/duplex.d.ts.map +1 -0
  36. package/node_modules/@appport/client/dist/duplex.js +194 -0
  37. package/node_modules/@appport/client/dist/duplex.js.map +1 -0
  38. package/node_modules/@appport/client/dist/index.d.ts +13 -0
  39. package/node_modules/@appport/client/dist/index.d.ts.map +1 -0
  40. package/node_modules/@appport/client/dist/index.js +13 -0
  41. package/node_modules/@appport/client/dist/index.js.map +1 -0
  42. package/node_modules/@appport/client/dist/transport.d.ts +42 -0
  43. package/node_modules/@appport/client/dist/transport.d.ts.map +1 -0
  44. package/node_modules/@appport/client/dist/transport.js +2 -0
  45. package/node_modules/@appport/client/dist/transport.js.map +1 -0
  46. package/node_modules/@appport/client/package.json +32 -0
  47. package/node_modules/@appport/core/README.md +91 -0
  48. package/node_modules/@appport/core/dist/appboundry-contract.d.ts +80 -0
  49. package/node_modules/@appport/core/dist/appboundry-contract.d.ts.map +1 -0
  50. package/node_modules/@appport/core/dist/appboundry-contract.js +160 -0
  51. package/node_modules/@appport/core/dist/appboundry-contract.js.map +1 -0
  52. package/node_modules/@appport/core/dist/application-implementation.d.ts +125 -0
  53. package/node_modules/@appport/core/dist/application-implementation.d.ts.map +1 -0
  54. package/node_modules/@appport/core/dist/application-implementation.js +220 -0
  55. package/node_modules/@appport/core/dist/application-implementation.js.map +1 -0
  56. package/node_modules/@appport/core/dist/application-lifecycle.d.ts +150 -0
  57. package/node_modules/@appport/core/dist/application-lifecycle.d.ts.map +1 -0
  58. package/node_modules/@appport/core/dist/application-lifecycle.js +70 -0
  59. package/node_modules/@appport/core/dist/application-lifecycle.js.map +1 -0
  60. package/node_modules/@appport/core/dist/application-source.d.ts +109 -0
  61. package/node_modules/@appport/core/dist/application-source.d.ts.map +1 -0
  62. package/node_modules/@appport/core/dist/application-source.js +186 -0
  63. package/node_modules/@appport/core/dist/application-source.js.map +1 -0
  64. package/node_modules/@appport/core/dist/application.d.ts +122 -0
  65. package/node_modules/@appport/core/dist/application.d.ts.map +1 -0
  66. package/node_modules/@appport/core/dist/application.js +515 -0
  67. package/node_modules/@appport/core/dist/application.js.map +1 -0
  68. package/node_modules/@appport/core/dist/artifact.d.ts +395 -0
  69. package/node_modules/@appport/core/dist/artifact.d.ts.map +1 -0
  70. package/node_modules/@appport/core/dist/artifact.js +392 -0
  71. package/node_modules/@appport/core/dist/artifact.js.map +1 -0
  72. package/node_modules/@appport/core/dist/assembly.d.ts +237 -0
  73. package/node_modules/@appport/core/dist/assembly.d.ts.map +1 -0
  74. package/node_modules/@appport/core/dist/assembly.js +458 -0
  75. package/node_modules/@appport/core/dist/assembly.js.map +1 -0
  76. package/node_modules/@appport/core/dist/authority-attestation.d.ts +34 -0
  77. package/node_modules/@appport/core/dist/authority-attestation.d.ts.map +1 -0
  78. package/node_modules/@appport/core/dist/authority-attestation.js +72 -0
  79. package/node_modules/@appport/core/dist/authority-attestation.js.map +1 -0
  80. package/node_modules/@appport/core/dist/authorization-grant.d.ts +107 -0
  81. package/node_modules/@appport/core/dist/authorization-grant.d.ts.map +1 -0
  82. package/node_modules/@appport/core/dist/authorization-grant.js +131 -0
  83. package/node_modules/@appport/core/dist/authorization-grant.js.map +1 -0
  84. package/node_modules/@appport/core/dist/binding.d.ts +294 -0
  85. package/node_modules/@appport/core/dist/binding.d.ts.map +1 -0
  86. package/node_modules/@appport/core/dist/binding.js +263 -0
  87. package/node_modules/@appport/core/dist/binding.js.map +1 -0
  88. package/node_modules/@appport/core/dist/builtins.d.ts +18 -0
  89. package/node_modules/@appport/core/dist/builtins.d.ts.map +1 -0
  90. package/node_modules/@appport/core/dist/builtins.js +38 -0
  91. package/node_modules/@appport/core/dist/builtins.js.map +1 -0
  92. package/node_modules/@appport/core/dist/capability.d.ts +94 -0
  93. package/node_modules/@appport/core/dist/capability.d.ts.map +1 -0
  94. package/node_modules/@appport/core/dist/capability.js +85 -0
  95. package/node_modules/@appport/core/dist/capability.js.map +1 -0
  96. package/node_modules/@appport/core/dist/concurrency.d.ts +16 -0
  97. package/node_modules/@appport/core/dist/concurrency.d.ts.map +1 -0
  98. package/node_modules/@appport/core/dist/concurrency.js +46 -0
  99. package/node_modules/@appport/core/dist/concurrency.js.map +1 -0
  100. package/node_modules/@appport/core/dist/context.d.ts +59 -0
  101. package/node_modules/@appport/core/dist/context.d.ts.map +1 -0
  102. package/node_modules/@appport/core/dist/context.js +14 -0
  103. package/node_modules/@appport/core/dist/context.js.map +1 -0
  104. package/node_modules/@appport/core/dist/contract-artifact.d.ts +15 -0
  105. package/node_modules/@appport/core/dist/contract-artifact.d.ts.map +1 -0
  106. package/node_modules/@appport/core/dist/contract-artifact.js +152 -0
  107. package/node_modules/@appport/core/dist/contract-artifact.js.map +1 -0
  108. package/node_modules/@appport/core/dist/contract-attestation.d.ts +68 -0
  109. package/node_modules/@appport/core/dist/contract-attestation.d.ts.map +1 -0
  110. package/node_modules/@appport/core/dist/contract-attestation.js +76 -0
  111. package/node_modules/@appport/core/dist/contract-attestation.js.map +1 -0
  112. package/node_modules/@appport/core/dist/crash-injection.d.ts +3 -0
  113. package/node_modules/@appport/core/dist/crash-injection.d.ts.map +1 -0
  114. package/node_modules/@appport/core/dist/crash-injection.js +8 -0
  115. package/node_modules/@appport/core/dist/crash-injection.js.map +1 -0
  116. package/node_modules/@appport/core/dist/events.d.ts +33 -0
  117. package/node_modules/@appport/core/dist/events.d.ts.map +1 -0
  118. package/node_modules/@appport/core/dist/events.js +79 -0
  119. package/node_modules/@appport/core/dist/events.js.map +1 -0
  120. package/node_modules/@appport/core/dist/execution-barrier.d.ts +13 -0
  121. package/node_modules/@appport/core/dist/execution-barrier.d.ts.map +1 -0
  122. package/node_modules/@appport/core/dist/execution-barrier.js +33 -0
  123. package/node_modules/@appport/core/dist/execution-barrier.js.map +1 -0
  124. package/node_modules/@appport/core/dist/execution-ledger.d.ts +81 -0
  125. package/node_modules/@appport/core/dist/execution-ledger.d.ts.map +1 -0
  126. package/node_modules/@appport/core/dist/execution-ledger.js +173 -0
  127. package/node_modules/@appport/core/dist/execution-ledger.js.map +1 -0
  128. package/node_modules/@appport/core/dist/execution.d.ts +387 -0
  129. package/node_modules/@appport/core/dist/execution.d.ts.map +1 -0
  130. package/node_modules/@appport/core/dist/execution.js +165 -0
  131. package/node_modules/@appport/core/dist/execution.js.map +1 -0
  132. package/node_modules/@appport/core/dist/idempotency.d.ts +36 -0
  133. package/node_modules/@appport/core/dist/idempotency.d.ts.map +1 -0
  134. package/node_modules/@appport/core/dist/idempotency.js +36 -0
  135. package/node_modules/@appport/core/dist/idempotency.js.map +1 -0
  136. package/node_modules/@appport/core/dist/implementation.d.ts +110 -0
  137. package/node_modules/@appport/core/dist/implementation.d.ts.map +1 -0
  138. package/node_modules/@appport/core/dist/implementation.js +65 -0
  139. package/node_modules/@appport/core/dist/implementation.js.map +1 -0
  140. package/node_modules/@appport/core/dist/index.d.ts +44 -0
  141. package/node_modules/@appport/core/dist/index.d.ts.map +1 -0
  142. package/node_modules/@appport/core/dist/index.js +44 -0
  143. package/node_modules/@appport/core/dist/index.js.map +1 -0
  144. package/node_modules/@appport/core/dist/invocation.d.ts +253 -0
  145. package/node_modules/@appport/core/dist/invocation.d.ts.map +1 -0
  146. package/node_modules/@appport/core/dist/invocation.js +258 -0
  147. package/node_modules/@appport/core/dist/invocation.js.map +1 -0
  148. package/node_modules/@appport/core/dist/manifest.d.ts +157 -0
  149. package/node_modules/@appport/core/dist/manifest.d.ts.map +1 -0
  150. package/node_modules/@appport/core/dist/manifest.js +255 -0
  151. package/node_modules/@appport/core/dist/manifest.js.map +1 -0
  152. package/node_modules/@appport/core/dist/memory-application-data-store.d.ts +19 -0
  153. package/node_modules/@appport/core/dist/memory-application-data-store.d.ts.map +1 -0
  154. package/node_modules/@appport/core/dist/memory-application-data-store.js +161 -0
  155. package/node_modules/@appport/core/dist/memory-application-data-store.js.map +1 -0
  156. package/node_modules/@appport/core/dist/operations.d.ts +61 -0
  157. package/node_modules/@appport/core/dist/operations.d.ts.map +1 -0
  158. package/node_modules/@appport/core/dist/operations.js +210 -0
  159. package/node_modules/@appport/core/dist/operations.js.map +1 -0
  160. package/node_modules/@appport/core/dist/public.d.ts +19 -0
  161. package/node_modules/@appport/core/dist/public.d.ts.map +1 -0
  162. package/node_modules/@appport/core/dist/public.js +18 -0
  163. package/node_modules/@appport/core/dist/public.js.map +1 -0
  164. package/node_modules/@appport/core/dist/registration.d.ts +165 -0
  165. package/node_modules/@appport/core/dist/registration.d.ts.map +1 -0
  166. package/node_modules/@appport/core/dist/registration.js +253 -0
  167. package/node_modules/@appport/core/dist/registration.js.map +1 -0
  168. package/node_modules/@appport/core/dist/registry.d.ts +29 -0
  169. package/node_modules/@appport/core/dist/registry.d.ts.map +1 -0
  170. package/node_modules/@appport/core/dist/registry.js +148 -0
  171. package/node_modules/@appport/core/dist/registry.js.map +1 -0
  172. package/node_modules/@appport/core/dist/repository-connection.d.ts +100 -0
  173. package/node_modules/@appport/core/dist/repository-connection.d.ts.map +1 -0
  174. package/node_modules/@appport/core/dist/repository-connection.js +57 -0
  175. package/node_modules/@appport/core/dist/repository-connection.js.map +1 -0
  176. package/node_modules/@appport/core/dist/resolver.d.ts +130 -0
  177. package/node_modules/@appport/core/dist/resolver.d.ts.map +1 -0
  178. package/node_modules/@appport/core/dist/resolver.js +252 -0
  179. package/node_modules/@appport/core/dist/resolver.js.map +1 -0
  180. package/node_modules/@appport/core/dist/runtime-manifest.d.ts +68 -0
  181. package/node_modules/@appport/core/dist/runtime-manifest.d.ts.map +1 -0
  182. package/node_modules/@appport/core/dist/runtime-manifest.js +84 -0
  183. package/node_modules/@appport/core/dist/runtime-manifest.js.map +1 -0
  184. package/node_modules/@appport/core/dist/sanitize.d.ts +14 -0
  185. package/node_modules/@appport/core/dist/sanitize.d.ts.map +1 -0
  186. package/node_modules/@appport/core/dist/sanitize.js +49 -0
  187. package/node_modules/@appport/core/dist/sanitize.js.map +1 -0
  188. package/node_modules/@appport/core/dist/server-internal.d.ts +5 -0
  189. package/node_modules/@appport/core/dist/server-internal.d.ts.map +1 -0
  190. package/node_modules/@appport/core/dist/server-internal.js +4 -0
  191. package/node_modules/@appport/core/dist/server-internal.js.map +1 -0
  192. package/node_modules/@appport/core/dist/sessions.d.ts +29 -0
  193. package/node_modules/@appport/core/dist/sessions.d.ts.map +1 -0
  194. package/node_modules/@appport/core/dist/sessions.js +39 -0
  195. package/node_modules/@appport/core/dist/sessions.js.map +1 -0
  196. package/node_modules/@appport/core/dist/sha256.d.ts +3 -0
  197. package/node_modules/@appport/core/dist/sha256.d.ts.map +1 -0
  198. package/node_modules/@appport/core/dist/sha256.js +46 -0
  199. package/node_modules/@appport/core/dist/sha256.js.map +1 -0
  200. package/node_modules/@appport/core/dist/source-verification.d.ts +53 -0
  201. package/node_modules/@appport/core/dist/source-verification.d.ts.map +1 -0
  202. package/node_modules/@appport/core/dist/source-verification.js +92 -0
  203. package/node_modules/@appport/core/dist/source-verification.js.map +1 -0
  204. package/node_modules/@appport/core/dist/state-context.d.ts +312 -0
  205. package/node_modules/@appport/core/dist/state-context.d.ts.map +1 -0
  206. package/node_modules/@appport/core/dist/state-context.js +100 -0
  207. package/node_modules/@appport/core/dist/state-context.js.map +1 -0
  208. package/node_modules/@appport/core/dist/state.d.ts +96 -0
  209. package/node_modules/@appport/core/dist/state.d.ts.map +1 -0
  210. package/node_modules/@appport/core/dist/state.js +89 -0
  211. package/node_modules/@appport/core/dist/state.js.map +1 -0
  212. package/node_modules/@appport/core/dist/streams.d.ts +38 -0
  213. package/node_modules/@appport/core/dist/streams.d.ts.map +1 -0
  214. package/node_modules/@appport/core/dist/streams.js +123 -0
  215. package/node_modules/@appport/core/dist/streams.js.map +1 -0
  216. package/node_modules/@appport/core/dist/telemetry.d.ts +42 -0
  217. package/node_modules/@appport/core/dist/telemetry.d.ts.map +1 -0
  218. package/node_modules/@appport/core/dist/telemetry.js +32 -0
  219. package/node_modules/@appport/core/dist/telemetry.js.map +1 -0
  220. package/node_modules/@appport/core/dist/wasm-engine.d.ts +22 -0
  221. package/node_modules/@appport/core/dist/wasm-engine.d.ts.map +1 -0
  222. package/node_modules/@appport/core/dist/wasm-engine.js +367 -0
  223. package/node_modules/@appport/core/dist/wasm-engine.js.map +1 -0
  224. package/node_modules/@appport/core/package.json +58 -0
  225. package/node_modules/@appport/mobile/README.md +10 -0
  226. package/node_modules/@appport/mobile/dist/index.d.ts +66 -0
  227. package/node_modules/@appport/mobile/dist/index.d.ts.map +1 -0
  228. package/node_modules/@appport/mobile/dist/index.js +182 -0
  229. package/node_modules/@appport/mobile/dist/index.js.map +1 -0
  230. package/node_modules/@appport/mobile/package.json +33 -0
  231. package/node_modules/@appport/protocol/README.md +41 -0
  232. package/node_modules/@appport/protocol/dist/blob.d.ts +46 -0
  233. package/node_modules/@appport/protocol/dist/blob.d.ts.map +1 -0
  234. package/node_modules/@appport/protocol/dist/blob.js +23 -0
  235. package/node_modules/@appport/protocol/dist/blob.js.map +1 -0
  236. package/node_modules/@appport/protocol/dist/compatibility.d.ts +25 -0
  237. package/node_modules/@appport/protocol/dist/compatibility.d.ts.map +1 -0
  238. package/node_modules/@appport/protocol/dist/compatibility.js +189 -0
  239. package/node_modules/@appport/protocol/dist/compatibility.js.map +1 -0
  240. package/node_modules/@appport/protocol/dist/envelopes.d.ts +175 -0
  241. package/node_modules/@appport/protocol/dist/envelopes.d.ts.map +1 -0
  242. package/node_modules/@appport/protocol/dist/envelopes.js +97 -0
  243. package/node_modules/@appport/protocol/dist/envelopes.js.map +1 -0
  244. package/node_modules/@appport/protocol/dist/errors.d.ts +74 -0
  245. package/node_modules/@appport/protocol/dist/errors.d.ts.map +1 -0
  246. package/node_modules/@appport/protocol/dist/errors.js +91 -0
  247. package/node_modules/@appport/protocol/dist/errors.js.map +1 -0
  248. package/node_modules/@appport/protocol/dist/ids.d.ts +12 -0
  249. package/node_modules/@appport/protocol/dist/ids.d.ts.map +1 -0
  250. package/node_modules/@appport/protocol/dist/ids.js +50 -0
  251. package/node_modules/@appport/protocol/dist/ids.js.map +1 -0
  252. package/node_modules/@appport/protocol/dist/index.d.ts +20 -0
  253. package/node_modules/@appport/protocol/dist/index.d.ts.map +1 -0
  254. package/node_modules/@appport/protocol/dist/index.js +20 -0
  255. package/node_modules/@appport/protocol/dist/index.js.map +1 -0
  256. package/node_modules/@appport/protocol/dist/jsonschema.d.ts +50 -0
  257. package/node_modules/@appport/protocol/dist/jsonschema.d.ts.map +1 -0
  258. package/node_modules/@appport/protocol/dist/jsonschema.js +6 -0
  259. package/node_modules/@appport/protocol/dist/jsonschema.js.map +1 -0
  260. package/node_modules/@appport/protocol/dist/manifest.d.ts +131 -0
  261. package/node_modules/@appport/protocol/dist/manifest.d.ts.map +1 -0
  262. package/node_modules/@appport/protocol/dist/manifest.js +20 -0
  263. package/node_modules/@appport/protocol/dist/manifest.js.map +1 -0
  264. package/node_modules/@appport/protocol/dist/names.d.ts +26 -0
  265. package/node_modules/@appport/protocol/dist/names.d.ts.map +1 -0
  266. package/node_modules/@appport/protocol/dist/names.js +85 -0
  267. package/node_modules/@appport/protocol/dist/names.js.map +1 -0
  268. package/node_modules/@appport/protocol/dist/operations.d.ts +34 -0
  269. package/node_modules/@appport/protocol/dist/operations.d.ts.map +1 -0
  270. package/node_modules/@appport/protocol/dist/operations.js +9 -0
  271. package/node_modules/@appport/protocol/dist/operations.js.map +1 -0
  272. package/node_modules/@appport/protocol/dist/session.d.ts +27 -0
  273. package/node_modules/@appport/protocol/dist/session.d.ts.map +1 -0
  274. package/node_modules/@appport/protocol/dist/session.js +7 -0
  275. package/node_modules/@appport/protocol/dist/session.js.map +1 -0
  276. package/node_modules/@appport/protocol/dist/validate.d.ts +37 -0
  277. package/node_modules/@appport/protocol/dist/validate.d.ts.map +1 -0
  278. package/node_modules/@appport/protocol/dist/validate.js +321 -0
  279. package/node_modules/@appport/protocol/dist/validate.js.map +1 -0
  280. package/node_modules/@appport/protocol/dist/version.d.ts +27 -0
  281. package/node_modules/@appport/protocol/dist/version.d.ts.map +1 -0
  282. package/node_modules/@appport/protocol/dist/version.js +26 -0
  283. package/node_modules/@appport/protocol/dist/version.js.map +1 -0
  284. package/node_modules/@appport/protocol/package.json +25 -0
  285. package/node_modules/@appport/schema/README.md +32 -0
  286. package/node_modules/@appport/schema/dist/builder.d.ts +85 -0
  287. package/node_modules/@appport/schema/dist/builder.d.ts.map +1 -0
  288. package/node_modules/@appport/schema/dist/builder.js +278 -0
  289. package/node_modules/@appport/schema/dist/builder.js.map +1 -0
  290. package/node_modules/@appport/schema/dist/from-json-schema.d.ts +12 -0
  291. package/node_modules/@appport/schema/dist/from-json-schema.d.ts.map +1 -0
  292. package/node_modules/@appport/schema/dist/from-json-schema.js +186 -0
  293. package/node_modules/@appport/schema/dist/from-json-schema.js.map +1 -0
  294. package/node_modules/@appport/schema/dist/index.d.ts +23 -0
  295. package/node_modules/@appport/schema/dist/index.d.ts.map +1 -0
  296. package/node_modules/@appport/schema/dist/index.js +22 -0
  297. package/node_modules/@appport/schema/dist/index.js.map +1 -0
  298. package/node_modules/@appport/schema/dist/standard.d.ts +46 -0
  299. package/node_modules/@appport/schema/dist/standard.d.ts.map +1 -0
  300. package/node_modules/@appport/schema/dist/standard.js +42 -0
  301. package/node_modules/@appport/schema/dist/standard.js.map +1 -0
  302. package/node_modules/@appport/schema/dist/types.d.ts +40 -0
  303. package/node_modules/@appport/schema/dist/types.d.ts.map +1 -0
  304. package/node_modules/@appport/schema/dist/types.js +19 -0
  305. package/node_modules/@appport/schema/dist/types.js.map +1 -0
  306. package/node_modules/@appport/schema/package.json +28 -0
  307. package/node_modules/@appport/server/README.md +39 -0
  308. package/node_modules/@appport/server/dist/connection.d.ts +45 -0
  309. package/node_modules/@appport/server/dist/connection.d.ts.map +1 -0
  310. package/node_modules/@appport/server/dist/connection.js +217 -0
  311. package/node_modules/@appport/server/dist/connection.js.map +1 -0
  312. package/node_modules/@appport/server/dist/fetch.d.ts +10 -0
  313. package/node_modules/@appport/server/dist/fetch.d.ts.map +1 -0
  314. package/node_modules/@appport/server/dist/fetch.js +50 -0
  315. package/node_modules/@appport/server/dist/fetch.js.map +1 -0
  316. package/node_modules/@appport/server/dist/http.d.ts +80 -0
  317. package/node_modules/@appport/server/dist/http.d.ts.map +1 -0
  318. package/node_modules/@appport/server/dist/http.js +306 -0
  319. package/node_modules/@appport/server/dist/http.js.map +1 -0
  320. package/node_modules/@appport/server/dist/index.d.ts +11 -0
  321. package/node_modules/@appport/server/dist/index.d.ts.map +1 -0
  322. package/node_modules/@appport/server/dist/index.js +11 -0
  323. package/node_modules/@appport/server/dist/index.js.map +1 -0
  324. package/node_modules/@appport/server/dist/node-entry.d.ts +4 -0
  325. package/node_modules/@appport/server/dist/node-entry.d.ts.map +1 -0
  326. package/node_modules/@appport/server/dist/node-entry.js +4 -0
  327. package/node_modules/@appport/server/dist/node-entry.js.map +1 -0
  328. package/node_modules/@appport/server/dist/node.d.ts +45 -0
  329. package/node_modules/@appport/server/dist/node.d.ts.map +1 -0
  330. package/node_modules/@appport/server/dist/node.js +190 -0
  331. package/node_modules/@appport/server/dist/node.js.map +1 -0
  332. package/node_modules/@appport/server/dist/server.d.ts +83 -0
  333. package/node_modules/@appport/server/dist/server.d.ts.map +1 -0
  334. package/node_modules/@appport/server/dist/server.js +114 -0
  335. package/node_modules/@appport/server/dist/server.js.map +1 -0
  336. package/node_modules/@appport/server/dist/websocket.d.ts +25 -0
  337. package/node_modules/@appport/server/dist/websocket.d.ts.map +1 -0
  338. package/node_modules/@appport/server/dist/websocket.js +221 -0
  339. package/node_modules/@appport/server/dist/websocket.js.map +1 -0
  340. package/node_modules/@appport/server/package.json +34 -0
  341. package/node_modules/@appport/transport-electron/README.md +56 -0
  342. package/node_modules/@appport/transport-electron/dist/index.d.ts +11 -0
  343. package/node_modules/@appport/transport-electron/dist/index.d.ts.map +1 -0
  344. package/node_modules/@appport/transport-electron/dist/index.js +11 -0
  345. package/node_modules/@appport/transport-electron/dist/index.js.map +1 -0
  346. package/node_modules/@appport/transport-electron/dist/main.d.ts +31 -0
  347. package/node_modules/@appport/transport-electron/dist/main.d.ts.map +1 -0
  348. package/node_modules/@appport/transport-electron/dist/main.js +61 -0
  349. package/node_modules/@appport/transport-electron/dist/main.js.map +1 -0
  350. package/node_modules/@appport/transport-electron/dist/preload.d.ts +22 -0
  351. package/node_modules/@appport/transport-electron/dist/preload.d.ts.map +1 -0
  352. package/node_modules/@appport/transport-electron/dist/preload.js +29 -0
  353. package/node_modules/@appport/transport-electron/dist/preload.js.map +1 -0
  354. package/node_modules/@appport/transport-electron/dist/renderer.d.ts +16 -0
  355. package/node_modules/@appport/transport-electron/dist/renderer.d.ts.map +1 -0
  356. package/node_modules/@appport/transport-electron/dist/renderer.js +36 -0
  357. package/node_modules/@appport/transport-electron/dist/renderer.js.map +1 -0
  358. package/node_modules/@appport/transport-electron/dist/types.d.ts +49 -0
  359. package/node_modules/@appport/transport-electron/dist/types.d.ts.map +1 -0
  360. package/node_modules/@appport/transport-electron/dist/types.js +5 -0
  361. package/node_modules/@appport/transport-electron/dist/types.js.map +1 -0
  362. package/node_modules/@appport/transport-electron/package.json +46 -0
  363. package/node_modules/@appport/transport-http/README.md +24 -0
  364. package/node_modules/@appport/transport-http/dist/index.d.ts +18 -0
  365. package/node_modules/@appport/transport-http/dist/index.d.ts.map +1 -0
  366. package/node_modules/@appport/transport-http/dist/index.js +223 -0
  367. package/node_modules/@appport/transport-http/dist/index.js.map +1 -0
  368. package/node_modules/@appport/transport-http/package.json +29 -0
  369. package/node_modules/@appport/transport-inprocess/README.md +24 -0
  370. package/node_modules/@appport/transport-inprocess/dist/index.d.ts +16 -0
  371. package/node_modules/@appport/transport-inprocess/dist/index.d.ts.map +1 -0
  372. package/node_modules/@appport/transport-inprocess/dist/index.js +30 -0
  373. package/node_modules/@appport/transport-inprocess/dist/index.js.map +1 -0
  374. package/node_modules/@appport/transport-inprocess/package.json +30 -0
  375. package/node_modules/@appport/transport-tauri/README.md +45 -0
  376. package/node_modules/@appport/transport-tauri/dist/index.d.ts +23 -0
  377. package/node_modules/@appport/transport-tauri/dist/index.d.ts.map +1 -0
  378. package/node_modules/@appport/transport-tauri/dist/index.js +44 -0
  379. package/node_modules/@appport/transport-tauri/dist/index.js.map +1 -0
  380. package/node_modules/@appport/transport-tauri/package.json +29 -0
  381. package/node_modules/@appport/transport-websocket/README.md +22 -0
  382. package/node_modules/@appport/transport-websocket/dist/index.d.ts +26 -0
  383. package/node_modules/@appport/transport-websocket/dist/index.d.ts.map +1 -0
  384. package/node_modules/@appport/transport-websocket/dist/index.js +72 -0
  385. package/node_modules/@appport/transport-websocket/dist/index.js.map +1 -0
  386. package/node_modules/@appport/transport-websocket/package.json +29 -0
  387. package/package.json +79 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-connection.js","sourceRoot":"","sources":["../src/repository-connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Application Dependency Resolver (PR22)
3
+ *
4
+ * Deterministic resolution of application capability requirements against
5
+ * the Application Registry.
6
+ *
7
+ * Key principles:
8
+ * - Discovery via ApplicationRegistry (who provides this capability?)
9
+ * - Compatibility evaluation (can this provider satisfy this requirement?)
10
+ * - Deterministic selection (same registry state always produces same result)
11
+ * - No authorization checks (authorization is a separate layer)
12
+ * - No execution (resolution produces metadata only)
13
+ */
14
+ import type { ApplicationState } from "./state.js";
15
+ import type { ApplicationRegistry } from "./registration.js";
16
+ import type { CapabilityManifestEntry, RequirementManifestEntry } from "./manifest.js";
17
+ /**
18
+ * Extended requirement with version constraint and provider constraint support.
19
+ *
20
+ * Extends RequirementManifestEntry to support semantic version constraints
21
+ * and provider constraints for deterministic resolution.
22
+ */
23
+ export interface RequirementWithConstraints extends RequirementManifestEntry {
24
+ readonly versionConstraint?: string;
25
+ readonly provider?: {
26
+ readonly applicationId?: string;
27
+ };
28
+ }
29
+ /**
30
+ * Compatibility result: detailed assessment of whether a provider can satisfy a requirement.
31
+ */
32
+ export interface CompatibilityResult {
33
+ readonly compatible: boolean;
34
+ readonly reasons: readonly string[];
35
+ }
36
+ /**
37
+ * A resolved requirement: provider has been selected.
38
+ */
39
+ export interface ResolvedRequirement {
40
+ readonly kind: "resolved";
41
+ readonly requirement: RequirementWithConstraints;
42
+ readonly provider: ApplicationState;
43
+ readonly capability: CapabilityManifestEntry;
44
+ readonly compatibility: CompatibilityResult;
45
+ }
46
+ /**
47
+ * An unresolved requirement: no compatible provider found.
48
+ */
49
+ export interface UnresolvedRequirement {
50
+ readonly kind: "unresolved";
51
+ readonly requirement: RequirementWithConstraints;
52
+ readonly candidates: readonly ApplicationState[];
53
+ readonly reason: string;
54
+ }
55
+ /**
56
+ * An ambiguous requirement: multiple equally valid providers exist.
57
+ */
58
+ export interface AmbiguousRequirement {
59
+ readonly kind: "ambiguous";
60
+ readonly requirement: RequirementWithConstraints;
61
+ readonly candidates: readonly ApplicationState[];
62
+ }
63
+ /**
64
+ * A resolution result: resolved, unresolved, or ambiguous.
65
+ */
66
+ export type ResolutionResult = ResolvedRequirement | UnresolvedRequirement | AmbiguousRequirement;
67
+ /**
68
+ * Full application resolution: all requirements resolved/unresolved/ambiguous.
69
+ */
70
+ export interface ApplicationResolution {
71
+ readonly application: ApplicationState;
72
+ readonly results: readonly ResolutionResult[];
73
+ readonly resolved: readonly ResolvedRequirement[];
74
+ readonly unresolved: readonly UnresolvedRequirement[];
75
+ readonly ambiguous: readonly AmbiguousRequirement[];
76
+ }
77
+ /**
78
+ * Parse a semantic version constraint string and check if a provided version satisfies it.
79
+ *
80
+ * Supports:
81
+ * - Exact: "1" (matches 1 only)
82
+ * - Caret: "^1" (matches 1.x.x, i.e., >= 1 and < 2)
83
+ * - Tilde: "~1.2" (matches 1.2.x, i.e., >= 1.2 and < 1.3, but for major version numbers)
84
+ * - Comparison: ">=1", ">1", "<=1", "<1"
85
+ *
86
+ * Returns true if the provided version satisfies the constraint.
87
+ */
88
+ export declare function satisfiesVersionConstraint(providedVersion: number, constraint: string): boolean;
89
+ /**
90
+ * Evaluate capability compatibility between a provider and a requirement.
91
+ *
92
+ * Checks:
93
+ * - Capability name matches exactly
94
+ * - Provider version satisfies version constraint
95
+ * - Provider passes provider constraint (if specified)
96
+ *
97
+ * Returns a CompatibilityResult with detailed reasons.
98
+ */
99
+ export declare function evaluateCompatibility(requirement: RequirementWithConstraints, provider: ApplicationState): CompatibilityResult;
100
+ /**
101
+ * Application Dependency Resolver
102
+ *
103
+ * Resolves application requirements against the Application Registry using
104
+ * deterministic compatibility evaluation and provider selection.
105
+ */
106
+ export declare class ApplicationDependencyResolver {
107
+ #private;
108
+ constructor(registry: ApplicationRegistry);
109
+ /**
110
+ * Resolve a single requirement against the registry.
111
+ *
112
+ * Flow:
113
+ * 1. Discover candidate providers (findByCapability)
114
+ * 2. Evaluate compatibility for each candidate
115
+ * 3. Apply provider constraints
116
+ * 4. Select deterministically or report ambiguity
117
+ * 5. Return ResolvedRequirement, UnresolvedRequirement, or AmbiguousRequirement
118
+ */
119
+ resolveRequirement(requirement: RequirementWithConstraints): Promise<ResolutionResult>;
120
+ /**
121
+ * Resolve all requirements of an application.
122
+ *
123
+ * Returns a comprehensive ApplicationResolution containing:
124
+ * - All resolution results
125
+ * - Separated resolved/unresolved/ambiguous for easy access
126
+ * - The application state (unchanged)
127
+ */
128
+ resolveApplication(application: ApplicationState): Promise<ApplicationResolution>;
129
+ }
130
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,uBAAuB,EAAE,wBAAwB,EAAuB,MAAM,eAAe,CAAC;AAG5G;;;;;GAKG;AACH,MAAM,WAAW,0BAA2B,SAAQ,wBAAwB;IAC1E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;AAElG;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACrD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAqD/F;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,0BAA0B,EACvC,QAAQ,EAAE,gBAAgB,GACzB,mBAAmB,CAgCrB;AAED;;;;;GAKG;AACH,qBAAa,6BAA6B;;gBAG5B,QAAQ,EAAE,mBAAmB;IAIzC;;;;;;;;;OASG;IACG,kBAAkB,CAAC,WAAW,EAAE,0BAA0B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwG5F;;;;;;;OAOG;IACG,kBAAkB,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAyBxF"}
@@ -0,0 +1,252 @@
1
+ /**
2
+ * Application Dependency Resolver (PR22)
3
+ *
4
+ * Deterministic resolution of application capability requirements against
5
+ * the Application Registry.
6
+ *
7
+ * Key principles:
8
+ * - Discovery via ApplicationRegistry (who provides this capability?)
9
+ * - Compatibility evaluation (can this provider satisfy this requirement?)
10
+ * - Deterministic selection (same registry state always produces same result)
11
+ * - No authorization checks (authorization is a separate layer)
12
+ * - No execution (resolution produces metadata only)
13
+ */
14
+ import { attestResolution } from "./authority-attestation.js";
15
+ /**
16
+ * Parse a semantic version constraint string and check if a provided version satisfies it.
17
+ *
18
+ * Supports:
19
+ * - Exact: "1" (matches 1 only)
20
+ * - Caret: "^1" (matches 1.x.x, i.e., >= 1 and < 2)
21
+ * - Tilde: "~1.2" (matches 1.2.x, i.e., >= 1.2 and < 1.3, but for major version numbers)
22
+ * - Comparison: ">=1", ">1", "<=1", "<1"
23
+ *
24
+ * Returns true if the provided version satisfies the constraint.
25
+ */
26
+ export function satisfiesVersionConstraint(providedVersion, constraint) {
27
+ const trimmed = constraint.trim();
28
+ // Caret range: ^1 matches >= 1 and < 2
29
+ if (trimmed.startsWith("^")) {
30
+ const versionStr = trimmed.substring(1);
31
+ const [major] = versionStr.split(".").map(Number);
32
+ return providedVersion >= major && providedVersion < major + 1;
33
+ }
34
+ // Tilde range: ~1.2 matches >= 1.2 and < 1.3 (but for major version numbers)
35
+ if (trimmed.startsWith("~")) {
36
+ const versionStr = trimmed.substring(1);
37
+ const [major, minor] = versionStr.split(".").map(Number);
38
+ if (minor === undefined) {
39
+ // ~1 is equivalent to ^1
40
+ return providedVersion >= major && providedVersion < major + 1;
41
+ }
42
+ // For ~1.2, since we're dealing with major version numbers, only match the major
43
+ return providedVersion === major;
44
+ }
45
+ // Greater than or equal: >=1
46
+ if (trimmed.startsWith(">=")) {
47
+ const version = parseInt(trimmed.substring(2), 10);
48
+ return providedVersion >= version;
49
+ }
50
+ // Greater than: >1
51
+ if (trimmed.startsWith(">")) {
52
+ const version = parseInt(trimmed.substring(1), 10);
53
+ return providedVersion > version;
54
+ }
55
+ // Less than or equal: <=1
56
+ if (trimmed.startsWith("<=")) {
57
+ const version = parseInt(trimmed.substring(2), 10);
58
+ return providedVersion <= version;
59
+ }
60
+ // Less than: <1
61
+ if (trimmed.startsWith("<")) {
62
+ const version = parseInt(trimmed.substring(1), 10);
63
+ return providedVersion < version;
64
+ }
65
+ // Exact version: 1
66
+ const version = parseInt(trimmed, 10);
67
+ if (!Number.isNaN(version)) {
68
+ return providedVersion === version;
69
+ }
70
+ return false;
71
+ }
72
+ /**
73
+ * Evaluate capability compatibility between a provider and a requirement.
74
+ *
75
+ * Checks:
76
+ * - Capability name matches exactly
77
+ * - Provider version satisfies version constraint
78
+ * - Provider passes provider constraint (if specified)
79
+ *
80
+ * Returns a CompatibilityResult with detailed reasons.
81
+ */
82
+ export function evaluateCompatibility(requirement, provider) {
83
+ const reasons = [];
84
+ // Find the capability in the provider's manifest
85
+ const capability = provider.manifest.provides.find((cap) => cap.name === requirement.name);
86
+ if (!capability) {
87
+ reasons.push(`Provider ${provider.id} does not provide capability "${requirement.name}"`);
88
+ return { compatible: false, reasons };
89
+ }
90
+ // Check version constraint
91
+ const versionConstraint = requirement.versionConstraint || String(requirement.version);
92
+ if (!satisfiesVersionConstraint(capability.version, versionConstraint)) {
93
+ reasons.push(`Provider version ${capability.version} does not satisfy constraint "${versionConstraint}" for "${requirement.name}"`);
94
+ return { compatible: false, reasons };
95
+ }
96
+ // Check provider constraint
97
+ if (requirement.provider?.applicationId) {
98
+ if (provider.id !== requirement.provider.applicationId) {
99
+ reasons.push(`Requirement specifies provider "${requirement.provider.applicationId}" but got provider "${provider.id}"`);
100
+ return { compatible: false, reasons };
101
+ }
102
+ }
103
+ // All checks passed
104
+ return { compatible: true, reasons: [] };
105
+ }
106
+ /**
107
+ * Application Dependency Resolver
108
+ *
109
+ * Resolves application requirements against the Application Registry using
110
+ * deterministic compatibility evaluation and provider selection.
111
+ */
112
+ export class ApplicationDependencyResolver {
113
+ #registry;
114
+ constructor(registry) {
115
+ this.#registry = registry;
116
+ }
117
+ /**
118
+ * Resolve a single requirement against the registry.
119
+ *
120
+ * Flow:
121
+ * 1. Discover candidate providers (findByCapability)
122
+ * 2. Evaluate compatibility for each candidate
123
+ * 3. Apply provider constraints
124
+ * 4. Select deterministically or report ambiguity
125
+ * 5. Return ResolvedRequirement, UnresolvedRequirement, or AmbiguousRequirement
126
+ */
127
+ async resolveRequirement(requirement) {
128
+ // If requirement has a provider constraint, look for that specific provider
129
+ if (requirement.provider?.applicationId) {
130
+ const provider = await this.#registry.get(requirement.provider.applicationId);
131
+ if (!provider) {
132
+ return {
133
+ kind: "unresolved",
134
+ requirement,
135
+ candidates: [],
136
+ reason: `Provider "${requirement.provider.applicationId}" not found in registry`
137
+ };
138
+ }
139
+ const compat = evaluateCompatibility(requirement, provider);
140
+ if (compat.compatible) {
141
+ const capability = provider.manifest.provides.find((cap) => cap.name === requirement.name);
142
+ const resolution = {
143
+ kind: "resolved",
144
+ requirement,
145
+ provider,
146
+ capability,
147
+ compatibility: compat
148
+ };
149
+ attestResolution(resolution, this.#registry);
150
+ return resolution;
151
+ }
152
+ else {
153
+ return {
154
+ kind: "unresolved",
155
+ requirement,
156
+ candidates: [provider],
157
+ reason: compat.reasons.join("; ")
158
+ };
159
+ }
160
+ }
161
+ // Discover candidates: applications providing this capability
162
+ const candidates = await this.#registry.findByCapability(requirement.name);
163
+ if (candidates.length === 0) {
164
+ return {
165
+ kind: "unresolved",
166
+ requirement,
167
+ candidates: [],
168
+ reason: `No providers found for capability "${requirement.name}"`
169
+ };
170
+ }
171
+ // Evaluate compatibility for each candidate
172
+ const compatible = [];
173
+ for (const candidate of candidates) {
174
+ const compat = evaluateCompatibility(requirement, candidate);
175
+ if (compat.compatible) {
176
+ const capability = candidate.manifest.provides.find((cap) => cap.name === requirement.name);
177
+ compatible.push({ provider: candidate, capability });
178
+ }
179
+ }
180
+ if (compatible.length === 0) {
181
+ return {
182
+ kind: "unresolved",
183
+ requirement,
184
+ candidates,
185
+ reason: `No compatible providers found for "${requirement.name}"`
186
+ };
187
+ }
188
+ if (compatible.length > 1) {
189
+ // Apply deterministic selection: highest version, then by application ID
190
+ compatible.sort((a, b) => {
191
+ const versionDiff = b.capability.version - a.capability.version;
192
+ if (versionDiff !== 0)
193
+ return versionDiff;
194
+ return a.provider.id.localeCompare(b.provider.id);
195
+ });
196
+ // Check if the top candidate is unique
197
+ const top = compatible[0];
198
+ const second = compatible[1];
199
+ if (top.capability.version === second.capability.version &&
200
+ top.provider.id !== second.provider.id) {
201
+ // Ambiguous: multiple providers with same version
202
+ return {
203
+ kind: "ambiguous",
204
+ requirement,
205
+ candidates: compatible.map((c) => c.provider)
206
+ };
207
+ }
208
+ }
209
+ // Return the selected provider
210
+ const selected = compatible[0];
211
+ const resolution = {
212
+ kind: "resolved",
213
+ requirement,
214
+ provider: selected.provider,
215
+ capability: selected.capability,
216
+ compatibility: { compatible: true, reasons: [] }
217
+ };
218
+ attestResolution(resolution, this.#registry);
219
+ return resolution;
220
+ }
221
+ /**
222
+ * Resolve all requirements of an application.
223
+ *
224
+ * Returns a comprehensive ApplicationResolution containing:
225
+ * - All resolution results
226
+ * - Separated resolved/unresolved/ambiguous for easy access
227
+ * - The application state (unchanged)
228
+ */
229
+ async resolveApplication(application) {
230
+ const results = [];
231
+ for (const requirement of application.manifest.requires) {
232
+ const requirementWithConstraints = {
233
+ ...requirement,
234
+ versionConstraint: requirement.versionConstraint || String(requirement.version)
235
+ };
236
+ const result = await this.resolveRequirement(requirementWithConstraints);
237
+ results.push(result);
238
+ }
239
+ // Separate into categories
240
+ const resolved = results.filter((r) => r.kind === "resolved");
241
+ const unresolved = results.filter((r) => r.kind === "unresolved");
242
+ const ambiguous = results.filter((r) => r.kind === "ambiguous");
243
+ return {
244
+ application,
245
+ results,
246
+ resolved,
247
+ unresolved,
248
+ ambiguous
249
+ };
250
+ }
251
+ }
252
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Runtime Implementation Manifest (F6)
3
+ *
4
+ * The local, per-source description of what a repository/runtime actually
5
+ * implements. It is implementation metadata and nothing else.
6
+ *
7
+ * It establishes:
8
+ * - implementation capability coverage
9
+ *
10
+ * It does NOT establish:
11
+ * - application identity
12
+ * - contract authority
13
+ * - the application fingerprint
14
+ * - authorization
15
+ * - provider identity
16
+ *
17
+ * This schema is deliberately distinct from `AppBoundryContractDocument`. The
18
+ * two documents are never aliased, and parsing one rejects the other so a
19
+ * contract mismatch can never be converted into a runtime-manifest match.
20
+ */
21
+ /** Protocol identifier of the runtime implementation manifest. */
22
+ export declare const RUNTIME_IMPLEMENTATION_MANIFEST_PROTOCOL = "AppPort/runtime-implementation/1";
23
+ /** Canonical file name of the runtime implementation manifest. */
24
+ export declare const RUNTIME_IMPLEMENTATION_MANIFEST_FILE = "appport.implementation.json";
25
+ /** A capability this source claims to implement. */
26
+ export interface RuntimeImplementedCapability {
27
+ readonly name: string;
28
+ readonly version: number;
29
+ /** Optional implementation entry point, meaningful only to the source. */
30
+ readonly entry?: string;
31
+ }
32
+ /** What a particular source implements of an application it does not own. */
33
+ export interface RuntimeImplementationManifest {
34
+ readonly protocol: typeof RUNTIME_IMPLEMENTATION_MANIFEST_PROTOCOL;
35
+ /** Reference to the AppBoundry application. The source never owns this id. */
36
+ readonly applicationId: string;
37
+ /** Stable identity of this implementation, distinct from the application. */
38
+ readonly implementationId?: string;
39
+ /** Provider-neutral source connection identity established by AppBoundry. */
40
+ readonly sourceId?: string;
41
+ readonly implements: readonly RuntimeImplementedCapability[];
42
+ readonly build?: {
43
+ readonly command?: string;
44
+ readonly artifactPath?: string;
45
+ };
46
+ readonly runtime?: {
47
+ readonly engine?: "wasm";
48
+ readonly artifactHash?: string;
49
+ };
50
+ }
51
+ export type RuntimeManifestErrorCode = "RUNTIME_MANIFEST_INVALID" | "RUNTIME_MANIFEST_IS_A_CONTRACT";
52
+ /** Explicit runtime-manifest failure; never silently promoted to a contract. */
53
+ export declare class RuntimeManifestError extends Error {
54
+ readonly code: RuntimeManifestErrorCode;
55
+ constructor(code: RuntimeManifestErrorCode, message: string);
56
+ }
57
+ /** Parse a runtime implementation manifest, rejecting contract documents. */
58
+ export declare function parseRuntimeImplementationManifest(value: unknown): RuntimeImplementationManifest;
59
+ /**
60
+ * Derive implementation coverage from a runtime manifest.
61
+ *
62
+ * Coverage is a claim, not an authority. It becomes meaningful only once
63
+ * validated against the authoritative contract (see `contract-attestation.ts`).
64
+ */
65
+ export declare function deriveImplementationCoverage(manifest: RuntimeImplementationManifest): readonly string[];
66
+ /** Render a runtime implementation manifest for a repository to commit. */
67
+ export declare function serializeRuntimeImplementationManifest(manifest: RuntimeImplementationManifest): string;
68
+ //# sourceMappingURL=runtime-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-manifest.d.ts","sourceRoot":"","sources":["../src/runtime-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,kEAAkE;AAClE,eAAO,MAAM,wCAAwC,qCAAqC,CAAC;AAE3F,kEAAkE;AAClE,eAAO,MAAM,oCAAoC,gCAAgC,CAAC;AAElF,oDAAoD;AACpD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,6EAA6E;AAC7E,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,OAAO,wCAAwC,CAAC;IACnE,8EAA8E;IAC9E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;CACH;AAED,MAAM,MAAM,wBAAwB,GAChC,0BAA0B,GAC1B,gCAAgC,CAAC;AAErC,gFAAgF;AAChF,qBAAa,oBAAqB,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,wBAAwB;gBAA9B,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM;CAIrE;AAED,6EAA6E;AAC7E,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,OAAO,GAAG,6BAA6B,CAuChG;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,6BAA6B,GAAG,SAAS,MAAM,EAAE,CAEvG;AAED,2EAA2E;AAC3E,wBAAgB,sCAAsC,CAAC,QAAQ,EAAE,6BAA6B,GAAG,MAAM,CAEtG"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Runtime Implementation Manifest (F6)
3
+ *
4
+ * The local, per-source description of what a repository/runtime actually
5
+ * implements. It is implementation metadata and nothing else.
6
+ *
7
+ * It establishes:
8
+ * - implementation capability coverage
9
+ *
10
+ * It does NOT establish:
11
+ * - application identity
12
+ * - contract authority
13
+ * - the application fingerprint
14
+ * - authorization
15
+ * - provider identity
16
+ *
17
+ * This schema is deliberately distinct from `AppBoundryContractDocument`. The
18
+ * two documents are never aliased, and parsing one rejects the other so a
19
+ * contract mismatch can never be converted into a runtime-manifest match.
20
+ */
21
+ import { APPBOUNDRY_CONTRACT_PROTOCOL, capabilityCoverageKey } from "./appboundry-contract.js";
22
+ /** Protocol identifier of the runtime implementation manifest. */
23
+ export const RUNTIME_IMPLEMENTATION_MANIFEST_PROTOCOL = "AppPort/runtime-implementation/1";
24
+ /** Canonical file name of the runtime implementation manifest. */
25
+ export const RUNTIME_IMPLEMENTATION_MANIFEST_FILE = "appport.implementation.json";
26
+ /** Explicit runtime-manifest failure; never silently promoted to a contract. */
27
+ export class RuntimeManifestError extends Error {
28
+ code;
29
+ constructor(code, message) {
30
+ super(message);
31
+ this.code = code;
32
+ this.name = "RuntimeManifestError";
33
+ }
34
+ }
35
+ /** Parse a runtime implementation manifest, rejecting contract documents. */
36
+ export function parseRuntimeImplementationManifest(value) {
37
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
38
+ throw new RuntimeManifestError("RUNTIME_MANIFEST_INVALID", "The runtime implementation manifest must be a JSON object");
39
+ }
40
+ const candidate = value;
41
+ if (candidate.protocol === APPBOUNDRY_CONTRACT_PROTOCOL) {
42
+ throw new RuntimeManifestError("RUNTIME_MANIFEST_IS_A_CONTRACT", "An AppBoundry contract is not a runtime implementation manifest");
43
+ }
44
+ if (candidate.protocol !== RUNTIME_IMPLEMENTATION_MANIFEST_PROTOCOL) {
45
+ throw new RuntimeManifestError("RUNTIME_MANIFEST_INVALID", `Expected protocol "${RUNTIME_IMPLEMENTATION_MANIFEST_PROTOCOL}" but found "${String(candidate.protocol)}"`);
46
+ }
47
+ if (typeof candidate.applicationId !== "string" || !candidate.applicationId.length) {
48
+ throw new RuntimeManifestError("RUNTIME_MANIFEST_INVALID", "applicationId must be a non-empty string");
49
+ }
50
+ if (!Array.isArray(candidate.implements) || candidate.implements.length === 0) {
51
+ throw new RuntimeManifestError("RUNTIME_MANIFEST_INVALID", "implements must declare at least one capability");
52
+ }
53
+ if (candidate.implementationId !== undefined && (typeof candidate.implementationId !== "string" || !candidate.implementationId.length)) {
54
+ throw new RuntimeManifestError("RUNTIME_MANIFEST_INVALID", "implementationId must be a non-empty string");
55
+ }
56
+ if (candidate.implementationId === candidate.applicationId) {
57
+ throw new RuntimeManifestError("RUNTIME_MANIFEST_INVALID", "implementation identity must be distinct from application identity");
58
+ }
59
+ const seen = new Set();
60
+ for (const entry of candidate.implements) {
61
+ if (typeof entry?.name !== "string" || !Number.isInteger(entry?.version)) {
62
+ throw new RuntimeManifestError("RUNTIME_MANIFEST_INVALID", "every implemented capability needs a name and integer version");
63
+ }
64
+ const key = `${entry.name}@${entry.version}`;
65
+ if (seen.has(key))
66
+ throw new RuntimeManifestError("RUNTIME_MANIFEST_INVALID", `duplicate implemented capability ${key}`);
67
+ seen.add(key);
68
+ }
69
+ return candidate;
70
+ }
71
+ /**
72
+ * Derive implementation coverage from a runtime manifest.
73
+ *
74
+ * Coverage is a claim, not an authority. It becomes meaningful only once
75
+ * validated against the authoritative contract (see `contract-attestation.ts`).
76
+ */
77
+ export function deriveImplementationCoverage(manifest) {
78
+ return [...new Set(manifest.implements.map(capabilityCoverageKey))].sort();
79
+ }
80
+ /** Render a runtime implementation manifest for a repository to commit. */
81
+ export function serializeRuntimeImplementationManifest(manifest) {
82
+ return `${JSON.stringify(manifest, null, 2)}\n`;
83
+ }
84
+ //# sourceMappingURL=runtime-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-manifest.js","sourceRoot":"","sources":["../src/runtime-manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type AppErrorObject, type JsonValue } from "@appport/protocol";
2
+ /**
3
+ * Error sanitization (specification §16).
4
+ *
5
+ * Production responses never carry stack traces, filesystem paths, credentials
6
+ * or raw driver errors. Development mode may attach diagnostics, and does so
7
+ * under an explicitly namespaced `diagnostic` detail so it is obvious when a
8
+ * deployment is leaking.
9
+ */
10
+ export type RuntimeMode = "development" | "production";
11
+ /** Redacts values whose key suggests a credential. */
12
+ export declare function redact(value: JsonValue, depth?: number): JsonValue;
13
+ export declare function toWireError(error: unknown, mode?: RuntimeMode): AppErrorObject;
14
+ //# sourceMappingURL=sanitize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9F;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC;AAIvD,sDAAsD;AACtD,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,SAAI,GAAG,SAAS,CAQ7D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,WAA0B,GAAG,cAAc,CAoB5F"}
@@ -0,0 +1,49 @@
1
+ import { AppPortError, errors } from "@appport/protocol";
2
+ const SENSITIVE_KEY = /(password|secret|token|credential|authorization|api[-_]?key|cookie|session[-_]?id)/i;
3
+ /** Redacts values whose key suggests a credential. */
4
+ export function redact(value, depth = 0) {
5
+ if (depth > 6 || value === null || typeof value !== "object")
6
+ return value;
7
+ if (Array.isArray(value))
8
+ return value.map((entry) => redact(entry, depth + 1));
9
+ const out = {};
10
+ for (const [key, entry] of Object.entries(value)) {
11
+ out[key] = SENSITIVE_KEY.test(key) ? "[redacted]" : redact(entry, depth + 1);
12
+ }
13
+ return out;
14
+ }
15
+ export function toWireError(error, mode = "production") {
16
+ if (AppPortError.is(error)) {
17
+ const wire = error.toErrorObject();
18
+ if (wire.details !== undefined)
19
+ wire.details = redact(wire.details);
20
+ if (mode === "development" && error.internal !== undefined) {
21
+ wire.details = {
22
+ ...(typeof wire.details === "object" && wire.details !== null && !Array.isArray(wire.details)
23
+ ? wire.details
24
+ : {}),
25
+ diagnostic: describe(error.internal)
26
+ };
27
+ }
28
+ return wire;
29
+ }
30
+ const wire = errors.internal().toErrorObject();
31
+ if (mode === "development") {
32
+ wire.details = { diagnostic: describe(error) };
33
+ }
34
+ return wire;
35
+ }
36
+ function describe(value) {
37
+ if (value instanceof Error) {
38
+ return {
39
+ name: value.name,
40
+ message: value.message,
41
+ ...(value.stack ? { stack: value.stack.split("\n").slice(0, 8).join("\n") } : {})
42
+ };
43
+ }
44
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean" || value === null) {
45
+ return value;
46
+ }
47
+ return String(value);
48
+ }
49
+ //# sourceMappingURL=sanitize.js.map