@yielded/auth-persistence 0.1.0-beta.18 → 0.1.0-beta.20

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 (75) hide show
  1. package/README.md +5 -2
  2. package/dist/Adapter.d.mts +2 -2
  3. package/dist/Adapter.mjs +2 -2
  4. package/dist/internal/configuration.d.mts +4 -3
  5. package/dist/internal/configuration.mjs.map +1 -1
  6. package/dist/internal/crypto.mjs +12 -0
  7. package/dist/internal/crypto.mjs.map +1 -0
  8. package/dist/internal/passkey/admission.mjs +19 -15
  9. package/dist/internal/passkey/admission.mjs.map +1 -1
  10. package/dist/internal/passkey/credentials.mjs +4 -4
  11. package/dist/internal/passkey/credentials.mjs.map +1 -1
  12. package/dist/internal/passkey/enrollment.mjs +6 -6
  13. package/dist/internal/passkey/enrollment.mjs.map +1 -1
  14. package/dist/internal/passkey/flow.mjs +7 -7
  15. package/dist/internal/passkey/flow.mjs.map +1 -1
  16. package/dist/internal/passkey/management.mjs +2 -2
  17. package/dist/internal/passkey/management.mjs.map +1 -1
  18. package/dist/internal/passkey/registration-ceremony.mjs +2 -2
  19. package/dist/internal/passkey/registration-ceremony.mjs.map +1 -1
  20. package/dist/internal/passkey/registration-custody.mjs +1 -1
  21. package/dist/internal/passkey/registration-custody.mjs.map +1 -1
  22. package/dist/internal/passkey/registration-write.mjs +12 -12
  23. package/dist/internal/passkey/registration-write.mjs.map +1 -1
  24. package/dist/internal/passkey/state.d.mts +1 -1
  25. package/dist/internal/passkey/state.mjs +8 -9
  26. package/dist/internal/passkey/state.mjs.map +1 -1
  27. package/dist/internal/passkey/target.d.mts +1 -1
  28. package/dist/internal/passkey/target.mjs.map +1 -1
  29. package/dist/internal/passkey/write-state.mjs +13 -13
  30. package/dist/internal/passkey/write-state.mjs.map +1 -1
  31. package/dist/internal/passkey/write-target.mjs.map +1 -1
  32. package/dist/internal/passkey-kernel.d.mts +512 -56
  33. package/dist/internal/passkeys.mjs +32 -14
  34. package/dist/internal/passkeys.mjs.map +1 -1
  35. package/dist/internal/password-kernel.d.mts +1 -1
  36. package/dist/internal/persistence.d.mts +2 -2
  37. package/dist/internal/persistence.mjs +16 -7
  38. package/dist/internal/persistence.mjs.map +1 -1
  39. package/dist/internal/phone-kernel.d.mts +5 -5
  40. package/dist/internal/phone-kernel.mjs +14 -14
  41. package/dist/internal/phone-kernel.mjs.map +1 -1
  42. package/dist/internal/registration.mjs +8 -7
  43. package/dist/internal/registration.mjs.map +1 -1
  44. package/dist/internal/storage-mapping.d.mts +5 -4
  45. package/dist/internal/storage-mapping.mjs +16 -13
  46. package/dist/internal/storage-mapping.mjs.map +1 -1
  47. package/dist/internal/storage-validation.d.mts +13 -3
  48. package/dist/internal/storage-validation.mjs +128 -68
  49. package/dist/internal/storage-validation.mjs.map +1 -1
  50. package/dist/internal/transaction-execution-kernel.d.mts +4 -4
  51. package/dist/internal/transaction-execution-kernel.mjs +7 -5
  52. package/dist/internal/transaction-execution-kernel.mjs.map +1 -1
  53. package/package.json +1 -1
  54. package/src/Adapter.ts +7 -1
  55. package/src/internal/configuration.ts +4 -2
  56. package/src/internal/crypto.ts +15 -0
  57. package/src/internal/passkey/admission.ts +22 -15
  58. package/src/internal/passkey/credentials.ts +4 -4
  59. package/src/internal/passkey/enrollment.ts +7 -7
  60. package/src/internal/passkey/flow.ts +8 -8
  61. package/src/internal/passkey/management.ts +7 -2
  62. package/src/internal/passkey/registration-ceremony.ts +2 -2
  63. package/src/internal/passkey/registration-custody.ts +1 -1
  64. package/src/internal/passkey/registration-write.ts +12 -12
  65. package/src/internal/passkey/state.ts +10 -13
  66. package/src/internal/passkey/target.ts +16 -8
  67. package/src/internal/passkey/write-state.ts +10 -14
  68. package/src/internal/passkey/write-target.ts +11 -3
  69. package/src/internal/passkeys.ts +121 -70
  70. package/src/internal/persistence.ts +28 -11
  71. package/src/internal/phone-kernel.ts +26 -17
  72. package/src/internal/registration.ts +10 -8
  73. package/src/internal/storage-mapping.ts +21 -13
  74. package/src/internal/storage-validation.ts +219 -139
  75. package/src/internal/transaction-execution-kernel.ts +30 -11
@@ -20,12 +20,12 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
20
20
  equal: (table: object, values: Row) => SqlFragment;
21
21
  copiedRow: (row: Row) => Row;
22
22
  matchesNativeRow: (table: object, row: Row, key: Row) => boolean;
