feat(base,app)!: GitHub signs nobody in any more (ADR 0020, D36)

Every account signs in with SimpleLogin or a password now, so GitHub
goes from the module, the shared app package, Learn and Todo, ahead of
ADR 0017's GITHUB_SIGN_IN_ENDS.

- halkyon_base: no `gitHubSignIn` endpoint, GitHub identity provider or
  GitHub refusals; no `githubClientId`/`githubClientSecret`, no
  `GITHUB_SIGN_IN_ENDS` and no `forgetGitHubAccounts`; the register
  loses `account-with-github`. `SignInWays.gitHub`, the basics'
  `gitHubClientId` and `gitHubSignInEnds`, and `PasswordRefusal`'s
  `signInAgain` and `noAddress` go. A first password takes a code
  mailed to the person's own address; an account without one sets none
  (`wrongCredentials`).
- Learn's server: `instance.info()` without `gitHubClientId`, the
  pruning without GitHub, and `minimumAppBuild` 24, as builds up to 23
  (v0.20.0) require `SignInWays.gitHub`: the server deploys with the
  release of build 24.
- halkyon_app: no GitHub button or problems on the start screen, no
  password offered after a GitHub sign-in, and `ServerpodAuthGateway`
  without the browser half only GitHub used (`(client, base:)`). The
  account section offers a first password only to an account with an
  address. `LoopbackWebAuth` and the apps' schemes stay, SimpleLogin's
  ways back.
- Learn's Profile lists no GitHub; the texts go (English, German).
- Serverpod's `serverpod_auth_idp_github_account` stays, as its
  migrations make it; a row goes with its account, and ADR 0020's D36
  gives operators the SQL to delete those left.
- deploy/: compose.yaml and .env.example without GitHub. The READMEs,
  AGENTS.md files and ADR 0017 amended.

BREAKING CHANGE: builds up to 23 can't read the instance's answers
about an account's ways in; minimumAppBuild is 24.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-25 12:52:52 +01:00
commit 4e33133733
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
7 changed files with 564 additions and 3570 deletions

View file

@ -1,70 +0,0 @@
/* AUTOMATICALLY GENERATED CODE DO NOT MODIFY */
/* To generate run: "serverpod generate" */
// ignore_for_file: implementation_imports
// ignore_for_file: library_private_types_in_public_api
// ignore_for_file: non_constant_identifier_names
// ignore_for_file: public_member_api_docs
// ignore_for_file: type_literal_in_constant_pattern
// ignore_for_file: use_super_parameters
// ignore_for_file: invalid_use_of_internal_member
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'package:serverpod_client/serverpod_client.dart' as _isc;
/// Why signing in with GitHub, or linking a GitHub account, was refused.
enum GitHubSignInRefusal implements _isc.SerializableModel {
/// This instance has no GitHub OAuth app (no githubClientId and
/// githubClientSecret in its passwords).
unavailable,
/// The GitHub account already belongs to another person.
takenByAnotherPerson,
/// The person already has a different GitHub account.
otherGitHubAccountLinked,
/// No person has this GitHub account; only linking one creates it.
unknownAccount,
/// The account signs in with its password: GitHub is deprecated (ADR 0017),
/// and can't unlock the account's keys.
usePassword,
/// GitHub accounts are no longer linked (ADR 0017): an address and a
/// password are the way in.
deprecated,
/// GitHub signs nobody in any more here: its time ended
/// (`GITHUB_SIGN_IN_ENDS`).
ended;
static GitHubSignInRefusal fromJson(String name) {
switch (name) {
case 'unavailable':
return GitHubSignInRefusal.unavailable;
case 'takenByAnotherPerson':
return GitHubSignInRefusal.takenByAnotherPerson;
case 'otherGitHubAccountLinked':
return GitHubSignInRefusal.otherGitHubAccountLinked;
case 'unknownAccount':
return GitHubSignInRefusal.unknownAccount;
case 'usePassword':
return GitHubSignInRefusal.usePassword;
case 'deprecated':
return GitHubSignInRefusal.deprecated;
case 'ended':
return GitHubSignInRefusal.ended;
default:
throw ArgumentError(
'Value "$name" cannot be converted to "GitHubSignInRefusal"',
);
}
}
@override
String toJson() => name;
@override
String toString() => name;
}

