@heossi/qnsi 0.3.2

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 (268) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/LICENSE.md +8 -0
  3. package/README.md +200 -0
  4. package/dist/_activation/activation-client.d.ts +65 -0
  5. package/dist/_activation/activation-client.d.ts.map +1 -0
  6. package/dist/_activation/activation-client.js +164 -0
  7. package/dist/_activation/activation-client.js.map +1 -0
  8. package/dist/_activation/index.d.ts +10 -0
  9. package/dist/_activation/index.d.ts.map +1 -0
  10. package/dist/_activation/index.js +10 -0
  11. package/dist/_activation/index.js.map +1 -0
  12. package/dist/_activation/types.d.ts +128 -0
  13. package/dist/_activation/types.d.ts.map +1 -0
  14. package/dist/_activation/types.js +94 -0
  15. package/dist/_activation/types.js.map +1 -0
  16. package/dist/_internal.d.ts +52 -0
  17. package/dist/_internal.d.ts.map +1 -0
  18. package/dist/_internal.js +235 -0
  19. package/dist/_internal.js.map +1 -0
  20. package/dist/access.d.ts +32 -0
  21. package/dist/access.d.ts.map +1 -0
  22. package/dist/access.js +33 -0
  23. package/dist/access.js.map +1 -0
  24. package/dist/ai.d.ts +51 -0
  25. package/dist/ai.d.ts.map +1 -0
  26. package/dist/ai.js +53 -0
  27. package/dist/ai.js.map +1 -0
  28. package/dist/audit.d.ts +18 -0
  29. package/dist/audit.d.ts.map +1 -0
  30. package/dist/audit.js +21 -0
  31. package/dist/audit.js.map +1 -0
  32. package/dist/auth.d.ts +31 -0
  33. package/dist/auth.d.ts.map +1 -0
  34. package/dist/auth.js +69 -0
  35. package/dist/auth.js.map +1 -0
  36. package/dist/autogen/executor.d.ts +200 -0
  37. package/dist/autogen/executor.d.ts.map +1 -0
  38. package/dist/autogen/executor.js +277 -0
  39. package/dist/autogen/executor.js.map +1 -0
  40. package/dist/autogen/index.d.ts +18 -0
  41. package/dist/autogen/index.d.ts.map +1 -0
  42. package/dist/autogen/index.js +17 -0
  43. package/dist/autogen/index.js.map +1 -0
  44. package/dist/billing.d.ts +22 -0
  45. package/dist/billing.d.ts.map +1 -0
  46. package/dist/billing.js +33 -0
  47. package/dist/billing.js.map +1 -0
  48. package/dist/browser/encrypt.d.ts +68 -0
  49. package/dist/browser/encrypt.d.ts.map +1 -0
  50. package/dist/browser/encrypt.js +191 -0
  51. package/dist/browser/encrypt.js.map +1 -0
  52. package/dist/browser/index.d.ts +39 -0
  53. package/dist/browser/index.d.ts.map +1 -0
  54. package/dist/browser/index.js +41 -0
  55. package/dist/browser/index.js.map +1 -0
  56. package/dist/browser/noble-provider.d.ts +10 -0
  57. package/dist/browser/noble-provider.d.ts.map +1 -0
  58. package/dist/browser/noble-provider.js +130 -0
  59. package/dist/browser/noble-provider.js.map +1 -0
  60. package/dist/browser/pqc-types.d.ts +40 -0
  61. package/dist/browser/pqc-types.d.ts.map +1 -0
  62. package/dist/browser/pqc-types.js +2 -0
  63. package/dist/browser/pqc-types.js.map +1 -0
  64. package/dist/browser/provider-setup.d.ts +70 -0
  65. package/dist/browser/provider-setup.d.ts.map +1 -0
  66. package/dist/browser/provider-setup.js +101 -0
  67. package/dist/browser/provider-setup.js.map +1 -0
  68. package/dist/browser/sdk-package-version.d.ts +12 -0
  69. package/dist/browser/sdk-package-version.d.ts.map +1 -0
  70. package/dist/browser/sdk-package-version.js +12 -0
  71. package/dist/browser/sdk-package-version.js.map +1 -0
  72. package/dist/browser/sign.d.ts +65 -0
  73. package/dist/browser/sign.d.ts.map +1 -0
  74. package/dist/browser/sign.js +124 -0
  75. package/dist/browser/sign.js.map +1 -0
  76. package/dist/browser/telemetry.d.ts +98 -0
  77. package/dist/browser/telemetry.d.ts.map +1 -0
  78. package/dist/browser/telemetry.js +93 -0
  79. package/dist/browser/telemetry.js.map +1 -0
  80. package/dist/cli/commands/access-control.d.ts +4 -0
  81. package/dist/cli/commands/access-control.d.ts.map +1 -0
  82. package/dist/cli/commands/access-control.js +183 -0
  83. package/dist/cli/commands/access-control.js.map +1 -0
  84. package/dist/cli/commands/audit.d.ts +4 -0
  85. package/dist/cli/commands/audit.d.ts.map +1 -0
  86. package/dist/cli/commands/audit.js +70 -0
  87. package/dist/cli/commands/audit.js.map +1 -0
  88. package/dist/cli/commands/auth.d.ts +4 -0
  89. package/dist/cli/commands/auth.d.ts.map +1 -0
  90. package/dist/cli/commands/auth.js +46 -0
  91. package/dist/cli/commands/auth.js.map +1 -0
  92. package/dist/cli/commands/billing.d.ts +4 -0
  93. package/dist/cli/commands/billing.d.ts.map +1 -0
  94. package/dist/cli/commands/billing.js +179 -0
  95. package/dist/cli/commands/billing.js.map +1 -0
  96. package/dist/cli/commands/crypto-policy.d.ts +4 -0
  97. package/dist/cli/commands/crypto-policy.d.ts.map +1 -0
  98. package/dist/cli/commands/crypto-policy.js +130 -0
  99. package/dist/cli/commands/crypto-policy.js.map +1 -0
  100. package/dist/cli/commands/kms.d.ts +4 -0
  101. package/dist/cli/commands/kms.d.ts.map +1 -0
  102. package/dist/cli/commands/kms.js +153 -0
  103. package/dist/cli/commands/kms.js.map +1 -0
  104. package/dist/cli/commands/observability.d.ts +4 -0
  105. package/dist/cli/commands/observability.d.ts.map +1 -0
  106. package/dist/cli/commands/observability.js +97 -0
  107. package/dist/cli/commands/observability.js.map +1 -0
  108. package/dist/cli/commands/search.d.ts +4 -0
  109. package/dist/cli/commands/search.d.ts.map +1 -0
  110. package/dist/cli/commands/search.js +66 -0
  111. package/dist/cli/commands/search.js.map +1 -0
  112. package/dist/cli/commands/security.d.ts +4 -0
  113. package/dist/cli/commands/security.d.ts.map +1 -0
  114. package/dist/cli/commands/security.js +136 -0
  115. package/dist/cli/commands/security.js.map +1 -0
  116. package/dist/cli/commands/storage.d.ts +4 -0
  117. package/dist/cli/commands/storage.d.ts.map +1 -0
  118. package/dist/cli/commands/storage.js +85 -0
  119. package/dist/cli/commands/storage.js.map +1 -0
  120. package/dist/cli/commands/tenant.d.ts +4 -0
  121. package/dist/cli/commands/tenant.d.ts.map +1 -0
  122. package/dist/cli/commands/tenant.js +82 -0
  123. package/dist/cli/commands/tenant.js.map +1 -0
  124. package/dist/cli/commands/test-utils.d.ts +15 -0
  125. package/dist/cli/commands/test-utils.d.ts.map +1 -0
  126. package/dist/cli/commands/test-utils.js +72 -0
  127. package/dist/cli/commands/test-utils.js.map +1 -0
  128. package/dist/cli/commands/vault.d.ts +4 -0
  129. package/dist/cli/commands/vault.d.ts.map +1 -0
  130. package/dist/cli/commands/vault.js +111 -0
  131. package/dist/cli/commands/vault.js.map +1 -0
  132. package/dist/cli/config.d.ts +32 -0
  133. package/dist/cli/config.d.ts.map +1 -0
  134. package/dist/cli/config.js +105 -0
  135. package/dist/cli/config.js.map +1 -0
  136. package/dist/cli/index.d.ts +3 -0
  137. package/dist/cli/index.d.ts.map +1 -0
  138. package/dist/cli/index.js +54 -0
  139. package/dist/cli/index.js.map +1 -0
  140. package/dist/cli/utils/audit-logger.d.ts +17 -0
  141. package/dist/cli/utils/audit-logger.d.ts.map +1 -0
  142. package/dist/cli/utils/audit-logger.js +52 -0
  143. package/dist/cli/utils/audit-logger.js.map +1 -0
  144. package/dist/cli/utils/auth.d.ts +4 -0
  145. package/dist/cli/utils/auth.d.ts.map +1 -0
  146. package/dist/cli/utils/auth.js +100 -0
  147. package/dist/cli/utils/auth.js.map +1 -0
  148. package/dist/cli/utils/backend-validator.d.ts +19 -0
  149. package/dist/cli/utils/backend-validator.d.ts.map +1 -0
  150. package/dist/cli/utils/backend-validator.js +72 -0
  151. package/dist/cli/utils/backend-validator.js.map +1 -0
  152. package/dist/cli/utils/command-config.d.ts +4 -0
  153. package/dist/cli/utils/command-config.d.ts.map +1 -0
  154. package/dist/cli/utils/command-config.js +29 -0
  155. package/dist/cli/utils/command-config.js.map +1 -0
  156. package/dist/cli/utils/fetcher.d.ts +3 -0
  157. package/dist/cli/utils/fetcher.d.ts.map +1 -0
  158. package/dist/cli/utils/fetcher.js +30 -0
  159. package/dist/cli/utils/fetcher.js.map +1 -0
  160. package/dist/cli/utils/https-validator.d.ts +9 -0
  161. package/dist/cli/utils/https-validator.d.ts.map +1 -0
  162. package/dist/cli/utils/https-validator.js +35 -0
  163. package/dist/cli/utils/https-validator.js.map +1 -0
  164. package/dist/cli/utils/output.d.ts +6 -0
  165. package/dist/cli/utils/output.d.ts.map +1 -0
  166. package/dist/cli/utils/output.js +29 -0
  167. package/dist/cli/utils/output.js.map +1 -0
  168. package/dist/cli/utils/pqc-validator.d.ts +17 -0
  169. package/dist/cli/utils/pqc-validator.d.ts.map +1 -0
  170. package/dist/cli/utils/pqc-validator.js +62 -0
  171. package/dist/cli/utils/pqc-validator.js.map +1 -0
  172. package/dist/cli/utils/prompt.d.ts +4 -0
  173. package/dist/cli/utils/prompt.d.ts.map +1 -0
  174. package/dist/cli/utils/prompt.js +30 -0
  175. package/dist/cli/utils/prompt.js.map +1 -0
  176. package/dist/cli/utils/rate-limiter.d.ts +15 -0
  177. package/dist/cli/utils/rate-limiter.d.ts.map +1 -0
  178. package/dist/cli/utils/rate-limiter.js +46 -0
  179. package/dist/cli/utils/rate-limiter.js.map +1 -0
  180. package/dist/cli/utils/sanitize.d.ts +3 -0
  181. package/dist/cli/utils/sanitize.d.ts.map +1 -0
  182. package/dist/cli/utils/sanitize.js +44 -0
  183. package/dist/cli/utils/sanitize.js.map +1 -0
  184. package/dist/cli/utils/security-headers.d.ts +18 -0
  185. package/dist/cli/utils/security-headers.d.ts.map +1 -0
  186. package/dist/cli/utils/security-headers.js +32 -0
  187. package/dist/cli/utils/security-headers.js.map +1 -0
  188. package/dist/cli/utils/token-cache.d.ts +4 -0
  189. package/dist/cli/utils/token-cache.d.ts.map +1 -0
  190. package/dist/cli/utils/token-cache.js +22 -0
  191. package/dist/cli/utils/token-cache.js.map +1 -0
  192. package/dist/client.d.ts +52 -0
  193. package/dist/client.d.ts.map +1 -0
  194. package/dist/client.js +78 -0
  195. package/dist/client.js.map +1 -0
  196. package/dist/crypto-inventory.d.ts +21 -0
  197. package/dist/crypto-inventory.d.ts.map +1 -0
  198. package/dist/crypto-inventory.js +28 -0
  199. package/dist/crypto-inventory.js.map +1 -0
  200. package/dist/errors.d.ts +35 -0
  201. package/dist/errors.d.ts.map +1 -0
  202. package/dist/errors.js +64 -0
  203. package/dist/errors.js.map +1 -0
  204. package/dist/index.d.ts +50 -0
  205. package/dist/index.d.ts.map +1 -0
  206. package/dist/index.js +51 -0
  207. package/dist/index.js.map +1 -0
  208. package/dist/kms.d.ts +30 -0
  209. package/dist/kms.d.ts.map +1 -0
  210. package/dist/kms.js +92 -0
  211. package/dist/kms.js.map +1 -0
  212. package/dist/langchain/index.d.ts +22 -0
  213. package/dist/langchain/index.d.ts.map +1 -0
  214. package/dist/langchain/index.js +23 -0
  215. package/dist/langchain/index.js.map +1 -0
  216. package/dist/langchain/toolkit.d.ts +85 -0
  217. package/dist/langchain/toolkit.d.ts.map +1 -0
  218. package/dist/langchain/toolkit.js +146 -0
  219. package/dist/langchain/toolkit.js.map +1 -0
  220. package/dist/langchain/tools/audit.d.ts +43 -0
  221. package/dist/langchain/tools/audit.d.ts.map +1 -0
  222. package/dist/langchain/tools/audit.js +78 -0
  223. package/dist/langchain/tools/audit.js.map +1 -0
  224. package/dist/langchain/tools/kms.d.ts +62 -0
  225. package/dist/langchain/tools/kms.d.ts.map +1 -0
  226. package/dist/langchain/tools/kms.js +120 -0
  227. package/dist/langchain/tools/kms.js.map +1 -0
  228. package/dist/langchain/tools/vault.d.ts +69 -0
  229. package/dist/langchain/tools/vault.d.ts.map +1 -0
  230. package/dist/langchain/tools/vault.js +107 -0
  231. package/dist/langchain/tools/vault.js.map +1 -0
  232. package/dist/langchain/vault-client.d.ts +82 -0
  233. package/dist/langchain/vault-client.d.ts.map +1 -0
  234. package/dist/langchain/vault-client.js +133 -0
  235. package/dist/langchain/vault-client.js.map +1 -0
  236. package/dist/llamaindex/index.d.ts +16 -0
  237. package/dist/llamaindex/index.d.ts.map +1 -0
  238. package/dist/llamaindex/index.js +15 -0
  239. package/dist/llamaindex/index.js.map +1 -0
  240. package/dist/llamaindex/sse.d.ts +36 -0
  241. package/dist/llamaindex/sse.d.ts.map +1 -0
  242. package/dist/llamaindex/sse.js +151 -0
  243. package/dist/llamaindex/sse.js.map +1 -0
  244. package/dist/llamaindex/vector-store.d.ts +101 -0
  245. package/dist/llamaindex/vector-store.d.ts.map +1 -0
  246. package/dist/llamaindex/vector-store.js +348 -0
  247. package/dist/llamaindex/vector-store.js.map +1 -0
  248. package/dist/search.d.ts +32 -0
  249. package/dist/search.d.ts.map +1 -0
  250. package/dist/search.js +27 -0
  251. package/dist/search.js.map +1 -0
  252. package/dist/storage.d.ts +32 -0
  253. package/dist/storage.d.ts.map +1 -0
  254. package/dist/storage.js +58 -0
  255. package/dist/storage.js.map +1 -0
  256. package/dist/tenant.d.ts +25 -0
  257. package/dist/tenant.d.ts.map +1 -0
  258. package/dist/tenant.js +36 -0
  259. package/dist/tenant.js.map +1 -0
  260. package/dist/vault.d.ts +22 -0
  261. package/dist/vault.d.ts.map +1 -0
  262. package/dist/vault.js +43 -0
  263. package/dist/vault.js.map +1 -0
  264. package/dist/webhooks.d.ts +32 -0
  265. package/dist/webhooks.d.ts.map +1 -0
  266. package/dist/webhooks.js +77 -0
  267. package/dist/webhooks.js.map +1 -0
  268. package/package.json +118 -0