23
- nonce: () => string;
24
- key: (kind: string, fields: ReadonlyArray<string>) => string;
25
- credentialKey: (rpId: string, id: string) => string;
26
- handleKey: (rpId: string, handle: string) => string;
27
- subjectScope: (subjectId: string) => string;
28
- targetScope: (ceremony: import("@yielded/auth/Passkey").PasskeyCeremony) => string | null;
23
+ nonce: import("effect/Effect").Effect<string, import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto>;
24
+ key: (kind: string, fields: readonly string[]) => import("effect/Effect").Effect<string, import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto>;
25
+ credentialKey: (rpId: string, id: string) => import("effect/Effect").Effect<string, import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto>;
26
+ handleKey: (rpId: string, handle: string) => import("effect/Effect").Effect<string, import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto>;
27
+ subjectScope: (subjectId: string) => import("effect/Effect").Effect<string, import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto>;
28
+ targetScope: (ceremony: import("@yielded/auth/Passkey").PasskeyCeremony) => import("effect/Effect").Effect<null, never, never> | import("effect/Effect").Effect<string, import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto>;
29
29
  policyStorage: {
30
30
  encode: (value: {
31
31
  readonly generation: number;
@@ -734,7 +734,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
734
734
  };
735
735
  } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
736
736
  readPolicyGuards: (mapping: any) => import("effect/Effect").Effect<void, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
737
- discoverSubject: (mapping: any, rpId: string, protocolCredentialId: string) => import("effect/Effect").Effect<(string & import("effect/Brand").Brand<"effect-auth/SubjectId">) | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
737
+ discoverSubject: (mapping: any, rpId: string, protocolCredentialId: string) => import("effect/Effect").Effect<(string & import("effect/Brand").Brand<"effect-auth/SubjectId">) | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
738
738
  readRevision: (mapping: any, subject: SubjectRead, ids?: readonly string[] | undefined) => import("effect/Effect").Effect<{
739
739
  readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
740
740
  readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
@@ -781,7 +781,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
781
781
  readonly maximumCounter: number;
782
782
  };
783
783
  row: Row;
784
- } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
784
+ } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
785
785
  lookupCredential: (mapping: any, rpId: string, protocolCredentialId: string) => import("effect/Effect").Effect<{
786
786
  readonly credentialId: string;
787
787
  readonly rpId: string;
@@ -817,7 +817,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
817
817
  readonly backupState: boolean;
818
818
  readonly counter: number;
819
819
  readonly maximumCounter: number;
820
- } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
820
+ } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
821
821
  captureEnrollmentContext: (mapping: any, input: {
822
822
  readonly moduleId: string;
823
823
  readonly rpId: string;
@@ -836,17 +836,473 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
836
836
  readonly type: "public-key";
837
837
  readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
838
838
  }[];
839
- } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
839
+ } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
840
840
  };