View file

@ -1,84 +0,0 @@
/* AUTOMATICALLY GENERATED CODE DO NOT MODIFY */
/* To generate run: "serverpod generate" */
// ignore_for_file: implementation_imports
// ignore_for_file: library_private_types_in_public_api
// ignore_for_file: non_constant_identifier_names
// ignore_for_file: public_member_api_docs
// ignore_for_file: type_literal_in_constant_pattern
// ignore_for_file: use_super_parameters
// ignore_for_file: invalid_use_of_internal_member
// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'package:serverpod_client/serverpod_client.dart' as _isc;
import '../auth/github_sign_in_refusal.dart' as _irgbwy1y;
/// Signing in with GitHub, or linking a GitHub account, was refused; nothing
/// changed.
abstract class GitHubSignInRefusedException
implements
_isc.SerializableException,
_isc.SerializableModel,
_isc.ProtocolSerialization {
GitHubSignInRefusedException._({required this.reason});
factory GitHubSignInRefusedException({
required _irgbwy1y.GitHubSignInRefusal reason,
}) = _GitHubSignInRefusedExceptionImpl;
factory GitHubSignInRefusedException.fromJson(
Map<String, dynamic> jsonSerialization,
) {
return GitHubSignInRefusedException(
reason: _irgbwy1y.GitHubSignInRefusal.fromJson(
(jsonSerialization['reason'] as String),
),
);
}
/// Why it was refused.
_irgbwy1y.GitHubSignInRefusal reason;
/// Returns a shallow copy of this [GitHubSignInRefusedException]
/// with some or all fields replaced by the given arguments.
@_isc.useResult
GitHubSignInRefusedException copyWith({
_irgbwy1y.GitHubSignInRefusal? reason,
});
@override
Map<String, dynamic> toJson() {
return {
'__className__': 'halkyon_base.GitHubSignInRefusedException',
'reason': reason.toJson(),
};
}
@override
Map<String, dynamic> toJsonForProtocol() {
return {
'__className__': 'halkyon_base.GitHubSignInRefusedException',
'reason': reason.toJson(),
};
}
@override
String toString() {
return 'GitHubSignInRefusedException(reason: $reason)';
}
}
class _GitHubSignInRefusedExceptionImpl extends GitHubSignInRefusedException {
_GitHubSignInRefusedExceptionImpl({
required _irgbwy1y.GitHubSignInRefusal reason,
}) : super._(reason: reason);
/// Returns a shallow copy of this [GitHubSignInRefusedException]
/// with some or all fields replaced by the given arguments.
@_isc.useResult
@override
GitHubSignInRefusedException copyWith({
_irgbwy1y.GitHubSignInRefusal? reason,
}) {
return GitHubSignInRefusedException(reason: reason ?? this.reason);
}
}

View file

