@kaiz11/stack-client 0.0.14
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/LICENSE +32 -0
- package/README.md +586 -0
- package/dist/accounts/accounts-client.d.ts +188 -0
- package/dist/accounts/accounts-client.d.ts.map +1 -0
- package/dist/accounts/accounts-client.js +264 -0
- package/dist/accounts/accounts-client.js.map +1 -0
- package/dist/accounts/index.d.ts +8 -0
- package/dist/accounts/index.d.ts.map +1 -0
- package/dist/accounts/index.js +8 -0
- package/dist/accounts/index.js.map +1 -0
- package/dist/accounts/mock-accounts.d.ts +90 -0
- package/dist/accounts/mock-accounts.d.ts.map +1 -0
- package/dist/accounts/mock-accounts.js +434 -0
- package/dist/accounts/mock-accounts.js.map +1 -0
- package/dist/accounts/types.d.ts +180 -0
- package/dist/accounts/types.d.ts.map +1 -0
- package/dist/accounts/types.js +59 -0
- package/dist/accounts/types.js.map +1 -0
- package/dist/auth/auth-client.d.ts +224 -0
- package/dist/auth/auth-client.d.ts.map +1 -0
- package/dist/auth/auth-client.js +230 -0
- package/dist/auth/auth-client.js.map +1 -0
- package/dist/auth/base-auth.d.ts +44 -0
- package/dist/auth/base-auth.d.ts.map +1 -0
- package/dist/auth/base-auth.js +55 -0
- package/dist/auth/base-auth.js.map +1 -0
- package/dist/auth/index.d.ts +11 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +11 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/methods/admin.d.ts +59 -0
- package/dist/auth/methods/admin.d.ts.map +1 -0
- package/dist/auth/methods/admin.js +55 -0
- package/dist/auth/methods/admin.js.map +1 -0
- package/dist/auth/methods/index.d.ts +9 -0
- package/dist/auth/methods/index.d.ts.map +1 -0
- package/dist/auth/methods/index.js +8 -0
- package/dist/auth/methods/index.js.map +1 -0
- package/dist/auth/methods/magic-link.d.ts +27 -0
- package/dist/auth/methods/magic-link.d.ts.map +1 -0
- package/dist/auth/methods/magic-link.js +37 -0
- package/dist/auth/methods/magic-link.js.map +1 -0
- package/dist/auth/methods/mfa.d.ts +92 -0
- package/dist/auth/methods/mfa.d.ts.map +1 -0
- package/dist/auth/methods/mfa.js +153 -0
- package/dist/auth/methods/mfa.js.map +1 -0
- package/dist/auth/methods/oauth.d.ts +62 -0
- package/dist/auth/methods/oauth.d.ts.map +1 -0
- package/dist/auth/methods/oauth.js +165 -0
- package/dist/auth/methods/oauth.js.map +1 -0
- package/dist/auth/methods/otp.d.ts +43 -0
- package/dist/auth/methods/otp.d.ts.map +1 -0
- package/dist/auth/methods/otp.js +66 -0
- package/dist/auth/methods/otp.js.map +1 -0
- package/dist/auth/methods/password.d.ts +64 -0
- package/dist/auth/methods/password.d.ts.map +1 -0
- package/dist/auth/methods/password.js +116 -0
- package/dist/auth/methods/password.js.map +1 -0
- package/dist/auth/methods/recovery.d.ts +62 -0
- package/dist/auth/methods/recovery.d.ts.map +1 -0
- package/dist/auth/methods/recovery.js +100 -0
- package/dist/auth/methods/recovery.js.map +1 -0
- package/dist/auth/mock-auth.d.ts +135 -0
- package/dist/auth/mock-auth.d.ts.map +1 -0
- package/dist/auth/mock-auth.js +417 -0
- package/dist/auth/mock-auth.js.map +1 -0
- package/dist/auth/server/helpers.d.ts +215 -0
- package/dist/auth/server/helpers.d.ts.map +1 -0
- package/dist/auth/server/helpers.js +241 -0
- package/dist/auth/server/helpers.js.map +1 -0
- package/dist/auth/server/index.d.ts +24 -0
- package/dist/auth/server/index.d.ts.map +1 -0
- package/dist/auth/server/index.js +40 -0
- package/dist/auth/server/index.js.map +1 -0
- package/dist/auth/server/middleware.d.ts +305 -0
- package/dist/auth/server/middleware.d.ts.map +1 -0
- package/dist/auth/server/middleware.js +405 -0
- package/dist/auth/server/middleware.js.map +1 -0
- package/dist/auth/server/verify.d.ts +184 -0
- package/dist/auth/server/verify.d.ts.map +1 -0
- package/dist/auth/server/verify.js +222 -0
- package/dist/auth/server/verify.js.map +1 -0
- package/dist/auth/token-manager.d.ts +94 -0
- package/dist/auth/token-manager.d.ts.map +1 -0
- package/dist/auth/token-manager.js +231 -0
- package/dist/auth/token-manager.js.map +1 -0
- package/dist/auth/types.d.ts +412 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +66 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/auth/user/identities.d.ts +62 -0
- package/dist/auth/user/identities.d.ts.map +1 -0
- package/dist/auth/user/identities.js +88 -0
- package/dist/auth/user/identities.js.map +1 -0
- package/dist/auth/user/index.d.ts +4 -0
- package/dist/auth/user/index.d.ts.map +1 -0
- package/dist/auth/user/index.js +4 -0
- package/dist/auth/user/index.js.map +1 -0
- package/dist/auth/user/user.d.ts +64 -0
- package/dist/auth/user/user.d.ts.map +1 -0
- package/dist/auth/user/user.js +105 -0
- package/dist/auth/user/user.js.map +1 -0
- package/dist/auth/user/verification.d.ts +49 -0
- package/dist/auth/user/verification.d.ts.map +1 -0
- package/dist/auth/user/verification.js +71 -0
- package/dist/auth/user/verification.js.map +1 -0
- package/dist/cli/browser.d.ts +11 -0
- package/dist/cli/browser.d.ts.map +1 -0
- package/dist/cli/browser.js +35 -0
- package/dist/cli/browser.js.map +1 -0
- package/dist/cli/callback-server.d.ts +30 -0
- package/dist/cli/callback-server.d.ts.map +1 -0
- package/dist/cli/callback-server.js +100 -0
- package/dist/cli/callback-server.js.map +1 -0
- package/dist/cli/file-token-store.d.ts +79 -0
- package/dist/cli/file-token-store.d.ts.map +1 -0
- package/dist/cli/file-token-store.js +138 -0
- package/dist/cli/file-token-store.js.map +1 -0
- package/dist/cli/index.d.ts +33 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +38 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/oauth.d.ts +67 -0
- package/dist/cli/oauth.d.ts.map +1 -0
- package/dist/cli/oauth.js +101 -0
- package/dist/cli/oauth.js.map +1 -0
- package/dist/cli/pkce.d.ts +35 -0
- package/dist/cli/pkce.d.ts.map +1 -0
- package/dist/cli/pkce.js +43 -0
- package/dist/cli/pkce.js.map +1 -0
- package/dist/client.d.ts +22 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +99 -0
- package/dist/client.js.map +1 -0
- package/dist/db/client.d.ts +9 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +19 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/errors.d.ts +19 -0
- package/dist/db/errors.d.ts.map +1 -0
- package/dist/db/errors.js +57 -0
- package/dist/db/errors.js.map +1 -0
- package/dist/db/index.d.ts +7 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +5 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/mock.d.ts +28 -0
- package/dist/db/mock.d.ts.map +1 -0
- package/dist/db/mock.js +459 -0
- package/dist/db/mock.js.map +1 -0
- package/dist/db/types.d.ts +73 -0
- package/dist/db/types.d.ts.map +1 -0
- package/dist/db/types.js +2 -0
- package/dist/db/types.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/errors.d.ts +33 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +76 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/http.d.ts +81 -0
- package/dist/lib/http.d.ts.map +1 -0
- package/dist/lib/http.js +163 -0
- package/dist/lib/http.js.map +1 -0
- package/dist/lib/keys.d.ts +87 -0
- package/dist/lib/keys.d.ts.map +1 -0
- package/dist/lib/keys.js +147 -0
- package/dist/lib/keys.js.map +1 -0
- package/dist/lib/paths.d.ts +37 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +49 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/token-store.d.ts +42 -0
- package/dist/lib/token-store.d.ts.map +1 -0
- package/dist/lib/token-store.js +75 -0
- package/dist/lib/token-store.js.map +1 -0
- package/dist/mocks/handlers.d.ts +29 -0
- package/dist/mocks/handlers.d.ts.map +1 -0
- package/dist/mocks/handlers.js +79 -0
- package/dist/mocks/handlers.js.map +1 -0
- package/dist/mocks/index.d.ts +5 -0
- package/dist/mocks/index.d.ts.map +1 -0
- package/dist/mocks/index.js +9 -0
- package/dist/mocks/index.js.map +1 -0
- package/dist/mocks/responses.d.ts +76 -0
- package/dist/mocks/responses.d.ts.map +1 -0
- package/dist/mocks/responses.js +91 -0
- package/dist/mocks/responses.js.map +1 -0
- package/dist/mocks/server.d.ts +7 -0
- package/dist/mocks/server.d.ts.map +1 -0
- package/dist/mocks/server.js +9 -0
- package/dist/mocks/server.js.map +1 -0
- package/dist/mocks/state.d.ts +86 -0
- package/dist/mocks/state.d.ts.map +1 -0
- package/dist/mocks/state.js +77 -0
- package/dist/mocks/state.js.map +1 -0
- package/dist/storage/bucket-ref.d.ts +183 -0
- package/dist/storage/bucket-ref.d.ts.map +1 -0
- package/dist/storage/bucket-ref.js +529 -0
- package/dist/storage/bucket-ref.js.map +1 -0
- package/dist/storage/errors.d.ts +27 -0
- package/dist/storage/errors.d.ts.map +1 -0
- package/dist/storage/errors.js +89 -0
- package/dist/storage/errors.js.map +1 -0
- package/dist/storage/index.d.ts +13 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +11 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/interface.d.ts +245 -0
- package/dist/storage/interface.d.ts.map +1 -0
- package/dist/storage/interface.js +2 -0
- package/dist/storage/interface.js.map +1 -0
- package/dist/storage/mock-storage.d.ts +67 -0
- package/dist/storage/mock-storage.d.ts.map +1 -0
- package/dist/storage/mock-storage.js +478 -0
- package/dist/storage/mock-storage.js.map +1 -0
- package/dist/storage/policies-client.d.ts +77 -0
- package/dist/storage/policies-client.d.ts.map +1 -0
- package/dist/storage/policies-client.js +115 -0
- package/dist/storage/policies-client.js.map +1 -0
- package/dist/storage/policy-templates.d.ts +6 -0
- package/dist/storage/policy-templates.d.ts.map +1 -0
- package/dist/storage/policy-templates.js +290 -0
- package/dist/storage/policy-templates.js.map +1 -0
- package/dist/storage/policy-types.d.ts +98 -0
- package/dist/storage/policy-types.d.ts.map +1 -0
- package/dist/storage/policy-types.js +20 -0
- package/dist/storage/policy-types.js.map +1 -0
- package/dist/storage/storage-client.d.ts +32 -0
- package/dist/storage/storage-client.d.ts.map +1 -0
- package/dist/storage/storage-client.js +94 -0
- package/dist/storage/storage-client.js.map +1 -0
- package/dist/storage/tus-upload.d.ts +56 -0
- package/dist/storage/tus-upload.d.ts.map +1 -0
- package/dist/storage/tus-upload.js +236 -0
- package/dist/storage/tus-upload.js.map +1 -0
- package/dist/storage/types.d.ts +335 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +39 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/test/auth/helpers.d.ts +33 -0
- package/dist/test/auth/helpers.d.ts.map +1 -0
- package/dist/test/auth/helpers.js +80 -0
- package/dist/test/auth/helpers.js.map +1 -0
- package/dist/test/helpers/jwt.d.ts +61 -0
- package/dist/test/helpers/jwt.d.ts.map +1 -0
- package/dist/test/helpers/jwt.js +132 -0
- package/dist/test/helpers/jwt.js.map +1 -0
- package/dist/test/helpers/mailpit.d.ts +61 -0
- package/dist/test/helpers/mailpit.d.ts.map +1 -0
- package/dist/test/helpers/mailpit.js +107 -0
- package/dist/test/helpers/mailpit.js.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/test/setup.js +17 -0
- package/dist/test/setup.js.map +1 -0
- package/dist/types.d.ts +96 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate a valid JWT for testing
|
|
3
|
+
*
|
|
4
|
+
* Creates a properly structured JWT that can be decoded by the SDK.
|
|
5
|
+
* The signature is fake but the payload is valid.
|
|
6
|
+
*/
|
|
7
|
+
export function generateTestJwt(options) {
|
|
8
|
+
const now = Math.floor(Date.now() / 1000);
|
|
9
|
+
const header = { alg: "ES256", typ: "JWT" };
|
|
10
|
+
const payload = {
|
|
11
|
+
sub: options.sub,
|
|
12
|
+
email: options.email,
|
|
13
|
+
exp: options.exp ?? now + 3600, // 1 hour
|
|
14
|
+
iat: options.iat ?? now,
|
|
15
|
+
aud: "authenticated",
|
|
16
|
+
role: "authenticated",
|
|
17
|
+
app_metadata: { provider: "email", providers: ["email"] },
|
|
18
|
+
user_metadata: { email: options.email },
|
|
19
|
+
};
|
|
20
|
+
const encode = (obj) => btoa(JSON.stringify(obj))
|
|
21
|
+
.replace(/=/g, "")
|
|
22
|
+
.replace(/\+/g, "-")
|
|
23
|
+
.replace(/\//g, "_");
|
|
24
|
+
// Fake signature (not verified in tests)
|
|
25
|
+
return `${encode(header)}.${encode(payload)}.fake-signature`;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Generate a user ID from an email address
|
|
29
|
+
*/
|
|
30
|
+
export function generateUserId(email) {
|
|
31
|
+
return "user-" + email.replace("@", "-at-");
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Create a GoTrue token response
|
|
35
|
+
*
|
|
36
|
+
* This is the single source of truth for mock token responses.
|
|
37
|
+
* Used by both MSW handlers (for SDK tests) and mock auth client (for developer tests).
|
|
38
|
+
*/
|
|
39
|
+
export function createTokenResponse(options) {
|
|
40
|
+
const userId = generateUserId(options.email);
|
|
41
|
+
const now = Math.floor(Date.now() / 1000);
|
|
42
|
+
const expiresIn = options.expiresIn ?? 3600;
|
|
43
|
+
return {
|
|
44
|
+
access_token: generateTestJwt({ sub: userId, email: options.email }),
|
|
45
|
+
refresh_token: options.refreshToken ?? `refresh-token-${Date.now()}`,
|
|
46
|
+
expires_in: expiresIn,
|
|
47
|
+
expires_at: now + expiresIn,
|
|
48
|
+
token_type: "bearer",
|
|
49
|
+
user: {
|
|
50
|
+
id: userId,
|
|
51
|
+
aud: "authenticated",
|
|
52
|
+
email: options.email,
|
|
53
|
+
email_confirmed_at: new Date().toISOString(),
|
|
54
|
+
created_at: new Date().toISOString(),
|
|
55
|
+
updated_at: new Date().toISOString(),
|
|
56
|
+
app_metadata: { provider: "email", providers: ["email"] },
|
|
57
|
+
user_metadata: options.userMetadata ?? { email: options.email },
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Standard error responses (GoTrue format)
|
|
63
|
+
*/
|
|
64
|
+
export const errors = {
|
|
65
|
+
invalidCredentials: {
|
|
66
|
+
code: 401,
|
|
67
|
+
error_code: "invalid_credentials",
|
|
68
|
+
msg: "Invalid email or password",
|
|
69
|
+
},
|
|
70
|
+
userAlreadyExists: {
|
|
71
|
+
code: 422,
|
|
72
|
+
error_code: "user_already_exists",
|
|
73
|
+
msg: "User already registered",
|
|
74
|
+
},
|
|
75
|
+
invalidRefreshToken: {
|
|
76
|
+
code: 401,
|
|
77
|
+
error_code: "invalid_grant",
|
|
78
|
+
msg: "Invalid refresh token",
|
|
79
|
+
},
|
|
80
|
+
unauthorized: {
|
|
81
|
+
code: 401,
|
|
82
|
+
error_code: "unauthorized",
|
|
83
|
+
msg: "Missing or invalid authorization",
|
|
84
|
+
},
|
|
85
|
+
unsupportedGrantType: {
|
|
86
|
+
code: 400,
|
|
87
|
+
error_code: "unsupported_grant_type",
|
|
88
|
+
msg: "Unsupported grant type",
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=responses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/mocks/responses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mocks/server.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,MAAM,mCAA2B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { setupServer } from "msw/node";
|
|
2
|
+
import { handlers } from "./handlers.js";
|
|
3
|
+
/**
|
|
4
|
+
* MSW server for Node.js tests
|
|
5
|
+
*
|
|
6
|
+
* Pre-configured with default handlers. For SDK internal tests only.
|
|
7
|
+
*/
|
|
8
|
+
export const server = setupServer(...handlers);
|
|
9
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mocks/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { type MockErrorResponse } from "./responses.js";
|
|
2
|
+
/**
|
|
3
|
+
* Mock configuration options
|
|
4
|
+
*/
|
|
5
|
+
export interface MockOptions {
|
|
6
|
+
/** Artificial latency in milliseconds (default: 0) */
|
|
7
|
+
latency?: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Mock state for controlling behavior
|
|
11
|
+
*
|
|
12
|
+
* This state is shared between MSW handlers and mock auth client,
|
|
13
|
+
* ensuring consistent behavior across all mock implementations.
|
|
14
|
+
*/
|
|
15
|
+
export interface MockState {
|
|
16
|
+
/** Whether signIn should fail */
|
|
17
|
+
shouldFailSignIn: boolean;
|
|
18
|
+
/** Whether signUp should fail */
|
|
19
|
+
shouldFailSignUp: boolean;
|
|
20
|
+
/** Whether refresh should fail */
|
|
21
|
+
shouldFailRefresh: boolean;
|
|
22
|
+
/** Error to return when signIn fails */
|
|
23
|
+
signInError: MockErrorResponse;
|
|
24
|
+
/** Error to return when signUp fails */
|
|
25
|
+
signUpError: MockErrorResponse;
|
|
26
|
+
/** Error to return when refresh fails */
|
|
27
|
+
refreshError: MockErrorResponse;
|
|
28
|
+
/** Artificial latency in milliseconds */
|
|
29
|
+
latency: number;
|
|
30
|
+
/** Reset all state to defaults */
|
|
31
|
+
reset(): void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Request tracking for test assertions
|
|
35
|
+
*/
|
|
36
|
+
export interface RequestCounts {
|
|
37
|
+
signIn: number;
|
|
38
|
+
signUp: number;
|
|
39
|
+
signOut: number;
|
|
40
|
+
refresh: number;
|
|
41
|
+
reset(): void;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Global mock state instance
|
|
45
|
+
*
|
|
46
|
+
* Use this to control mock behavior in tests:
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* import { mockState } from "@kaiz11/stack-client/mocks";
|
|
51
|
+
*
|
|
52
|
+
* // Make signIn fail
|
|
53
|
+
* mockState.shouldFailSignIn = true;
|
|
54
|
+
*
|
|
55
|
+
* // Custom error message
|
|
56
|
+
* mockState.signInError = {
|
|
57
|
+
* code: 429,
|
|
58
|
+
* error_code: "too_many_attempts",
|
|
59
|
+
* msg: "Too many login attempts",
|
|
60
|
+
* };
|
|
61
|
+
*
|
|
62
|
+
* // Reset after test
|
|
63
|
+
* mockState.reset();
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare const mockState: MockState;
|
|
67
|
+
/**
|
|
68
|
+
* Request counts for test assertions
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* import { requestCounts } from "@kaiz11/stack-client/mocks";
|
|
73
|
+
*
|
|
74
|
+
* // Check how many requests were made
|
|
75
|
+
* expect(requestCounts.signIn).toBe(1);
|
|
76
|
+
*
|
|
77
|
+
* // Reset after test
|
|
78
|
+
* requestCounts.reset();
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare const requestCounts: RequestCounts;
|
|
82
|
+
/**
|
|
83
|
+
* Apply artificial latency
|
|
84
|
+
*/
|
|
85
|
+
export declare function delay(ms: number): Promise<void>;
|
|
86
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/mocks/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,iCAAiC;IACjC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iCAAiC;IACjC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kCAAkC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wCAAwC;IACxC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,wCAAwC;IACxC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,yCAAyC;IACzC,YAAY,EAAE,iBAAiB,CAAC;IAChC,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,SAAS,EAAE,SAiBvB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,EAAE,aAW3B,CAAC;AAEF;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/C"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { errors } from "./responses.js";
|
|
2
|
+
/**
|
|
3
|
+
* Global mock state instance
|
|
4
|
+
*
|
|
5
|
+
* Use this to control mock behavior in tests:
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { mockState } from "@kaiz11/stack-client/mocks";
|
|
10
|
+
*
|
|
11
|
+
* // Make signIn fail
|
|
12
|
+
* mockState.shouldFailSignIn = true;
|
|
13
|
+
*
|
|
14
|
+
* // Custom error message
|
|
15
|
+
* mockState.signInError = {
|
|
16
|
+
* code: 429,
|
|
17
|
+
* error_code: "too_many_attempts",
|
|
18
|
+
* msg: "Too many login attempts",
|
|
19
|
+
* };
|
|
20
|
+
*
|
|
21
|
+
* // Reset after test
|
|
22
|
+
* mockState.reset();
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export const mockState = {
|
|
26
|
+
shouldFailSignIn: false,
|
|
27
|
+
shouldFailSignUp: false,
|
|
28
|
+
shouldFailRefresh: false,
|
|
29
|
+
signInError: { ...errors.invalidCredentials },
|
|
30
|
+
signUpError: { ...errors.userAlreadyExists },
|
|
31
|
+
refreshError: { ...errors.invalidRefreshToken },
|
|
32
|
+
latency: 0,
|
|
33
|
+
reset() {
|
|
34
|
+
this.shouldFailSignIn = false;
|
|
35
|
+
this.shouldFailSignUp = false;
|
|
36
|
+
this.shouldFailRefresh = false;
|
|
37
|
+
this.signInError = { ...errors.invalidCredentials };
|
|
38
|
+
this.signUpError = { ...errors.userAlreadyExists };
|
|
39
|
+
this.refreshError = { ...errors.invalidRefreshToken };
|
|
40
|
+
this.latency = 0;
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Request counts for test assertions
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* import { requestCounts } from "@kaiz11/stack-client/mocks";
|
|
49
|
+
*
|
|
50
|
+
* // Check how many requests were made
|
|
51
|
+
* expect(requestCounts.signIn).toBe(1);
|
|
52
|
+
*
|
|
53
|
+
* // Reset after test
|
|
54
|
+
* requestCounts.reset();
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export const requestCounts = {
|
|
58
|
+
signIn: 0,
|
|
59
|
+
signUp: 0,
|
|
60
|
+
signOut: 0,
|
|
61
|
+
refresh: 0,
|
|
62
|
+
reset() {
|
|
63
|
+
this.signIn = 0;
|
|
64
|
+
this.signUp = 0;
|
|
65
|
+
this.signOut = 0;
|
|
66
|
+
this.refresh = 0;
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Apply artificial latency
|
|
71
|
+
*/
|
|
72
|
+
export function delay(ms) {
|
|
73
|
+
if (ms <= 0)
|
|
74
|
+
return Promise.resolve();
|
|
75
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/mocks/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA0B,MAAM,gBAAgB,CAAC;AA8ChE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,KAAK;IACvB,iBAAiB,EAAE,KAAK;IACxB,WAAW,EAAE,EAAE,GAAG,MAAM,CAAC,kBAAkB,EAAE;IAC7C,WAAW,EAAE,EAAE,GAAG,MAAM,CAAC,iBAAiB,EAAE;IAC5C,YAAY,EAAE,EAAE,GAAG,MAAM,CAAC,mBAAmB,EAAE;IAC/C,OAAO,EAAE,CAAC;IACV,KAAK;QACH,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;CACF,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import type { HttpClient } from "../lib/http.js";
|
|
2
|
+
import type { IBucketRef } from "./interface.js";
|
|
3
|
+
import { type CopyOptions, type CopyResult, type DownloadOptions, type FileBody, type ListOptions, type ListV2Options, type ListV2Result, type MoveOptions, type PublicUrlOptions, type SignedUrl, type SignedUploadUrl, type SignedUploadUrlOptions, type SignedUrlOptions, type StorageObject, type TusUpload, type TusUploadOptions, type UploadOptions, type UploadResult } from "./types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Bucket reference for fluent object operations
|
|
6
|
+
*/
|
|
7
|
+
export declare class BucketRef implements IBucketRef {
|
|
8
|
+
private readonly http;
|
|
9
|
+
private readonly tenantId;
|
|
10
|
+
private readonly bucketId;
|
|
11
|
+
constructor(http: HttpClient, tenantId: string, bucketId: string);
|
|
12
|
+
private path;
|
|
13
|
+
/**
|
|
14
|
+
* Upload a file to the bucket
|
|
15
|
+
*
|
|
16
|
+
* Accepts string, Blob, ArrayBuffer, or ReadableStream.
|
|
17
|
+
* By default, throws if file already exists. Use `upsert: true` to overwrite.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* await client.storage.from("docs").upload("report.pdf", file);
|
|
21
|
+
* await client.storage.from("docs").upload("report.pdf", file, { upsert: true });
|
|
22
|
+
*/
|
|
23
|
+
upload(path: string, file: FileBody, options?: UploadOptions): Promise<UploadResult>;
|
|
24
|
+
/**
|
|
25
|
+
* Download a file from the bucket
|
|
26
|
+
*
|
|
27
|
+
* Returns the file as a Blob. Supports image transforms for on-the-fly resizing.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* const blob = await client.storage.from("docs").download("report.pdf");
|
|
31
|
+
* const thumbnail = await client.storage.from("images").download("photo.jpg", {
|
|
32
|
+
* transform: { width: 200, height: 200 }
|
|
33
|
+
* });
|
|
34
|
+
*/
|
|
35
|
+
download(path: string, options?: DownloadOptions): Promise<Blob>;
|
|
36
|
+
/**
|
|
37
|
+
* Get the public URL for an object
|
|
38
|
+
*
|
|
39
|
+
* Constructs the URL locally (no API call). The URL only works if
|
|
40
|
+
* the bucket is set to `public: true`. Does not validate if the
|
|
41
|
+
* file exists.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* const url = client.storage.from("avatars").getPublicUrl("user123.jpg");
|
|
45
|
+
*/
|
|
46
|
+
getPublicUrl(path: string, options?: PublicUrlOptions): string;
|
|
47
|
+
/**
|
|
48
|
+
* Create a signed URL for temporary access to a private file
|
|
49
|
+
*
|
|
50
|
+
* The URL expires after the specified time. Use for private buckets
|
|
51
|
+
* when you need to share a file temporarily.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* const { signedUrl } = await client.storage.from("private").createSignedUrl("doc.pdf", {
|
|
55
|
+
* expiresIn: 3600 // 1 hour
|
|
56
|
+
* });
|
|
57
|
+
*/
|
|
58
|
+
createSignedUrl(path: string, options: SignedUrlOptions): Promise<SignedUrl>;
|
|
59
|
+
/**
|
|
60
|
+
* Create signed URLs for multiple files in a single request
|
|
61
|
+
*
|
|
62
|
+
* More efficient than calling createSignedUrl multiple times.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* const urls = await client.storage.from("private").createSignedUrls(
|
|
66
|
+
* ["doc1.pdf", "doc2.pdf"],
|
|
67
|
+
* { expiresIn: 3600 }
|
|
68
|
+
* );
|
|
69
|
+
*/
|
|
70
|
+
createSignedUrls(paths: string[], options: SignedUrlOptions): Promise<SignedUrl[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Create a signed URL for uploading a file
|
|
73
|
+
*
|
|
74
|
+
* Useful for client-side uploads without exposing credentials.
|
|
75
|
+
* The returned token is used with uploadToSignedUrl.
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* const { signedUrl, token } = await client.storage.from("uploads").createSignedUploadUrl("file.pdf");
|
|
79
|
+
* await client.storage.from("uploads").uploadToSignedUrl(signedUrl, token, file);
|
|
80
|
+
*/
|
|
81
|
+
createSignedUploadUrl(path: string, options?: SignedUploadUrlOptions): Promise<SignedUploadUrl>;
|
|
82
|
+
/**
|
|
83
|
+
* Upload a file using a signed upload URL
|
|
84
|
+
*
|
|
85
|
+
* Use with createSignedUploadUrl for client-side uploads.
|
|
86
|
+
* The signedUrl may point to a different domain (e.g., R2/S3).
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* const { signedUrl, token } = await client.storage.from("uploads").createSignedUploadUrl("file.pdf");
|
|
90
|
+
* await client.storage.from("uploads").uploadToSignedUrl(signedUrl, token, file);
|
|
91
|
+
*/
|
|
92
|
+
uploadToSignedUrl(signedUrl: string, token: string, file: FileBody, options?: UploadOptions): Promise<UploadResult>;
|
|
93
|
+
private uploadWithXhr;
|
|
94
|
+
/**
|
|
95
|
+
* Create a resumable upload using the TUS protocol
|
|
96
|
+
*
|
|
97
|
+
* For large files that may need to resume after interruption.
|
|
98
|
+
* Returns a TusUpload object with start(), abort(), and progress callbacks.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* const upload = client.storage.from("videos").createResumableUpload("large.mp4", file, {
|
|
102
|
+
* onProgress: ({ percentage }) => console.log(`${percentage}%`)
|
|
103
|
+
* });
|
|
104
|
+
* await upload.start();
|
|
105
|
+
*/
|
|
106
|
+
createResumableUpload(path: string, file: FileBody, options?: TusUploadOptions): TusUpload;
|
|
107
|
+
/**
|
|
108
|
+
* List objects in the bucket
|
|
109
|
+
*
|
|
110
|
+
* Supports prefix filtering, pagination, and search.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* const files = await client.storage.from("docs").list();
|
|
114
|
+
* const pdfs = await client.storage.from("docs").list({ prefix: "reports/", search: ".pdf" });
|
|
115
|
+
*/
|
|
116
|
+
list(options?: ListOptions): Promise<StorageObject[]>;
|
|
117
|
+
/**
|
|
118
|
+
* List objects with cursor-based pagination
|
|
119
|
+
*
|
|
120
|
+
* Better for large buckets. Returns prefixes (folders) separately
|
|
121
|
+
* and provides a cursor for fetching the next page.
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* let cursor: string | null = null;
|
|
125
|
+
* do {
|
|
126
|
+
* const result = await client.storage.from("docs").listV2({ cursor, limit: 100 });
|
|
127
|
+
* console.log(result.objects);
|
|
128
|
+
* cursor = result.nextCursor;
|
|
129
|
+
* } while (cursor);
|
|
130
|
+
*/
|
|
131
|
+
listV2(options?: ListV2Options): Promise<ListV2Result>;
|
|
132
|
+
/**
|
|
133
|
+
* Delete objects from the bucket
|
|
134
|
+
*
|
|
135
|
+
* Accepts an array of paths. Returns the deleted objects.
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* await client.storage.from("docs").remove(["old.pdf", "draft.pdf"]);
|
|
139
|
+
*/
|
|
140
|
+
remove(paths: string[]): Promise<StorageObject[]>;
|
|
141
|
+
/**
|
|
142
|
+
* Move or rename an object
|
|
143
|
+
*
|
|
144
|
+
* Can move to a different bucket using destinationBucket option.
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* await client.storage.from("docs").move("draft.pdf", "final.pdf");
|
|
148
|
+
* await client.storage.from("docs").move("file.pdf", "file.pdf", { destinationBucket: "archive" });
|
|
149
|
+
*/
|
|
150
|
+
move(fromPath: string, toPath: string, options?: MoveOptions): Promise<void>;
|
|
151
|
+
/**
|
|
152
|
+
* Copy an object to a new location
|
|
153
|
+
*
|
|
154
|
+
* By default copies metadata. Can copy to a different bucket.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* await client.storage.from("docs").copy("template.pdf", "copy.pdf");
|
|
158
|
+
* await client.storage.from("docs").copy("file.pdf", "file.pdf", { destinationBucket: "backup" });
|
|
159
|
+
*/
|
|
160
|
+
copy(fromPath: string, toPath: string, options?: CopyOptions): Promise<CopyResult>;
|
|
161
|
+
/**
|
|
162
|
+
* Get metadata for an object
|
|
163
|
+
*
|
|
164
|
+
* Returns size, content type, last modified, and custom metadata.
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* const info = await client.storage.from("docs").getInfo("report.pdf");
|
|
168
|
+
* console.log(info.metadata.size, info.metadata.mimetype);
|
|
169
|
+
*/
|
|
170
|
+
getInfo(path: string): Promise<StorageObject>;
|
|
171
|
+
/**
|
|
172
|
+
* Check if an object exists in the bucket
|
|
173
|
+
*
|
|
174
|
+
* Uses a HEAD request to check existence without downloading content.
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* if (await client.storage.from("docs").exists("report.pdf")) {
|
|
178
|
+
* console.log("File exists");
|
|
179
|
+
* }
|
|
180
|
+
*/
|
|
181
|
+
exists(path: string): Promise<boolean>;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=bucket-ref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-ref.d.ts","sourceRoot":"","sources":["../../src/storage/bucket-ref.ts"],"names":[],"mappings":"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"}
|