841
841
  admission: {
842
842
  chargeRetentionMillis: number;
843
- chargeScopes: (ceremony: import("@yielded/auth/Passkey").PasskeyCeremony, subjectId?: string) => {
843
+ chargeScopes: (ceremony: {
844
+ readonly moduleId: string;
845
+ readonly generation: number;
846
+ readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
847
+ readonly commandId: string;
848
+ readonly purpose: "action" | "enrollment" | "pending" | "registration" | "sign-in" | "step-up";
849
+ readonly profile: {
850
+ readonly profileId: string;
851
+ readonly generation: number;
852
+ readonly rpId: string;
853
+ readonly rpName: string;
854
+ readonly origins: readonly [string, ...string[]];
855
+ readonly developmentLocalhost: boolean;
856
+ readonly residentKey: "discouraged" | "preferred" | "required";
857
+ readonly userVerification: "preferred" | "required";
858
+ readonly primarySignIn: boolean;
859
+ readonly attestation: "none";
860
+ readonly algorithms: readonly [-257 | -7, ...(-257 | -7)[]];
861
+ };
862
+ readonly challenge: string;
863
+ readonly requestBindingVerifier: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
864
+ readonly requestBindingExpiresAtMillis: number;
865
+ readonly issuedAtMillis: number;
866
+ readonly expiresAtMillis: number;
867
+ readonly retentionUntilMillis: number;
868
+ readonly claimLifetimeMillis: number;
869
+ readonly allowedCredentials: readonly {
870
+ readonly type: "public-key";
871
+ readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
872
+ }[];
873
+ readonly context: {
874
+ readonly _tag: "SignIn";
875
+ } | {
876
+ readonly _tag: "Registration";
877
+ readonly fingerprint: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
878
+ readonly userHandle: string & import("effect/Brand").Brand<"effect-auth/PasskeyUserHandle">;
879
+ readonly name: string;
880
+ readonly displayName: string;
881
+ } | {
882
+ readonly _tag: "Enrollment";
883
+ readonly revision: {
884
+ readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
885
+ readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
886
+ readonly credentials: readonly {
887
+ readonly credentialId: string;
888
+ readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
889
+ }[];
890
+ };
891
+ readonly userHandle: string & import("effect/Brand").Brand<"effect-auth/PasskeyUserHandle">;
892
+ readonly name: string;
893
+ readonly authorization: {
894
+ readonly challenge: {
895
+ readonly moduleId: string;
896
+ readonly action: "enroll-begin" | "enroll-complete" | "remove";
897
+ readonly commandId: string;
898
+ readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
899
+ readonly revision: {
900
+ readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
901
+ readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
902
+ readonly credentials: readonly {
903
+ readonly credentialId: string;
904
+ readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
905
+ }[];
906
+ };
907
+ readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
908
+ };
909
+ readonly evidence: {
910
+ readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
911
+ readonly revision: {
912
+ readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
913
+ readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
914
+ readonly credentials: readonly {
915
+ readonly credentialId: string;
916
+ readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
917
+ }[];
918
+ };
919
+ readonly flowId: string & import("effect/Brand").Brand<"effect-auth/AuthenticationFlowId">;
920
+ readonly proofs: readonly [{
921
+ readonly userVerified: boolean;
922
+ readonly phishingResistant: boolean;
923
+ readonly verifiedAt: import("effect/DateTime").Utc;
924
+ readonly method: string;
925
+ readonly credentialId: string;
926
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
927
+ }, ...{
928
+ readonly userVerified: boolean;
929
+ readonly phishingResistant: boolean;
930
+ readonly verifiedAt: import("effect/DateTime").Utc;
931
+ readonly method: string;
932
+ readonly credentialId: string;
933
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
934
+ }[]];
935
+ };
936
+ readonly requirement: {
937
+ readonly maximumAgeMillis: number;
938
+ readonly alternatives: readonly [{
939
+ readonly userVerified: boolean;
940
+ readonly phishingResistant: boolean;
941
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
942
+ readonly minimumCredentials: number;
943
+ }, ...{
944
+ readonly userVerified: boolean;
945
+ readonly phishingResistant: boolean;
946
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
947
+ readonly minimumCredentials: number;
948
+ }[]];
949
+ };
950
+ };
951
+ } | {
952
+ readonly _tag: "Pending";
953
+ readonly target: {
954
+ readonly moduleId: string;
955
+ readonly kind: string;
956
+ readonly commandId: string;
957
+ readonly flowId: string & import("effect/Brand").Brand<"effect-auth/AuthenticationFlowId">;
958
+ readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
959
+ readonly revision: {
960
+ readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
961
+ readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
962
+ readonly credentials: readonly {
963
+ readonly credentialId: string;
964
+ readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
965
+ }[];
966
+ };
967
+ readonly requirement?: {
968
+ readonly maximumAgeMillis: number;
969
+ readonly alternatives: readonly [{
970
+ readonly userVerified: boolean;
971
+ readonly phishingResistant: boolean;
972
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
973
+ readonly minimumCredentials: number;
974
+ }, ...{
975
+ readonly userVerified: boolean;
976
+ readonly phishingResistant: boolean;
977
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
978
+ readonly minimumCredentials: number;
979
+ }[]];
980
+ };
981
+ readonly expiresAtMillis: number;
982
+ };
983
+ } | {
984
+ readonly _tag: "StepUp";
985
+ readonly target: {
986
+ readonly moduleId: string;
987
+ readonly kind: string;
988
+ readonly commandId: string;
989
+ readonly flowId: string & import("effect/Brand").Brand<"effect-auth/AuthenticationFlowId">;
990
+ readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
991
+ readonly revision: {
992
+ readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
993
+ readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
994
+ readonly credentials: readonly {
995
+ readonly credentialId: string;
996
+ readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
997
+ }[];
998
+ };
999
+ readonly requirement?: {
1000
+ readonly maximumAgeMillis: number;
1001
+ readonly alternatives: readonly [{
1002
+ readonly userVerified: boolean;
1003
+ readonly phishingResistant: boolean;
1004
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
1005
+ readonly minimumCredentials: number;
1006
+ }, ...{
1007
+ readonly userVerified: boolean;
1008
+ readonly phishingResistant: boolean;
1009
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
1010
+ readonly minimumCredentials: number;
1011
+ }[]];
1012
+ };
1013
+ readonly expiresAtMillis: number;
1014
+ };
1015
+ } | {
1016
+ readonly _tag: "Action";
1017
+ readonly target: {
1018
+ readonly moduleId: string;
1019
+ readonly kind: string;
1020
+ readonly commandId: string;
1021
+ readonly flowId: string & import("effect/Brand").Brand<"effect-auth/AuthenticationFlowId">;
1022
+ readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
1023
+ readonly revision: {
1024
+ readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
1025
+ readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
1026
+ readonly credentials: readonly {
1027
+ readonly credentialId: string;
1028
+ readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
1029
+ }[];
1030
+ };
1031
+ readonly requirement?: {
1032
+ readonly maximumAgeMillis: number;
1033
+ readonly alternatives: readonly [{
1034
+ readonly userVerified: boolean;
1035
+ readonly phishingResistant: boolean;
1036
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
1037
+ readonly minimumCredentials: number;
1038
+ }, ...{
1039
+ readonly userVerified: boolean;
1040
+ readonly phishingResistant: boolean;
1041
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
1042
+ readonly minimumCredentials: number;
1043
+ }[]];
1044
+ };
1045
+ readonly expiresAtMillis: number;
1046
+ };
1047
+ };
1048
+ }, subjectId?: string | undefined) => import("effect/Effect").Effect<{
844
1049
  kind: PasskeyChargeKind;
845
1050
  scope: string;
846
- }[];
1051
+ }[], import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto>;
847
1052
  lockAdmission: (mapping: any) => import("effect/Effect").Effect<void, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
848
- admissionCondition: (mapping: any, policies: ReadonlyArray<import("@yielded/auth/Passkey").PasskeyMethodPolicy>, ceremony: import("@yielded/auth/Passkey").PasskeyCeremony, subjectId: string | undefined, added: ReadonlyArray<PasskeyChargeKind>, newFlow: boolean, resolvedSubject: boolean) => SqlFragment;
849
- guardAdmission: (mapping: any, policies: ReadonlyArray<import("@yielded/auth/Passkey").PasskeyMethodPolicy>, ceremony: import("@yielded/auth/Passkey").PasskeyCeremony, subjectId?: string) => import("effect/Effect").Effect<void, never, CurrentPasskeyTransaction>;
1053
+ admissionCondition: (mapping: any, policies: readonly {
1054
+ readonly generation: number;
1055
+ readonly profiles: readonly [{
1056
+ readonly profileId: string;
1057
+ readonly generation: number;
1058
+ readonly rpId: string;
1059
+ readonly rpName: string;
1060
+ readonly origins: readonly [string, ...string[]];
1061
+ readonly developmentLocalhost: boolean;
1062
+ readonly residentKey: "discouraged" | "preferred" | "required";
1063
+ readonly userVerification: "preferred" | "required";
1064
+ readonly primarySignIn: boolean;
1065
+ readonly attestation: "none";
1066
+ readonly algorithms: readonly [-257 | -7, ...(-257 | -7)[]];
1067
+ }, ...{
1068
+ readonly profileId: string;
1069
+ readonly generation: number;
1070
+ readonly rpId: string;
1071
+ readonly rpName: string;
1072
+ readonly origins: readonly [string, ...string[]];
1073
+ readonly developmentLocalhost: boolean;
1074
+ readonly residentKey: "discouraged" | "preferred" | "required";
1075
+ readonly userVerification: "preferred" | "required";
1076
+ readonly primarySignIn: boolean;
1077
+ readonly attestation: "none";
1078
+ readonly algorithms: readonly [-257 | -7, ...(-257 | -7)[]];
1079
+ }[]];
1080
+ readonly lifetimeMillis: number;
1081
+ readonly claimLifetimeMillis: number;
1082
+ readonly retentionMillis: number;
1083
+ readonly maximumPending: number;
1084
+ readonly maximumPendingPerSubject: number;
1085
+ readonly admission: {
1086
+ readonly global: {
1087
+ readonly limit: number;
1088
+ readonly windowMillis: number;
1089
+ };
1090
+ readonly subject: {
1091
+ readonly limit: number;
1092
+ readonly windowMillis: number;
1093
+ };
1094
+ readonly target: {
1095
+ readonly limit: number;
1096
+ readonly windowMillis: number;
1097
+ };
1098
+ };
1099
+ }[], ceremony: {
1100
+ readonly moduleId: string;
1101
+ readonly generation: number;
1102
+ readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
1103
+ readonly commandId: string;
1104
+ readonly purpose: "action" | "enrollment" | "pending" | "registration" | "sign-in" | "step-up";
1105
+ readonly profile: {
1106
+ readonly profileId: string;
1107
+ readonly generation: number;
1108
+ readonly rpId: string;
1109
+ readonly rpName: string;
1110
+ readonly origins: readonly [string, ...string[]];
1111
+ readonly developmentLocalhost: boolean;
1112
+ readonly residentKey: "discouraged" | "preferred" | "required";
1113
+ readonly userVerification: "preferred" | "required";
1114
+ readonly primarySignIn: boolean;
1115
+ readonly attestation: "none";
1116
+ readonly algorithms: readonly [-257 | -7, ...(-257 | -7)[]];
1117
+ };
1118
+ readonly challenge: string;
1119
+ readonly requestBindingVerifier: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
1120
+ readonly requestBindingExpiresAtMillis: number;
1121
+ readonly issuedAtMillis: number;
1122
+ readonly expiresAtMillis: number;
1123
+ readonly retentionUntilMillis: number;
1124
+ readonly claimLifetimeMillis: number;
1125
+ readonly allowedCredentials: readonly {
1126
+ readonly type: "public-key";
1127
+ readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
1128
+ }[];
1129
+ readonly context: {
1130
+ readonly _tag: "SignIn";
1131
+ } | {
1132
+ readonly _tag: "Registration";
1133
+ readonly fingerprint: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
1134
+ readonly userHandle: string & import("effect/Brand").Brand<"effect-auth/PasskeyUserHandle">;
1135
+ readonly name: string;
1136
+ readonly displayName: string;
1137
+ } | {
1138
+ readonly _tag: "Enrollment";
1139
+ readonly revision: {
1140
+ readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
1141
+ readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
1142
+ readonly credentials: readonly {
1143
+ readonly credentialId: string;
1144
+ readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
1145
+ }[];
1146
+ };
1147
+ readonly userHandle: string & import("effect/Brand").Brand<"effect-auth/PasskeyUserHandle">;
1148
+ readonly name: string;
1149
+ readonly authorization: {
1150
+ readonly challenge: {
1151
+ readonly moduleId: string;
1152
+ readonly action: "enroll-begin" | "enroll-complete" | "remove";
1153
+ readonly commandId: string;
1154
+ readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
1155
+ readonly revision: {
1156
+ readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
1157
+ readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
1158
+ readonly credentials: readonly {
1159
+ readonly credentialId: string;
1160
+ readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
1161
+ }[];
1162
+ };
1163
+ readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
1164
+ };
1165
+ readonly evidence: {
1166
+ readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
1167
+ readonly revision: {
1168
+ readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
1169
+ readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
1170
+ readonly credentials: readonly {
1171
+ readonly credentialId: string;
1172
+ readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
1173
+ }[];
1174
+ };
1175
+ readonly flowId: string & import("effect/Brand").Brand<"effect-auth/AuthenticationFlowId">;
1176
+ readonly proofs: readonly [{
1177
+ readonly userVerified: boolean;
1178
+ readonly phishingResistant: boolean;
1179
+ readonly verifiedAt: import("effect/DateTime").Utc;
1180
+ readonly method: string;
1181
+ readonly credentialId: string;
1182
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
1183
+ }, ...{
1184
+ readonly userVerified: boolean;
1185
+ readonly phishingResistant: boolean;
1186
+ readonly verifiedAt: import("effect/DateTime").Utc;
1187
+ readonly method: string;
1188
+ readonly credentialId: string;
1189
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
1190
+ }[]];
1191
+ };
1192
+ readonly requirement: {
1193
+ readonly maximumAgeMillis: number;
1194
+ readonly alternatives: readonly [{
1195
+ readonly userVerified: boolean;
1196
+ readonly phishingResistant: boolean;
1197
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
1198
+ readonly minimumCredentials: number;
1199
+ }, ...{
1200
+ readonly userVerified: boolean;
1201
+ readonly phishingResistant: boolean;
1202
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
1203
+ readonly minimumCredentials: number;
1204
+ }[]];
1205
+ };
1206
+ };
1207
+ } | {
1208
+ readonly _tag: "Pending";
1209
+ readonly target: {
1210
+ readonly moduleId: string;
1211
+ readonly kind: string;
1212
+ readonly commandId: string;
1213
+ readonly flowId: string & import("effect/Brand").Brand<"effect-auth/AuthenticationFlowId">;
1214
+ readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
1215
+ readonly revision: {
1216
+ readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
1217
+ readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
1218
+ readonly credentials: readonly {
1219
+ readonly credentialId: string;
1220
+ readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
1221
+ }[];
1222
+ };
1223
+ readonly requirement?: {
1224
+ readonly maximumAgeMillis: number;
1225
+ readonly alternatives: readonly [{
1226
+ readonly userVerified: boolean;
1227
+ readonly phishingResistant: boolean;
1228
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
1229
+ readonly minimumCredentials: number;
1230
+ }, ...{
1231
+ readonly userVerified: boolean;
1232
+ readonly phishingResistant: boolean;
1233
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
1234
+ readonly minimumCredentials: number;
1235
+ }[]];
1236
+ };
1237
+ readonly expiresAtMillis: number;
1238
+ };
1239
+ } | {
1240
+ readonly _tag: "StepUp";
1241
+ readonly target: {
1242
+ readonly moduleId: string;
1243
+ readonly kind: string;
1244
+ readonly commandId: string;
1245
+ readonly flowId: string & import("effect/Brand").Brand<"effect-auth/AuthenticationFlowId">;
1246
+ readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
1247
+ readonly revision: {
1248
+ readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
1249
+ readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
1250
+ readonly credentials: readonly {
1251
+ readonly credentialId: string;
1252
+ readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
1253
+ }[];
1254
+ };
1255
+ readonly requirement?: {
1256
+ readonly maximumAgeMillis: number;
1257
+ readonly alternatives: readonly [{
1258
+ readonly userVerified: boolean;
1259
+ readonly phishingResistant: boolean;
1260
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
1261
+ readonly minimumCredentials: number;
1262
+ }, ...{
1263
+ readonly userVerified: boolean;
1264
+ readonly phishingResistant: boolean;
1265
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
1266
+ readonly minimumCredentials: number;
1267
+ }[]];
1268
+ };
1269
+ readonly expiresAtMillis: number;
1270
+ };
1271
+ } | {
1272
+ readonly _tag: "Action";
1273
+ readonly target: {
1274
+ readonly moduleId: string;
1275
+ readonly kind: string;
1276
+ readonly commandId: string;
1277
+ readonly flowId: string & import("effect/Brand").Brand<"effect-auth/AuthenticationFlowId">;
1278
+ readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
1279
+ readonly revision: {
1280
+ readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
1281
+ readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
1282
+ readonly credentials: readonly {
1283
+ readonly credentialId: string;
1284
+ readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
1285
+ }[];
1286
+ };
1287
+ readonly requirement?: {
1288
+ readonly maximumAgeMillis: number;
1289
+ readonly alternatives: readonly [{
1290
+ readonly userVerified: boolean;
1291
+ readonly phishingResistant: boolean;
1292
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
1293
+ readonly minimumCredentials: number;
1294
+ }, ...{
1295
+ readonly userVerified: boolean;
1296
+ readonly phishingResistant: boolean;
1297
+ readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
1298
+ readonly minimumCredentials: number;
1299
+ }[]];
1300
+ };
1301
+ readonly expiresAtMillis: number;
1302
+ };
1303
+ };
1304
+ }, subjectId: string | undefined, added: readonly PasskeyChargeKind[], newFlow: boolean, resolvedSubject: boolean) => import("effect/Effect").Effect<SqlFragment, import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto>;
1305
+ guardAdmission: (mapping: any, policies: ReadonlyArray<import("@yielded/auth/Passkey").PasskeyMethodPolicy>, ceremony: import("@yielded/auth/Passkey").PasskeyCeremony, subjectId?: string) => import("effect/Effect").Effect<void, import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
850
1306
  readCharges: (mapping: any, ceremony: {
851
1307
  readonly moduleId: string;
852
1308
  readonly generation: number;
@@ -1098,8 +1554,8 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
1098
1554
  readonly windowMillis: number;
1099
1555
  };
1100
1556
  };
1101
- }, subjectId?: string | undefined) => import("effect/Effect").Effect<void, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
1102
- guardChargeSet: (mapping: any, ceremony: import("@yielded/auth/Passkey").PasskeyCeremony, subjectId?: string) => import("effect/Effect").Effect<void, never, CurrentPasskeyTransaction>;
1557
+ }, subjectId?: string | undefined) => import("effect/Effect").Effect<void, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
1558
+ guardChargeSet: (mapping: any, ceremony: import("@yielded/auth/Passkey").PasskeyCeremony, subjectId?: string) => import("effect/Effect").Effect<void, import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
1103
1559
  insertCharges: (mapping: any, ceremony: {
1104
1560
  readonly moduleId: string;
1105
1561
  readonly generation: number;
@@ -1351,7 +1807,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
1351
1807
  readonly windowMillis: number;
1352
1808
  };
1353
1809
  };
