@sparkvault/sdk 1.0.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.
- package/README.md +720 -0
- package/dist/auto-init.d.ts +51 -0
- package/dist/config.d.ts +25 -0
- package/dist/errors.d.ts +30 -0
- package/dist/http.d.ts +48 -0
- package/dist/identity/api.d.ts +101 -0
- package/dist/identity/container.d.ts +49 -0
- package/dist/identity/handlers/index.d.ts +9 -0
- package/dist/identity/handlers/passkey-handler.d.ts +52 -0
- package/dist/identity/handlers/sparklink-handler.d.ts +43 -0
- package/dist/identity/handlers/totp-handler.d.ts +52 -0
- package/dist/identity/index.d.ts +69 -0
- package/dist/identity/inline-container.d.ts +60 -0
- package/dist/identity/methods.d.ts +23 -0
- package/dist/identity/modal.d.ts +74 -0
- package/dist/identity/renderer.d.ts +97 -0
- package/dist/identity/state.d.ts +95 -0
- package/dist/identity/styles.d.ts +22 -0
- package/dist/identity/types.d.ts +183 -0
- package/dist/identity/utils/cooldown-timer.d.ts +73 -0
- package/dist/identity/utils/index.d.ts +5 -0
- package/dist/identity/utils.d.ts +27 -0
- package/dist/identity/views/base.d.ts +62 -0
- package/dist/identity/views/error.d.ts +25 -0
- package/dist/identity/views/icons.d.ts +34 -0
- package/dist/identity/views/identity-input.d.ts +48 -0
- package/dist/identity/views/index.d.ts +14 -0
- package/dist/identity/views/loading.d.ts +15 -0
- package/dist/identity/views/method-select.d.ts +29 -0
- package/dist/identity/views/passkey-prompt.d.ts +22 -0
- package/dist/identity/views/passkey.d.ts +38 -0
- package/dist/identity/views/sparklink-waiting.d.ts +33 -0
- package/dist/identity/views/totp-verify.d.ts +58 -0
- package/dist/index.d.ts +658 -0
- package/dist/logger.d.ts +45 -0
- package/dist/rng/index.d.ts +54 -0
- package/dist/rng/types.d.ts +26 -0
- package/dist/sparks/index.d.ts +37 -0
- package/dist/sparks/types.d.ts +56 -0
- package/dist/sparkvault.cjs.js +6152 -0
- package/dist/sparkvault.cjs.js.map +1 -0
- package/dist/sparkvault.esm.js +6137 -0
- package/dist/sparkvault.esm.js.map +1 -0
- package/dist/sparkvault.js +2 -0
- package/dist/sparkvault.js.map +1 -0
- package/dist/utils/base64url.d.ts +49 -0
- package/dist/utils/retry.d.ts +32 -0
- package/dist/vaults/index.d.ts +83 -0
- package/dist/vaults/types.d.ts +120 -0
- package/package.json +64 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RNG Module
|
|
3
|
+
*
|
|
4
|
+
* Generate cryptographically secure random numbers.
|
|
5
|
+
* Uses hybrid entropy from AWS KMS HSM + local CSPRNG.
|
|
6
|
+
*/
|
|
7
|
+
import { HttpClient } from '../http';
|
|
8
|
+
import type { GenerateOptions, RandomResult } from './types';
|
|
9
|
+
export declare class RNGModule {
|
|
10
|
+
private readonly http;
|
|
11
|
+
constructor(http: HttpClient);
|
|
12
|
+
/**
|
|
13
|
+
* Generate cryptographically secure random bytes.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* const result = await sv.rng.generate({ bytes: 32, format: 'hex' });
|
|
17
|
+
* console.log(result.value);
|
|
18
|
+
*/
|
|
19
|
+
generate(options: GenerateOptions): Promise<RandomResult>;
|
|
20
|
+
/**
|
|
21
|
+
* Generate a random UUID v4.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* const uuid = await sv.rng.uuid();
|
|
25
|
+
* console.log(uuid); // 'f47ac10b-58cc-4372-a567-0e02b2c3d479'
|
|
26
|
+
*/
|
|
27
|
+
uuid(): Promise<string>;
|
|
28
|
+
/**
|
|
29
|
+
* Generate a random hex string.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* const hex = await sv.rng.hex(16);
|
|
33
|
+
* console.log(hex); // '1a2b3c4d5e6f7890...'
|
|
34
|
+
*/
|
|
35
|
+
hex(bytes: number): Promise<string>;
|
|
36
|
+
/**
|
|
37
|
+
* Generate a random alphanumeric string.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* const code = await sv.rng.alphanumeric(8);
|
|
41
|
+
* console.log(code); // 'A1B2C3D4'
|
|
42
|
+
*/
|
|
43
|
+
alphanumeric(bytes: number): Promise<string>;
|
|
44
|
+
/**
|
|
45
|
+
* Generate a random password with special characters.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* const password = await sv.rng.password(16);
|
|
49
|
+
* console.log(password); // 'aB3$xY7!mN9@pQ2#'
|
|
50
|
+
*/
|
|
51
|
+
password(bytes: number): Promise<string>;
|
|
52
|
+
private validateOptions;
|
|
53
|
+
}
|
|
54
|
+
export type { GenerateOptions, RandomResult, RNGFormat } from './types';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RNG Module Types
|
|
3
|
+
*/
|
|
4
|
+
export type RNGFormat = 'hex' | 'base64' | 'base64url' | 'alphanumeric' | 'alphanumeric-mixed' | 'password' | 'numeric' | 'uuid' | 'bytes';
|
|
5
|
+
export interface GenerateOptions {
|
|
6
|
+
/** Number of bytes to generate (1-1024) */
|
|
7
|
+
bytes: number;
|
|
8
|
+
/** Output format (default: 'base64url') */
|
|
9
|
+
format?: RNGFormat;
|
|
10
|
+
}
|
|
11
|
+
export interface RandomResult {
|
|
12
|
+
/** Generated random value */
|
|
13
|
+
value: string | number[];
|
|
14
|
+
/** Number of bytes generated */
|
|
15
|
+
bytes: number;
|
|
16
|
+
/** Format used */
|
|
17
|
+
format: RNGFormat;
|
|
18
|
+
/** Reference ID for billing/audit */
|
|
19
|
+
referenceId: string;
|
|
20
|
+
}
|
|
21
|
+
export interface GenerateResponse {
|
|
22
|
+
random_bytes_b64: string;
|
|
23
|
+
num_bytes: number;
|
|
24
|
+
format: string;
|
|
25
|
+
reference_id: string;
|
|
26
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sparks Module
|
|
3
|
+
*
|
|
4
|
+
* Create and read ephemeral encrypted secrets.
|
|
5
|
+
* Sparks are destroyed after being read (burn-on-read).
|
|
6
|
+
*/
|
|
7
|
+
import { HttpClient } from '../http';
|
|
8
|
+
import type { CreateSparkOptions, Spark, SparkPayload } from './types';
|
|
9
|
+
export declare class SparksModule {
|
|
10
|
+
private readonly http;
|
|
11
|
+
constructor(http: HttpClient);
|
|
12
|
+
/**
|
|
13
|
+
* Create an ephemeral encrypted secret.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* const spark = await sv.sparks.create({
|
|
17
|
+
* payload: 'my secret data',
|
|
18
|
+
* ttl: 3600,
|
|
19
|
+
* maxReads: 1
|
|
20
|
+
* });
|
|
21
|
+
* console.log(spark.url);
|
|
22
|
+
*/
|
|
23
|
+
create(options: CreateSparkOptions): Promise<Spark>;
|
|
24
|
+
/**
|
|
25
|
+
* Read and burn a spark.
|
|
26
|
+
* The spark is destroyed after the configured number of reads.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* const payload = await sv.sparks.read('spk_abc123');
|
|
30
|
+
* console.log(payload.data);
|
|
31
|
+
*/
|
|
32
|
+
read(id: string, password?: string): Promise<SparkPayload>;
|
|
33
|
+
private validateCreateOptions;
|
|
34
|
+
private encodePayload;
|
|
35
|
+
private decodePayload;
|
|
36
|
+
}
|
|
37
|
+
export type { CreateSparkOptions, Spark, SparkPayload, } from './types';
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sparks Module Types
|
|
3
|
+
*/
|
|
4
|
+
export interface CreateSparkOptions {
|
|
5
|
+
/** Secret payload to encrypt */
|
|
6
|
+
payload: string | Uint8Array;
|
|
7
|
+
/** Time-to-live in seconds (default: 3600) */
|
|
8
|
+
ttl?: number;
|
|
9
|
+
/** Maximum number of reads before destruction (default: 1) */
|
|
10
|
+
maxReads?: number;
|
|
11
|
+
/** Optional password protection */
|
|
12
|
+
password?: string;
|
|
13
|
+
/** Optional name/label for the spark */
|
|
14
|
+
name?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface Spark {
|
|
17
|
+
/** Spark ID */
|
|
18
|
+
id: string;
|
|
19
|
+
/** Direct URL to read the spark */
|
|
20
|
+
url: string;
|
|
21
|
+
/** Expiry timestamp (Unix seconds) */
|
|
22
|
+
expiresAt: number;
|
|
23
|
+
/** Maximum reads remaining */
|
|
24
|
+
maxReads: number;
|
|
25
|
+
/** Name/label if provided */
|
|
26
|
+
name?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface ReadSparkOptions {
|
|
29
|
+
/** Spark ID */
|
|
30
|
+
id: string;
|
|
31
|
+
/** Password if the spark is password-protected */
|
|
32
|
+
password?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface SparkPayload {
|
|
35
|
+
/** Decrypted data */
|
|
36
|
+
data: string | Uint8Array;
|
|
37
|
+
/** When the spark was read (Unix seconds) */
|
|
38
|
+
readAt: number;
|
|
39
|
+
/** Whether the spark was destroyed after reading */
|
|
40
|
+
burned: boolean;
|
|
41
|
+
/** Reads remaining (0 if burned) */
|
|
42
|
+
readsRemaining: number;
|
|
43
|
+
}
|
|
44
|
+
export interface CreateSparkResponse {
|
|
45
|
+
spark_id: string;
|
|
46
|
+
url: string;
|
|
47
|
+
expires_at: number;
|
|
48
|
+
max_reads: number;
|
|
49
|
+
name?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface ReadSparkResponse {
|
|
52
|
+
payload: string;
|
|
53
|
+
read_at: number;
|
|
54
|
+
burned: boolean;
|
|
55
|
+
reads_remaining: number;
|
|
56
|
+
}
|