@naylence/advanced-security 0.3.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 (304) hide show
  1. package/LICENSE +33 -0
  2. package/NOTICE +5 -0
  3. package/README.md +101 -0
  4. package/dist/browser/index.js +157043 -0
  5. package/dist/browser/index.js.map +1 -0
  6. package/dist/cjs/browser.js +6 -0
  7. package/dist/cjs/browser.js.map +1 -0
  8. package/dist/cjs/index.js +7 -0
  9. package/dist/cjs/index.js.map +1 -0
  10. package/dist/cjs/naylence/fame/factory-manifest.js +24 -0
  11. package/dist/cjs/naylence/fame/factory-manifest.js.map +1 -0
  12. package/dist/cjs/naylence/fame/security/cert/ca-service-client.js +284 -0
  13. package/dist/cjs/naylence/fame/security/cert/ca-service-client.js.map +1 -0
  14. package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js +65 -0
  15. package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js.map +1 -0
  16. package/dist/cjs/naylence/fame/security/cert/ca-types.js +36 -0
  17. package/dist/cjs/naylence/fame/security/cert/ca-types.js.map +1 -0
  18. package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js +70 -0
  19. package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js.map +1 -0
  20. package/dist/cjs/naylence/fame/security/cert/default-ca-service.js +270 -0
  21. package/dist/cjs/naylence/fame/security/cert/default-ca-service.js.map +1 -0
  22. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager-factory.js +77 -0
  23. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager-factory.js.map +1 -0
  24. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js +675 -0
  25. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js.map +1 -0
  26. package/dist/cjs/naylence/fame/security/cert/grants.js +5 -0
  27. package/dist/cjs/naylence/fame/security/cert/grants.js.map +1 -0
  28. package/dist/cjs/naylence/fame/security/cert/index.js +52 -0
  29. package/dist/cjs/naylence/fame/security/cert/index.js.map +1 -0
  30. package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js +793 -0
  31. package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js.map +1 -0
  32. package/dist/cjs/naylence/fame/security/cert/util.js +120 -0
  33. package/dist/cjs/naylence/fame/security/cert/util.js.map +1 -0
  34. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js +89 -0
  35. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js.map +1 -0
  36. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager.js +732 -0
  37. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager.js.map +1 -0
  38. package/dist/cjs/naylence/fame/security/encryption/channel/index.js +8 -0
  39. package/dist/cjs/naylence/fame/security/encryption/channel/index.js.map +1 -0
  40. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager-factory.js +117 -0
  41. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager-factory.js.map +1 -0
  42. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager.js +325 -0
  43. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager.js.map +1 -0
  44. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager-factory.js +57 -0
  45. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager-factory.js.map +1 -0
  46. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager.js +282 -0
  47. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager.js.map +1 -0
  48. package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js +173 -0
  49. package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js.map +1 -0
  50. package/dist/cjs/naylence/fame/security/encryption/index.js +16 -0
  51. package/dist/cjs/naylence/fame/security/encryption/index.js.map +1 -0
  52. package/dist/cjs/naylence/fame/security/encryption/sealed/index.js +8 -0
  53. package/dist/cjs/naylence/fame/security/encryption/sealed/index.js.map +1 -0
  54. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js +86 -0
  55. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js.map +1 -0
  56. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js +546 -0
  57. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js.map +1 -0
  58. package/dist/cjs/naylence/fame/security/index.js +11 -0
  59. package/dist/cjs/naylence/fame/security/index.js.map +1 -0
  60. package/dist/cjs/naylence/fame/security/keys/index.js +9 -0
  61. package/dist/cjs/naylence/fame/security/keys/index.js.map +1 -0
  62. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js +40 -0
  63. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js.map +1 -0
  64. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager.js +441 -0
  65. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager.js.map +1 -0
  66. package/dist/cjs/naylence/fame/security/register-advanced-security-factories.js +131 -0
  67. package/dist/cjs/naylence/fame/security/register-advanced-security-factories.js.map +1 -0
  68. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-signer-factory.js +71 -0
  69. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-signer-factory.js.map +1 -0
  70. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js +31 -0
  71. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js.map +1 -0
  72. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js +176 -0
  73. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js.map +1 -0
  74. package/dist/cjs/naylence/fame/stickiness/aft-helper.js +77 -0
  75. package/dist/cjs/naylence/fame/stickiness/aft-helper.js.map +1 -0
  76. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js +69 -0
  77. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js.map +1 -0
  78. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js +451 -0
  79. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js.map +1 -0
  80. package/dist/cjs/naylence/fame/stickiness/aft-model.js +62 -0
  81. package/dist/cjs/naylence/fame/stickiness/aft-model.js.map +1 -0
  82. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js +54 -0
  83. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js.map +1 -0
  84. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js +208 -0
  85. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js.map +1 -0
  86. package/dist/cjs/naylence/fame/stickiness/aft-signer.js +154 -0
  87. package/dist/cjs/naylence/fame/stickiness/aft-signer.js.map +1 -0
  88. package/dist/cjs/naylence/fame/stickiness/aft-utils.js +95 -0
  89. package/dist/cjs/naylence/fame/stickiness/aft-utils.js.map +1 -0
  90. package/dist/cjs/naylence/fame/stickiness/aft-verifier.js +297 -0
  91. package/dist/cjs/naylence/fame/stickiness/aft-verifier.js.map +1 -0
  92. package/dist/cjs/naylence/fame/stickiness/index.js +40 -0
  93. package/dist/cjs/naylence/fame/stickiness/index.js.map +1 -0
  94. package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js +28 -0
  95. package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js.map +1 -0
  96. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js +97 -0
  97. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js.map +1 -0
  98. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js +216 -0
  99. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js.map +1 -0
  100. package/dist/cjs/naylence/fame/welcome/index.js +9 -0
  101. package/dist/cjs/naylence/fame/welcome/index.js.map +1 -0
  102. package/dist/cjs/plugin.js +41 -0
  103. package/dist/cjs/plugin.js.map +1 -0
  104. package/dist/esm/browser.js +3 -0
  105. package/dist/esm/browser.js.map +1 -0
  106. package/dist/esm/index.js +4 -0
  107. package/dist/esm/index.js.map +1 -0
  108. package/dist/esm/naylence/fame/factory-manifest.js +21 -0
  109. package/dist/esm/naylence/fame/factory-manifest.js.map +1 -0
  110. package/dist/esm/naylence/fame/security/cert/ca-server.js +153 -0
  111. package/dist/esm/naylence/fame/security/cert/ca-server.js.map +1 -0
  112. package/dist/esm/naylence/fame/security/cert/ca-service-client.js +278 -0
  113. package/dist/esm/naylence/fame/security/cert/ca-service-client.js.map +1 -0
  114. package/dist/esm/naylence/fame/security/cert/ca-service-factory.js +61 -0
  115. package/dist/esm/naylence/fame/security/cert/ca-service-factory.js.map +1 -0
  116. package/dist/esm/naylence/fame/security/cert/ca-types.js +31 -0
  117. package/dist/esm/naylence/fame/security/cert/ca-types.js.map +1 -0
  118. package/dist/esm/naylence/fame/security/cert/default-ca-service-factory.js +66 -0
  119. package/dist/esm/naylence/fame/security/cert/default-ca-service-factory.js.map +1 -0
  120. package/dist/esm/naylence/fame/security/cert/default-ca-service.js +233 -0
  121. package/dist/esm/naylence/fame/security/cert/default-ca-service.js.map +1 -0
  122. package/dist/esm/naylence/fame/security/cert/default-certificate-manager-factory.js +73 -0
  123. package/dist/esm/naylence/fame/security/cert/default-certificate-manager-factory.js.map +1 -0
  124. package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js +638 -0
  125. package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js.map +1 -0
  126. package/dist/esm/naylence/fame/security/cert/grants.js +2 -0
  127. package/dist/esm/naylence/fame/security/cert/grants.js.map +1 -0
  128. package/dist/esm/naylence/fame/security/cert/index.js +12 -0
  129. package/dist/esm/naylence/fame/security/cert/index.js.map +1 -0
  130. package/dist/esm/naylence/fame/security/cert/internal-ca-service.js +750 -0
  131. package/dist/esm/naylence/fame/security/cert/internal-ca-service.js.map +1 -0
  132. package/dist/esm/naylence/fame/security/cert/util.js +116 -0
  133. package/dist/esm/naylence/fame/security/cert/util.js.map +1 -0
  134. package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js +85 -0
  135. package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js.map +1 -0
  136. package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager.js +728 -0
  137. package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager.js.map +1 -0
  138. package/dist/esm/naylence/fame/security/encryption/channel/index.js +3 -0
  139. package/dist/esm/naylence/fame/security/encryption/channel/index.js.map +1 -0
  140. package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager-factory.js +113 -0
  141. package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager-factory.js.map +1 -0
  142. package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager.js +321 -0
  143. package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager.js.map +1 -0
  144. package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager-factory.js +53 -0
  145. package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager-factory.js.map +1 -0
  146. package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager.js +278 -0
  147. package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager.js.map +1 -0
  148. package/dist/esm/naylence/fame/security/encryption/encryption-manager-registry.js +167 -0
  149. package/dist/esm/naylence/fame/security/encryption/encryption-manager-registry.js.map +1 -0
  150. package/dist/esm/naylence/fame/security/encryption/index.js +7 -0
  151. package/dist/esm/naylence/fame/security/encryption/index.js.map +1 -0
  152. package/dist/esm/naylence/fame/security/encryption/sealed/index.js +3 -0
  153. package/dist/esm/naylence/fame/security/encryption/sealed/index.js.map +1 -0
  154. package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js +82 -0
  155. package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js.map +1 -0
  156. package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js +542 -0
  157. package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js.map +1 -0
  158. package/dist/esm/naylence/fame/security/index.js +6 -0
  159. package/dist/esm/naylence/fame/security/index.js.map +1 -0
  160. package/dist/esm/naylence/fame/security/keys/index.js +3 -0
  161. package/dist/esm/naylence/fame/security/keys/index.js.map +1 -0
  162. package/dist/esm/naylence/fame/security/keys/x5c-key-manager-factory.js +36 -0
  163. package/dist/esm/naylence/fame/security/keys/x5c-key-manager-factory.js.map +1 -0
  164. package/dist/esm/naylence/fame/security/keys/x5c-key-manager.js +405 -0
  165. package/dist/esm/naylence/fame/security/keys/x5c-key-manager.js.map +1 -0
  166. package/dist/esm/naylence/fame/security/register-advanced-security-factories.js +95 -0
  167. package/dist/esm/naylence/fame/security/register-advanced-security-factories.js.map +1 -0
  168. package/dist/esm/naylence/fame/security/signing/eddsa-envelope-signer-factory.js +34 -0
  169. package/dist/esm/naylence/fame/security/signing/eddsa-envelope-signer-factory.js.map +1 -0
  170. package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js +27 -0
  171. package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js.map +1 -0
  172. package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier.js +172 -0
  173. package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier.js.map +1 -0
  174. package/dist/esm/naylence/fame/stickiness/aft-helper.js +72 -0
  175. package/dist/esm/naylence/fame/stickiness/aft-helper.js.map +1 -0
  176. package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js +65 -0
  177. package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js.map +1 -0
  178. package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js +447 -0
  179. package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js.map +1 -0
  180. package/dist/esm/naylence/fame/stickiness/aft-model.js +54 -0
  181. package/dist/esm/naylence/fame/stickiness/aft-model.js.map +1 -0
  182. package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js +50 -0
  183. package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js.map +1 -0
  184. package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager.js +203 -0
  185. package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager.js.map +1 -0
  186. package/dist/esm/naylence/fame/stickiness/aft-signer.js +147 -0
  187. package/dist/esm/naylence/fame/stickiness/aft-signer.js.map +1 -0
  188. package/dist/esm/naylence/fame/stickiness/aft-utils.js +90 -0
  189. package/dist/esm/naylence/fame/stickiness/aft-utils.js.map +1 -0
  190. package/dist/esm/naylence/fame/stickiness/aft-verifier.js +290 -0
  191. package/dist/esm/naylence/fame/stickiness/aft-verifier.js.map +1 -0
  192. package/dist/esm/naylence/fame/stickiness/index.js +11 -0
  193. package/dist/esm/naylence/fame/stickiness/index.js.map +1 -0
  194. package/dist/esm/naylence/fame/stickiness/stickiness-mode.js +24 -0
  195. package/dist/esm/naylence/fame/stickiness/stickiness-mode.js.map +1 -0
  196. package/dist/esm/naylence/fame/welcome/advanced-welcome-service-factory.js +93 -0
  197. package/dist/esm/naylence/fame/welcome/advanced-welcome-service-factory.js.map +1 -0
  198. package/dist/esm/naylence/fame/welcome/advanced-welcome-service.js +212 -0
  199. package/dist/esm/naylence/fame/welcome/advanced-welcome-service.js.map +1 -0
  200. package/dist/esm/naylence/fame/welcome/index.js +3 -0
  201. package/dist/esm/naylence/fame/welcome/index.js.map +1 -0
  202. package/dist/esm/plugin.js +37 -0
  203. package/dist/esm/plugin.js.map +1 -0
  204. package/dist/types/browser.d.ts +2 -0
  205. package/dist/types/browser.d.ts.map +1 -0
  206. package/dist/types/index.d.ts +4 -0
  207. package/dist/types/index.d.ts.map +1 -0
  208. package/dist/types/naylence/fame/factory-manifest.d.ts +9 -0
  209. package/dist/types/naylence/fame/factory-manifest.d.ts.map +1 -0
  210. package/dist/types/naylence/fame/security/cert/ca-server.d.ts +19 -0
  211. package/dist/types/naylence/fame/security/cert/ca-server.d.ts.map +1 -0
  212. package/dist/types/naylence/fame/security/cert/ca-service-client.d.ts +75 -0
  213. package/dist/types/naylence/fame/security/cert/ca-service-client.d.ts.map +1 -0
  214. package/dist/types/naylence/fame/security/cert/ca-service-factory.d.ts +43 -0
  215. package/dist/types/naylence/fame/security/cert/ca-service-factory.d.ts.map +1 -0
  216. package/dist/types/naylence/fame/security/cert/ca-types.d.ts +97 -0
  217. package/dist/types/naylence/fame/security/cert/ca-types.d.ts.map +1 -0
  218. package/dist/types/naylence/fame/security/cert/default-ca-service-factory.d.ts +55 -0
  219. package/dist/types/naylence/fame/security/cert/default-ca-service-factory.d.ts.map +1 -0
  220. package/dist/types/naylence/fame/security/cert/default-ca-service.d.ts +84 -0
  221. package/dist/types/naylence/fame/security/cert/default-ca-service.d.ts.map +1 -0
  222. package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts +25 -0
  223. package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts.map +1 -0
  224. package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts +38 -0
  225. package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts.map +1 -0
  226. package/dist/types/naylence/fame/security/cert/grants.d.ts +2 -0
  227. package/dist/types/naylence/fame/security/cert/grants.d.ts.map +1 -0
  228. package/dist/types/naylence/fame/security/cert/index.d.ts +11 -0
  229. package/dist/types/naylence/fame/security/cert/index.d.ts.map +1 -0
  230. package/dist/types/naylence/fame/security/cert/internal-ca-service.d.ts +132 -0
  231. package/dist/types/naylence/fame/security/cert/internal-ca-service.d.ts.map +1 -0
  232. package/dist/types/naylence/fame/security/cert/util.d.ts +35 -0
  233. package/dist/types/naylence/fame/security/cert/util.d.ts.map +1 -0
  234. package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.d.ts +29 -0
  235. package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.d.ts.map +1 -0
  236. package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager.d.ts +51 -0
  237. package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager.d.ts.map +1 -0
  238. package/dist/types/naylence/fame/security/encryption/channel/index.d.ts +3 -0
  239. package/dist/types/naylence/fame/security/encryption/channel/index.d.ts.map +1 -0
  240. package/dist/types/naylence/fame/security/encryption/composite-encryption-manager-factory.d.ts +32 -0
  241. package/dist/types/naylence/fame/security/encryption/composite-encryption-manager-factory.d.ts.map +1 -0
  242. package/dist/types/naylence/fame/security/encryption/composite-encryption-manager.d.ts +52 -0
  243. package/dist/types/naylence/fame/security/encryption/composite-encryption-manager.d.ts.map +1 -0
  244. package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager-factory.d.ts +23 -0
  245. package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager-factory.d.ts.map +1 -0
  246. package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager.d.ts +37 -0
  247. package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager.d.ts.map +1 -0
  248. package/dist/types/naylence/fame/security/encryption/encryption-manager-registry.d.ts +34 -0
  249. package/dist/types/naylence/fame/security/encryption/encryption-manager-registry.d.ts.map +1 -0
  250. package/dist/types/naylence/fame/security/encryption/index.d.ts +7 -0
  251. package/dist/types/naylence/fame/security/encryption/index.d.ts.map +1 -0
  252. package/dist/types/naylence/fame/security/encryption/sealed/index.d.ts +3 -0
  253. package/dist/types/naylence/fame/security/encryption/sealed/index.d.ts.map +1 -0
  254. package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.d.ts +28 -0
  255. package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.d.ts.map +1 -0
  256. package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager.d.ts +43 -0
  257. package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager.d.ts.map +1 -0
  258. package/dist/types/naylence/fame/security/index.d.ts +6 -0
  259. package/dist/types/naylence/fame/security/index.d.ts.map +1 -0
  260. package/dist/types/naylence/fame/security/keys/index.d.ts +3 -0
  261. package/dist/types/naylence/fame/security/keys/index.d.ts.map +1 -0
  262. package/dist/types/naylence/fame/security/keys/x5c-key-manager-factory.d.ts +19 -0
  263. package/dist/types/naylence/fame/security/keys/x5c-key-manager-factory.d.ts.map +1 -0
  264. package/dist/types/naylence/fame/security/keys/x5c-key-manager.d.ts +39 -0
  265. package/dist/types/naylence/fame/security/keys/x5c-key-manager.d.ts.map +1 -0
  266. package/dist/types/naylence/fame/security/register-advanced-security-factories.d.ts +8 -0
  267. package/dist/types/naylence/fame/security/register-advanced-security-factories.d.ts.map +1 -0
  268. package/dist/types/naylence/fame/security/signing/eddsa-envelope-signer-factory.d.ts +20 -0
  269. package/dist/types/naylence/fame/security/signing/eddsa-envelope-signer-factory.d.ts.map +1 -0
  270. package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier-factory.d.ts +21 -0
  271. package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier-factory.d.ts.map +1 -0
  272. package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier.d.ts +17 -0
  273. package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier.d.ts.map +1 -0
  274. package/dist/types/naylence/fame/stickiness/aft-helper.d.ts +29 -0
  275. package/dist/types/naylence/fame/stickiness/aft-helper.d.ts.map +1 -0
  276. package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.d.ts +25 -0
  277. package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.d.ts.map +1 -0
  278. package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.d.ts +33 -0
  279. package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.d.ts.map +1 -0
  280. package/dist/types/naylence/fame/stickiness/aft-model.d.ts +33 -0
  281. package/dist/types/naylence/fame/stickiness/aft-model.d.ts.map +1 -0
  282. package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.d.ts +23 -0
  283. package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.d.ts.map +1 -0
  284. package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager.d.ts +31 -0
  285. package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager.d.ts.map +1 -0
  286. package/dist/types/naylence/fame/stickiness/aft-signer.d.ts +55 -0
  287. package/dist/types/naylence/fame/stickiness/aft-signer.d.ts.map +1 -0
  288. package/dist/types/naylence/fame/stickiness/aft-utils.d.ts +4 -0
  289. package/dist/types/naylence/fame/stickiness/aft-utils.d.ts.map +1 -0
  290. package/dist/types/naylence/fame/stickiness/aft-verifier.d.ts +50 -0
  291. package/dist/types/naylence/fame/stickiness/aft-verifier.d.ts.map +1 -0
  292. package/dist/types/naylence/fame/stickiness/index.d.ts +15 -0
  293. package/dist/types/naylence/fame/stickiness/index.d.ts.map +1 -0
  294. package/dist/types/naylence/fame/stickiness/stickiness-mode.d.ts +7 -0
  295. package/dist/types/naylence/fame/stickiness/stickiness-mode.d.ts.map +1 -0
  296. package/dist/types/naylence/fame/welcome/advanced-welcome-service-factory.d.ts +21 -0
  297. package/dist/types/naylence/fame/welcome/advanced-welcome-service-factory.d.ts.map +1 -0
  298. package/dist/types/naylence/fame/welcome/advanced-welcome-service.d.ts +21 -0
  299. package/dist/types/naylence/fame/welcome/advanced-welcome-service.d.ts.map +1 -0
  300. package/dist/types/naylence/fame/welcome/index.d.ts +3 -0
  301. package/dist/types/naylence/fame/welcome/index.d.ts.map +1 -0
  302. package/dist/types/plugin.d.ts +11 -0
  303. package/dist/types/plugin.d.ts.map +1 -0
  304. package/package.json +130 -0
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ // Browser-friendly entry point. Limit exports to APIs that are safe for browser usage.
5
+ tslib_1.__exportStar(require("./index.js"), exports);
6
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":";;;AAAA,uFAAuF;AACvF,qDAA2B"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./naylence/fame/security/index.js"), exports);
5
+ tslib_1.__exportStar(require("./naylence/fame/stickiness/index.js"), exports);
6
+ tslib_1.__exportStar(require("./naylence/fame/welcome/index.js"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,4EAAkD;AAClD,8EAAoD;AACpD,2EAAiD"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * AUTO-GENERATED FILE. DO NOT EDIT DIRECTLY.
4
+ * Generated by scripts/generate-factory-manifest.mjs
5
+ *
6
+ * Provides the list of advanced security factory modules for registration.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MODULES = void 0;
10
+ exports.MODULES = [
11
+ "./security/cert/default-ca-service-factory.js",
12
+ "./security/cert/default-certificate-manager-factory.js",
13
+ "./security/encryption/channel/channel-encryption-manager-factory.js",
14
+ "./security/encryption/composite-encryption-manager-factory.js",
15
+ "./security/encryption/default-secure-channel-manager-factory.js",
16
+ "./security/encryption/sealed/x25519-encryption-manager-factory.js",
17
+ "./security/keys/x5c-key-manager-factory.js",
18
+ "./security/signing/eddsa-envelope-signer-factory.js",
19
+ "./security/signing/eddsa-envelope-verifier-factory.js",
20
+ "./stickiness/aft-load-balancer-stickiness-manager-factory.js",
21
+ "./stickiness/aft-replica-stickiness-manager-factory.js",
22
+ "./welcome/advanced-welcome-service-factory.js"
23
+ ];
24
+ //# sourceMappingURL=factory-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory-manifest.js","sourceRoot":"","sources":["../../../../src/naylence/fame/factory-manifest.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG;IACrB,+CAA+C;IAC/C,wDAAwD;IACxD,qEAAqE;IACrE,+DAA+D;IAC/D,iEAAiE;IACjE,mEAAmE;IACnE,4CAA4C;IAC5C,qDAAqD;IACrD,uDAAuD;IACvD,8DAA8D;IAC9D,wDAAwD;IACxD,+CAA+C;CACvC,CAAC"}
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+ /**
3
+ * Certificate client for requesting certificates from a CA signing service.
4
+ *
5
+ * Provides async HTTP client to request certificates from the CA signing service.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.CAServiceClient = exports.ENV_VAR_FAME_CA_SERVICE_URL = void 0;
9
+ exports.extractCertificateInfo = extractCertificateInfo;
10
+ exports.formatCertificateInfo = formatCertificateInfo;
11
+ const ca_types_js_1 = require("./ca-types.js");
12
+ // Simple logger for now - TODO: integrate with runtime logging
13
+ const logger = {
14
+ debug: (_event, _meta) => {
15
+ // console.log(`[DEBUG] ${event}`, meta);
16
+ },
17
+ error: (_event, _meta) => {
18
+ console.error(`[ERROR] ${_event}`, _meta);
19
+ },
20
+ };
21
+ exports.ENV_VAR_FAME_CA_SERVICE_URL = "FAME_CA_SERVICE_URL";
22
+ /**
23
+ * Extract certificate information from a PEM certificate.
24
+ *
25
+ * Uses node-forge to parse X.509 certificates and extract metadata.
26
+ *
27
+ * @param _certPem - Certificate in PEM format (prefixed with underscore as currently unused)
28
+ * @returns Certificate information object
29
+ */
30
+ function extractCertificateInfo(_certPem) {
31
+ try {
32
+ // TODO: Implement using node-forge or similar library
33
+ // For now, return a placeholder
34
+ return {
35
+ subject: "TODO: Parse certificate",
36
+ issuer: "TODO: Parse certificate",
37
+ serialNumber: "TODO",
38
+ validFrom: new Date().toISOString(),
39
+ validUntil: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000).toISOString(),
40
+ status: "unknown",
41
+ };
42
+ }
43
+ catch (error) {
44
+ return {
45
+ subject: "",
46
+ issuer: "",
47
+ serialNumber: "",
48
+ validFrom: "",
49
+ validUntil: "",
50
+ status: "unknown",
51
+ error: `Failed to parse certificate: ${error}`,
52
+ };
53
+ }
54
+ }
55
+ /**
56
+ * Format certificate information in human-readable format.
57
+ *
58
+ * @param certPem - Certificate in PEM format
59
+ * @param certType - Type description for logging (e.g., "Certificate", "CA Certificate")
60
+ * @returns Formatted string with certificate details
61
+ */
62
+ function formatCertificateInfo(certPem, certType = "Certificate") {
63
+ const info = extractCertificateInfo(certPem);
64
+ if (info.error) {
65
+ return `=== ${certType} Information ===\n${info.error}`;
66
+ }
67
+ const lines = [
68
+ `=== ${certType} Information ===`,
69
+ `Subject: ${info.subject}`,
70
+ `Issuer: ${info.issuer}`,
71
+ `Serial Number: ${info.serialNumber}`,
72
+ `Valid From: ${info.validFrom}`,
73
+ `Valid Until: ${info.validUntil}`,
74
+ ];
75
+ if (info.subjectAlternativeNames && info.subjectAlternativeNames.length > 0) {
76
+ lines.push(`Subject Alternative Names: ${info.subjectAlternativeNames.join(", ")}`);
77
+ }
78
+ if (info.spiffeId) {
79
+ lines.push(`SPIFFE ID: ${info.spiffeId}`);
80
+ }
81
+ if (info.nodeSid) {
82
+ lines.push(`Node SID: ${info.nodeSid}`);
83
+ }
84
+ if (info.nodeId) {
85
+ lines.push(`Node ID: ${info.nodeId}`);
86
+ }
87
+ if (info.logicalHosts && info.logicalHosts.length > 0) {
88
+ lines.push(`Logical Hosts: ${info.logicalHosts.join(", ")}`);
89
+ }
90
+ // Add validity status
91
+ if (info.status === "valid" && info.daysRemaining !== undefined) {
92
+ if (info.daysRemaining > 0) {
93
+ lines.push(`Status: Valid (${info.daysRemaining} days remaining)`);
94
+ }
95
+ else if (info.hoursRemaining !== undefined && info.hoursRemaining > 0) {
96
+ if (info.minutesRemaining !== undefined && info.minutesRemaining > 0) {
97
+ lines.push(`Status: Valid (${info.hoursRemaining} hours, ${info.minutesRemaining} minutes remaining)`);
98
+ }
99
+ else {
100
+ lines.push(`Status: Valid (${info.hoursRemaining} hours remaining)`);
101
+ }
102
+ }
103
+ else if (info.minutesRemaining !== undefined) {
104
+ lines.push(`Status: Valid (${info.minutesRemaining} minutes remaining)`);
105
+ }
106
+ }
107
+ else if (info.status === "expired") {
108
+ lines.push("Status: Expired");
109
+ }
110
+ else if (info.status === "not_yet_valid") {
111
+ lines.push("Status: Not yet valid");
112
+ }
113
+ return lines.join("\n");
114
+ }
115
+ /**
116
+ * Client for requesting certificates from a CA signing service.
117
+ */
118
+ class CAServiceClient {
119
+ /**
120
+ * Create a new CA service client.
121
+ *
122
+ * @param connectionGrant - HTTP connection grant with CA service URL
123
+ * @param timeoutSeconds - Request timeout in seconds (default: 30)
124
+ */
125
+ constructor(connectionGrant, timeoutSeconds = 30.0) {
126
+ this.authHeader = null;
127
+ if (!connectionGrant || typeof connectionGrant.url !== "string") {
128
+ throw new Error("connectionGrant must have a valid url property");
129
+ }
130
+ this.connectionGrant = connectionGrant;
131
+ this.timeoutSeconds = timeoutSeconds;
132
+ }
133
+ /**
134
+ * Set the authorization header for outbound requests.
135
+ *
136
+ * @param authHeader - Authorization header value (e.g., "Bearer token")
137
+ */
138
+ setAuthHeader(authHeader) {
139
+ this.authHeader = authHeader;
140
+ }
141
+ /**
142
+ * Request a certificate from the CA service.
143
+ *
144
+ * @param csrPem - Certificate Signing Request in PEM format
145
+ * @param requesterId - ID of the node requesting the certificate
146
+ * @param physicalPath - Physical path for the node (optional)
147
+ * @param logicals - Logicals the node will serve (optional)
148
+ * @returns Tuple of [certificatePem, certificateChainPem]
149
+ * @throws {CertificateRequestError} If the request fails
150
+ */
151
+ async requestCertificate(csrPem, requesterId, physicalPath, logicals) {
152
+ const requestData = {
153
+ csr_pem: csrPem,
154
+ requester_id: requesterId,
155
+ physical_path: physicalPath,
156
+ logicals: logicals || [],
157
+ };
158
+ const url = `${this.connectionGrant.url.replace(/\/$/, "")}/sign`;
159
+ logger.debug("requesting_certificate", {
160
+ requester_id: requesterId,
161
+ ca_service_url: url,
162
+ physical_path: physicalPath,
163
+ logicals,
164
+ });
165
+ // Prepare headers
166
+ const headers = {
167
+ "Content-Type": "application/json",
168
+ };
169
+ if (this.authHeader) {
170
+ headers["Authorization"] = this.authHeader;
171
+ }
172
+ try {
173
+ // Create abort controller for timeout
174
+ const controller = new AbortController();
175
+ const timeoutId = setTimeout(() => controller.abort(), this.timeoutSeconds * 1000);
176
+ try {
177
+ const response = await fetch(url, {
178
+ method: "POST",
179
+ headers,
180
+ body: JSON.stringify(requestData),
181
+ signal: controller.signal,
182
+ });
183
+ clearTimeout(timeoutId);
184
+ if (response.ok) {
185
+ const result = await response.json();
186
+ const certificatePem = result.certificate_pem;
187
+ const certificateChainPem = result.certificate_chain_pem || certificatePem;
188
+ logger.debug("certificate_request_successful", {
189
+ requester_id: requesterId,
190
+ expires_at: result.expires_at,
191
+ });
192
+ // Extract and log certificate information with structured logging
193
+ const certInfo = extractCertificateInfo(certificatePem);
194
+ logger.debug("certificate_details", {
195
+ requester_id: requesterId,
196
+ certificate_type: "issued_certificate",
197
+ ...certInfo,
198
+ });
199
+ // If we have a separate certificate chain, also log its details
200
+ if (certificateChainPem !== certificatePem) {
201
+ // Extract individual certificates from the chain
202
+ const chainCerts = certificateChainPem
203
+ .split("-----END CERTIFICATE-----\n")
204
+ .slice(0, -1);
205
+ for (let i = 0; i < chainCerts.length; i++) {
206
+ const certBlock = chainCerts[i];
207
+ if (certBlock && certBlock.trim()) {
208
+ const certPemBlock = certBlock + "-----END CERTIFICATE-----\n";
209
+ if (i === 0) {
210
+ // First cert in chain is usually the issued certificate
211
+ if (certPemBlock.trim() !== certificatePem.trim()) {
212
+ const chainCertInfo = extractCertificateInfo(certPemBlock);
213
+ logger.debug("certificate_chain_details", {
214
+ requester_id: requesterId,
215
+ certificate_type: "certificate_chain",
216
+ chain_index: i,
217
+ ...chainCertInfo,
218
+ });
219
+ }
220
+ }
221
+ else {
222
+ // Subsequent certs are intermediate/root CAs
223
+ const caCertInfo = extractCertificateInfo(certPemBlock);
224
+ logger.debug("certificate_chain_details", {
225
+ requester_id: requesterId,
226
+ certificate_type: "ca_certificate",
227
+ chain_index: i,
228
+ ...caCertInfo,
229
+ });
230
+ }
231
+ }
232
+ }
233
+ }
234
+ return [certificatePem, certificateChainPem];
235
+ }
236
+ else {
237
+ let errorDetail = "Unknown error";
238
+ try {
239
+ const bodyText = await response.text();
240
+ try {
241
+ const errorData = JSON.parse(bodyText);
242
+ errorDetail = errorData.detail || bodyText;
243
+ }
244
+ catch {
245
+ errorDetail = bodyText;
246
+ }
247
+ }
248
+ catch {
249
+ // Body read failed entirely
250
+ errorDetail = `HTTP ${response.status}`;
251
+ }
252
+ logger.error("certificate_request_failed", {
253
+ requester_id: requesterId,
254
+ status_code: response.status,
255
+ error: errorDetail,
256
+ });
257
+ throw new ca_types_js_1.CertificateRequestError(`Certificate request failed (HTTP ${response.status}): ${errorDetail}`);
258
+ }
259
+ }
260
+ finally {
261
+ clearTimeout(timeoutId);
262
+ }
263
+ }
264
+ catch (error) {
265
+ if (error instanceof ca_types_js_1.CertificateRequestError) {
266
+ throw error;
267
+ }
268
+ if (error instanceof Error && error.name === "AbortError") {
269
+ logger.error("certificate_request_timeout", {
270
+ requester_id: requesterId,
271
+ timeout_seconds: this.timeoutSeconds,
272
+ });
273
+ throw new ca_types_js_1.CertificateRequestError(`Certificate request timed out after ${this.timeoutSeconds} seconds`);
274
+ }
275
+ logger.error("certificate_request_network_error", {
276
+ requester_id: requesterId,
277
+ error: String(error),
278
+ });
279
+ throw new ca_types_js_1.CertificateRequestError(`Network error requesting certificate: ${error}`);
280
+ }
281
+ }
282
+ }
283
+ exports.CAServiceClient = CAServiceClient;
284
+ //# sourceMappingURL=ca-service-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ca-service-client.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/ca-service-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ /**
3
+ * Factory pattern for creating CA service instances.
4
+ *
5
+ * Provides a unified way to create CAService implementations from configuration.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.FACTORY_META = exports.CA_SERVICE_FACTORY_BASE_TYPE = exports.CAServiceFactory = void 0;
9
+ const factory_1 = require("@naylence/factory");
10
+ /**
11
+ * Factory for creating CAService instances.
12
+ *
13
+ * Supports multiple CAService implementations through the factory pattern.
14
+ */
15
+ class CAServiceFactory extends factory_1.AbstractResourceFactory {
16
+ /**
17
+ * Create a CAService instance from configuration.
18
+ *
19
+ * @param config - Optional CAService configuration or dictionary
20
+ * @param options - Additional creation options
21
+ * @returns Configured CAService instance
22
+ */
23
+ static async createCAService(config, options) {
24
+ if (!config) {
25
+ // Use default CA service
26
+ const service = await (0, factory_1.createDefaultResource)("CAServiceFactory", config, options);
27
+ if (!service) {
28
+ throw new Error("No default CA service factory registered");
29
+ }
30
+ return service;
31
+ }
32
+ if (typeof config === "object" && !("type" in config)) {
33
+ // No type specified, use default
34
+ const service = await (0, factory_1.createDefaultResource)("CAServiceFactory", config, options);
35
+ if (!service) {
36
+ throw new Error("No default CA service factory registered");
37
+ }
38
+ return service;
39
+ }
40
+ // Create from specific type
41
+ const configObj = config instanceof Object && "type" in config
42
+ ? config
43
+ : { type: "CAService", ...config };
44
+ const service = await (0, factory_1.createResource)("CAServiceFactory", configObj, options);
45
+ if (!service) {
46
+ throw new Error(`Failed to create CA service of type "${configObj.type}"`);
47
+ }
48
+ return service;
49
+ }
50
+ }
51
+ exports.CAServiceFactory = CAServiceFactory;
52
+ /**
53
+ * Base type for CA service factories.
54
+ */
55
+ exports.CA_SERVICE_FACTORY_BASE_TYPE = "CAServiceFactory";
56
+ /**
57
+ * Factory metadata for CAServiceFactory.
58
+ */
59
+ exports.FACTORY_META = {
60
+ factoryId: "CAServiceFactory",
61
+ factoryType: CAServiceFactory,
62
+ resourceType: "CAService",
63
+ description: "Factory for creating Certificate Authority (CA) service instances",
64
+ };
65
+ //# sourceMappingURL=ca-service-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ca-service-factory.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/ca-service-factory.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,+CAI2B;AAU3B;;;;GAIG;AACH,MAAsB,gBAEpB,SAAQ,iCAAqC;IAC7C;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAC1B,MAAkD,EAClD,OAA+B;QAE/B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,yBAAyB;YACzB,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAqB,EACzC,kBAAkB,EAClB,MAAM,EACN,OAAO,CACR,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,OAAoB,CAAC;QAC9B,CAAC;QAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC;YACtD,iCAAiC;YACjC,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAqB,EACzC,kBAAkB,EAClB,MAAM,EACN,OAAO,CACR,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,OAAoB,CAAC;QAC9B,CAAC;QAED,4BAA4B;QAC5B,MAAM,SAAS,GACb,MAAM,YAAY,MAAM,IAAI,MAAM,IAAI,MAAM;YAC1C,CAAC,CAAE,MAA0B;YAC7B,CAAC,CAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,EAAsB,CAAC;QAE5D,MAAM,OAAO,GAAG,MAAM,IAAA,wBAAc,EAClC,kBAAkB,EAClB,SAAS,EACT,OAAO,CACR,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,wCAAwC,SAAS,CAAC,IAAI,GAAG,CAC1D,CAAC;QACJ,CAAC;QACD,OAAO,OAAoB,CAAC;IAC9B,CAAC;CACF;AA1DD,4CA0DC;AAED;;GAEG;AACU,QAAA,4BAA4B,GAAG,kBAAkB,CAAC;AAE/D;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,SAAS,EAAE,kBAAkB;IAC7B,WAAW,EAAE,gBAAgB;IAC7B,YAAY,EAAE,WAAW;IACzB,WAAW,EACT,mEAAmE;CACtE,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * Certificate Authority (CA) types and interfaces.
4
+ *
5
+ * Provides type definitions for CA service operations, certificate signing requests,
6
+ * and certificate issuance responses.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CertificateRequestError = exports.CAService = void 0;
10
+ /**
11
+ * Abstract CA signing service interface.
12
+ *
13
+ * Defines the contract for certificate authority services that can issue
14
+ * certificates from certificate signing requests.
15
+ */
16
+ class CAService {
17
+ /**
18
+ * Optional authorizer for request authentication.
19
+ */
20
+ get authorizer() {
21
+ return null;
22
+ }
23
+ }
24
+ exports.CAService = CAService;
25
+ /**
26
+ * Error thrown when a certificate request fails.
27
+ */
28
+ class CertificateRequestError extends Error {
29
+ constructor(message) {
30
+ super(message);
31
+ this.name = "CertificateRequestError";
32
+ Object.setPrototypeOf(this, CertificateRequestError.prototype);
33
+ }
34
+ }
35
+ exports.CertificateRequestError = CertificateRequestError;
36
+ //# sourceMappingURL=ca-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ca-types.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/ca-types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAyCH;;;;;GAKG;AACH,MAAsB,SAAS;IAC7B;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;CAWF;AAjBD,8BAiBC;AAED;;GAEG;AACH,MAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;CACF;AAND,0DAMC"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ /**
3
+ * Factory for creating DefaultCAService instances.
4
+ *
5
+ * Provides the default CA service implementation with environment variable support.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.DefaultCAServiceFactory = exports.FACTORY_META = void 0;
9
+ const factory_1 = require("@naylence/factory");
10
+ const default_ca_service_js_1 = require("./default-ca-service.js");
11
+ /**
12
+ * Factory metadata for DefaultCAServiceFactory.
13
+ */
14
+ exports.FACTORY_META = {
15
+ base: "CAServiceFactory",
16
+ key: "DefaultCAService",
17
+ };
18
+ /**
19
+ * Normalize configuration from snake_case or camelCase to standard format.
20
+ */
21
+ function normalizeConfig(config) {
22
+ if (!config) {
23
+ return { type: "DefaultCAService" };
24
+ }
25
+ const { type: _ignoredType, ...rest } = config;
26
+ return {
27
+ ...rest,
28
+ type: "DefaultCAService",
29
+ };
30
+ }
31
+ /**
32
+ * Factory for creating DefaultCAService instances.
33
+ */
34
+ class DefaultCAServiceFactory extends factory_1.AbstractResourceFactory {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.type = "DefaultCAService";
38
+ this.isDefault = true;
39
+ this.priority = 100;
40
+ }
41
+ /**
42
+ * Create a DefaultCAService instance.
43
+ *
44
+ * @param config - DefaultCAService configuration
45
+ * @returns Configured DefaultCAService instance
46
+ */
47
+ async create(config, ..._factoryArgs) {
48
+ const normalizedConfig = normalizeConfig(config);
49
+ // Extract configuration with snake_case fallbacks
50
+ const caCertPem = normalizedConfig.caCertPem ?? normalizedConfig.ca_cert_pem;
51
+ const caKeyPem = normalizedConfig.caKeyPem ?? normalizedConfig.ca_key_pem;
52
+ const intermediateChainPem = normalizedConfig.intermediateChainPem ??
53
+ normalizedConfig.intermediate_chain_pem;
54
+ const signingCertPem = normalizedConfig.signingCertPem ?? normalizedConfig.signing_cert_pem;
55
+ const signingKeyPem = normalizedConfig.signingKeyPem ?? normalizedConfig.signing_key_pem;
56
+ // TODO: Create authorizer from config when AuthorizerFactory is available
57
+ const authorizer = undefined;
58
+ return new default_ca_service_js_1.DefaultCAService({
59
+ caCertPem,
60
+ caKeyPem,
61
+ intermediateChainPem,
62
+ signingCertPem,
63
+ signingKeyPem,
64
+ authorizer,
65
+ });
66
+ }
67
+ }
68
+ exports.DefaultCAServiceFactory = DefaultCAServiceFactory;
69
+ exports.default = DefaultCAServiceFactory;
70
+ //# sourceMappingURL=default-ca-service-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-ca-service-factory.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/default-ca-service-factory.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,+CAA4D;AAG5D,mEAA2D;AAgC3D;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,kBAAkB;CACf,CAAC;AAEX;;GAEG;AACH,SAAS,eAAe,CACtB,MAAgE;IAEhE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,MAAiC,CAAC;IAC1E,OAAO;QACL,GAAG,IAAI;QACP,IAAI,EAAE,kBAAkB;KACC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAa,uBAAwB,SAAQ,iCAG5C;IAHD;;QAIkB,SAAI,GAAG,kBAAkB,CAAC;QAC1B,cAAS,GAAG,IAAI,CAAC;QACjB,aAAQ,GAAG,GAAG,CAAC;IAsCjC,CAAC;IApCC;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CACjB,MAAgE,EAChE,GAAG,YAAuB;QAE1B,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAEjD,kDAAkD;QAClD,MAAM,SAAS,GACb,gBAAgB,CAAC,SAAS,IAAI,gBAAgB,CAAC,WAAW,CAAC;QAC7D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,IAAI,gBAAgB,CAAC,UAAU,CAAC;QAC1E,MAAM,oBAAoB,GACxB,gBAAgB,CAAC,oBAAoB;YACrC,gBAAgB,CAAC,sBAAsB,CAAC;QAC1C,MAAM,cAAc,GAClB,gBAAgB,CAAC,cAAc,IAAI,gBAAgB,CAAC,gBAAgB,CAAC;QACvE,MAAM,aAAa,GACjB,gBAAgB,CAAC,aAAa,IAAI,gBAAgB,CAAC,eAAe,CAAC;QAErE,0EAA0E;QAC1E,MAAM,UAAU,GAA2B,SAAS,CAAC;QAErD,OAAO,IAAI,wCAAgB,CAAC;YAC1B,SAAS;YACT,QAAQ;YACR,oBAAoB;YACpB,cAAc;YACd,aAAa;YACb,UAAU;SACX,CAAC,CAAC;IACL,CAAC;CACF;AA5CD,0DA4CC;AAED,kBAAe,uBAAuB,CAAC"}