1354
- }, kinds: readonly PasskeyChargeKind[], subjectId?: string | undefined) => import("effect/Effect").Effect<void, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
1810
+ }, kinds: readonly PasskeyChargeKind[], subjectId?: string | undefined) => import("effect/Effect").Effect<void, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
1355
1811
  };
1356
1812
  registrationCustody: {
1357
1813
  releaseRegistrationCustody: (mapping: any, ceremony: {
@@ -1559,7 +2015,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
1559
2015
  readonly expiresAtMillis: number;
1560
2016
  };
1561
2017
  };
1562
- }) => import("effect/Effect").Effect<void, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
2018
+ }) => import("effect/Effect").Effect<void, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
1563
2019
  scrubRegistrationIntent: (mapping: any, ceremony: {
1564
2020
  readonly moduleId: string;
1565
2021
  readonly generation: number;
@@ -2540,7 +2996,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
2540
2996
  readonly counter: number;
2541
2997
  readonly maximumCounter: number;
2542
2998
  };
2543
- } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
2999
+ } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
2544
3000
  terminalFlow: (mapping: any, read: FlowRead, state: "Ambiguous" | "Rejected" | "Verified") => import("effect/Effect").Effect<"Ambiguous" | "Rejected" | "Verified", import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
2545
3001
  issueAssertion: (mapping: any, ceremony: {
2546
3002
  readonly moduleId: string;
@@ -3004,7 +3460,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
3004
3460
  };
3005
3461
  };
