@stackframe/stack-shared 2.5.0 → 2.5.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/CHANGELOG.md +7 -0
- package/dist/crud.d.ts +26 -15
- package/dist/crud.js +16 -0
- package/dist/interface/clientInterface.d.ts +4 -4
- package/dist/interface/clientInterface.js +4 -4
- package/dist/interface/crud/current-user.d.ts +98 -85
- package/dist/interface/crud/current-user.js +35 -17
- package/dist/interface/crud/oauth.d.ts +4 -4
- package/dist/interface/crud/oauth.js +1 -1
- package/dist/interface/crud/users.d.ts +144 -80
- package/dist/interface/crud/users.js +56 -24
- package/dist/known-errors.d.ts +139 -74
- package/dist/known-errors.js +121 -80
- package/dist/schema-fields.d.ts +43 -0
- package/dist/schema-fields.js +68 -0
- package/dist/utils/env.d.ts +3 -2
- package/dist/utils/env.js +6 -3
- package/dist/utils/errors.js +1 -1
- package/dist/utils/objects.d.ts +4 -1
- package/dist/utils/objects.js +32 -1
- package/dist/utils/strings.d.ts +4 -1
- package/dist/utils/strings.js +26 -17
- package/package.json +2 -2
- package/dist/interface/crud/fields.d.ts +0 -11
- package/dist/interface/crud/fields.js +0 -12
|
@@ -1,102 +1,166 @@
|
|
|
1
1
|
import { CrudTypeOf } from "../../crud";
|
|
2
2
|
import * as yup from "yup";
|
|
3
3
|
export declare const usersCrudServerUpdateSchema: yup.ObjectSchema<{
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
display_name: string | null | undefined;
|
|
5
|
+
client_metadata: {} | null | undefined;
|
|
6
|
+
server_metadata: {} | null | undefined;
|
|
7
|
+
primary_email: string | null | undefined;
|
|
8
|
+
primary_email_verified: boolean | undefined;
|
|
9
|
+
selected_team_id: string | null | undefined;
|
|
10
10
|
}, yup.AnyObject, {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
display_name: undefined;
|
|
12
|
+
client_metadata: undefined;
|
|
13
|
+
server_metadata: undefined;
|
|
14
|
+
primary_email: undefined;
|
|
15
|
+
primary_email_verified: undefined;
|
|
16
|
+
selected_team_id: undefined;
|
|
17
17
|
}, "">;
|
|
18
18
|
export declare const usersCrudServerReadSchema: yup.ObjectSchema<{
|
|
19
|
-
|
|
19
|
+
project_id: string;
|
|
20
20
|
id: string;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
serverMetadata: {} | null;
|
|
21
|
+
primary_email: string | null;
|
|
22
|
+
primary_email_verified: NonNullable<boolean | undefined>;
|
|
23
|
+
display_name: string | null;
|
|
24
|
+
selected_team: {} | null;
|
|
25
|
+
selected_team_id: string | null;
|
|
26
|
+
profile_image_url: string | null;
|
|
27
|
+
signed_up_at_millis: number;
|
|
28
|
+
has_password: NonNullable<boolean | undefined>;
|
|
29
|
+
auth_with_email: NonNullable<boolean | undefined>;
|
|
30
|
+
oauth_providers: string[];
|
|
31
|
+
client_metadata: {} | null;
|
|
32
|
+
server_metadata: {} | null;
|
|
34
33
|
}, yup.AnyObject, {
|
|
35
|
-
|
|
34
|
+
project_id: undefined;
|
|
36
35
|
id: undefined;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
serverMetadata: undefined;
|
|
36
|
+
primary_email: undefined;
|
|
37
|
+
primary_email_verified: undefined;
|
|
38
|
+
display_name: undefined;
|
|
39
|
+
selected_team: undefined;
|
|
40
|
+
selected_team_id: undefined;
|
|
41
|
+
profile_image_url: undefined;
|
|
42
|
+
signed_up_at_millis: undefined;
|
|
43
|
+
has_password: undefined;
|
|
44
|
+
auth_with_email: undefined;
|
|
45
|
+
oauth_providers: undefined;
|
|
46
|
+
client_metadata: undefined;
|
|
47
|
+
server_metadata: undefined;
|
|
50
48
|
}, "">;
|
|
49
|
+
export declare const usersCrudServerCreateSchema: yup.ObjectSchema<{
|
|
50
|
+
display_name: string | null | undefined;
|
|
51
|
+
client_metadata: {} | null | undefined;
|
|
52
|
+
server_metadata: {} | null | undefined;
|
|
53
|
+
primary_email: string;
|
|
54
|
+
primary_email_verified: NonNullable<boolean | undefined>;
|
|
55
|
+
selected_team_id: string | null | undefined;
|
|
56
|
+
} & {
|
|
57
|
+
primary_email: string;
|
|
58
|
+
primary_email_verified: NonNullable<boolean | undefined>;
|
|
59
|
+
auth_with_email: NonNullable<boolean | undefined>;
|
|
60
|
+
}, yup.AnyObject, {
|
|
61
|
+
display_name: undefined;
|
|
62
|
+
client_metadata: undefined;
|
|
63
|
+
server_metadata: undefined;
|
|
64
|
+
primary_email: undefined;
|
|
65
|
+
primary_email_verified: undefined;
|
|
66
|
+
selected_team_id: undefined;
|
|
67
|
+
auth_with_email: undefined;
|
|
68
|
+
}, "">;
|
|
69
|
+
export declare const usersCrudServerDeleteSchema: yup.MixedSchema<{} | undefined, yup.AnyObject, undefined, "">;
|
|
51
70
|
export declare const usersCrud: import("../../crud").CrudSchemaFromOptions<{
|
|
52
71
|
serverReadSchema: yup.ObjectSchema<{
|
|
53
|
-
|
|
72
|
+
project_id: string;
|
|
54
73
|
id: string;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
serverMetadata: {} | null;
|
|
74
|
+
primary_email: string | null;
|
|
75
|
+
primary_email_verified: NonNullable<boolean | undefined>;
|
|
76
|
+
display_name: string | null;
|
|
77
|
+
selected_team: {} | null;
|
|
78
|
+
selected_team_id: string | null;
|
|
79
|
+
profile_image_url: string | null;
|
|
80
|
+
signed_up_at_millis: number;
|
|
81
|
+
has_password: NonNullable<boolean | undefined>;
|
|
82
|
+
auth_with_email: NonNullable<boolean | undefined>;
|
|
83
|
+
oauth_providers: string[];
|
|
84
|
+
client_metadata: {} | null;
|
|
85
|
+
server_metadata: {} | null;
|
|
68
86
|
}, yup.AnyObject, {
|
|
69
|
-
|
|
87
|
+
project_id: undefined;
|
|
70
88
|
id: undefined;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
serverMetadata: undefined;
|
|
89
|
+
primary_email: undefined;
|
|
90
|
+
primary_email_verified: undefined;
|
|
91
|
+
display_name: undefined;
|
|
92
|
+
selected_team: undefined;
|
|
93
|
+
selected_team_id: undefined;
|
|
94
|
+
profile_image_url: undefined;
|
|
95
|
+
signed_up_at_millis: undefined;
|
|
96
|
+
has_password: undefined;
|
|
97
|
+
auth_with_email: undefined;
|
|
98
|
+
oauth_providers: undefined;
|
|
99
|
+
client_metadata: undefined;
|
|
100
|
+
server_metadata: undefined;
|
|
84
101
|
}, "">;
|
|
85
102
|
serverUpdateSchema: yup.ObjectSchema<{
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
103
|
+
display_name: string | null | undefined;
|
|
104
|
+
client_metadata: {} | null | undefined;
|
|
105
|
+
server_metadata: {} | null | undefined;
|
|
106
|
+
primary_email: string | null | undefined;
|
|
107
|
+
primary_email_verified: boolean | undefined;
|
|
108
|
+
selected_team_id: string | null | undefined;
|
|
109
|
+
}, yup.AnyObject, {
|
|
110
|
+
display_name: undefined;
|
|
111
|
+
client_metadata: undefined;
|
|
112
|
+
server_metadata: undefined;
|
|
113
|
+
primary_email: undefined;
|
|
114
|
+
primary_email_verified: undefined;
|
|
115
|
+
selected_team_id: undefined;
|
|
116
|
+
}, "">;
|
|
117
|
+
serverCreateSchema: yup.ObjectSchema<{
|
|
118
|
+
display_name: string | null | undefined;
|
|
119
|
+
client_metadata: {} | null | undefined;
|
|
120
|
+
server_metadata: {} | null | undefined;
|
|
121
|
+
primary_email: string;
|
|
122
|
+
primary_email_verified: NonNullable<boolean | undefined>;
|
|
123
|
+
selected_team_id: string | null | undefined;
|
|
124
|
+
} & {
|
|
125
|
+
primary_email: string;
|
|
126
|
+
primary_email_verified: NonNullable<boolean | undefined>;
|
|
127
|
+
auth_with_email: NonNullable<boolean | undefined>;
|
|
92
128
|
}, yup.AnyObject, {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
129
|
+
display_name: undefined;
|
|
130
|
+
client_metadata: undefined;
|
|
131
|
+
server_metadata: undefined;
|
|
132
|
+
primary_email: undefined;
|
|
133
|
+
primary_email_verified: undefined;
|
|
134
|
+
selected_team_id: undefined;
|
|
135
|
+
auth_with_email: undefined;
|
|
99
136
|
}, "">;
|
|
100
137
|
serverDeleteSchema: yup.MixedSchema<{} | undefined, yup.AnyObject, undefined, "">;
|
|
138
|
+
docs: {
|
|
139
|
+
serverCreate: {
|
|
140
|
+
tags: string[];
|
|
141
|
+
summary: string;
|
|
142
|
+
description: string;
|
|
143
|
+
};
|
|
144
|
+
serverRead: {
|
|
145
|
+
tags: string[];
|
|
146
|
+
summary: string;
|
|
147
|
+
description: string;
|
|
148
|
+
};
|
|
149
|
+
serverUpdate: {
|
|
150
|
+
tags: string[];
|
|
151
|
+
summary: string;
|
|
152
|
+
description: string;
|
|
153
|
+
};
|
|
154
|
+
serverDelete: {
|
|
155
|
+
tags: string[];
|
|
156
|
+
summary: string;
|
|
157
|
+
description: string;
|
|
158
|
+
};
|
|
159
|
+
serverList: {
|
|
160
|
+
tags: string[];
|
|
161
|
+
summary: string;
|
|
162
|
+
description: string;
|
|
163
|
+
};
|
|
164
|
+
};
|
|
101
165
|
}>;
|
|
102
166
|
export type UsersCrud = CrudTypeOf<typeof usersCrud>;
|
|
@@ -1,35 +1,67 @@
|
|
|
1
1
|
import { createCrud } from "../../crud";
|
|
2
2
|
import * as yup from "yup";
|
|
3
|
-
import * as fieldSchema from "
|
|
3
|
+
import * as fieldSchema from "../../schema-fields";
|
|
4
4
|
export const usersCrudServerUpdateSchema = yup.object({
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
display_name: fieldSchema.userDisplayNameSchema.optional(),
|
|
6
|
+
client_metadata: fieldSchema.userClientMetadataSchema.optional(),
|
|
7
|
+
server_metadata: fieldSchema.userServerMetadataSchema.optional(),
|
|
8
|
+
primary_email: fieldSchema.primaryEmailSchema.nullable().optional(),
|
|
9
|
+
primary_email_verified: fieldSchema.primaryEmailVerifiedSchema.optional(),
|
|
10
|
+
selected_team_id: fieldSchema.selectedTeamIdSchema.nullable().optional(),
|
|
11
11
|
}).required();
|
|
12
12
|
export const usersCrudServerReadSchema = yup.object({
|
|
13
|
-
|
|
14
|
-
id: fieldSchema.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
project_id: fieldSchema.projectIdSchema.required(),
|
|
14
|
+
id: fieldSchema.userIdResponseSchema.required(),
|
|
15
|
+
primary_email: fieldSchema.primaryEmailSchema.nullable().defined(),
|
|
16
|
+
primary_email_verified: fieldSchema.primaryEmailVerifiedSchema.required(),
|
|
17
|
+
display_name: fieldSchema.userDisplayNameSchema.nullable().defined(),
|
|
18
18
|
// TODO give this one the type of an actual team
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
serverMetadata: fieldSchema.userServerMetadataSchema,
|
|
19
|
+
selected_team: yup.mixed().nullable().defined(),
|
|
20
|
+
selected_team_id: fieldSchema.selectedTeamIdSchema.nullable().defined(),
|
|
21
|
+
profile_image_url: fieldSchema.profileImageUrlSchema.nullable().defined(),
|
|
22
|
+
signed_up_at_millis: fieldSchema.signedUpAtMillisSchema.required(),
|
|
23
|
+
has_password: yup.boolean().required().meta({ openapiField: { description: 'Whether the user has a password associated with their account', exampleValue: true } }),
|
|
24
|
+
auth_with_email: yup.boolean().required().meta({ openapiField: { description: 'Whether the user can authenticate with their primary e-mail. If set to true, the user can log-in with credentials and/or magic link, if enabled in the project settings.', exampleValue: true } }),
|
|
25
|
+
oauth_providers: yup.array(yup.string().required()).required().meta({ openapiField: { description: 'All the OAuth providers connected to this account', exampleValue: ['google', 'github'] } }),
|
|
26
|
+
client_metadata: fieldSchema.userClientMetadataSchema,
|
|
27
|
+
server_metadata: fieldSchema.userServerMetadataSchema,
|
|
29
28
|
}).required();
|
|
30
|
-
const
|
|
29
|
+
export const usersCrudServerCreateSchema = usersCrudServerUpdateSchema.concat(yup.object({
|
|
30
|
+
primary_email: fieldSchema.primaryEmailSchema.required(),
|
|
31
|
+
primary_email_verified: fieldSchema.primaryEmailVerifiedSchema.required(),
|
|
32
|
+
auth_with_email: yup.boolean().oneOf([true]).required().meta({ openapiField: { description: 'Must always be set to true.', exampleValue: true } }),
|
|
33
|
+
}).required());
|
|
34
|
+
export const usersCrudServerDeleteSchema = yup.mixed();
|
|
31
35
|
export const usersCrud = createCrud({
|
|
32
36
|
serverReadSchema: usersCrudServerReadSchema,
|
|
33
37
|
serverUpdateSchema: usersCrudServerUpdateSchema,
|
|
34
|
-
|
|
38
|
+
serverCreateSchema: usersCrudServerCreateSchema,
|
|
39
|
+
serverDeleteSchema: usersCrudServerDeleteSchema,
|
|
40
|
+
docs: {
|
|
41
|
+
serverCreate: {
|
|
42
|
+
tags: ["Users"],
|
|
43
|
+
summary: 'Create user',
|
|
44
|
+
description: 'Creates a new user. E-mail authentication is always enabled, and no password is set, meaning the only way to authenticate the newly created user is through magic link.',
|
|
45
|
+
},
|
|
46
|
+
serverRead: {
|
|
47
|
+
tags: ["Users"],
|
|
48
|
+
summary: 'Get user',
|
|
49
|
+
description: 'Gets a user by user ID.',
|
|
50
|
+
},
|
|
51
|
+
serverUpdate: {
|
|
52
|
+
tags: ["Users"],
|
|
53
|
+
summary: 'Update user',
|
|
54
|
+
description: 'Updates a user. Only the values provided will be updated.',
|
|
55
|
+
},
|
|
56
|
+
serverDelete: {
|
|
57
|
+
tags: ["Users"],
|
|
58
|
+
summary: 'Delete user',
|
|
59
|
+
description: 'Deletes a user. Use this with caution.',
|
|
60
|
+
},
|
|
61
|
+
serverList: {
|
|
62
|
+
tags: ["Users"],
|
|
63
|
+
summary: 'List users',
|
|
64
|
+
description: 'Lists all the users in the project.',
|
|
65
|
+
},
|
|
66
|
+
},
|
|
35
67
|
});
|