@qnsp/storage-sdk 0.2.1 → 0.3.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.
- package/.turbo/turbo-build.log +4 -0
- package/CHANGELOG.md +49 -0
- package/LICENSE +21 -7
- package/README.md +22 -72
- package/dist/event-envelope.d.ts.map +1 -1
- package/dist/event-envelope.js +1 -2
- package/dist/event-envelope.js.map +1 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +0 -1
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +204 -22
- package/dist/index.js.map +1 -1
- package/dist/validation.d.ts +10 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +20 -0
- package/dist/validation.js.map +1 -0
- package/package.json +59 -39
- package/src/event-envelope.ts +1 -2
- package/src/events.ts +0 -2
- package/src/index.test.ts +92 -49
- package/src/index.ts +229 -26
- package/src/validation.ts +21 -0
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
# @qnsp/storage-sdk
|
|
2
2
|
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Enforce mandatory API key at SDK construction time (BREAKING)
|
|
8
|
+
|
|
9
|
+
- All SDK clients (except @qnsp/browser-sdk) now require `apiKey` at
|
|
10
|
+
construction time. Constructors throw a clear error with signup URL,
|
|
11
|
+
free tier details, and documentation link if apiKey is missing or empty.
|
|
12
|
+
- Removed runtime 401 no-apiKey checks — validation is now fail-fast at
|
|
13
|
+
construction, not at request time.
|
|
14
|
+
- Removed conditional `if (apiKey)` guards on Authorization headers —
|
|
15
|
+
headers are always set since apiKey is guaranteed non-empty.
|
|
16
|
+
- @qnsp/kms-client: `apiToken` parameter is now required in the string
|
|
17
|
+
overload of `HttpKmsServiceClient` constructor.
|
|
18
|
+
- @qnsp/browser-sdk: Added opt-in telemetry module (`configureTelemetry`,
|
|
19
|
+
`recordTelemetryEvent`, `flushTelemetry`) for usage analytics without
|
|
20
|
+
collecting PII or cryptographic material. No API key required (local-only
|
|
21
|
+
PQC crypto).
|
|
22
|
+
- Updated cloud portal SDK factory functions to always pass apiKey.
|
|
23
|
+
- Updated crypto-inventory-service internal callers to always pass apiKey.
|
|
24
|
+
- Updated all SDK documentation examples to include apiKey.
|
|
25
|
+
- Updated developer hub quickstart code examples.
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- a0ccc65: feat: implement @qnsp/browser-sdk with browser-side PQC encryption
|
|
30
|
+
|
|
31
|
+
Phase 1-2 of browser-side PQC encryption implementation:
|
|
32
|
+
|
|
33
|
+
- Noble PQC provider (packages/cryptography/src/providers/noble.ts): pure JS implementation
|
|
34
|
+
supporting 18 FIPS algorithms (ML-KEM, ML-DSA, SLH-DSA) via @noble/post-quantum
|
|
35
|
+
- Browser SDK (packages/browser-sdk): client-side encryption (CSE) with ML-KEM + AES-256-GCM,
|
|
36
|
+
digital signatures with ML-DSA/SLH-DSA, CSE envelope serialization, runtime auto-detection
|
|
37
|
+
- Storage SDK browser compatibility: removed node: imports for cross-environment support
|
|
38
|
+
- 39 browser-sdk tests + 29 noble provider tests, all passing
|
|
39
|
+
|
|
40
|
+
- ad6d0d4: Automated changeset generated for staged code updates to keep release workflows fully synchronized.
|
|
41
|
+
- b7599c7: Automated changeset generated for staged code updates to keep release workflows fully synchronized.
|
|
42
|
+
- be1dd80: Automated changeset generated for staged code updates to keep release workflows fully synchronized.
|
|
43
|
+
- Enterprise-grade SDK hardening across all API-calling SDKs:
|
|
44
|
+
|
|
45
|
+
1. **Constructor validation**: Runtime guards for required API key/token with developer-friendly error messages
|
|
46
|
+
2. **HTTPS enforcement**: All SDKs reject non-HTTPS baseUrl in production (HTTP allowed only for localhost in development/test)
|
|
47
|
+
3. **Rate limiting with retry**: 429 handling with Retry-After header support, exponential backoff (2^attempt \* baseDelay, capped 30s), configurable maxRetries (default 3) and retryDelayMs (default 1000)
|
|
48
|
+
4. **Error message sanitization**: HTTP error responses no longer leak server error body text; errors report status code and status text only
|
|
49
|
+
5. **Input validation**: UUID validation via Zod for all tenant/resource ID parameters (storage-sdk, search-sdk, kms-client, ai-sdk)
|
|
50
|
+
6. **Telemetry hooks**: OpenTelemetry-based observability with configurable OTLP export, request counters, failure counters, and duration histograms (auth-sdk, crypto-inventory-sdk, kms-client, ai-sdk, search-sdk)
|
|
51
|
+
|
|
3
52
|
## 0.2.1
|
|
4
53
|
|
|
5
54
|
### Patch Changes
|
package/LICENSE
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Apache License
|
|
1
|
+
Apache License
|
|
2
2
|
Version 2.0, January 2004
|
|
3
3
|
http://www.apache.org/licenses/
|
|
4
4
|
|
|
@@ -48,11 +48,11 @@ Apache License
|
|
|
48
48
|
"Contribution" shall mean any work of authorship, including
|
|
49
49
|
the original version of the Work and any modifications or additions
|
|
50
50
|
to that Work or Derivative Works thereof, that is intentionally
|
|
51
|
-
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
51
|
+
submitted to the Licensor for inclusion in the Work by the copyright owner
|
|
52
52
|
or by an individual or Legal Entity authorized to submit on behalf of
|
|
53
53
|
the copyright owner. For the purposes of this definition, "submitted"
|
|
54
|
-
means any form of electronic, verbal, or written communication sent
|
|
55
|
-
the Licensor or its representatives, including but not limited to
|
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
|
56
56
|
communication on electronic mailing lists, source code control systems,
|
|
57
57
|
and issue tracking systems that are managed by, or on behalf of, the
|
|
58
58
|
Licensor for the purpose of discussing and improving the Work, but
|
|
@@ -60,7 +60,7 @@ Apache License
|
|
|
60
60
|
designated in writing by the copyright owner as "Not a Contribution."
|
|
61
61
|
|
|
62
62
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
63
|
-
on behalf of whom a Contribution has been received by Licensor and
|
|
63
|
+
on behalf of whom a Contribution has been received by the Licensor and
|
|
64
64
|
subsequently incorporated within the Work.
|
|
65
65
|
|
|
66
66
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
@@ -106,7 +106,7 @@ Apache License
|
|
|
106
106
|
(d) If the Work includes a "NOTICE" text file as part of its
|
|
107
107
|
distribution, then any Derivative Works that You distribute must
|
|
108
108
|
include a readable copy of the attribution notices contained
|
|
109
|
-
within such NOTICE file, excluding
|
|
109
|
+
within such NOTICE file, excluding any notices that do not
|
|
110
110
|
pertain to any part of the Derivative Works, in at least one
|
|
111
111
|
of the following places: within a NOTICE text file distributed
|
|
112
112
|
as part of the Derivative Works; within the Source form or
|
|
@@ -145,7 +145,7 @@ Apache License
|
|
|
145
145
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
146
146
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
147
147
|
implied, including, without limitation, any warranties or conditions
|
|
148
|
-
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, FITNESS FOR A
|
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
149
149
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
150
150
|
appropriateness of using or redistributing the Work and assume any
|
|
151
151
|
risks associated with Your exercise of permissions under this License.
|
|
@@ -174,3 +174,17 @@ Apache License
|
|
|
174
174
|
of your accepting any such warranty or additional liability.
|
|
175
175
|
|
|
176
176
|
END OF TERMS AND CONDITIONS
|
|
177
|
+
|
|
178
|
+
Copyright 2024-2026 CUI Labs Pte. Ltd.
|
|
179
|
+
|
|
180
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
181
|
+
you may not use this file except in compliance with the License.
|
|
182
|
+
You may obtain a copy of the License at
|
|
183
|
+
|
|
184
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
185
|
+
|
|
186
|
+
Unless required by applicable law or agreed to in writing, software
|
|
187
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
188
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
189
|
+
See the License for the specific language governing permissions and
|
|
190
|
+
limitations under the License.
|
package/README.md
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# @qnsp/storage-sdk
|
|
2
2
|
|
|
3
|
-
TypeScript SDK for the QNSP storage
|
|
4
|
-
|
|
3
|
+
TypeScript SDK client for the QNSP storage-service API.
|
|
4
|
+
|
|
5
|
+
Part of the [Quantum-Native Security Platform (QNSP)](https://qnsp.cuilabs.io).
|
|
5
6
|
|
|
6
7
|
## Installation
|
|
7
8
|
|
|
@@ -9,89 +10,38 @@ policies, legal holds, compliance metadata, and event subscriptions.
|
|
|
9
10
|
pnpm add @qnsp/storage-sdk
|
|
10
11
|
```
|
|
11
12
|
|
|
12
|
-
##
|
|
13
|
-
|
|
14
|
-
Authenticate with a **service token** (issued by `auth-service` or the cloud portal API key UI) and
|
|
15
|
-
pass it to `apiKey`. Set `tenantId` to scope quotas and telemetry labels.
|
|
13
|
+
## Quick Start
|
|
16
14
|
|
|
17
|
-
```
|
|
18
|
-
import { StorageClient
|
|
15
|
+
```typescript
|
|
16
|
+
import { StorageClient } from "@qnsp/storage-sdk";
|
|
19
17
|
|
|
20
18
|
const storage = new StorageClient({
|
|
21
|
-
baseUrl: "https://
|
|
22
|
-
apiKey:
|
|
23
|
-
tenantId: "
|
|
24
|
-
telemetry: createStorageClientTelemetry({
|
|
25
|
-
serviceName: "storage-uploader",
|
|
26
|
-
serviceVersion: "1.0.0",
|
|
27
|
-
otlpEndpoint: process.env.OTLP_ENDPOINT!,
|
|
28
|
-
}),
|
|
29
|
-
});
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Tier requirements
|
|
33
|
-
|
|
34
|
-
| Capability | Minimum tier | Notes |
|
|
35
|
-
|------------|--------------|-------|
|
|
36
|
-
| Upload/download, lifecycle, compliance | `free` | Included in Always Free tier (5GB, 2,000 API calls) |
|
|
37
|
-
| Extended storage quotas | Based on paid tier | Limits enforced by backend using `@qnsp/shared-kernel` |
|
|
38
|
-
|
|
39
|
-
All tenants can instantiate the SDK, but exceeding tier quotas triggers backend `TierError`
|
|
40
|
-
responses. Upgrade at <https://cloud.qnsp.cuilabs.io/billing>.
|
|
41
|
-
|
|
42
|
-
## Usage example
|
|
43
|
-
|
|
44
|
-
```ts
|
|
45
|
-
import {
|
|
46
|
-
StorageClient,
|
|
47
|
-
StorageEventsClient,
|
|
48
|
-
createStorageClientTelemetry,
|
|
49
|
-
} from "@qnsp/storage-sdk";
|
|
50
|
-
|
|
51
|
-
const client = new StorageClient({
|
|
52
|
-
baseUrl: "https://storage.example.com",
|
|
53
|
-
apiKey: process.env.QNSP_SERVICE_TOKEN!,
|
|
54
|
-
tenantId: "tenant_123",
|
|
19
|
+
baseUrl: "https://api.qnsp.cuilabs.io",
|
|
20
|
+
apiKey: "YOUR_API_KEY",
|
|
21
|
+
tenantId: "your-tenant-id",
|
|
55
22
|
});
|
|
56
23
|
|
|
57
|
-
const upload = await
|
|
58
|
-
name: "
|
|
24
|
+
const upload = await storage.initiateUpload({
|
|
25
|
+
name: "report.pdf",
|
|
59
26
|
mimeType: "application/pdf",
|
|
60
|
-
sizeBytes:
|
|
61
|
-
classification: "confidential",
|
|
27
|
+
sizeBytes: data.byteLength,
|
|
62
28
|
});
|
|
63
29
|
|
|
64
|
-
await
|
|
65
|
-
await
|
|
66
|
-
|
|
67
|
-
const result = await client.completeUpload(upload.uploadId);
|
|
68
|
-
const stream = await client.downloadStream(result.documentId, result.version);
|
|
69
|
-
|
|
70
|
-
const events = new StorageEventsClient({ baseUrl: "https://storage.example.com" });
|
|
71
|
-
const replicationEvents = await events.fetchEvents("storage.document.replicated");
|
|
30
|
+
await storage.uploadPart(upload.uploadId, 1, data);
|
|
31
|
+
await storage.completeUpload(upload.uploadId);
|
|
72
32
|
```
|
|
73
33
|
|
|
74
|
-
##
|
|
34
|
+
## Documentation
|
|
75
35
|
|
|
76
|
-
|
|
77
|
-
|
|
36
|
+
- [SDK Reference](https://docs.qnsp.cuilabs.io/sdk/storage-sdk)
|
|
37
|
+
- [API Documentation](https://docs.qnsp.cuilabs.io/api)
|
|
38
|
+
- [Getting Started](https://docs.qnsp.cuilabs.io/quickstart)
|
|
78
39
|
|
|
79
|
-
|
|
80
|
-
- `storage_sdk_request_failures_total`
|
|
81
|
-
- `storage_sdk_request_duration_ms`
|
|
82
|
-
- `storage_sdk_bytes_total`
|
|
40
|
+
## Requirements
|
|
83
41
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
## Related documentation
|
|
87
|
-
|
|
88
|
-
- [Developer onboarding guide](../../docs/guides/developer-onboarding.md#sdk-quick-links)
|
|
89
|
-
- [Storage service plan](../../docs/service-plans/storage-service-plan.md)
|
|
90
|
-
- [Tier limits](../shared-kernel/src/tier-limits.ts)
|
|
42
|
+
- Node.js >= 20.0.0
|
|
43
|
+
- A QNSP account and API key ([sign up free](https://cloud.qnsp.cuilabs.io/signup))
|
|
91
44
|
|
|
92
45
|
## License
|
|
93
46
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
© 2025 QNSP - CUI LABS, Singapore
|
|
97
|
-
|
|
47
|
+
[Apache-2.0](./LICENSE)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-envelope.d.ts","sourceRoot":"","sources":["../src/event-envelope.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event-envelope.d.ts","sourceRoot":"","sources":["../src/event-envelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAa9B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;iBAe9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,aAAa,CAAC,QAAQ,GAAG,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,GAAG;IACrF,OAAO,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,0BAA0B,CAAC,QAAQ;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAC3C,OAAO,EAAE,0BAA0B,CAAC,QAAQ,CAAC,GAC3C,aAAa,CAAC,QAAQ,CAAC,CASzB"}
|
package/dist/event-envelope.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
2
1
|
import { z } from "zod";
|
|
3
2
|
export const eventMetadataSchema = z.object({
|
|
4
3
|
correlationId: z.string().uuid().optional(),
|
|
@@ -18,7 +17,7 @@ export const eventEnvelopeSchema = z.object({
|
|
|
18
17
|
id: z
|
|
19
18
|
.string()
|
|
20
19
|
.uuid()
|
|
21
|
-
.default(() => randomUUID()),
|
|
20
|
+
.default(() => crypto.randomUUID()),
|
|
22
21
|
topic: z.string().min(1),
|
|
23
22
|
version: z.string().min(1).default("1"),
|
|
24
23
|
occuredAt: z
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-envelope.js","sourceRoot":"","sources":["../src/event-envelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"event-envelope.js","sourceRoot":"","sources":["../src/event-envelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SAC1B,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,CAAC;SACH,MAAM,EAAE;SACR,IAAI,EAAE;SACN,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACvC,SAAS,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SAC1B,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACnC,CAAC,CAAC;CACH,CAAC,CAAC;AAcH,MAAM,UAAU,mBAAmB,CAClC,OAA6C;IAE7C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC;QAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC1B,CAAC,CAAC;IAEH,OAAO,QAAmC,CAAC;AAC5C,CAAC"}
|
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EACX,sBAAsB,EACtB,4BAA4B,EAE5B,MAAM,oBAAoB,CAAC;AAG5B,KAAK,mBAAmB,GAAG,aAAa,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAEH,KAAK,UAAU,GAAG,aAAa,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC,CAAC;AAEH,KAAK,YAAY,GAAG,aAAa,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,sBAAsB,GAAG,4BAA4B,CAAC;CAC3E;AAQD,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAE3B,MAAM,EAAE,mBAAmB;IAoBjC,WAAW,CAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,YAAY,EAAE,CAAC;IAuG1B,OAAO,CAAC,oBAAoB;CAM5B"}
|
package/dist/events.js
CHANGED
package/dist/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,7 +16,9 @@ export interface PqcMetadata {
|
|
|
16
16
|
readonly keyId: string;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
* Mapping from internal algorithm names to NIST
|
|
19
|
+
* Mapping from internal algorithm names to NIST/standards display names.
|
|
20
|
+
* Covers all 90 PQC algorithms supported by QNSP.
|
|
21
|
+
* Canonical source: @qnsp/cryptography pqc-standards.ts ALGORITHM_NIST_NAMES
|
|
20
22
|
*/
|
|
21
23
|
export declare const ALGORITHM_TO_NIST: Record<string, string>;
|
|
22
24
|
/**
|
|
@@ -25,9 +27,11 @@ export declare const ALGORITHM_TO_NIST: Record<string, string>;
|
|
|
25
27
|
export declare function toNistAlgorithmName(algorithm: string): string;
|
|
26
28
|
export interface StorageClientConfig {
|
|
27
29
|
readonly baseUrl: string;
|
|
28
|
-
readonly apiKey
|
|
30
|
+
readonly apiKey: string;
|
|
29
31
|
readonly tenantId: string;
|
|
30
32
|
readonly timeoutMs?: number;
|
|
33
|
+
readonly maxRetries?: number;
|
|
34
|
+
readonly retryDelayMs?: number;
|
|
31
35
|
readonly telemetry?: StorageClientTelemetry | StorageClientTelemetryConfig;
|
|
32
36
|
}
|
|
33
37
|
export interface InitiateUploadOptions {
|
|
@@ -135,8 +139,12 @@ export declare class StorageClient {
|
|
|
135
139
|
private readonly config;
|
|
136
140
|
private readonly telemetry;
|
|
137
141
|
private readonly targetService;
|
|
142
|
+
private activationPromise;
|
|
143
|
+
private readonly activationConfig;
|
|
144
|
+
private ensureActivated;
|
|
138
145
|
constructor(config: StorageClientConfig);
|
|
139
146
|
private request;
|
|
147
|
+
private requestWithRetry;
|
|
140
148
|
initiateUpload(options: InitiateUploadOptions): Promise<{
|
|
141
149
|
readonly uploadId: string;
|
|
142
150
|
readonly documentId: string;
|
|
@@ -213,4 +221,5 @@ export declare class StorageClient {
|
|
|
213
221
|
}
|
|
214
222
|
export * from "./events.js";
|
|
215
223
|
export * from "./observability.js";
|
|
224
|
+
export * from "./validation.js";
|
|
216
225
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,sBAAsB,EACtB,4BAA4B,EAE5B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|