3006
3462
  };
3007
- }, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
3463
+ }, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
3008
3464
  contextAssertion: (mapping: any, access: {
3009
3465
  readonly moduleId: string;
3010
3466
  readonly generation: number;
@@ -3218,7 +3674,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
3218
3674
  readonly expiresAtMillis: number;
3219
3675
  };
3220
3676
  };
3221
- } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
3677
+ } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
3222
3678
  claimAssertion: (mapping: any, input: {
3223
3679
  readonly access: import("@yielded/auth/Passkey").PasskeyAccess;
3224
3680
  readonly policy: import("@yielded/auth/Passkey").PasskeyMethodPolicy;
@@ -3441,7 +3897,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
3441
3897
  readonly claimedAtMillis: number;
3442
3898
  readonly claimExpiresAtMillis: number;
3443
3899
  };
3444
- }, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
3900
+ }, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
3445
3901
  exactClaim: (read: FlowRead, claim: import("@yielded/auth/Passkey").PasskeyClaim) => boolean;
3446
3902
  settleAssertion: (mapping: any, claim: {
3447
3903
  readonly ceremony: {
@@ -3686,7 +4142,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
3686
4142
  readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
3687
4143
  }[]];
3688
4144
  };
3689
- }, dialect: "mysql" | "pg" | "sqlite") => import("effect/Effect").Effect<"Ambiguous" | "Rejected" | "Verified", import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
4145
+ }, dialect: "mysql" | "pg" | "sqlite") => import("effect/Effect").Effect<"Ambiguous" | "Rejected" | "Verified", import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
3690
4146
  cleanupCeremonies: (mapping: any, input: {
3691
4147
  readonly moduleId: string;
3692
4148
  readonly nowMillis: number;
@@ -3695,7 +4151,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
3695
4151
  terminalized: number;
3696
4152
  removed: number;
3697
4153
  hasMore: boolean;
3698
- }, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
4154
+ }, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
3699
4155
  };
3700
4156
  registrationCeremony: {
3701
4157
  contextRegistration: (mapping: any, access: {
@@ -3911,7 +4367,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
3911
4367
  readonly expiresAtMillis: number;
3912
4368
  };
3913
4369
  };
3914
- } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
4370
+ } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
3915
4371
  claimRegistration: (mapping: any, input: {
3916
4372
  readonly access: import("@yielded/auth/Passkey").PasskeyAccess;
3917
4373
  readonly policy: import("@yielded/auth/Passkey").PasskeyMethodPolicy;
@@ -4133,7 +4589,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
4133
4589
  readonly claimedAtMillis: number;
4134
4590
  readonly claimExpiresAtMillis: number;
4135
4591
  };
4136
- }, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
4592
+ }, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
4137
4593
  settleRegistration: (mapping: any, claim: {
4138
4594
  readonly ceremony: {
4139
4595
  readonly moduleId: string;
@@ -4344,29 +4800,29 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
4344
4800
  readonly claimId: string;
4345
4801
  readonly claimedAtMillis: number;
4346
4802
  readonly claimExpiresAtMillis: number;
4347
- }, outcome: "Ambiguous" | "Rejected") => import("effect/Effect").Effect<"Ambiguous" | "Rejected" | "Verified", import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
4803
+ }, outcome: "Ambiguous" | "Rejected") => import("effect/Effect").Effect<"Ambiguous" | "Rejected" | "Verified", import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
4348
4804
  };