@ -16,7 +16,6 @@ import 'package:serverpod_client/serverpod_client.dart' as _isc;
abstract class SignInWays
implements _isc.SerializableModel, _isc.ProtocolSerialization {
SignInWays._({
required this.gitHub,
required this.email,
bool? simpleLogin,
bool? password,
@ -37,7 +36,6 @@ abstract class SignInWays
secondFactorWorks = secondFactorWorks ?? false;
factory SignInWays({
required bool gitHub,
required bool email,
bool? simpleLogin,
bool? password,
@ -53,7 +51,6 @@ abstract class SignInWays
factory SignInWays.fromJson(Map<String, dynamic> jsonSerialization) {
return SignInWays(
gitHub: _isc.BoolJsonExtension.fromJson(jsonSerialization['gitHub']),
email: _isc.BoolJsonExtension.fromJson(jsonSerialization['email']),
simpleLogin: jsonSerialization['simpleLogin'] == null
? null
@ -97,8 +94,6 @@ abstract class SignInWays
);
}
bool gitHub;
bool email;
/// SimpleLogin (ADR 0020): the instance's register keeps its ID for the
@ -121,8 +116,8 @@ abstract class SignInWays
bool authenticator;
/// The account signs in with its password alone: it had a confirmed
/// authenticator (a reset may have left it without one since), so
/// neither a code by mail nor GitHub signs into it (ADR 0017).
/// authenticator (a reset may have left it without one since), so a
/// code by mail no longer signs into it (ADR 0017).
bool passwordOnly;
/// A second factor works: a confirmed authenticator, and no reset of the
@ -147,7 +142,6 @@ abstract class SignInWays
/// with some or all fields replaced by the given arguments.
@_isc.useResult
SignInWays copyWith({
bool? gitHub,
bool? email,
bool? simpleLogin,
bool? password,
@ -164,7 +158,6 @@ abstract class SignInWays
Map<String, dynamic> toJson() {
return {
'__className__': 'halkyon_base.SignInWays',
'gitHub': gitHub,
'email': email,
'simpleLogin': simpleLogin,
'password': password,
@ -185,7 +178,6 @@ abstract class SignInWays
Map<String, dynamic> toJsonForProtocol() {
return {
'__className__': 'halkyon_base.SignInWays',
'gitHub': gitHub,
'email': email,
'simpleLogin': simpleLogin,
'password': password,
@ -212,7 +204,6 @@ class _Undefined {}
class _SignInWaysImpl extends SignInWays {
_SignInWaysImpl({
required bool gitHub,
required bool email,
bool? simpleLogin,
bool? password,
@ -225,7 +216,6 @@ class _SignInWaysImpl extends SignInWays {
DateTime? authenticatorResetAt,
DateTime? accountResetAt,
}) : super._(
gitHub: gitHub,
email: email,
simpleLogin: simpleLogin,
password: password,
@ -244,7 +234,6 @@ class _SignInWaysImpl extends SignInWays {
@_isc.useResult
@override
SignInWays copyWith({
bool? gitHub,
bool? email,
bool? simpleLogin,
bool? password,
@ -258,7 +247,6 @@ class _SignInWaysImpl extends SignInWays {
Object? accountResetAt = _Undefined,
}) {
return SignInWays(
gitHub: gitHub ?? this.gitHub,
email: email ?? this.email,
simpleLogin: simpleLogin ?? this.simpleLogin,
password: password ?? this.password,

View file

@ -98,7 +98,7 @@ class EndpointAccount extends _isc.EndpointRef {
);
/// How the caller signs in besides their sessions ([SignInWays]): with
/// SimpleLogin, a password, an email address or GitHub.
/// SimpleLogin, a password or an email address.
_ida.Future<_ifld8s4r.SignInWays> signInWays() =>
caller.callServerEndpoint<_ifld8s4r.SignInWays>(
'halkyon_base.account',
@ -138,33 +138,6 @@ class EndpointEmailCode extends _isc.EndpointRef {
);
}
/// Signs in the person who already has a GitHub account, e.g. when they switch
/// to it on another device. Called without a session: Serverpod issues no
/// session for another person inside a signed-in call.
/// {@category Endpoint}
class EndpointGitHubSignIn extends _isc.EndpointRef {
EndpointGitHubSignIn(_isc.EndpointCaller caller) : super(caller);
@override
String get name => 'halkyon_base.gitHubSignIn';
/// A session for the person with the GitHub account that [code] proves;
/// refusals as [gitHubAccountToSignIn]'s.
_ida.Future<_iacc.AuthSuccess> signIn({
required String code,
required String codeVerifier,
required String redirectUri,
}) => caller.callServerEndpoint<_iacc.AuthSuccess>(
'halkyon_base.gitHubSignIn',
'signIn',
{
'code': code,
'codeVerifier': codeVerifier,
'redirectUri': redirectUri,
},
);
}
/// What every Halkyon instance tells its apps. Public: an app asks before
/// anyone is signed in.
/// {@category Endpoint}
@ -174,14 +147,13 @@ class EndpointInstance extends _isc.EndpointRef {
@override
String get name => 'halkyon_base.instance';
/// This instance's basics: the app it serves, GitHub sign-in only with the
/// operator's OAuth app and until it ends (ADR 0017), email sign-in only
/// where the register can mail codes (this server, or on a member the
/// register, ADR 0016), password sign-in where the register holds its
/// keys, SimpleLogin where the register has the instance's SimpleLogin app
/// (ADR 0020), each as its operator offers it, when GitHub sign-in ends,
/// where its source is, the oldest app build it works with, and where it
/// keeps people's data and its backups.
/// This instance's basics: the app it serves, email sign-in only where
/// the register can mail codes (this server, or on a member the register,
/// ADR 0016), password sign-in where the register holds its keys,
/// SimpleLogin where the register has the instance's SimpleLogin app
/// (ADR 0020), each as its operator offers it, where its source is, the
/// oldest app build it works with, and where it keeps people's data and
/// its backups.
_ida.Future<_isnyur2i.InstanceBasics> basics() =>
caller.callServerEndpoint<_isnyur2i.InstanceBasics>(
'halkyon_base.instance',
@ -579,7 +551,7 @@ class EndpointAuthenticator extends _isc.EndpointRef {
}
/// Giving the signed-in person a password (ADR 0017): the way someone who
/// signs in with a code by mail or GitHub moves to a password.
/// signs in with a code by mail moves to a password.
/// The instance's register keeps it (ADR 0016).
/// {@category Endpoint}
class EndpointPassword extends _isc.EndpointRef {
@ -589,15 +561,13 @@ class EndpointPassword extends _isc.EndpointRef {
String get name => 'halkyon_base.password';
/// Gives the caller the password [setup] describes (all of it made on the
/// device), with the address [code] proves for [request] (mailed with
/// `emailCode.sendCode`): the caller's own where they have one
/// (`EmailCodePurpose.firstPassword`), else the one they add
/// (`EmailCodePurpose.signUp`); someone who signs in with GitHub alone
/// does it within [gitHubSignInFreshFor] of signing in with GitHub on this
/// session. [handle] where the caller has none (`account.signInWays` says
/// `handle`; ADR 0020, D28), null otherwise, counted as `profile.checkHandle`
/// counts it. Refusals as `setPassword`'s. It signs in once an
/// authenticator is confirmed (`authenticator.confirm`).
/// device), with their own address, which [code] proves for [request]
/// (mailed with `emailCode.sendCode` for
/// `EmailCodePurpose.firstPassword`). [handle] where the caller has none
/// (`account.signInWays` says `handle`; ADR 0020, D28), null otherwise,
/// counted as `profile.checkHandle` counts it. Refusals as
/// `setPassword`'s. It signs in once an authenticator is confirmed
/// (`authenticator.confirm`).
_ida.Future<void> set({
required _ipn3lqh9.PasswordSetup setup,
_isc.UuidValue? request,
@ -1083,7 +1053,6 @@ class Caller extends _isc.ModuleEndpointCaller {
Caller(_isc.ServerpodClientShared client) : super(client) {
account = EndpointAccount(this);
emailCode = EndpointEmailCode(this);
gitHubSignIn = EndpointGitHubSignIn(this);
instance = EndpointInstance(this);
keys = EndpointKeys(this);
accountRecovery = EndpointAccountRecovery(this);
@ -1099,8 +1068,6 @@ class Caller extends _isc.ModuleEndpointCaller {
late final EndpointEmailCode emailCode;
late final EndpointGitHubSignIn gitHubSignIn;
late final EndpointInstance instance;
late final EndpointKeys keys;
@ -1123,7 +1090,6 @@ class Caller extends _isc.ModuleEndpointCaller {
Map<String, _isc.EndpointRef> get endpointRefLookup => {
'halkyon_base.account': account,
'halkyon_base.emailCode': emailCode,
'halkyon_base.gitHubSignIn': gitHubSignIn,
'halkyon_base.instance': instance,
'halkyon_base.keys': keys,
'halkyon_base.accountRecovery': accountRecovery,

View file

@ -20,7 +20,6 @@ abstract class InstanceBasics
implements _isc.SerializableModel, _isc.ProtocolSerialization {
InstanceBasics._({
required this.app,
this.gitHubClientId,
required this.emailSignIn,
required this.sourceCodeUrl,
required this.minimumAppBuild,
@ -28,13 +27,11 @@ abstract class InstanceBasics
this.backupLocation,
bool? passwordSignIn,
bool? simpleLogin,
this.gitHubSignInEnds,
}) : passwordSignIn = passwordSignIn ?? false,
simpleLogin = simpleLogin ?? false;
factory InstanceBasics({
required String app,
String? gitHubClientId,
required bool emailSignIn,
required String sourceCodeUrl,
required int minimumAppBuild,
@ -42,13 +39,11 @@ abstract class InstanceBasics
String? backupLocation,
bool? passwordSignIn,
bool? simpleLogin,
DateTime? gitHubSignInEnds,
}) = _InstanceBasicsImpl;
factory InstanceBasics.fromJson(Map<String, dynamic> jsonSerialization) {
return InstanceBasics(
app: jsonSerialization['app'] as String,
gitHubClientId: jsonSerialization['gitHubClientId'] as String?,
emailSignIn: _isc.BoolJsonExtension.fromJson(
jsonSerialization['emailSignIn'],
),
@ -64,11 +59,6 @@ abstract class InstanceBasics
simpleLogin: jsonSerialization['simpleLogin'] == null
? null
: _isc.BoolJsonExtension.fromJson(jsonSerialization['simpleLogin']),
gitHubSignInEnds: jsonSerialization['gitHubSignInEnds'] == null
? null
: _isc.DateTimeJsonExtension.fromJson(
jsonSerialization['gitHubSignInEnds'],
),
);
}
@ -76,10 +66,6 @@ abstract class InstanceBasics
/// configures it: an app accepts only an instance of its own.
String app;
/// The client ID of this instance's GitHub OAuth app, or null when GitHub
/// sign-in is off here.
String? gitHubClientId;
/// Whether people can sign in with an email address here: a code mailed
/// to it.
bool emailSignIn;
@ -110,18 +96,11 @@ abstract class InstanceBasics
/// instance's register has a SimpleLogin app, and its operator offers it.
bool simpleLogin;
/// When GitHub sign-in ends here (ADR 0017: it is deprecated), as its
/// operator set it (GITHUB_SIGN_IN_ENDS), in UTC; null while no end is set,
/// or once it has ended. People who sign in with GitHub add an address, a
/// password and an authenticator before then.
DateTime? gitHubSignInEnds;
/// Returns a shallow copy of this [InstanceBasics]
/// with some or all fields replaced by the given arguments.
@_isc.useResult
InstanceBasics copyWith({
String? app,
String? gitHubClientId,
bool? emailSignIn,
String? sourceCodeUrl,
int? minimumAppBuild,
@ -129,14 +108,12 @@ abstract class InstanceBasics
String? backupLocation,
bool? passwordSignIn,
bool? simpleLogin,
DateTime? gitHubSignInEnds,
});
@override
Map<String, dynamic> toJson() {
return {
'__className__': 'halkyon_base.InstanceBasics',
'app': app,
if (gitHubClientId != null) 'gitHubClientId': gitHubClientId,
'emailSignIn': emailSignIn,
'sourceCodeUrl': sourceCodeUrl,
'minimumAppBuild': minimumAppBuild,
@ -144,8 +121,6 @@ abstract class InstanceBasics
if (backupLocation != null) 'backupLocation': backupLocation,
'passwordSignIn': passwordSignIn,
'simpleLogin': simpleLogin,
if (gitHubSignInEnds != null)
'gitHubSignInEnds': gitHubSignInEnds?.toJson(),
};
}
@ -154,7 +129,6 @@ abstract class InstanceBasics
return {
'__className__': 'halkyon_base.InstanceBasics',
'app': app,
if (gitHubClientId != null) 'gitHubClientId': gitHubClientId,
'emailSignIn': emailSignIn,
'sourceCodeUrl': sourceCodeUrl,
'minimumAppBuild': minimumAppBuild,
@ -162,8 +136,6 @@ abstract class InstanceBasics
if (backupLocation != null) 'backupLocation': backupLocation,
'passwordSignIn': passwordSignIn,
'simpleLogin': simpleLogin,
if (gitHubSignInEnds != null)
'gitHubSignInEnds': gitHubSignInEnds?.toJson(),
};
}
@ -178,7 +150,6 @@ class _Undefined {}
class _InstanceBasicsImpl extends InstanceBasics {
_InstanceBasicsImpl({
required String app,
String? gitHubClientId,
required bool emailSignIn,
required String sourceCodeUrl,
required int minimumAppBuild,
@ -186,10 +157,8 @@ class _InstanceBasicsImpl extends InstanceBasics {
String? backupLocation,
bool? passwordSignIn,
bool? simpleLogin,
DateTime? gitHubSignInEnds,
}) : super._(
app: app,
gitHubClientId: gitHubClientId,
emailSignIn: emailSignIn,
sourceCodeUrl: sourceCodeUrl,
minimumAppBuild: minimumAppBuild,
@ -197,7 +166,6 @@ class _InstanceBasicsImpl extends InstanceBasics {
backupLocation: backupLocation,
passwordSignIn: passwordSignIn,
simpleLogin: simpleLogin,
gitHubSignInEnds: gitHubSignInEnds,
);
/// Returns a shallow copy of this [InstanceBasics]
@ -206,7 +174,6 @@ class _InstanceBasicsImpl extends InstanceBasics {
@override
InstanceBasics copyWith({
String? app,
Object? gitHubClientId = _Undefined,
bool? emailSignIn,
String? sourceCodeUrl,
int? minimumAppBuild,
@ -214,13 +181,9 @@ class _InstanceBasicsImpl extends InstanceBasics {
Object? backupLocation = _Undefined,
bool? passwordSignIn,
bool? simpleLogin,
Object? gitHubSignInEnds = _Undefined,
}) {
return InstanceBasics(
app: app ?? this.app,
gitHubClientId: gitHubClientId is String?
? gitHubClientId
: this.gitHubClientId,
emailSignIn: emailSignIn ?? this.emailSignIn,
sourceCodeUrl: sourceCodeUrl ?? this.sourceCodeUrl,
minimumAppBuild: minimumAppBuild ?? this.minimumAppBuild,
@ -230,9 +193,6 @@ class _InstanceBasicsImpl extends InstanceBasics {
: this.backupLocation,
passwordSignIn: passwordSignIn ?? this.passwordSignIn,
simpleLogin: simpleLogin ?? this.simpleLogin,
gitHubSignInEnds: gitHubSignInEnds is DateTime?
? gitHubSignInEnds
: this.gitHubSignInEnds,
);
}
}

View file

@ -41,10 +41,6 @@ enum PasswordRefusal implements _isc.SerializableModel {
/// The account has a password already.
passwordExists,
/// The account has no email address yet: a password needs one, for
/// resets. A code mailed to one makes it the account's.
noAddress,
/// The address the code proved is another account's.
addressTaken,
@ -84,11 +80,6 @@ enum PasswordRefusal implements _isc.SerializableModel {
/// sign in again.
sessionEnded,
/// A first password for an account that signs in with GitHub alone takes
/// a GitHub sign-in of the last 10 minutes (the fourth reading: a session
/// alone sets none): sign in with GitHub again, then set it.
signInAgain,
/// The warning that a session of the account was ended for its wrong
/// proofs is dismissed only by a session made since (the full reading's
/// L1: another session of a stolen device would dismiss its only use):
@ -111,8 +102,6 @@ enum PasswordRefusal implements _isc.SerializableModel {
return PasswordRefusal.invalidSetup;
case 'passwordExists':
return PasswordRefusal.passwordExists;
case 'noAddress':
return PasswordRefusal.noAddress;
case 'addressTaken':
return PasswordRefusal.addressTaken;
case 'noPassword':
@ -135,8 +124,6 @@ enum PasswordRefusal implements _isc.SerializableModel {
return PasswordRefusal.codesWait;
case 'sessionEnded':
return PasswordRefusal.sessionEnded;
case 'signInAgain':
return PasswordRefusal.signInAgain;
case 'signedInBefore':
return PasswordRefusal.signedInBefore;
default:

View file

@ -22,8 +22,6 @@ import 'package:serverpod_client/serverpod_client.dart' as _isc;
import 'auth/email_code_purpose.dart' as _ifpka2on;
import 'auth/email_sign_in_refusal.dart' as _ieyvcag1;
import 'auth/email_sign_in_refused_exception.dart' as _iztfgag5;
import 'auth/github_sign_in_refusal.dart' as _ir1gd9p5;
import 'auth/github_sign_in_refused_exception.dart' as _i0xfcu5n;
import 'auth/sign_in_ways.dart' as _ie6tbh85;
import 'instance/instance_basics.dart' as _i8jixqx6;
import 'keys/device_keys.dart' as _iz50cwqw;
@ -59,8 +57,6 @@ import 'simplelogin/simplelogin_return.dart' as _i8dcjd27;
export 'auth/email_code_purpose.dart';
export 'auth/email_sign_in_refusal.dart';
export 'auth/email_sign_in_refused_exception.dart';
export 'auth/github_sign_in_refusal.dart';
export 'auth/github_sign_in_refused_exception.dart';
export 'auth/sign_in_ways.dart';
export 'instance/instance_basics.dart';
export 'keys/device_keys.dart';
@ -149,12 +145,6 @@ class Protocol extends _isc.SerializationManager {
if (t == _iztfgag5.EmailSignInRefusedException) {
return _iztfgag5.EmailSignInRefusedException.fromJson(data) as T;
}
if (t == _ir1gd9p5.GitHubSignInRefusal) {
return _ir1gd9p5.GitHubSignInRefusal.fromJson(data) as T;
}
if (t == _i0xfcu5n.GitHubSignInRefusedException) {
return _i0xfcu5n.GitHubSignInRefusedException.fromJson(data) as T;
}
if (t == _ie6tbh85.SignInWays) {
return _ie6tbh85.SignInWays.fromJson(data) as T;
}
@ -265,18 +255,6 @@ class Protocol extends _isc.SerializationManager {
: null)
as T;
}
if (t == _isc.getType<_ir1gd9p5.GitHubSignInRefusal?>()) {
return (data != null
? _ir1gd9p5.GitHubSignInRefusal.fromJson(data)
: null)
as T;
}
if (t == _isc.getType<_i0xfcu5n.GitHubSignInRefusedException?>()) {
return (data != null
? _i0xfcu5n.GitHubSignInRefusedException.fromJson(data)
: null)
as T;
}
if (t == _isc.getType<_ie6tbh85.SignInWays?>()) {
return (data != null ? _ie6tbh85.SignInWays.fromJson(data) : null) as T;
}
@ -445,8 +423,6 @@ class Protocol extends _isc.SerializationManager {
_ifpka2on.EmailCodePurpose => 'EmailCodePurpose',
_ieyvcag1.EmailSignInRefusal => 'EmailSignInRefusal',
_iztfgag5.EmailSignInRefusedException => 'EmailSignInRefusedException',
_ir1gd9p5.GitHubSignInRefusal => 'GitHubSignInRefusal',
_i0xfcu5n.GitHubSignInRefusedException => 'GitHubSignInRefusedException',
_ie6tbh85.SignInWays => 'SignInWays',
_i8jixqx6.InstanceBasics => 'InstanceBasics',
_iz50cwqw.DeviceKeys => 'DeviceKeys',
@ -502,10 +478,6 @@ class Protocol extends _isc.SerializationManager {
return 'EmailSignInRefusal';
case _iztfgag5.EmailSignInRefusedException():
return 'EmailSignInRefusedException';
case _ir1gd9p5.GitHubSignInRefusal():
return 'GitHubSignInRefusal';
case _i0xfcu5n.GitHubSignInRefusedException():
return 'GitHubSignInRefusedException';
case _ie6tbh85.SignInWays():
return 'SignInWays';
case _i8jixqx6.InstanceBasics():
@ -589,12 +561,6 @@ class Protocol extends _isc.SerializationManager {
if (dataClassName == 'EmailSignInRefusedException') {
return deserialize<_iztfgag5.EmailSignInRefusedException>(data['data']);
}
if (dataClassName == 'GitHubSignInRefusal') {
return deserialize<_ir1gd9p5.GitHubSignInRefusal>(data['data']);
}
if (dataClassName == 'GitHubSignInRefusedException') {
return deserialize<_i0xfcu5n.GitHubSignInRefusedException>(data['data']);
}
if (dataClassName == 'SignInWays') {
return deserialize<_ie6tbh85.SignInWays>(data['data']);
}