@seamless-auth/types 0.22.0 → 0.23.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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @seamless-auth/types
2
2
 
3
+ ## 0.23.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 43b2ea5: Add the user import contract: `ImportUsersRequestSchema`, `ImportUsersResponseSchema` and the row, organization, status, rejection and change schemas behind them, with `USER_IMPORT_MAX_ROWS` (200). Export `MembershipRoleSchema` and `MembershipScopeSchema`, and add the `admin_user_imported` and `admin_user_import_completed` audit event types.
8
+
3
9
  ## 0.22.0
4
10
 
5
11
  ### Minor Changes
package/dist/index.d.ts CHANGED
@@ -16,4 +16,5 @@ export * from './schemas/organization/schema.js';
16
16
  export * from './schemas/me/schema.js';
17
17
  export * from './schemas/metrics/schema.js';
18
18
  export * from './schemas/admin/schema.js';
19
+ export * from './schemas/userImport/schema.js';
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAE5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAE5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC"}
package/dist/index.js CHANGED
@@ -16,4 +16,5 @@ export * from './schemas/organization/schema.js';
16
16
  export * from './schemas/me/schema.js';
17
17
  export * from './schemas/metrics/schema.js';
18
18
  export * from './schemas/admin/schema.js';
19
+ export * from './schemas/userImport/schema.js';
19
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAE5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAE5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import z from 'zod';
2
- export declare const AUTH_EVENT_TYPES: readonly ["admin_device_replacement_recovery", "admin_session_revoked", "auth_action_incremented", "bearer_token_failed", "bearer_token_success", "bearer_token_suspicious", "credentials_deleted", "informational", "internal_user_updated_by_owner", "jwks_failed", "jwks_success", "jwks_suspicious", "login_challenge", "login_failed", "login_success", "login_suspicious", "logout_failed", "logout_success", "logout_suspicious", "magic_link_failed", "magic_link_poll_completed_successfully", "magic_link_requested", "magic_link_success", "mfa_otp_failed", "mfa_otp_success", "mfa_otp_suspicious", "notification_sent", "oauth_login_failed", "oauth_login_started", "oauth_login_success", "otp_failed", "otp_success", "otp_suspicious", "recovery_otp_failed", "recovery_otp_success", "recovery_otp_suspicious", "refresh_token_failed", "refresh_token_success", "refresh_token_suspicious", "registration_failed", "registration_success", "registration_suspicious", "request_suspicious", "service_token_failed", "service_token_rotated", "service_token_success", "service_token_suspicious", "step_up_challenge", "step_up_failed", "step_up_success", "step_up_suspicious", "system_config_error", "system_config_read", "system_config_updated", "totp_disabled", "totp_enrollment_started", "totp_enrollment_success", "totp_failed", "totp_success", "totp_suspicious", "user_created", "user_data_failed", "user_data_success", "user_data_suspicious", "user_deleted", "verify_otp_failed", "verify_otp_success", "verify_otp_suspicious", "webauthn_login_failed", "webauthn_login_success", "webauthn_login_suspicious", "webauthn_registration_failed", "webauthn_registration_success", "webauthn_registration_suspicious"];
2
+ export declare const AUTH_EVENT_TYPES: readonly ["admin_device_replacement_recovery", "admin_user_import_completed", "admin_user_imported", "admin_session_revoked", "auth_action_incremented", "bearer_token_failed", "bearer_token_success", "bearer_token_suspicious", "credentials_deleted", "informational", "internal_user_updated_by_owner", "jwks_failed", "jwks_success", "jwks_suspicious", "login_challenge", "login_failed", "login_success", "login_suspicious", "logout_failed", "logout_success", "logout_suspicious", "magic_link_failed", "magic_link_poll_completed_successfully", "magic_link_requested", "magic_link_success", "mfa_otp_failed", "mfa_otp_success", "mfa_otp_suspicious", "notification_sent", "oauth_login_failed", "oauth_login_started", "oauth_login_success", "otp_failed", "otp_success", "otp_suspicious", "recovery_otp_failed", "recovery_otp_success", "recovery_otp_suspicious", "refresh_token_failed", "refresh_token_success", "refresh_token_suspicious", "registration_failed", "registration_success", "registration_suspicious", "request_suspicious", "service_token_failed", "service_token_rotated", "service_token_success", "service_token_suspicious", "step_up_challenge", "step_up_failed", "step_up_success", "step_up_suspicious", "system_config_error", "system_config_read", "system_config_updated", "totp_disabled", "totp_enrollment_started", "totp_enrollment_success", "totp_failed", "totp_success", "totp_suspicious", "user_created", "user_data_failed", "user_data_success", "user_data_suspicious", "user_deleted", "verify_otp_failed", "verify_otp_success", "verify_otp_suspicious", "webauthn_login_failed", "webauthn_login_success", "webauthn_login_suspicious", "webauthn_registration_failed", "webauthn_registration_success", "webauthn_registration_suspicious"];
3
3
  export declare const AuthEventTypeEnum: z.ZodEnum<{
4
4
  admin_device_replacement_recovery: "admin_device_replacement_recovery";
5
+ admin_user_import_completed: "admin_user_import_completed";
6
+ admin_user_imported: "admin_user_imported";
5
7
  admin_session_revoked: "admin_session_revoked";
6
8
  auth_action_incremented: "auth_action_incremented";
7
9
  bearer_token_failed: "bearer_token_failed";
@@ -103,6 +105,8 @@ export declare const AuthEventQuerySchema: z.ZodObject<{
103
105
  sessionId: z.ZodOptional<z.ZodString>;
104
106
  type: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
105
107
  admin_device_replacement_recovery: "admin_device_replacement_recovery";
108
+ admin_user_import_completed: "admin_user_import_completed";
109
+ admin_user_imported: "admin_user_imported";
106
110
  admin_session_revoked: "admin_session_revoked";
107
111
  auth_action_incremented: "auth_action_incremented";
108
112
  bearer_token_failed: "bearer_token_failed";
@@ -178,6 +182,8 @@ export declare const AuthEventQuerySchema: z.ZodObject<{
178
182
  webauthn_registration_suspicious: "webauthn_registration_suspicious";
179
183
  }>, z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodEnum<{
180
184
  admin_device_replacement_recovery: "admin_device_replacement_recovery";
185
+ admin_user_import_completed: "admin_user_import_completed";
186
+ admin_user_imported: "admin_user_imported";
181
187
  admin_session_revoked: "admin_session_revoked";
182
188
  auth_action_incremented: "auth_action_incremented";
183
189
  bearer_token_failed: "bearer_token_failed";
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/authEvent/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,eAAO,MAAM,gBAAgB,gqDA2EnB,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA2B,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAI9D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;iBAsD1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAe/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;iBAGnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/authEvent/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,eAAO,MAAM,gBAAgB,stDA6EnB,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA2B,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAI9D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;iBAsD1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAe/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;iBAGnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -2,6 +2,8 @@ import z from 'zod';
2
2
  import { IsoDate } from '../../shared.js';
3
3
  export const AUTH_EVENT_TYPES = [
4
4
  'admin_device_replacement_recovery',
5
+ 'admin_user_import_completed',
6
+ 'admin_user_imported',
5
7
  'admin_session_revoked',
6
8
  'auth_action_incremented',
7
9
  'bearer_token_failed',
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/schemas/authEvent/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/schemas/authEvent/schema.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,10 @@ export declare const UpdateOrganizationRequestSchema: z.ZodObject<{
20
20
  metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
21
21
  }, z.core.$strip>;
22
22
  export type UpdateOrganizationRequest = z.infer<typeof UpdateOrganizationRequestSchema>;
23
+ export declare const MembershipRoleSchema: z.ZodString;
24
+ export declare const MembershipScopeSchema: z.ZodString;
25
+ export type MembershipRole = z.infer<typeof MembershipRoleSchema>;
26
+ export type MembershipScope = z.infer<typeof MembershipScopeSchema>;
23
27
  export declare const AddOrganizationMemberRequestSchema: z.ZodObject<{
24
28
  userId: z.ZodOptional<z.ZodUUID>;
25
29
  email: z.ZodOptional<z.ZodEmail>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/organization/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,yBAAyB;;iBAEpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,6BAA6B;;;iBAExC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,+BAA+B;;;;iBAI1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,+BAA+B;;;;iBAI1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAKxF,eAAO,MAAM,kCAAkC;;;;;iBAS3C,CAAC;AAEL,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,qCAAqC;;;iBAGhD,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AASpG,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;iBASvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;iBAU7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE7C,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGzC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG9C,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;iBAG5C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F,eAAO,MAAM,4CAA4C;;;;;;;;;;;;;;;;iBAEvD,CAAC;AAEH,MAAM,MAAM,sCAAsC,GAAG,CAAC,CAAC,KAAK,CAC1D,OAAO,4CAA4C,CACpD,CAAC;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ3C,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/organization/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,yBAAyB;;iBAEpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,6BAA6B;;;iBAExC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,+BAA+B;;;;iBAI1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,+BAA+B;;;;iBAI1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,oBAAoB,aAAmC,CAAC;AACrE,eAAO,MAAM,qBAAqB,aAAoC,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,kCAAkC;;;;;iBAS3C,CAAC;AAEL,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,qCAAqC;;;iBAGhD,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AASpG,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;iBASvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;iBAU7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE7C,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAE9F,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGzC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG9C,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;iBAG5C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F,eAAO,MAAM,4CAA4C;;;;;;;;;;;;;;;;iBAEvD,CAAC;AAEH,MAAM,MAAM,sCAAsC,GAAG,CAAC,CAAC,KAAK,CAC1D,OAAO,4CAA4C,CACpD,CAAC;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ3C,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
@@ -17,8 +17,8 @@ export const UpdateOrganizationRequestSchema = z.object({
17
17
  slug: z.string().trim().min(1).max(100).optional(),
18
18
  metadata: MetadataSchema,
19
19
  });
20
- const MembershipRoleSchema = z.string().trim().min(1).max(80);
21
- const MembershipScopeSchema = z.string().trim().min(1).max(120);
20
+ export const MembershipRoleSchema = z.string().trim().min(1).max(80);
21
+ export const MembershipScopeSchema = z.string().trim().min(1).max(120);
22
22
  export const AddOrganizationMemberRequestSchema = z
23
23
  .object({
24
24
  userId: z.uuid().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/schemas/organization/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/schemas/organization/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ import { z } from 'zod';
2
+ export declare const USER_IMPORT_MAX_ROWS = 200;
3
+ /** Names the system the users come from, so the same external id can be matched on a re-run. */
4
+ export declare const UserImportSourceSchema: z.ZodString;
5
+ export type UserImportSource = z.infer<typeof UserImportSourceSchema>;
6
+ export declare const UserImportOrganizationSchema: z.ZodObject<{
7
+ organizationId: z.ZodOptional<z.ZodUUID>;
8
+ slug: z.ZodOptional<z.ZodString>;
9
+ roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
10
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
11
+ }, z.core.$strict>;
12
+ export type UserImportOrganization = z.infer<typeof UserImportOrganizationSchema>;
13
+ export declare const UserImportRowSchema: z.ZodObject<{
14
+ externalId: z.ZodOptional<z.ZodString>;
15
+ email: z.ZodEmail;
16
+ phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
17
+ roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
18
+ organizations: z.ZodOptional<z.ZodArray<z.ZodObject<{
19
+ organizationId: z.ZodOptional<z.ZodUUID>;
20
+ slug: z.ZodOptional<z.ZodString>;
21
+ roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
22
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
23
+ }, z.core.$strict>>>;
24
+ }, z.core.$strict>;
25
+ export type UserImportRow = z.infer<typeof UserImportRowSchema>;
26
+ /**
27
+ * A batch of users to bring across from another identity system.
28
+ *
29
+ * Imports never carry credentials: an imported user signs in for the first time by
30
+ * registering with the imported email, which proves control of the address and then
31
+ * enrolls a passkey. Imports only ever add roles and memberships, never remove them,
32
+ * so re-running one after correcting the source data cannot take access away.
33
+ */
34
+ export declare const ImportUsersRequestSchema: z.ZodObject<{
35
+ source: z.ZodString;
36
+ dryRun: z.ZodDefault<z.ZodBoolean>;
37
+ users: z.ZodArray<z.ZodObject<{
38
+ externalId: z.ZodOptional<z.ZodString>;
39
+ email: z.ZodEmail;
40
+ phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
41
+ roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
42
+ organizations: z.ZodOptional<z.ZodArray<z.ZodObject<{
43
+ organizationId: z.ZodOptional<z.ZodUUID>;
44
+ slug: z.ZodOptional<z.ZodString>;
45
+ roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
46
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
47
+ }, z.core.$strict>>>;
48
+ }, z.core.$strict>>;
49
+ }, z.core.$strict>;
50
+ export type ImportUsersRequest = z.infer<typeof ImportUsersRequestSchema>;
51
+ export declare const UserImportStatusSchema: z.ZodEnum<{
52
+ rejected: "rejected";
53
+ created: "created";
54
+ updated: "updated";
55
+ unchanged: "unchanged";
56
+ }>;
57
+ export type UserImportStatus = z.infer<typeof UserImportStatusSchema>;
58
+ export declare const UserImportRejectionSchema: z.ZodEnum<{
59
+ admin_role_not_allowed: "admin_role_not_allowed";
60
+ role_unavailable: "role_unavailable";
61
+ organization_not_found: "organization_not_found";
62
+ duplicate_in_batch: "duplicate_in_batch";
63
+ email_mismatch: "email_mismatch";
64
+ phone_invalid: "phone_invalid";
65
+ phone_in_use: "phone_in_use";
66
+ external_id_conflict: "external_id_conflict";
67
+ write_failed: "write_failed";
68
+ }>;
69
+ export type UserImportRejection = z.infer<typeof UserImportRejectionSchema>;
70
+ export declare const UserImportChangeSchema: z.ZodEnum<{
71
+ phone: "phone";
72
+ roles: "roles";
73
+ organizations: "organizations";
74
+ created: "created";
75
+ linked: "linked";
76
+ }>;
77
+ export type UserImportChange = z.infer<typeof UserImportChangeSchema>;
78
+ export declare const UserImportResultSchema: z.ZodObject<{
79
+ index: z.ZodNumber;
80
+ email: z.ZodString;
81
+ externalId: z.ZodOptional<z.ZodString>;
82
+ status: z.ZodEnum<{
83
+ rejected: "rejected";
84
+ created: "created";
85
+ updated: "updated";
86
+ unchanged: "unchanged";
87
+ }>;
88
+ userId: z.ZodOptional<z.ZodString>;
89
+ changes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
90
+ phone: "phone";
91
+ roles: "roles";
92
+ organizations: "organizations";
93
+ created: "created";
94
+ linked: "linked";
95
+ }>>>;
96
+ reason: z.ZodOptional<z.ZodEnum<{
97
+ admin_role_not_allowed: "admin_role_not_allowed";
98
+ role_unavailable: "role_unavailable";
99
+ organization_not_found: "organization_not_found";
100
+ duplicate_in_batch: "duplicate_in_batch";
101
+ email_mismatch: "email_mismatch";
102
+ phone_invalid: "phone_invalid";
103
+ phone_in_use: "phone_in_use";
104
+ external_id_conflict: "external_id_conflict";
105
+ write_failed: "write_failed";
106
+ }>>;
107
+ detail: z.ZodOptional<z.ZodString>;
108
+ }, z.core.$strip>;
109
+ export type UserImportResult = z.infer<typeof UserImportResultSchema>;
110
+ export declare const ImportUsersResponseSchema: z.ZodObject<{
111
+ source: z.ZodString;
112
+ dryRun: z.ZodBoolean;
113
+ summary: z.ZodObject<{
114
+ created: z.ZodNumber;
115
+ updated: z.ZodNumber;
116
+ unchanged: z.ZodNumber;
117
+ rejected: z.ZodNumber;
118
+ }, z.core.$strip>;
119
+ results: z.ZodArray<z.ZodObject<{
120
+ index: z.ZodNumber;
121
+ email: z.ZodString;
122
+ externalId: z.ZodOptional<z.ZodString>;
123
+ status: z.ZodEnum<{
124
+ rejected: "rejected";
125
+ created: "created";
126
+ updated: "updated";
127
+ unchanged: "unchanged";
128
+ }>;
129
+ userId: z.ZodOptional<z.ZodString>;
130
+ changes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
131
+ phone: "phone";
132
+ roles: "roles";
133
+ organizations: "organizations";
134
+ created: "created";
135
+ linked: "linked";
136
+ }>>>;
137
+ reason: z.ZodOptional<z.ZodEnum<{
138
+ admin_role_not_allowed: "admin_role_not_allowed";
139
+ role_unavailable: "role_unavailable";
140
+ organization_not_found: "organization_not_found";
141
+ duplicate_in_batch: "duplicate_in_batch";
142
+ email_mismatch: "email_mismatch";
143
+ phone_invalid: "phone_invalid";
144
+ phone_in_use: "phone_in_use";
145
+ external_id_conflict: "external_id_conflict";
146
+ write_failed: "write_failed";
147
+ }>>;
148
+ detail: z.ZodOptional<z.ZodString>;
149
+ }, z.core.$strip>>;
150
+ }, z.core.$strip>;
151
+ export type ImportUsersResponse = z.infer<typeof ImportUsersResponseSchema>;
152
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/userImport/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,gGAAgG;AAChG,eAAO,MAAM,sBAAsB,aAGqD,CAAC;AAEzF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,4BAA4B;;;;;kBAUrC,CAAC;AAEL,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,mBAAmB;;;;;;;;;;;kBAQrB,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;kBAM1B,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,sBAAsB;;;;;EAA0D,CAAC;AAE9F,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,yBAAyB;;;;;;;;;;EAUpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,sBAAsB;;;;;;EAMjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { z } from 'zod';
2
+ import { MembershipRoleSchema, MembershipScopeSchema } from '../organization/schema.js';
3
+ import { RoleNameSchema } from '../role/schema.js';
4
+ export const USER_IMPORT_MAX_ROWS = 200;
5
+ /** Names the system the users come from, so the same external id can be matched on a re-run. */
6
+ export const UserImportSourceSchema = z
7
+ .string()
8
+ .trim()
9
+ .regex(/^[a-z0-9][a-z0-9-]{0,63}$/, 'lowercase letters, digits and hyphens, up to 64');
10
+ export const UserImportOrganizationSchema = z
11
+ .object({
12
+ organizationId: z.uuid().optional(),
13
+ slug: z.string().trim().min(1).max(100).optional(),
14
+ roles: z.array(MembershipRoleSchema).max(50).optional(),
15
+ scopes: z.array(MembershipScopeSchema).max(50).optional(),
16
+ })
17
+ .strict()
18
+ .refine((value) => Boolean(value.organizationId) !== Boolean(value.slug), {
19
+ message: 'exactly one of organizationId or slug is required',
20
+ });
21
+ export const UserImportRowSchema = z
22
+ .object({
23
+ externalId: z.string().trim().min(1).max(255).optional(),
24
+ email: z.email(),
25
+ phone: z.string().min(5).nullish(),
26
+ roles: z.array(RoleNameSchema).max(50).optional(),
27
+ organizations: z.array(UserImportOrganizationSchema).max(50).optional(),
28
+ })
29
+ .strict();
30
+ /**
31
+ * A batch of users to bring across from another identity system.
32
+ *
33
+ * Imports never carry credentials: an imported user signs in for the first time by
34
+ * registering with the imported email, which proves control of the address and then
35
+ * enrolls a passkey. Imports only ever add roles and memberships, never remove them,
36
+ * so re-running one after correcting the source data cannot take access away.
37
+ */
38
+ export const ImportUsersRequestSchema = z
39
+ .object({
40
+ source: UserImportSourceSchema,
41
+ dryRun: z.boolean().default(false),
42
+ users: z.array(UserImportRowSchema).min(1).max(USER_IMPORT_MAX_ROWS),
43
+ })
44
+ .strict();
45
+ export const UserImportStatusSchema = z.enum(['created', 'updated', 'unchanged', 'rejected']);
46
+ export const UserImportRejectionSchema = z.enum([
47
+ 'admin_role_not_allowed',
48
+ 'role_unavailable',
49
+ 'organization_not_found',
50
+ 'duplicate_in_batch',
51
+ 'email_mismatch',
52
+ 'phone_invalid',
53
+ 'phone_in_use',
54
+ 'external_id_conflict',
55
+ 'write_failed',
56
+ ]);
57
+ export const UserImportChangeSchema = z.enum([
58
+ 'created',
59
+ 'linked',
60
+ 'phone',
61
+ 'roles',
62
+ 'organizations',
63
+ ]);
64
+ export const UserImportResultSchema = z.object({
65
+ index: z.number().int().nonnegative(),
66
+ email: z.string(),
67
+ externalId: z.string().optional(),
68
+ status: UserImportStatusSchema,
69
+ userId: z.string().optional(),
70
+ changes: z.array(UserImportChangeSchema).optional(),
71
+ reason: UserImportRejectionSchema.optional(),
72
+ detail: z.string().optional(),
73
+ });
74
+ export const ImportUsersResponseSchema = z.object({
75
+ source: z.string(),
76
+ dryRun: z.boolean(),
77
+ summary: z.object({
78
+ created: z.number().int().nonnegative(),
79
+ updated: z.number().int().nonnegative(),
80
+ unchanged: z.number().int().nonnegative(),
81
+ rejected: z.number().int().nonnegative(),
82
+ }),
83
+ results: z.array(UserImportResultSchema),
84
+ });
85
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/schemas/userImport/schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamless-auth/types",
3
- "version": "0.22.0",
3
+ "version": "0.23.0",
4
4
  "description": "Shared TypeScript types and Zod schemas for SeamlessAuth.",
5
5
  "author": "Fells Code, LLC",
6
6
  "license": "AGPL-3.0-only",
@@ -87,7 +87,7 @@
87
87
  "eslint-config-prettier": "^10.1.8",
88
88
  "husky": "^9.1.7",
89
89
  "lint-staged": "^17.2.0",
90
- "prettier": "3.9.6",
90
+ "prettier": "3.9.9",
91
91
  "typescript": "^5.9.3",
92
92
  "vitest": "^4.1.1"
93
93
  },
package/src/index.ts CHANGED
@@ -17,3 +17,4 @@ export * from './schemas/organization/schema.js';
17
17
  export * from './schemas/me/schema.js';
18
18
  export * from './schemas/metrics/schema.js';
19
19
  export * from './schemas/admin/schema.js';
20
+ export * from './schemas/userImport/schema.js';
@@ -3,6 +3,8 @@ import { IsoDate } from '../../shared.js';
3
3
 
4
4
  export const AUTH_EVENT_TYPES = [
5
5
  'admin_device_replacement_recovery',
6
+ 'admin_user_import_completed',
7
+ 'admin_user_imported',
6
8
  'admin_session_revoked',
7
9
  'auth_action_incremented',
8
10
  'bearer_token_failed',
@@ -30,8 +30,11 @@ export const UpdateOrganizationRequestSchema = z.object({
30
30
 
31
31
  export type UpdateOrganizationRequest = z.infer<typeof UpdateOrganizationRequestSchema>;
32
32
 
33
- const MembershipRoleSchema = z.string().trim().min(1).max(80);
34
- const MembershipScopeSchema = z.string().trim().min(1).max(120);
33
+ export const MembershipRoleSchema = z.string().trim().min(1).max(80);
34
+ export const MembershipScopeSchema = z.string().trim().min(1).max(120);
35
+
36
+ export type MembershipRole = z.infer<typeof MembershipRoleSchema>;
37
+ export type MembershipScope = z.infer<typeof MembershipScopeSchema>;
35
38
 
36
39
  export const AddOrganizationMemberRequestSchema = z
37
40
  .object({
@@ -0,0 +1,112 @@
1
+ import { z } from 'zod';
2
+ import { MembershipRoleSchema, MembershipScopeSchema } from '../organization/schema.js';
3
+ import { RoleNameSchema } from '../role/schema.js';
4
+
5
+ export const USER_IMPORT_MAX_ROWS = 200;
6
+
7
+ /** Names the system the users come from, so the same external id can be matched on a re-run. */
8
+ export const UserImportSourceSchema = z
9
+ .string()
10
+ .trim()
11
+ .regex(/^[a-z0-9][a-z0-9-]{0,63}$/, 'lowercase letters, digits and hyphens, up to 64');
12
+
13
+ export type UserImportSource = z.infer<typeof UserImportSourceSchema>;
14
+
15
+ export const UserImportOrganizationSchema = z
16
+ .object({
17
+ organizationId: z.uuid().optional(),
18
+ slug: z.string().trim().min(1).max(100).optional(),
19
+ roles: z.array(MembershipRoleSchema).max(50).optional(),
20
+ scopes: z.array(MembershipScopeSchema).max(50).optional(),
21
+ })
22
+ .strict()
23
+ .refine((value) => Boolean(value.organizationId) !== Boolean(value.slug), {
24
+ message: 'exactly one of organizationId or slug is required',
25
+ });
26
+
27
+ export type UserImportOrganization = z.infer<typeof UserImportOrganizationSchema>;
28
+
29
+ export const UserImportRowSchema = z
30
+ .object({
31
+ externalId: z.string().trim().min(1).max(255).optional(),
32
+ email: z.email(),
33
+ phone: z.string().min(5).nullish(),
34
+ roles: z.array(RoleNameSchema).max(50).optional(),
35
+ organizations: z.array(UserImportOrganizationSchema).max(50).optional(),
36
+ })
37
+ .strict();
38
+
39
+ export type UserImportRow = z.infer<typeof UserImportRowSchema>;
40
+
41
+ /**
42
+ * A batch of users to bring across from another identity system.
43
+ *
44
+ * Imports never carry credentials: an imported user signs in for the first time by
45
+ * registering with the imported email, which proves control of the address and then
46
+ * enrolls a passkey. Imports only ever add roles and memberships, never remove them,
47
+ * so re-running one after correcting the source data cannot take access away.
48
+ */
49
+ export const ImportUsersRequestSchema = z
50
+ .object({
51
+ source: UserImportSourceSchema,
52
+ dryRun: z.boolean().default(false),
53
+ users: z.array(UserImportRowSchema).min(1).max(USER_IMPORT_MAX_ROWS),
54
+ })
55
+ .strict();
56
+
57
+ export type ImportUsersRequest = z.infer<typeof ImportUsersRequestSchema>;
58
+
59
+ export const UserImportStatusSchema = z.enum(['created', 'updated', 'unchanged', 'rejected']);
60
+
61
+ export type UserImportStatus = z.infer<typeof UserImportStatusSchema>;
62
+
63
+ export const UserImportRejectionSchema = z.enum([
64
+ 'admin_role_not_allowed',
65
+ 'role_unavailable',
66
+ 'organization_not_found',
67
+ 'duplicate_in_batch',
68
+ 'email_mismatch',
69
+ 'phone_invalid',
70
+ 'phone_in_use',
71
+ 'external_id_conflict',
72
+ 'write_failed',
73
+ ]);
74
+
75
+ export type UserImportRejection = z.infer<typeof UserImportRejectionSchema>;
76
+
77
+ export const UserImportChangeSchema = z.enum([
78
+ 'created',
79
+ 'linked',
80
+ 'phone',
81
+ 'roles',
82
+ 'organizations',
83
+ ]);
84
+
85
+ export type UserImportChange = z.infer<typeof UserImportChangeSchema>;
86
+
87
+ export const UserImportResultSchema = z.object({
88
+ index: z.number().int().nonnegative(),
89
+ email: z.string(),
90
+ externalId: z.string().optional(),
91
+ status: UserImportStatusSchema,
92
+ userId: z.string().optional(),
93
+ changes: z.array(UserImportChangeSchema).optional(),
94
+ reason: UserImportRejectionSchema.optional(),
95
+ detail: z.string().optional(),
96
+ });
97
+
98
+ export type UserImportResult = z.infer<typeof UserImportResultSchema>;
99
+
100
+ export const ImportUsersResponseSchema = z.object({
101
+ source: z.string(),
102
+ dryRun: z.boolean(),
103
+ summary: z.object({
104
+ created: z.number().int().nonnegative(),
105
+ updated: z.number().int().nonnegative(),
106
+ unchanged: z.number().int().nonnegative(),
107
+ rejected: z.number().int().nonnegative(),
108
+ }),
109
+ results: z.array(UserImportResultSchema),
110
+ });
111
+
112
+ export type ImportUsersResponse = z.infer<typeof ImportUsersResponseSchema>;