4349
4805
  target: {
4350
4806
  sqlClientPasskeyStandaloneGuard: (transactionService: Parameters<<Failure>(unavailable: () => Failure, transactionService: import("effect/sql/SqlClient").SqlClient["transactionService"] | undefined) => import("effect/Effect").Effect<void, Failure, never>>[1]) => import("effect/Effect").Effect<void, import("@yielded/auth/Passkey").PasskeyUnavailable, never>;
4351
- makePasskeyExecution: (configuration: PasskeyTargetConfiguration, mapping: unknown) => import("effect/Effect").Effect<PasskeyExecution, import("@yielded/auth/Passkey").PasskeyConfigurationError, import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase>;
4807
+ makePasskeyExecution: (configuration: PasskeyTargetConfiguration, mapping: unknown) => import("effect/Effect").Effect<PasskeyExecution, import("@yielded/auth/Passkey").PasskeyConfigurationError, import("effect/Crypto").Crypto | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase>;
4352
4808
  capturedService: <S>(service: S, schemas: Record<string, import("effect/Schema").Codec<any, any, never, never>>, execute: PasskeyExecution) => S;
4353
4809
  prepareValue: <Value, A>(value: Value, prepare: import("@yielded/auth/Passkey").PreparePasskeyCommit<Value, A>) => import("effect/Effect").Effect<import("@yielded/auth/Hooks").PreparedCommit<A>, never, CurrentPasskeyTransaction>;
4354
4810
  observationalContext: <A, E, R>(operation: import("effect/Effect").Effect<A, E, R>) => import("effect/Effect").Effect<A, E, CurrentPasskeyTransaction | Exclude<R, CurrentPasskeyTransaction>>;
4355
4811
  makePasskeyPersistence: (mapping: any, execute: PasskeyExecution, configuration: PasskeyTargetConfiguration, registration?: boolean, enrollment?: boolean) => import("@yielded/auth/Passkey").PasskeyPersistence["Service"];
4356
4812
  capturedMapping: <M, RSetup>(source: PasskeyMappingSource<M, RSetup>, kind: "read" | "context" | "assertion" | "registration", configuration: PasskeyTargetConfiguration) => import("effect/Effect").Effect<M, import("@yielded/auth/Passkey").PasskeyConfigurationError | PersistenceMappingError, RSetup>;
4357
- makeTargetPasskeyCredentials: <M, RSetup>(source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration) => import("effect/Effect").Effect<PasskeyCredentialServices, import("@yielded/auth/Passkey").PasskeyConfigurationError | PersistenceMappingError, RSetup | NativeDatabase>;
4358
- makeTargetPasskeyEnrollmentContext: <M, RSetup>(source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration) => import("effect/Effect").Effect<PasskeyEnrollmentContextServices, import("@yielded/auth/Passkey").PasskeyConfigurationError | PersistenceMappingError, RSetup | NativeDatabase>;
4359
- makeTargetPasskeyPersistence: <M, RSetup>(source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration) => import("effect/Effect").Effect<PasskeyPersistenceServices, import("@yielded/auth/Passkey").PasskeyConfigurationError | PersistenceMappingError, RSetup | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase>;
4360
- makeTargetPasskeyRegistration: <M, RSetup>(source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration) => import("effect/Effect").Effect<PasskeyRegistrationCeremonyServices, import("@yielded/auth/Passkey").PasskeyConfigurationError | PersistenceMappingError, RSetup | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase>;
4361
- coordinateTargetPasskey: <M, RSetup, Transaction, A, E, R>(database: any, source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration, owner: (transaction: Transaction, services: PasskeyPersistenceServices, append: (statement: import("effect/sql/Statement").Statement<unknown>) => void) => import("effect/Effect").Effect<A, E, R>) => import("effect/Effect").Effect<A, PasskeyCoordinatorError<E>, R | RSetup | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase>;
4362
- coordinateTargetPasskeyRegistration: <M, RSetup, Transaction, A, E, R>(database: any, source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration, owner: (transaction: Transaction, services: PasskeyRegistrationCeremonyServices, append: (statement: import("effect/sql/Statement").Statement<unknown>) => void) => import("effect/Effect").Effect<A, E, R>) => import("effect/Effect").Effect<A, PasskeyCoordinatorError<E>, R | RSetup | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase>;
4813
+ makeTargetPasskeyCredentials: <M, RSetup>(source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration) => import("effect/Effect").Effect<PasskeyCredentialServices, import("@yielded/auth/Passkey").PasskeyConfigurationError | PersistenceMappingError, RSetup | NativeDatabase | import("effect/Crypto").Crypto>;
4814
+ makeTargetPasskeyEnrollmentContext: <M, RSetup>(source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration) => import("effect/Effect").Effect<PasskeyEnrollmentContextServices, import("@yielded/auth/Passkey").PasskeyConfigurationError | PersistenceMappingError, RSetup | NativeDatabase | import("effect/Crypto").Crypto>;
4815
+ makeTargetPasskeyPersistence: <M, RSetup>(source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration) => import("effect/Effect").Effect<PasskeyPersistenceServices, import("@yielded/auth/Passkey").PasskeyConfigurationError | PersistenceMappingError, RSetup | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase | import("effect/Crypto").Crypto>;
4816
+ makeTargetPasskeyRegistration: <M, RSetup>(source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration) => import("effect/Effect").Effect<PasskeyRegistrationCeremonyServices, import("@yielded/auth/Passkey").PasskeyConfigurationError | PersistenceMappingError, RSetup | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase | import("effect/Crypto").Crypto>;
4817
+ coordinateTargetPasskey: <M, RSetup, Transaction, A, E, R>(database: any, source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration, owner: (transaction: Transaction, services: PasskeyPersistenceServices, append: (statement: import("effect/sql/Statement").Statement<unknown>) => void) => import("effect/Effect").Effect<A, E, R>) => import("effect/Effect").Effect<A, PasskeyCoordinatorError<E>, R | RSetup | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase | import("effect/Crypto").Crypto>;
4818
+ coordinateTargetPasskeyRegistration: <M, RSetup, Transaction, A, E, R>(database: any, source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration, owner: (transaction: Transaction, services: PasskeyRegistrationCeremonyServices, append: (statement: import("effect/sql/Statement").Statement<unknown>) => void) => import("effect/Effect").Effect<A, E, R>) => import("effect/Effect").Effect<A, PasskeyCoordinatorError<E>, R | RSetup | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase | import("effect/Crypto").Crypto>;
4363
4819
  };