@@ -0,0 +1,124 @@
1
+ /**
2
+ * PQC digital signature helpers for browser-side operations.
3
+ *
4
+ * Supports:
5
+ * - ML-DSA (FIPS 204): dilithium-2, dilithium-3, dilithium-5
6
+ * - SLH-DSA (FIPS 205): all 12 parameter sets (SHA-2 and SHAKE variants)
7
+ *
8
+ * No node: imports. Works in browsers, Deno, Bun, and Node.js 20+.
9
+ *
10
+ * @module
11
+ */
12
+ import { getActiveProvider } from "./provider-setup.js";
13
+ /** Signature algorithms supported by the noble provider. */
14
+ const SIG_ALGORITHMS = new Set([
15
+ "dilithium-2",
16
+ "dilithium-3",
17
+ "dilithium-5",
18
+ "sphincs-sha2-128f-simple",
19
+ "sphincs-sha2-128s-simple",
20
+ "sphincs-sha2-192f-simple",
21
+ "sphincs-sha2-192s-simple",
22
+ "sphincs-sha2-256f-simple",
23
+ "sphincs-sha2-256s-simple",
24
+ "sphincs-shake-128f-simple",
25
+ "sphincs-shake-128s-simple",
26
+ "sphincs-shake-192f-simple",
27
+ "sphincs-shake-192s-simple",
28
+ "sphincs-shake-256f-simple",
29
+ "sphincs-shake-256s-simple",
30
+ ]);
31
+ /**
32
+ * Sign data using a PQC signature algorithm.
33
+ *
34
+ * @param data - Data to sign
35
+ * @param privateKey - Signer's PQC private key
36
+ * @param algorithm - Signature algorithm (ML-DSA or SLH-DSA)
37
+ * @returns Signed envelope containing signature + original data
38
+ */
39
+ export async function signData(data, privateKey, algorithm) {
40
+ if (!SIG_ALGORITHMS.has(algorithm)) {
41
+ throw new Error(`Algorithm '${algorithm}' is not a supported signature algorithm. ` +
42
+ `Supported: ${[...SIG_ALGORITHMS].join(", ")}`);
43
+ }
44
+ if (data.length === 0) {
45
+ throw new Error("Data must not be empty");
46
+ }
47
+ if (privateKey.length === 0) {
48
+ throw new Error("Private key must not be empty");
49
+ }
50
+ const provider = getActiveProvider();
51
+ const { signature } = await provider.sign({
52
+ algorithm,
53
+ data,
54
+ privateKey,
55
+ });
56
+ return {
57
+ algorithm,
58
+ signature: new Uint8Array(signature),
59
+ data: new Uint8Array(data),
60
+ };
61
+ }
62
+ /**
63
+ * Verify a PQC digital signature.
64
+ *
65
+ * @param data - Original data that was signed
66
+ * @param signature - The signature to verify
67
+ * @param publicKey - Signer's PQC public key
68
+ * @param algorithm - Signature algorithm used
69
+ * @returns true if the signature is valid, false otherwise
70
+ */
71
+ export async function verifySignature(data, signature, publicKey, algorithm) {
72
+ if (!SIG_ALGORITHMS.has(algorithm)) {
73
+ throw new Error(`Algorithm '${algorithm}' is not a supported signature algorithm. ` +
74
+ `Supported: ${[...SIG_ALGORITHMS].join(", ")}`);
75
+ }
76
+ if (data.length === 0) {
77
+ throw new Error("Data must not be empty");
78
+ }
79
+ if (signature.length === 0) {
80
+ throw new Error("Signature must not be empty");
81
+ }
82
+ if (publicKey.length === 0) {
83
+ throw new Error("Public key must not be empty");
84
+ }
85
+ const provider = getActiveProvider();
86
+ return provider.verify({
87
+ algorithm,
88
+ data,
89
+ signature,
90
+ publicKey,
91
+ });
92
+ }
93
+ /**
94
+ * Generate a PQC key pair for signing operations.
95
+ *
96
+ * @param algorithm - Signature algorithm (ML-DSA or SLH-DSA)
97
+ * @returns Key pair with public and private keys
98
+ */
99
+ export async function generateSigningKeyPair(algorithm) {
100
+ if (!SIG_ALGORITHMS.has(algorithm)) {
101
+ throw new Error(`Algorithm '${algorithm}' is not a supported signature algorithm. ` +
102
+ `Supported: ${[...SIG_ALGORITHMS].join(", ")}`);
103
+ }
104
+ const provider = getActiveProvider();
105
+ const { keyPair } = await provider.generateKeyPair({ algorithm });
106
+ return keyPair;
107
+ }
108
+ /**
109
+ * Generate a PQC key pair for KEM (encryption) operations.
110
+ *
111
+ * @param algorithm - KEM algorithm (kyber-512, kyber-768, kyber-1024)
112
+ * @returns Key pair with public and private keys
113
+ */
114
+ export async function generateEncryptionKeyPair(algorithm) {
115
+ const KEM_ALGORITHMS = new Set(["kyber-512", "kyber-768", "kyber-1024"]);
116
+ if (!KEM_ALGORITHMS.has(algorithm)) {
117
+ throw new Error(`Algorithm '${algorithm}' is not a supported KEM algorithm. ` +
118
+ `Supported: ${[...KEM_ALGORITHMS].join(", ")}`);
119
+ }
120
+ const provider = getActiveProvider();
121
+ const { keyPair } = await provider.generateKeyPair({ algorithm });
122
+ return keyPair;
123
+ }
124
+ //# sourceMappingURL=sign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../src/browser/sign.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Browser SDK Telemetry
3
+ *
4
+ * Lightweight, privacy-respecting telemetry for the @heossi/qnsi-browser.
5
+ * Tracks usage patterns (algorithm choices, operation counts, errors) without
6
+ * collecting PII or cryptographic material.
7
+ *
8
+ * Telemetry is opt-in: callers must explicitly configure a handler via
9
+ * `configureTelemetry()`. No data is sent anywhere by default.
10
+ *
11
+ * @module
12
+ */
13
+ /**
14
+ * A single telemetry event emitted by the browser-sdk.
15
+ */
16
+ export interface BrowserSdkTelemetryEvent {
17
+ /** Operation type: "encrypt", "decrypt", "sign", "verify", "keygen", "init" */
18
+ readonly operation: string;
19
+ /** PQC algorithm used (e.g., "kyber-768", "dilithium-3") */
20
+ readonly algorithm: string;
21
+ /** Duration of the operation in milliseconds */
22
+ readonly durationMs: number;
23
+ /** Whether the operation succeeded */
24
+ readonly success: boolean;
25
+ /** Error message if the operation failed (no stack traces) */
26
+ readonly error?: string;
27
+ /** Runtime environment: "browser", "node", "edge" */
28
+ readonly runtime: string;
29
+ /** ISO 8601 timestamp */
30
+ readonly timestamp: string;
31
+ /** SDK version */
32
+ readonly sdkVersion: string;
33
+ }
34
+ /**
35
+ * Configuration for browser-sdk telemetry.
36
+ */
37
+ export interface BrowserSdkTelemetryConfig {
38
+ /**
39
+ * Whether telemetry is enabled. Defaults to false.
40
+ * When false, no events are recorded or emitted.
41
+ */
42
+ readonly enabled: boolean;
43
+ /**
44
+ * Custom handler invoked for each telemetry event.
45
+ * Use this to send events to your analytics backend, log them, or batch them.
46
+ *
47
+ * The handler receives a single event and should not throw.
48
+ * If the handler throws, the error is silently ignored to avoid
49
+ * disrupting cryptographic operations.
50
+ */
51
+ readonly onEvent: (event: BrowserSdkTelemetryEvent) => void;
52
+ /**
53
+ * Optional flush handler invoked when `flushTelemetry()` is called.
54
+ * Use this to send any batched events to your backend.
55
+ */
56
+ readonly onFlush?: () => void | Promise<void>;
57
+ }
58
+ /**
59
+ * Configure telemetry for the browser-sdk.
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * configureTelemetry({
64
+ * enabled: true,
65
+ * onEvent: (event) => {
66
+ * // Send to your analytics endpoint
67
+ * navigator.sendBeacon("/analytics", JSON.stringify(event));
68
+ * },
69
+ * });
70
+ * ```
71
+ */
72
+ export declare function configureTelemetry(config: BrowserSdkTelemetryConfig): void;
73
+ /**
74
+ * Get the current telemetry configuration.
75
+ * Returns null if telemetry has not been configured.
76
+ */
77
+ export declare function getTelemetryConfig(): BrowserSdkTelemetryConfig | null;
78
+ /**
79
+ * Check if telemetry is currently enabled.
80
+ */
81
+ export declare function isTelemetryEnabled(): boolean;
82
+ /**
83
+ * Record a telemetry event. No-op if telemetry is not configured or disabled.
84
+ *
85
+ * This function never throws — errors in the telemetry handler are silently
86
+ * swallowed to avoid disrupting cryptographic operations.
87
+ */
88
+ export declare function recordTelemetryEvent(operation: string, algorithm: string, durationMs: number, success: boolean, runtime: string, error?: string): void;
89
+ /**
90
+ * Flush any batched telemetry events. No-op if telemetry is not configured,
91
+ * disabled, or no flush handler is set.
92
+ */
93
+ export declare function flushTelemetry(): Promise<void>;
94
+ /**
95
+ * Reset telemetry configuration. Primarily for testing.
96
+ */
97
+ export declare function resetTelemetry(): void;
98
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/browser/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACxC,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yBAAyB;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,kBAAkB;IAClB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACzC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAE5D;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAE1E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,yBAAyB,GAAG,IAAI,CAErE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,GACZ,IAAI,CAqBN;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAUpD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Browser SDK Telemetry
3
+ *
4
+ * Lightweight, privacy-respecting telemetry for the @heossi/qnsi-browser.
5
+ * Tracks usage patterns (algorithm choices, operation counts, errors) without
6
+ * collecting PII or cryptographic material.
7
+ *
8
+ * Telemetry is opt-in: callers must explicitly configure a handler via
9
+ * `configureTelemetry()`. No data is sent anywhere by default.
10
+ *
11
+ * @module
12
+ */
13
+ import { SDK_PACKAGE_VERSION } from "./sdk-package-version.js";
14
+ let telemetryConfig = null;
15
+ /**
16
+ * Configure telemetry for the browser-sdk.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * configureTelemetry({
21
+ * enabled: true,
22
+ * onEvent: (event) => {
23
+ * // Send to your analytics endpoint
24
+ * navigator.sendBeacon("/analytics", JSON.stringify(event));
25
+ * },
26
+ * });
27
+ * ```
28
+ */
29
+ export function configureTelemetry(config) {
30
+ telemetryConfig = config;
31
+ }
32
+ /**
33
+ * Get the current telemetry configuration.
34
+ * Returns null if telemetry has not been configured.
35
+ */
36
+ export function getTelemetryConfig() {
37
+ return telemetryConfig;
38
+ }
39
+ /**
40
+ * Check if telemetry is currently enabled.
41
+ */
42
+ export function isTelemetryEnabled() {
43
+ return telemetryConfig?.enabled ?? false;
44
+ }
45
+ /**
46
+ * Record a telemetry event. No-op if telemetry is not configured or disabled.
47
+ *
48
+ * This function never throws — errors in the telemetry handler are silently
49
+ * swallowed to avoid disrupting cryptographic operations.
50
+ */
51
+ export function recordTelemetryEvent(operation, algorithm, durationMs, success, runtime, error) {
52
+ if (!telemetryConfig?.enabled) {
53
+ return;
54
+ }
55
+ const event = {
56
+ operation,
57
+ algorithm,
58
+ durationMs,
59
+ success,
60
+ runtime,
61
+ timestamp: new Date().toISOString(),
62
+ sdkVersion: SDK_PACKAGE_VERSION,
63
+ ...(error !== undefined ? { error } : {}),
64
+ };
65
+ try {
66
+ telemetryConfig.onEvent(event);
67
+ }
68
+ catch {
69
+ // Silently ignore telemetry handler errors
70
+ }
71
+ }
72
+ /**
73
+ * Flush any batched telemetry events. No-op if telemetry is not configured,
74
+ * disabled, or no flush handler is set.
75
+ */
76
+ export async function flushTelemetry() {
77
+ if (!telemetryConfig?.enabled || !telemetryConfig.onFlush) {
78
+ return;
79
+ }
80
+ try {
81
+ await telemetryConfig.onFlush();
82
+ }
83
+ catch {
84
+ // Silently ignore flush errors
85
+ }
86
+ }
87
+ /**
88
+ * Reset telemetry configuration. Primarily for testing.
89
+ */
90
+ export function resetTelemetry() {
91
+ telemetryConfig = null;
92
+ }
93
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/browser/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAmD/D,IAAI,eAAe,GAAqC,IAAI,CAAC;AAE7D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAiC;IACnE,eAAe,GAAG,MAAM,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IACjC,OAAO,eAAe,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IACjC,OAAO,eAAe,EAAE,OAAO,IAAI,KAAK,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CACnC,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,OAAgB,EAChB,OAAe,EACf,KAAc;IAEd,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;QAC/B,OAAO;IACR,CAAC;IAED,MAAM,KAAK,GAA6B;QACvC,SAAS;QACT,SAAS;QACT,UAAU;QACV,OAAO;QACP,OAAO;QACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,UAAU,EAAE,mBAAmB;QAC/B,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzC,CAAC;IAEF,IAAI,CAAC;QACJ,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACR,2CAA2C;IAC5C,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IACnC,IAAI,CAAC,eAAe,EAAE,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC3D,OAAO;IACR,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACR,+BAA+B;IAChC,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC7B,eAAe,GAAG,IAAI,CAAC;AACxB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Command } from "commander";
2
+ import type { CliConfig } from "../config.js";
3
+ export declare function registerAccessControlCommands(program: Command, config: CliConfig): void;
4
+ //# sourceMappingURL=access-control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/access-control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAO9C,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAkMvF"}
@@ -0,0 +1,183 @@
1
+ import { EXIT_CODES } from "../config.js";
2
+ import { getAuthHeaders } from "../utils/auth.js";
3
+ import { getEffectiveConfig } from "../utils/command-config.js";
4
+ import { fetchWithBackendHandling } from "../utils/fetcher.js";
5
+ import { printError, printJson, printSuccess, printTable } from "../utils/output.js";
6
+ export function registerAccessControlCommands(program, config) {
7
+ const access = program.command("access").description("Access control service commands");
8
+ const policies = access.command("policies").description("Policy management");
9
+ policies
10
+ .command("list")
11
+ .description("List access policies")
12
+ .option("--limit <number>", "Number of policies to return", "100")
13
+ .option("--cursor <cursor>", "Pagination cursor")
14
+ .action(async (options, command) => {
15
+ if (!config.tenantId) {
16
+ printError("QNSP_TENANT_ID must be set");
17
+ process.exit(EXIT_CODES.INVALID_ARGUMENTS);
18
+ return;
19
+ }
20
+ try {
21
+ const effectiveConfig = getEffectiveConfig(config, command);
22
+ if (!effectiveConfig.tenantId) {
23
+ printError("QNSP_TENANT_ID must be set");
24
+ process.exit(EXIT_CODES.INVALID_ARGUMENTS);
25
+ return;
26
+ }
27
+ const headers = await getAuthHeaders(effectiveConfig);
28
+ const accessUrl = effectiveConfig.accessControlServiceUrl;
29
+ const url = new URL(`${accessUrl}/access/v1/tenants/${effectiveConfig.tenantId}/policies`);
30
+ url.searchParams.set("limit", options.limit);
31
+ if (options.cursor) {
32
+ url.searchParams.set("cursor", options.cursor);
33
+ }
34
+ const response = await fetchWithBackendHandling(effectiveConfig, url.toString(), {
35
+ headers,
36
+ });
37
+ if (!response.ok && [429, 402, 403, 507].includes(response.status)) {
38
+ return;
39
+ }
40
+ if (!response.ok) {
41
+ const errorText = await response.text();
42
+ printError(`Failed to list policies: ${response.status} ${errorText}`);
43
+ process.exit(EXIT_CODES.GENERAL_ERROR);
44
+ return;
45
+ }
46
+ const data = (await response.json());
47
+ if (effectiveConfig.outputFormat === "json") {
48
+ printJson(data);
49
+ }
50
+ else {
51
+ printTable((data.items ?? []));
52
+ }
53
+ process.exit(EXIT_CODES.SUCCESS);
54
+ return;
55
+ }
56
+ catch (error) {
57
+ printError(error instanceof Error ? error.message : "Failed to list policies");
58
+ process.exit(EXIT_CODES.NETWORK_ERROR);
59
+ return;
60
+ }
61
+ });
62
+ policies
63
+ .command("get")
64
+ .description("Get policy details")
65
+ .argument("<policyId>", "Policy identifier")
66
+ .action(async (policyId, _options, command) => {
67
+ if (!config.tenantId) {
68
+ printError("QNSP_TENANT_ID must be set");
69
+ process.exit(EXIT_CODES.INVALID_ARGUMENTS);
70
+ return;
71
+ }
72
+ try {
73
+ const effectiveConfig = getEffectiveConfig(config, command);
74
+ if (!effectiveConfig.tenantId) {
75
+ printError("QNSP_TENANT_ID must be set");
76
+ process.exit(EXIT_CODES.INVALID_ARGUMENTS);
77
+ return;
78
+ }
79
+ const headers = await getAuthHeaders(effectiveConfig);
80
+ const accessUrl = effectiveConfig.accessControlServiceUrl;
81
+ const url = new URL(`${accessUrl}/access/v1/policies/${policyId}`);
82
+ const response = await fetchWithBackendHandling(effectiveConfig, url.toString(), {
83
+ headers,
84
+ });
85
+ if (!response.ok && [429, 402, 403, 507].includes(response.status)) {
86
+ return;
87
+ }
88
+ if (response.status === 404) {
89
+ printError(`Policy not found: ${policyId}`);
90
+ process.exit(EXIT_CODES.NOT_FOUND);
91
+ return;
92
+ }
93
+ if (!response.ok) {
94
+ const errorText = await response.text();
95
+ printError(`Failed to get policy: ${response.status} ${errorText}`);
96
+ process.exit(EXIT_CODES.GENERAL_ERROR);
97
+ return;
98
+ }
99
+ const data = await response.json();
100
+ if (effectiveConfig.outputFormat === "json") {
101
+ printJson(data);
102
+ }
103
+ else {
104
+ printTable(data);
105
+ }
106
+ process.exit(EXIT_CODES.SUCCESS);
107
+ return;
108
+ }
109
+ catch (error) {
110
+ printError(error instanceof Error ? error.message : "Failed to get policy");
111
+ process.exit(EXIT_CODES.NETWORK_ERROR);
112
+ return;
113
+ }
114
+ });
115
+ policies
116
+ .command("create")
117
+ .description("Create access policy")
118
+ .requiredOption("--name <name>", "Policy name")
119
+ .requiredOption("--effect <effect>", "Policy effect (allow/deny)")
120
+ .requiredOption("--actions <actions>", "Comma-separated actions")
121
+ .requiredOption("--resources <resources>", "Comma-separated resources")
122
+ .action(async (options, command) => {
123
+ if (!config.tenantId) {
124
+ printError("QNSP_TENANT_ID must be set");
125
+ process.exit(EXIT_CODES.INVALID_ARGUMENTS);
126
+ return;
127
+ }
128
+ try {
129
+ const effectiveConfig = getEffectiveConfig(config, command);
130
+ if (!effectiveConfig.tenantId) {
131
+ printError("QNSP_TENANT_ID must be set");
132
+ process.exit(EXIT_CODES.INVALID_ARGUMENTS);
133
+ return;
134
+ }
135
+ const headers = await getAuthHeaders(effectiveConfig);
136
+ const accessUrl = effectiveConfig.accessControlServiceUrl;
137
+ const response = await fetchWithBackendHandling(effectiveConfig, `${accessUrl}/access/v1/policies`, {
138
+ method: "POST",
139
+ headers,
140
+ body: JSON.stringify({
141
+ tenantId: effectiveConfig.tenantId,
142
+ name: options.name,
143
+ statement: {
144
+ effect: options.effect,
145
+ actions: options.actions
146
+ .split(",")
147
+ .map((v) => v.trim())
148
+ .filter(Boolean),
149
+ resources: options.resources
150
+ .split(",")
151
+ .map((v) => v.trim())
152
+ .filter(Boolean),
153
+ },
154
+ }),
155
+ });
156
+ if (!response.ok && [429, 402, 403, 507].includes(response.status)) {
157
+ return;
158
+ }
159
+ if (!response.ok) {
160
+ const errorText = await response.text();
161
+ printError(`Failed to create policy: ${response.status} ${errorText}`);
162
+ process.exit(EXIT_CODES.GENERAL_ERROR);
163
+ return;
164
+ }
165
+ const data = await response.json();
166
+ if (effectiveConfig.outputFormat === "json") {
167
+ printJson(data);
168
+ }
169
+ else {
170
+ printSuccess(`Policy created: ${data.id}`);
171
+ printTable(data);
172
+ }
173
+ process.exit(EXIT_CODES.SUCCESS);
174
+ return;
175
+ }
176
+ catch (error) {
177
+ printError(error instanceof Error ? error.message : "Failed to create policy");
178
+ process.exit(EXIT_CODES.NETWORK_ERROR);
179
+ return;
180
+ }
181
+ });
182
+ }
183
+ //# sourceMappingURL=access-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-control.js","sourceRoot":"","sources":["../../../src/cli/commands/access-control.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Command } from "commander";
2
+ import type { CliConfig } from "../config.js";
3
+ export declare function registerAuditCommands(program: Command, config: CliConfig): void;
4
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAO9C,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAoE/E"}
@@ -0,0 +1,70 @@
1
+ import { EXIT_CODES } from "../config.js";
2
+ import { getAuthHeaders } from "../utils/auth.js";
3
+ import { getEffectiveConfig } from "../utils/command-config.js";
4
+ import { fetchWithBackendHandling } from "../utils/fetcher.js";
5
+ import { printError, printJson, printTable } from "../utils/output.js";
6
+ export function registerAuditCommands(program, config) {
7
+ const audit = program.command("audit").description("Audit event commands");
8
+ const events = audit.command("events").description("Event operations");
9
+ events
10
+ .command("list")
11
+ .description("List audit events")
12
+ .option("--limit <number>", "Number of events to return (1-200)", "50")
13
+ .option("--cursor <cursor>", "Pagination cursor")
14
+ .option("--source-service <service>", "Filter by source service")
15
+ .option("--topic <topic>", "Filter by topic")
16
+ .option("--since <timestamp>", "Filter events since timestamp")
17
+ .action(async (options, command) => {
18
+ if (!config.tenantId) {
19
+ printError("QNSP_TENANT_ID must be set");
20
+ process.exit(EXIT_CODES.INVALID_ARGUMENTS);
21
+ return;
22
+ }
23
+ try {
24
+ const effectiveConfig = getEffectiveConfig(config, command);
25
+ const headers = await getAuthHeaders(effectiveConfig);
26
+ const url = new URL(`${effectiveConfig.auditServiceUrl}/audit/v1/events`);
27
+ url.searchParams.set("tenantId", effectiveConfig.tenantId ?? "");
28
+ url.searchParams.set("limit", options.limit);
29
+ if (options.cursor) {
30
+ url.searchParams.set("cursor", options.cursor);
31
+ }
32
+ if (options.sourceService) {
33
+ url.searchParams.set("sourceService", options.sourceService);
34
+ }
35
+ if (options.topic) {
36
+ url.searchParams.set("topic", options.topic);
37
+ }
38
+ if (options.since) {
39
+ url.searchParams.set("since", options.since);
40
+ }
41
+ const response = await fetchWithBackendHandling(effectiveConfig, url.toString(), {
42
+ headers,
43
+ });
44
+ if (!response.ok && [429, 402, 403, 507].includes(response.status)) {
45
+ return;
46
+ }
47
+ if (!response.ok) {
48
+ const errorText = await response.text();
49
+ printError(`Failed to list events: ${response.status} ${errorText}`);
50
+ process.exit(EXIT_CODES.GENERAL_ERROR);
51
+ return;
52
+ }
53
+ const data = (await response.json());
54
+ if (effectiveConfig.outputFormat === "json") {
55
+ printJson(data);
56
+ }
57
+ else {
58
+ printTable((data.items ?? []));
59
+ }
60
+ process.exit(EXIT_CODES.SUCCESS);
61
+ return;
62
+ }
63
+ catch (error) {
64
+ printError(error instanceof Error ? error.message : "Failed to list events");
65
+ process.exit(EXIT_CODES.NETWORK_ERROR);
66
+ return;
67
+ }
68
+ });
69
+ }
70
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/cli/commands/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Command } from "commander";
2
+ import type { CliConfig } from "../config.js";
3
+ export declare function registerAuthCommands(program: Command, config: CliConfig): void;
4
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CA2C9E"}