@seamless-auth/types 0.1.3 → 0.3.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.
Files changed (79) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +54 -0
  3. package/dist/index.d.ts +15 -2
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +15 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/schemas/admin/schema.d.ts +99 -0
  8. package/dist/schemas/admin/schema.d.ts.map +1 -0
  9. package/dist/schemas/admin/schema.js +38 -0
  10. package/dist/schemas/admin/schema.js.map +1 -0
  11. package/dist/schemas/auth/auth.schema.d.ts +158 -0
  12. package/dist/schemas/auth/auth.schema.d.ts.map +1 -1
  13. package/dist/schemas/auth/auth.schema.js +82 -0
  14. package/dist/schemas/auth/auth.schema.js.map +1 -1
  15. package/dist/schemas/authEvent/schema.d.ts +251 -0
  16. package/dist/schemas/authEvent/schema.d.ts.map +1 -1
  17. package/dist/schemas/authEvent/schema.js +93 -0
  18. package/dist/schemas/authEvent/schema.js.map +1 -1
  19. package/dist/schemas/common/schema.d.ts +23 -0
  20. package/dist/schemas/common/schema.d.ts.map +1 -0
  21. package/dist/schemas/common/schema.js +19 -0
  22. package/dist/schemas/common/schema.js.map +1 -0
  23. package/dist/schemas/credential/schema.d.ts +86 -0
  24. package/dist/schemas/credential/schema.d.ts.map +1 -1
  25. package/dist/schemas/credential/schema.js +30 -2
  26. package/dist/schemas/credential/schema.js.map +1 -1
  27. package/dist/schemas/me/schema.d.ts +104 -0
  28. package/dist/schemas/me/schema.d.ts.map +1 -0
  29. package/dist/schemas/me/schema.js +24 -0
  30. package/dist/schemas/me/schema.js.map +1 -0
  31. package/dist/schemas/messaging/schema.d.ts +73 -0
  32. package/dist/schemas/messaging/schema.d.ts.map +1 -0
  33. package/dist/schemas/messaging/schema.js +63 -0
  34. package/dist/schemas/messaging/schema.js.map +1 -0
  35. package/dist/schemas/metrics/schema.d.ts +86 -0
  36. package/dist/schemas/metrics/schema.d.ts.map +1 -0
  37. package/dist/schemas/metrics/schema.js +79 -0
  38. package/dist/schemas/metrics/schema.js.map +1 -0
  39. package/dist/schemas/oauth/schema.d.ts +68 -0
  40. package/dist/schemas/oauth/schema.d.ts.map +1 -0
  41. package/dist/schemas/oauth/schema.js +43 -0
  42. package/dist/schemas/oauth/schema.js.map +1 -0
  43. package/dist/schemas/organization/schema.d.ts +228 -0
  44. package/dist/schemas/organization/schema.d.ts.map +1 -0
  45. package/dist/schemas/organization/schema.js +90 -0
  46. package/dist/schemas/organization/schema.js.map +1 -0
  47. package/dist/schemas/role/matching.d.ts +20 -0
  48. package/dist/schemas/role/matching.d.ts.map +1 -0
  49. package/dist/schemas/role/matching.js +59 -0
  50. package/dist/schemas/role/matching.js.map +1 -0
  51. package/dist/schemas/role/schema.d.ts +7 -0
  52. package/dist/schemas/role/schema.d.ts.map +1 -0
  53. package/dist/schemas/role/schema.js +7 -0
  54. package/dist/schemas/role/schema.js.map +1 -0
  55. package/dist/schemas/session/schema.d.ts +17 -0
  56. package/dist/schemas/session/schema.d.ts.map +1 -1
  57. package/dist/schemas/session/schema.js +7 -0
  58. package/dist/schemas/session/schema.js.map +1 -1
  59. package/dist/schemas/stepUp/schema.d.ts +31 -0
  60. package/dist/schemas/stepUp/schema.d.ts.map +1 -0
  61. package/dist/schemas/stepUp/schema.js +19 -0
  62. package/dist/schemas/stepUp/schema.js.map +1 -0
  63. package/dist/schemas/systemConfig/schema.d.ts +368 -0
  64. package/dist/schemas/systemConfig/schema.d.ts.map +1 -0
  65. package/dist/schemas/systemConfig/schema.js +141 -0
  66. package/dist/schemas/systemConfig/schema.js.map +1 -0
  67. package/dist/schemas/totp/schema.d.ts +26 -0
  68. package/dist/schemas/totp/schema.d.ts.map +1 -0
  69. package/dist/schemas/totp/schema.js +23 -0
  70. package/dist/schemas/totp/schema.js.map +1 -0
  71. package/dist/schemas/user/schema.d.ts +54 -3
  72. package/dist/schemas/user/schema.d.ts.map +1 -1
  73. package/dist/schemas/user/schema.js +33 -6
  74. package/dist/schemas/user/schema.js.map +1 -1
  75. package/dist/schemas/webauthn/schema.d.ts +61 -0
  76. package/dist/schemas/webauthn/schema.d.ts.map +1 -0
  77. package/dist/schemas/webauthn/schema.js +58 -0
  78. package/dist/schemas/webauthn/schema.js.map +1 -0
  79. package/package.json +32 -7