4364
4820
  writeState: {
4365
4821
  jsonStorage: <S extends import("effect/Schema").Codec<unknown, unknown, never, never>>(schema: S) => {
4366
4822
  encode: (value: S["Type"]) => string;
4367
4823
  decode: (text: unknown) => S["Type"];
4368
4824
  };
4369
- digest: <S extends import("effect/Schema").Codec<unknown, unknown, never, never>>(schema: S, value: S["Type"]) => string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
4825
+ digest: <S extends import("effect/Schema").Codec<unknown, unknown, never, never>>(schema: S, value: S["Type"]) => import("effect/Effect").Effect<string & import("effect/Brand").Brand<"effect-auth/TokenDigest">, import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto>;
4370
4826
  currentSubject: (mapping: any, subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">) => import("effect/Effect").Effect<{
4371
4827
  subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
4372
4828
  nativeId: any;
@@ -4423,15 +4879,15 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
4423
4879
  readonly backupState: boolean;
4424
4880
  readonly counter: number;
4425
4881
  readonly maximumCounter: number;
4426
- } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
4882
+ } | undefined, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
4427
4883
  managementPolicy: (mapping: any, subject: WriteSubject) => {
4428
4884
  readonly maximumCredentials: number;
4429
4885
  readonly maximumEvidenceAgeMillis: number;
4430
4886
  readonly requireImmediateInvalidation: boolean;
4431
4887
  };
4432
4888
  metadataAllowed: (mapping: any, subject: WriteSubject) => import("effect/Effect").Effect<boolean, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
4433
- enrollmentDigest: (ceremony: import("@yielded/auth/Passkey").PasskeyCeremony) => string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
4434
- removeDigest: (moduleId: string, commandId: string, credential: import("@yielded/auth/Passkey").PasskeyCredential) => string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
4889
+ enrollmentDigest: (ceremony: import("@yielded/auth/Passkey").PasskeyCeremony) => import("effect/Effect").Effect<string & import("effect/Brand").Brand<"effect-auth/TokenDigest">, import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto>;
4890
+ removeDigest: (moduleId: string, commandId: string, credential: import("@yielded/auth/Passkey").PasskeyCredential) => import("effect/Effect").Effect<string & import("effect/Brand").Brand<"effect-auth/TokenDigest">, import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto>;
4435
4891
  authorizeAction: (mapping: any, subject: WriteSubject, authorization: {
4436
4892
  readonly challenge: {
4437
4893
  readonly moduleId: string;
@@ -4526,7 +4982,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
4526
4982
  readonly existingSessions: "immediate" | "original-absolute-expiry";
4527
4983
  readonly maximumExposureMillis: number;
4528
4984
  readonly oldAuthenticationEvidence: "rejected";
4529
- }) => import("effect/Effect").Effect<string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
4985
+ }) => import("effect/Effect").Effect<string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
4530
4986
  validRegistration: (ceremony: import("@yielded/auth/Passkey").PasskeyCeremony, verified: {
4531
4987
  readonly algorithm: number;
4532
4988
  readonly userVerified: boolean;
@@ -4745,7 +5201,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
4745
5201
  readonly primarySignIn: boolean;
4746
5202
  readonly createdAtMillis: number;
4747
5203
  readonly lastUsedAtMillis?: number;
4748
- }, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
5204
+ }, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
4749
5205
  };
4750
5206
  enrollment: {
4751
5207
  enrollmentHandle: (mapping: any, subject: WriteSubject, ceremony: {
@@ -4953,7 +5409,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
4953
5409
  readonly expiresAtMillis: number;
4954
5410
  };
4955
5411
  };
4956
- }, create: boolean) => import("effect/Effect").Effect<any, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
5412
+ }, create: boolean) => import("effect/Effect").Effect<any, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
4957
5413
  issueEnrollment: (mapping: any, input: {
4958
5414
  readonly ceremony: import("@yielded/auth/Passkey").PasskeyCeremony;
4959
5415
  readonly policy: import("@yielded/auth/Passkey").PasskeyMethodPolicy;
@@ -5170,7 +5626,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
5170
5626
  };
5171
5627
  };
5172
5628
  };
5173
- }, import("@yielded/auth/Passkey").PasskeyUnavailable | PersistenceMappingError, CurrentPasskeyTransaction>;
5629
+ }, import("@yielded/auth/Passkey").PasskeyUnavailable | PersistenceMappingError | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
5174
5630
  completeEnrollment: (mapping: any, input: {
5175
5631
  readonly claim: import("@yielded/auth/Passkey").PasskeyClaim;
5176
5632
  readonly verified: import("@yielded/auth/Passkey").PasskeyRegistrationVerified;
@@ -5178,8 +5634,8 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
5178
5634
  readonly management: import("@yielded/auth/Passkey").PasskeyManagementPolicy;
5179
5635
  readonly nowMillis: number;
5180
5636
  }) => import("effect/Effect").Effect<{
5181
- credential?: never;
5182
5637
  readonly _tag: "Rejected";
5638
+ readonly credential?: never;
5183
5639
  } | {
5184
5640
  readonly _tag: "Enrolled";
5185
5641
  readonly credential: {
@@ -5189,7 +5645,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
5189
5645
  readonly createdAtMillis: number;
5190
5646
  readonly lastUsedAtMillis?: number;
5191
5647
  };
5192
- }, import("@yielded/auth/Passkey").PasskeyUnavailable | PersistenceMappingError, CurrentPasskeyTransaction>;
5648
+ }, import("@yielded/auth/Passkey").PasskeyUnavailable | PersistenceMappingError | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
5193
5649
  };
5194
5650
  management: {
5195
5651
  listCredentials: (mapping: any, input: {
@@ -5206,7 +5662,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
5206
5662
  readonly lastUsedAtMillis?: number;
5207
5663
  }[];
5208
5664
  cursor?: string;
5209
- }, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
5665
+ }, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
5210
5666
  renameCredential: (mapping: any, input: {
5211
5667
  readonly moduleId: string;
5212
5668
  readonly subjectId: import("@yielded/auth/Schema").SubjectId;
@@ -5239,7 +5695,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
5239
5695
  readonly lastUsedAtMillis?: number;
5240
5696
  };
5241
5697
  readonly replayed: false;
5242
- }, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
5698
+ }, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
5243
5699
  inspectRemove: (mapping: any, input: {
5244
5700
  readonly moduleId: string;
5245
5701
  readonly subjectId: import("@yielded/auth/Schema").SubjectId;
@@ -5250,7 +5706,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
5250
5706
  readonly _tag: "Rejected";
5251
5707
  readonly decision?: never;
5252
5708
  } | {
5253
- credential?: never;
5709
+ readonly credential?: never;
5254
5710
  readonly _tag: "Replay";
5255
5711
  readonly result: {
5256
5712
  readonly credentialId: string;
@@ -5301,7 +5757,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
5301
5757
  readonly counter: number;
5302
5758
  readonly maximumCounter: number;
5303
5759
  };
5304
- }, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
5760
+ }, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
5305
5761
  removeCredential: (mapping: any, input: {
5306
5762
  readonly moduleId: string;
5307
5763
  readonly commandId: string;
@@ -5342,7 +5798,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
5342
5798
  readonly oldAuthenticationEvidence: "rejected";
5343
5799
  };
5344
5800
  };
5345
- }, import("@yielded/auth/Passkey").PasskeyUnavailable | PersistenceMappingError, CurrentPasskeyTransaction>;
5801
+ }, import("@yielded/auth/Passkey").PasskeyUnavailable | PersistenceMappingError | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
5346
5802
  };
5347
5803
  registrationWrite: {
5348
5804
  inspectRegistration: (mapping: any, registration: any) => import("effect/Effect").Effect<{
@@ -5350,7 +5806,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
5350
5806
  name: string;
5351
5807
  displayName: string;
5352
5808
  eligible: boolean;
5353
- }, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
5809
+ }, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
5354
5810
  issueRegistration: (mapping: any, input: {
5355
5811
  readonly ceremony: import("@yielded/auth/Passkey").PasskeyCeremony;
5356
5812
  readonly policy: import("@yielded/auth/Passkey").PasskeyMethodPolicy;
@@ -5566,7 +6022,7 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
5566
6022
  };
5567
6023
  };
5568
6024
  };
5569
- }, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
6025
+ }, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
5570
6026
  completeRegistration: (mapping: any, input: {
5571
6027
  readonly claim: import("@yielded/auth/Passkey").PasskeyClaim;
5572
6028
  readonly verified: import("@yielded/auth/Passkey").PasskeyRegistrationVerified;
@@ -5575,14 +6031,14 @@ export declare const makePasskeyKernel: (operations: QueryOperations) => {
5575
6031
  readonly _tag: "Rejected";
5576
6032
  } | {
5577
6033
  readonly _tag: "RegistrationAccepted";
5578
- }, import("@yielded/auth/Passkey").PasskeyUnavailable, CurrentPasskeyTransaction>;
6034
+ }, import("@yielded/auth/Passkey").PasskeyUnavailable | import("effect/PlatformError").PlatformError, import("effect/Crypto").Crypto | CurrentPasskeyTransaction>;
5579
6035
  };
5580
6036
  writeTarget: {
5581
6037
  passkeyManagementPersistenceLayer: <E, R>(services: import("effect/Effect").Effect<PasskeyManagementServices, E, R>) => import("effect/Layer").Layer<import("@yielded/auth/Passkey").PasskeyManagementPersistence, E, Exclude<R, import("effect/Scope").Scope>>;
5582
- makeTargetPasskeyManagement: <M, RSetup>(source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration) => import("effect/Effect").Effect<PasskeyManagementServices, import("@yielded/auth/Passkey").PasskeyConfigurationError | PersistenceMappingError, RSetup | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase>;
5583
- makeTargetPasskeyRegistrationWriter: <M, R, RSetup>(source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration) => import("effect/Effect").Effect<PasskeyRegistrationServices<R>, import("@yielded/auth/Passkey").PasskeyConfigurationError | PersistenceMappingError, RSetup | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase>;
5584
- coordinateTargetPasskeyManagement: <M, RSetup, Transaction, A, E, R>(database: any, source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration, body: (transaction: Transaction, services: PasskeyManagementServices, append: (statement: import("effect/sql/Statement").Statement<unknown>) => void) => import("effect/Effect").Effect<A, E, R>) => import("effect/Effect").Effect<A, PasskeyCoordinatorError<E>, R | RSetup | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase>;
5585
- coordinateTargetPasskeyRegistrationWriter: <M, Value, RSetup, Transaction, A, E, R>(database: any, source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration, body: (transaction: Transaction, services: PasskeyRegistrationServices<Value>, append: (statement: import("effect/sql/Statement").Statement<unknown>) => void) => import("effect/Effect").Effect<A, E, R>) => import("effect/Effect").Effect<A, PasskeyCoordinatorError<E>, R | RSetup | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase>;
6038
+ makeTargetPasskeyManagement: <M, RSetup>(source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration) => import("effect/Effect").Effect<PasskeyManagementServices, import("@yielded/auth/Passkey").PasskeyConfigurationError | PersistenceMappingError, RSetup | import("effect/Crypto").Crypto | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase>;
6039
+ makeTargetPasskeyRegistrationWriter: <M, R, RSetup>(source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration) => import("effect/Effect").Effect<PasskeyRegistrationServices<R>, import("@yielded/auth/Passkey").PasskeyConfigurationError | PersistenceMappingError, RSetup | import("effect/Crypto").Crypto | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase>;
6040
+ coordinateTargetPasskeyManagement: <M, RSetup, Transaction, A, E, R>(database: any, source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration, body: (transaction: Transaction, services: PasskeyManagementServices, append: (statement: import("effect/sql/Statement").Statement<unknown>) => void) => import("effect/Effect").Effect<A, E, R>) => import("effect/Effect").Effect<A, PasskeyCoordinatorError<E>, R | RSetup | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase | import("effect/Crypto").Crypto>;
6041
+ coordinateTargetPasskeyRegistrationWriter: <M, Value, RSetup, Transaction, A, E, R>(database: any, source: PasskeyMappingSource<M, RSetup>, configuration: PasskeyTargetConfiguration, body: (transaction: Transaction, services: PasskeyRegistrationServices<Value>, append: (statement: import("effect/sql/Statement").Statement<unknown>) => void) => import("effect/Effect").Effect<A, E, R>) => import("effect/Effect").Effect<A, PasskeyCoordinatorError<E>, R | RSetup | import("@yielded/auth/Hooks").LifecycleHooks | NativeDatabase | import("effect/Crypto").Crypto>;
5586
6042
  };
5587
6043
  };
5588
6044
  //#endregion