@@ -1,11 +1,11 @@
1
1
  import { z } from 'zod';
2
2
  import { IsoDate } from '../../shared.js';
3
- export const RoleSchema = z.string().regex(/^(?!.*[_/\\\s])[A-Za-z0-9-]{1,31}$/);
3
+ import { RoleNameSchema } from '../role/schema.js';
4
4
  export const UserSchema = z.object({
5
5
  id: z.uuid(),
6
6
  email: z.email(),
7
7
  phone: z.string(),
8
- roles: z.array(RoleSchema).default([]),
8
+ roles: z.array(RoleNameSchema).default([]),
9
9
  revoked: z.boolean().default(false),
10
10
  emailVerified: z.boolean().default(false),
11
11
  phoneVerified: z.boolean().default(false),
@@ -14,18 +14,45 @@ export const UserSchema = z.object({
14
14
  createdAt: IsoDate,
15
15
  updatedAt: IsoDate.nullable().optional(),
16
16
  });
17
+ /**
18
+ * The user as it crosses the wire. Looser than {@link UserSchema}: the id is an
19
+ * opaque string rather than a UUID, phone is nullable for email-only accounts,
20
+ * and the verification flags are absent on endpoints that do not expose them.
21
+ */
22
+ export const ApiUserSchema = z
23
+ .object({
24
+ id: z.string(),
25
+ email: z.email(),
26
+ phone: z.string().nullable(),
27
+ roles: z.array(RoleNameSchema).default([]),
28
+ revoked: z.boolean().optional(),
29
+ emailVerified: z.boolean().optional(),
30
+ phoneVerified: z.boolean().optional(),
31
+ verified: z.boolean().optional(),
32
+ lastLogin: IsoDate.nullable().optional(),
33
+ createdAt: IsoDate.optional(),
34
+ updatedAt: IsoDate.optional(),
35
+ })
36
+ .strict();
17
37
  export const CreateUserSchema = z.object({
18
38
  email: z.email(),
19
- phone: z.string(),
20
- roles: z.array(RoleSchema).min(1),
39
+ phone: z.string().min(5).nullish(),
40
+ roles: z.array(RoleNameSchema).min(1),
21
41
  });
22
42
  export const UpdateUserSchema = z
23
43
  .object({
24
44
  email: z.email().optional(),
25
- phone: z.string().min(5).optional(),
45
+ phone: z.string().min(5).nullish(),
26
46
  emailVerified: z.boolean().optional(),
27
47
  phoneVerified: z.boolean().optional(),
28
- roles: z.array(RoleSchema).min(1).optional(),
48
+ roles: z.array(RoleNameSchema).min(1).optional(),
29
49
  })
30
50
  .strict();
51
+ export const UserResponseSchema = z.object({
52
+ user: ApiUserSchema,
53
+ });
54
+ export const UsersListResponseSchema = z.object({
55
+ users: z.array(ApiUserSchema),
56
+ total: z.number(),
57
+ });
31
58
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/schemas/user/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAEjF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;IACZ,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxC,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACrC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACrC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC;KACD,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/schemas/user/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * PRF salts are validated for length and encoding by the server, which owns the
4
+ * rule. This schema only asserts the wire shape so both sides agree on it.
5
+ */
6
+ export declare const WebAuthnPrfRequestSchema: z.ZodObject<{
7
+ salt: z.ZodString;
8
+ secondSalt: z.ZodOptional<z.ZodString>;
9
+ }, z.core.$strip>;
10
+ export type WebAuthnPrfRequest = z.infer<typeof WebAuthnPrfRequestSchema>;
11
+ export declare const WebAuthnRegisterStartQuerySchema: z.ZodObject<{
12
+ requestPrf: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodBoolean>>;
13
+ requirePrf: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodBoolean>>;
14
+ }, z.core.$strip>;
15
+ export declare const WebAuthnAssertionStartSchema: z.ZodDefault<z.ZodObject<{
16
+ credentialId: z.ZodOptional<z.ZodString>;
17
+ prf: z.ZodOptional<z.ZodObject<{
18
+ salt: z.ZodString;
19
+ secondSalt: z.ZodOptional<z.ZodString>;
20
+ }, z.core.$strip>>;
21
+ }, z.core.$strip>>;
22
+ export declare const WebAuthnCredentialMetadataSchema: z.ZodObject<{
23
+ friendlyName: z.ZodOptional<z.ZodString>;
24
+ platform: z.ZodOptional<z.ZodString>;
25
+ browser: z.ZodOptional<z.ZodString>;
26
+ deviceInfo: z.ZodOptional<z.ZodString>;
27
+ prfCapable: z.ZodOptional<z.ZodBoolean>;
28
+ }, z.core.$strip>;
29
+ export type WebAuthnCredentialMetadata = z.infer<typeof WebAuthnCredentialMetadataSchema>;
30
+ export declare const WebAuthnRegisterFinishSchema: z.ZodObject<{
31
+ attestationResponse: z.ZodRecord<z.ZodString, z.ZodUnknown>;
32
+ metadata: z.ZodOptional<z.ZodObject<{
33
+ friendlyName: z.ZodOptional<z.ZodString>;
34
+ platform: z.ZodOptional<z.ZodString>;
35
+ browser: z.ZodOptional<z.ZodString>;
36
+ deviceInfo: z.ZodOptional<z.ZodString>;
37
+ prfCapable: z.ZodOptional<z.ZodBoolean>;
38
+ }, z.core.$strip>>;
39
+ }, z.core.$strip>;
40
+ export declare const WebAuthnLoginFinishSchema: z.ZodObject<{
41
+ assertionResponse: z.ZodRecord<z.ZodString, z.ZodUnknown>;
42
+ }, z.core.$strip>;
43
+ /**
44
+ * The credential creation and request options are passed through to the browser
45
+ * verbatim, so they are not narrowed here.
46
+ */
47
+ export declare const WebAuthnChallengeSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
48
+ export declare const WebAuthnTokenSuccessSchema: z.ZodObject<{
49
+ message: z.ZodString;
50
+ token: z.ZodOptional<z.ZodString>;
51
+ refreshToken: z.ZodOptional<z.ZodString>;
52
+ refreshTokenHash: z.ZodOptional<z.ZodString>;
53
+ sub: z.ZodOptional<z.ZodString>;
54
+ roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
55
+ email: z.ZodOptional<z.ZodString>;
56
+ phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
57
+ ttl: z.ZodOptional<z.ZodNumber>;
58
+ refreshTtl: z.ZodOptional<z.ZodNumber>;
59
+ }, z.core.$strip>;
60
+ export type WebAuthnTokenSuccessResponse = z.infer<typeof WebAuthnTokenSuccessSchema>;
61
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/webauthn/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;iBAGnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,gCAAgC;;;iBAG3C,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;kBAK3B,CAAC;AAEf,eAAO,MAAM,gCAAgC;;;;;;iBAM3C,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,4BAA4B;;;;;;;;;iBAGvC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;iBAEpC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,wCAAoC,CAAC;AAEzE,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBAarC,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { z } from 'zod';
2
+ const BooleanQuerySchema = z.preprocess((value) => {
3
+ if (value === 'true')
4
+ return true;
5
+ if (value === 'false')
6
+ return false;
7
+ return value;
8
+ }, z.boolean().optional());
9
+ /**
10
+ * PRF salts are validated for length and encoding by the server, which owns the
11
+ * rule. This schema only asserts the wire shape so both sides agree on it.
12
+ */
13
+ export const WebAuthnPrfRequestSchema = z.object({
14
+ salt: z.string(),
15
+ secondSalt: z.string().optional(),
16
+ });
17
+ export const WebAuthnRegisterStartQuerySchema = z.object({
18
+ requestPrf: BooleanQuerySchema,
19
+ requirePrf: BooleanQuerySchema,
20
+ });
21
+ export const WebAuthnAssertionStartSchema = z
22
+ .object({
23
+ credentialId: z.string().optional(),
24
+ prf: WebAuthnPrfRequestSchema.optional(),
25
+ })
26
+ .default({});
27
+ export const WebAuthnCredentialMetadataSchema = z.object({
28
+ friendlyName: z.string().optional(),
29
+ platform: z.string().optional(),
30
+ browser: z.string().optional(),
31
+ deviceInfo: z.string().optional(),
32
+ prfCapable: z.boolean().optional(),
33
+ });
34
+ export const WebAuthnRegisterFinishSchema = z.object({
35
+ attestationResponse: z.record(z.string(), z.unknown()),
36
+ metadata: WebAuthnCredentialMetadataSchema.optional(),
37
+ });
38
+ export const WebAuthnLoginFinishSchema = z.object({
39
+ assertionResponse: z.record(z.string(), z.unknown()),
40
+ });
41
+ /**
42
+ * The credential creation and request options are passed through to the browser
43
+ * verbatim, so they are not narrowed here.
44
+ */
45
+ export const WebAuthnChallengeSchema = z.record(z.string(), z.unknown());
46
+ export const WebAuthnTokenSuccessSchema = z.object({
47
+ message: z.string(),
48
+ token: z.string().optional(),
49
+ refreshToken: z.string().optional(),
50
+ refreshTokenHash: z.string().optional(),
51
+ sub: z.string().optional(),
52
+ roles: z.array(z.string()).optional(),
53
+ email: z.string().optional(),
54
+ phone: z.string().nullable().optional(),
55
+ ttl: z.number().optional(),
56
+ refreshTtl: z.number().optional(),
57
+ });
58
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/schemas/webauthn/schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,18 +1,31 @@
1
1
  {
2
2
  "name": "@seamless-auth/types",
3
- "version": "0.1.3",
3
+ "version": "0.3.0",
4
4
  "description": "Shared TypeScript types and Zod schemas for SeamlessAuth.",
5
5
  "author": "Fells Code, LLC",
6
- "license": "AGPL-3.0",
6
+ "license": "AGPL-3.0-only",
7
7
  "type": "module",
8
8
  "main": "./dist/index.js",
9
9
  "types": "./dist/index.d.ts",
10
10
  "exports": {
11
- ".": "./dist/index.js"
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js"
14
+ },
15
+ "./role": {
16
+ "types": "./dist/schemas/role/schema.d.ts",
17
+ "import": "./dist/schemas/role/schema.js"
18
+ },
19
+ "./role/matching": {
20
+ "types": "./dist/schemas/role/matching.d.ts",
21
+ "import": "./dist/schemas/role/matching.js"
22
+ }
12
23
  },
24
+ "sideEffects": false,
13
25
  "files": [
14
26
  "dist",
15
27
  "README.md",
28
+ "CHANGELOG.md",
16
29
  "LICENSE"
17
30
  ],
18
31
  "repository": {
@@ -33,7 +46,7 @@
33
46
  "seamless-auth"
34
47
  ],
35
48
  "scripts": {
36
- "build": "tsc",
49
+ "build": "npm run clean && tsc",
37
50
  "dev": "tsc --watch",
38
51
  "clean": "rm -rf dist",
39
52
  "typecheck": "tsc --noEmit",
@@ -44,22 +57,32 @@
44
57
  "prepare": "husky",
45
58
  "prepublishOnly": "npm run build",
46
59
  "test": "vitest run",
47
- "test:watch": "vitest"
60
+ "test:watch": "vitest",
61
+ "coverage": "vitest run --coverage",
62
+ "changeset": "changeset",
63
+ "version-packages": "changeset version",
64
+ "release:stable": "npm run build && changeset publish",
65
+ "check-npm-build": "npm pack --dry-run"
48
66
  },
49
67
  "lint-staged": {
50
68
  "*.ts": [
51
69
  "eslint --fix",
52
70
  "prettier --write"
71
+ ],
72
+ "*.{json,md,yml,yaml}": [
73
+ "prettier --write"
53
74
  ]
54
75
  },
55
76
  "dependencies": {
56
77
  "zod": "^4.3.6"
57
78
  },
58
79
  "devDependencies": {
80
+ "@changesets/cli": "^2.31.1",
59
81
  "@commitlint/cli": "^20.5.0",
60
82
  "@commitlint/config-conventional": "^20.5.0",
61
83
  "@typescript-eslint/eslint-plugin": "^8.57.2",
62
84
  "@typescript-eslint/parser": "^8.57.2",
85
+ "@vitest/coverage-v8": "^4.1.10",
63
86
  "eslint": "^10.1.0",
64
87
  "eslint-config-prettier": "^10.1.8",
65
88
  "husky": "^9.1.7",
@@ -69,9 +92,11 @@
69
92
  "vitest": "^4.1.1"
70
93
  },
71
94
  "engines": {
72
- "node": ">=20"
95
+ "node": ">=24 <25"
73
96
  },
74
97
  "publishConfig": {
75
- "access": "public"
98
+ "access": "public",
99
+ "registry": "https://registry.npmjs.org/",
100
+ "provenance": true
76
101
  }
77
102
  }