mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
fix: login issue (#4546)
* fix: reset server url when using appflowy cloud the first time * refactor: set authenticator in frontend * chore: log version * chore: show hint when changing the server type * chore: bump version * chore: fix test * chore: bump collab
This commit is contained in:
@ -11,7 +11,6 @@ import 'package:appflowy/user/application/auth/supabase_mock_auth_service.dart';
|
|||||||
import 'package:appflowy/user/presentation/presentation.dart';
|
import 'package:appflowy/user/presentation/presentation.dart';
|
||||||
import 'package:appflowy/user/presentation/screens/sign_in_screen/widgets/widgets.dart';
|
import 'package:appflowy/user/presentation/screens/sign_in_screen/widgets/widgets.dart';
|
||||||
import 'package:appflowy/workspace/application/settings/prelude.dart';
|
import 'package:appflowy/workspace/application/settings/prelude.dart';
|
||||||
import 'package:dartz/dartz.dart';
|
|
||||||
import 'package:flowy_infra/uuid.dart';
|
import 'package:flowy_infra/uuid.dart';
|
||||||
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
|
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
|
||||||
import 'package:flutter/gestures.dart';
|
import 'package:flutter/gestures.dart';
|
||||||
@ -78,14 +77,14 @@ extension AppFlowyTestBase on WidgetTester {
|
|||||||
await useLocal();
|
await useLocal();
|
||||||
break;
|
break;
|
||||||
case AuthenticatorType.supabase:
|
case AuthenticatorType.supabase:
|
||||||
await useSupabaseCloud();
|
await useTestSupabaseCloud();
|
||||||
getIt.unregister<AuthService>();
|
getIt.unregister<AuthService>();
|
||||||
getIt.registerFactory<AuthService>(
|
getIt.registerFactory<AuthService>(
|
||||||
() => SupabaseMockAuthService(),
|
() => SupabaseMockAuthService(),
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case AuthenticatorType.appflowyCloudSelfHost:
|
case AuthenticatorType.appflowyCloudSelfHost:
|
||||||
await useAppFlowyCloud();
|
await useTestSelfHostedAppFlowyCloud();
|
||||||
getIt.unregister<AuthService>();
|
getIt.unregister<AuthService>();
|
||||||
getIt.registerFactory<AuthService>(
|
getIt.registerFactory<AuthService>(
|
||||||
() => AppFlowyCloudMockAuthService(email: email),
|
() => AppFlowyCloudMockAuthService(email: email),
|
||||||
@ -249,20 +248,18 @@ extension AppFlowyFinderTestBase on CommonFinders {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<void> useLocal() async {
|
Future<void> useLocal() async {
|
||||||
await setAuthenticatorType(AuthenticatorType.local);
|
await useLocalServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> useSupabaseCloud() async {
|
Future<void> useTestSupabaseCloud() async {
|
||||||
await setAuthenticatorType(AuthenticatorType.supabase);
|
await useSupabaseCloud(
|
||||||
await setSupbaseServer(
|
url: TestEnv.supabaseUrl,
|
||||||
Some(TestEnv.supabaseUrl),
|
anonKey: TestEnv.supabaseAnonKey,
|
||||||
Some(TestEnv.supabaseAnonKey),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> useAppFlowyCloud() async {
|
Future<void> useTestSelfHostedAppFlowyCloud() async {
|
||||||
await setAuthenticatorType(AuthenticatorType.appflowyCloudSelfHost);
|
await useSelfHostedAppFlowyCloudWithURL(TestEnv.afCloudUrl);
|
||||||
await setAppFlowyCloudUrl(Some(TestEnv.afCloudUrl));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<String> mockApplicationDataStorage({
|
Future<String> mockApplicationDataStorage({
|
||||||
|
@ -7,6 +7,7 @@ part 'backend_env.g.dart';
|
|||||||
class AppFlowyConfiguration {
|
class AppFlowyConfiguration {
|
||||||
AppFlowyConfiguration({
|
AppFlowyConfiguration({
|
||||||
required this.root,
|
required this.root,
|
||||||
|
required this.app_version,
|
||||||
required this.custom_app_path,
|
required this.custom_app_path,
|
||||||
required this.origin_app_path,
|
required this.origin_app_path,
|
||||||
required this.device_id,
|
required this.device_id,
|
||||||
@ -20,6 +21,7 @@ class AppFlowyConfiguration {
|
|||||||
_$AppFlowyConfigurationFromJson(json);
|
_$AppFlowyConfigurationFromJson(json);
|
||||||
|
|
||||||
final String root;
|
final String root;
|
||||||
|
final String app_version;
|
||||||
final String custom_app_path;
|
final String custom_app_path;
|
||||||
final String origin_app_path;
|
final String origin_app_path;
|
||||||
final String device_id;
|
final String device_id;
|
||||||
|
45
frontend/appflowy_flutter/lib/env/cloud_env.dart
vendored
45
frontend/appflowy_flutter/lib/env/cloud_env.dart
vendored
@ -17,7 +17,7 @@ import 'package:dartz/dartz.dart';
|
|||||||
/// - `CloudType.local` is stored as "0".
|
/// - `CloudType.local` is stored as "0".
|
||||||
/// - `CloudType.supabase` is stored as "1".
|
/// - `CloudType.supabase` is stored as "1".
|
||||||
/// - `CloudType.appflowyCloud` is stored as "2".
|
/// - `CloudType.appflowyCloud` is stored as "2".
|
||||||
Future<void> setAuthenticatorType(AuthenticatorType ty) async {
|
Future<void> _setAuthenticatorType(AuthenticatorType ty) async {
|
||||||
switch (ty) {
|
switch (ty) {
|
||||||
case AuthenticatorType.local:
|
case AuthenticatorType.local:
|
||||||
await getIt<KeyValueStorage>().set(KVKeys.kCloudType, 0.toString());
|
await getIt<KeyValueStorage>().set(KVKeys.kCloudType, 0.toString());
|
||||||
@ -54,7 +54,7 @@ Future<AuthenticatorType> getAuthenticatorType() async {
|
|||||||
final value = await getIt<KeyValueStorage>().get(KVKeys.kCloudType);
|
final value = await getIt<KeyValueStorage>().get(KVKeys.kCloudType);
|
||||||
if (value.isNone() && !integrationMode().isUnitTest) {
|
if (value.isNone() && !integrationMode().isUnitTest) {
|
||||||
// if the cloud type is not set, then set it to AppFlowy Cloud as default.
|
// if the cloud type is not set, then set it to AppFlowy Cloud as default.
|
||||||
await setAuthenticatorType(AuthenticatorType.appflowyCloud);
|
await useAppFlowyBetaCloudWithURL(kAppflowyCloudUrl);
|
||||||
return AuthenticatorType.appflowyCloud;
|
return AuthenticatorType.appflowyCloud;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ Future<AuthenticatorType> getAuthenticatorType() async {
|
|||||||
case "4":
|
case "4":
|
||||||
return AuthenticatorType.appflowyCloudDevelop;
|
return AuthenticatorType.appflowyCloudDevelop;
|
||||||
default:
|
default:
|
||||||
await setAuthenticatorType(AuthenticatorType.appflowyCloud);
|
await useAppFlowyBetaCloudWithURL(kAppflowyCloudUrl);
|
||||||
return AuthenticatorType.appflowyCloud;
|
return AuthenticatorType.appflowyCloud;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -171,13 +171,35 @@ AuthenticatorType currentCloudType() {
|
|||||||
return getIt<AppFlowyCloudSharedEnv>().authenticatorType;
|
return getIt<AppFlowyCloudSharedEnv>().authenticatorType;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> setAppFlowyCloudUrl(Option<String> url) async {
|
Future<void> _setAppFlowyCloudUrl(Option<String> url) async {
|
||||||
await url.fold(
|
await url.fold(
|
||||||
() => getIt<KeyValueStorage>().set(KVKeys.kAppflowyCloudBaseURL, ""),
|
() => getIt<KeyValueStorage>().set(KVKeys.kAppflowyCloudBaseURL, ""),
|
||||||
(s) => getIt<KeyValueStorage>().set(KVKeys.kAppflowyCloudBaseURL, s),
|
(s) => getIt<KeyValueStorage>().set(KVKeys.kAppflowyCloudBaseURL, s),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> useSelfHostedAppFlowyCloudWithURL(String url) async {
|
||||||
|
await _setAuthenticatorType(AuthenticatorType.appflowyCloudSelfHost);
|
||||||
|
await _setAppFlowyCloudUrl(Some(url));
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> useAppFlowyBetaCloudWithURL(String url) async {
|
||||||
|
await _setAuthenticatorType(AuthenticatorType.appflowyCloud);
|
||||||
|
await _setAppFlowyCloudUrl(Some(url));
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> useLocalServer() async {
|
||||||
|
await _setAuthenticatorType(AuthenticatorType.local);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> useSupabaseCloud({
|
||||||
|
required String url,
|
||||||
|
required String anonKey,
|
||||||
|
}) async {
|
||||||
|
await _setAuthenticatorType(AuthenticatorType.supabase);
|
||||||
|
await setSupbaseServer(Some(url), Some(anonKey));
|
||||||
|
}
|
||||||
|
|
||||||
/// Use getIt<AppFlowyCloudSharedEnv>() to get the shared environment.
|
/// Use getIt<AppFlowyCloudSharedEnv>() to get the shared environment.
|
||||||
class AppFlowyCloudSharedEnv {
|
class AppFlowyCloudSharedEnv {
|
||||||
AppFlowyCloudSharedEnv({
|
AppFlowyCloudSharedEnv({
|
||||||
@ -198,12 +220,13 @@ class AppFlowyCloudSharedEnv {
|
|||||||
// Use the custom cloud configuration.
|
// Use the custom cloud configuration.
|
||||||
var authenticatorType = await getAuthenticatorType();
|
var authenticatorType = await getAuthenticatorType();
|
||||||
|
|
||||||
final appflowyCloudConfig = authenticatorType.isLocal
|
final appflowyCloudConfig = authenticatorType.isAppFlowyCloudEnabled
|
||||||
? AppFlowyCloudConfiguration.defaultConfig()
|
? await getAppFlowyCloudConfig(authenticatorType)
|
||||||
: await getAppFlowyCloudConfig(authenticatorType);
|
: AppFlowyCloudConfiguration.defaultConfig();
|
||||||
final supabaseCloudConfig = authenticatorType.isLocal
|
|
||||||
? SupabaseConfiguration.defaultConfig()
|
final supabaseCloudConfig = authenticatorType.isSupabaseEnabled
|
||||||
: await getSupabaseCloudConfig();
|
? await getSupabaseCloudConfig()
|
||||||
|
: SupabaseConfiguration.defaultConfig();
|
||||||
|
|
||||||
// In the backend, the value '2' represents the use of AppFlowy Cloud. However, in the frontend,
|
// In the backend, the value '2' represents the use of AppFlowy Cloud. However, in the frontend,
|
||||||
// we distinguish between [AuthenticatorType.appflowyCloudSelfHost] and [AuthenticatorType.appflowyCloud].
|
// we distinguish between [AuthenticatorType.appflowyCloudSelfHost] and [AuthenticatorType.appflowyCloud].
|
||||||
@ -283,7 +306,7 @@ Future<String> getAppFlowyCloudUrl() async {
|
|||||||
final result =
|
final result =
|
||||||
await getIt<KeyValueStorage>().get(KVKeys.kAppflowyCloudBaseURL);
|
await getIt<KeyValueStorage>().get(KVKeys.kAppflowyCloudBaseURL);
|
||||||
return result.fold(
|
return result.fold(
|
||||||
() => "https://beta.appflowy.cloud",
|
() => kAppflowyCloudUrl,
|
||||||
(url) => url,
|
(url) => url,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ class AppFlowyCloudPage extends StatelessWidget {
|
|||||||
body: Padding(
|
body: Padding(
|
||||||
padding: const EdgeInsets.all(20.0),
|
padding: const EdgeInsets.all(20.0),
|
||||||
child: SettingCloud(
|
child: SettingCloud(
|
||||||
didResetServerUrl: () async {
|
restartAppFlowy: () async {
|
||||||
await runAppFlowy();
|
await runAppFlowy();
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
@ -3,7 +3,6 @@ import 'package:appflowy/generated/locale_keys.g.dart';
|
|||||||
import 'package:appflowy/startup/startup.dart';
|
import 'package:appflowy/startup/startup.dart';
|
||||||
import 'package:appflowy/workspace/application/settings/appflowy_cloud_urls_bloc.dart';
|
import 'package:appflowy/workspace/application/settings/appflowy_cloud_urls_bloc.dart';
|
||||||
import 'package:appflowy_backend/log.dart';
|
import 'package:appflowy_backend/log.dart';
|
||||||
import 'package:dartz/dartz.dart' show Some;
|
|
||||||
import 'package:easy_localization/easy_localization.dart';
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
@ -99,7 +98,7 @@ class _SelfHostUrlBottomSheetState extends State<SelfHostUrlBottomSheet> {
|
|||||||
if (value.isNotEmpty) {
|
if (value.isNotEmpty) {
|
||||||
validateUrl(value).fold(
|
validateUrl(value).fold(
|
||||||
(url) async {
|
(url) async {
|
||||||
await setAppFlowyCloudUrl(Some(url));
|
await useSelfHostedAppFlowyCloudWithURL(url);
|
||||||
await runAppFlowy();
|
await runAppFlowy();
|
||||||
},
|
},
|
||||||
(err) => Log.error(err),
|
(err) => Log.error(err),
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
class LaunchConfiguration {
|
class LaunchConfiguration {
|
||||||
const LaunchConfiguration({
|
const LaunchConfiguration({
|
||||||
this.isAnon = false,
|
this.isAnon = false,
|
||||||
|
required this.version,
|
||||||
required this.rustEnvs,
|
required this.rustEnvs,
|
||||||
});
|
});
|
||||||
|
|
||||||
// APP will automatically register after launching.
|
// APP will automatically register after launching.
|
||||||
final bool isAnon;
|
final bool isAnon;
|
||||||
|
final String version;
|
||||||
//
|
//
|
||||||
final Map<String, String> rustEnvs;
|
final Map<String, String> rustEnvs;
|
||||||
}
|
}
|
||||||
|
@ -81,14 +81,13 @@ class FlowyRunner {
|
|||||||
|
|
||||||
final config = LaunchConfiguration(
|
final config = LaunchConfiguration(
|
||||||
isAnon: isAnon,
|
isAnon: isAnon,
|
||||||
|
// Unit test can't use the package_info_plus plugin
|
||||||
|
version: mode.isUnitTest
|
||||||
|
? '1.0.0'
|
||||||
|
: await PackageInfo.fromPlatform().then((value) => value.version),
|
||||||
rustEnvs: rustEnvsBuilder?.call() ?? {},
|
rustEnvs: rustEnvsBuilder?.call() ?? {},
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!mode.isUnitTest) {
|
|
||||||
// Unit test can't use the package_info_plus plugin
|
|
||||||
config.rustEnvs["APP_VERSION"] =
|
|
||||||
await PackageInfo.fromPlatform().then((value) => value.version);
|
|
||||||
}
|
|
||||||
// Specify the env
|
// Specify the env
|
||||||
await initGetIt(getIt, mode, f, config);
|
await initGetIt(getIt, mode, f, config);
|
||||||
await didInitGetItCallback?.call();
|
await didInitGetItCallback?.call();
|
||||||
|
@ -31,6 +31,7 @@ class InitRustSDKTask extends LaunchTask {
|
|||||||
// Pass the environment variables to the Rust SDK
|
// Pass the environment variables to the Rust SDK
|
||||||
final env = _makeAppFlowyConfiguration(
|
final env = _makeAppFlowyConfiguration(
|
||||||
root.path,
|
root.path,
|
||||||
|
context.config.version,
|
||||||
dir.path,
|
dir.path,
|
||||||
applicationPath.path,
|
applicationPath.path,
|
||||||
deviceId,
|
deviceId,
|
||||||
@ -45,6 +46,7 @@ class InitRustSDKTask extends LaunchTask {
|
|||||||
|
|
||||||
AppFlowyConfiguration _makeAppFlowyConfiguration(
|
AppFlowyConfiguration _makeAppFlowyConfiguration(
|
||||||
String root,
|
String root,
|
||||||
|
String appVersion,
|
||||||
String customAppPath,
|
String customAppPath,
|
||||||
String originAppPath,
|
String originAppPath,
|
||||||
String deviceId, {
|
String deviceId, {
|
||||||
@ -53,6 +55,7 @@ AppFlowyConfiguration _makeAppFlowyConfiguration(
|
|||||||
final env = getIt<AppFlowyCloudSharedEnv>();
|
final env = getIt<AppFlowyCloudSharedEnv>();
|
||||||
return AppFlowyConfiguration(
|
return AppFlowyConfiguration(
|
||||||
root: root,
|
root: root,
|
||||||
|
app_version: appVersion,
|
||||||
custom_app_path: customAppPath,
|
custom_app_path: customAppPath,
|
||||||
origin_app_path: originAppPath,
|
origin_app_path: originAppPath,
|
||||||
device_id: deviceId,
|
device_id: deviceId,
|
||||||
|
@ -52,6 +52,7 @@ class AppFlowyCloudSettingBloc
|
|||||||
emit(
|
emit(
|
||||||
state.copyWith(
|
state.copyWith(
|
||||||
setting: setting,
|
setting: setting,
|
||||||
|
showRestartHint: setting.serverUrl.isNotEmpty,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@ -75,11 +76,13 @@ class AppFlowyCloudSettingEvent with _$AppFlowyCloudSettingEvent {
|
|||||||
class AppFlowyCloudSettingState with _$AppFlowyCloudSettingState {
|
class AppFlowyCloudSettingState with _$AppFlowyCloudSettingState {
|
||||||
const factory AppFlowyCloudSettingState({
|
const factory AppFlowyCloudSettingState({
|
||||||
required CloudSettingPB setting,
|
required CloudSettingPB setting,
|
||||||
|
required bool showRestartHint,
|
||||||
}) = _AppFlowyCloudSettingState;
|
}) = _AppFlowyCloudSettingState;
|
||||||
|
|
||||||
factory AppFlowyCloudSettingState.initial(CloudSettingPB setting) =>
|
factory AppFlowyCloudSettingState.initial(CloudSettingPB setting) =>
|
||||||
AppFlowyCloudSettingState(
|
AppFlowyCloudSettingState(
|
||||||
setting: setting,
|
setting: setting,
|
||||||
|
showRestartHint: setting.serverUrl.isNotEmpty,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,24 +16,29 @@ class AppFlowyCloudURLsBloc
|
|||||||
await event.when(
|
await event.when(
|
||||||
initial: () async {},
|
initial: () async {},
|
||||||
updateServerUrl: (url) {
|
updateServerUrl: (url) {
|
||||||
emit(state.copyWith(updatedServerUrl: url));
|
emit(
|
||||||
|
state.copyWith(
|
||||||
|
updatedServerUrl: url,
|
||||||
|
urlError: none(),
|
||||||
|
showRestartHint: url.isNotEmpty,
|
||||||
|
),
|
||||||
|
);
|
||||||
},
|
},
|
||||||
confirmUpdate: () async {
|
confirmUpdate: () async {
|
||||||
if (state.updatedServerUrl.isEmpty) {
|
if (state.updatedServerUrl.isEmpty) {
|
||||||
emit(
|
emit(
|
||||||
state.copyWith(
|
state.copyWith(
|
||||||
updatedServerUrl: "",
|
updatedServerUrl: "",
|
||||||
urlError: none(),
|
urlError: Some(
|
||||||
restartApp: true,
|
LocaleKeys.settings_menu_appFlowyCloudUrlCanNotBeEmpty.tr(),
|
||||||
|
),
|
||||||
|
restartApp: false,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
await setAppFlowyCloudUrl(none());
|
|
||||||
} else {
|
} else {
|
||||||
validateUrl(state.updatedServerUrl).fold(
|
validateUrl(state.updatedServerUrl).fold(
|
||||||
(url) async {
|
(url) async {
|
||||||
if (state.config.base_url != url) {
|
await useSelfHostedAppFlowyCloudWithURL(url);
|
||||||
await setAppFlowyCloudUrl(Some(url));
|
|
||||||
}
|
|
||||||
add(const AppFlowyCloudURLsEvent.didSaveConfig());
|
add(const AppFlowyCloudURLsEvent.didSaveConfig());
|
||||||
},
|
},
|
||||||
(err) => emit(state.copyWith(urlError: Some(err))),
|
(err) => emit(state.copyWith(urlError: Some(err))),
|
||||||
@ -69,6 +74,7 @@ class AppFlowyCloudURLsState with _$AppFlowyCloudURLsState {
|
|||||||
required String updatedServerUrl,
|
required String updatedServerUrl,
|
||||||
required Option<String> urlError,
|
required Option<String> urlError,
|
||||||
required bool restartApp,
|
required bool restartApp,
|
||||||
|
required bool showRestartHint,
|
||||||
}) = _AppFlowyCloudURLsState;
|
}) = _AppFlowyCloudURLsState;
|
||||||
|
|
||||||
factory AppFlowyCloudURLsState.initial() => AppFlowyCloudURLsState(
|
factory AppFlowyCloudURLsState.initial() => AppFlowyCloudURLsState(
|
||||||
@ -76,6 +82,10 @@ class AppFlowyCloudURLsState with _$AppFlowyCloudURLsState {
|
|||||||
urlError: none(),
|
urlError: none(),
|
||||||
updatedServerUrl:
|
updatedServerUrl:
|
||||||
getIt<AppFlowyCloudSharedEnv>().appflowyCloudConfig.base_url,
|
getIt<AppFlowyCloudSharedEnv>().appflowyCloudConfig.base_url,
|
||||||
|
showRestartHint: getIt<AppFlowyCloudSharedEnv>()
|
||||||
|
.appflowyCloudConfig
|
||||||
|
.base_url
|
||||||
|
.isNotEmpty,
|
||||||
restartApp: false,
|
restartApp: false,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -19,49 +19,63 @@ class SupabaseCloudURLsBloc
|
|||||||
on<SupabaseCloudURLsEvent>((event, emit) async {
|
on<SupabaseCloudURLsEvent>((event, emit) async {
|
||||||
await event.when(
|
await event.when(
|
||||||
updateUrl: (String url) {
|
updateUrl: (String url) {
|
||||||
emit(state.copyWith(updatedUrl: url));
|
emit(
|
||||||
|
state.copyWith(
|
||||||
|
updatedUrl: url,
|
||||||
|
showRestartHint: url.isNotEmpty && state.upatedAnonKey.isNotEmpty,
|
||||||
|
urlError: none(),
|
||||||
|
),
|
||||||
|
);
|
||||||
},
|
},
|
||||||
updateAnonKey: (String anonKey) {
|
updateAnonKey: (String anonKey) {
|
||||||
emit(state.copyWith(upatedAnonKey: anonKey));
|
emit(
|
||||||
|
state.copyWith(
|
||||||
|
upatedAnonKey: anonKey,
|
||||||
|
showRestartHint:
|
||||||
|
anonKey.isNotEmpty && state.updatedUrl.isNotEmpty,
|
||||||
|
anonKeyError: none(),
|
||||||
|
),
|
||||||
|
);
|
||||||
},
|
},
|
||||||
confirmUpdate: () async {
|
confirmUpdate: () async {
|
||||||
if (state.updatedUrl.isEmpty) {
|
if (state.updatedUrl.isEmpty) {
|
||||||
emit(
|
emit(
|
||||||
state.copyWith(
|
state.copyWith(
|
||||||
urlError: none(),
|
urlError: Some(
|
||||||
|
LocaleKeys.settings_menu_cloudSupabaseUrlCanNotBeEmpty.tr(),
|
||||||
|
),
|
||||||
anonKeyError: none(),
|
anonKeyError: none(),
|
||||||
restartApp: true,
|
restartApp: false,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
await setSupbaseServer(none(), none());
|
return;
|
||||||
} else {
|
|
||||||
// The anon key can't be empty if the url is not empty.
|
|
||||||
if (state.upatedAnonKey.isEmpty) {
|
|
||||||
emit(
|
|
||||||
state.copyWith(
|
|
||||||
urlError: none(),
|
|
||||||
anonKeyError: some(
|
|
||||||
LocaleKeys.settings_menu_cloudSupabaseAnonKeyCanNotBeEmpty
|
|
||||||
.tr(),
|
|
||||||
),
|
|
||||||
restartApp: false,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
validateUrl(state.updatedUrl).fold(
|
|
||||||
(error) => emit(state.copyWith(urlError: Some(error))),
|
|
||||||
(_) async {
|
|
||||||
await setSupbaseServer(
|
|
||||||
Some(state.updatedUrl),
|
|
||||||
Some(state.upatedAnonKey),
|
|
||||||
);
|
|
||||||
|
|
||||||
add(const SupabaseCloudURLsEvent.didSaveConfig());
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (state.upatedAnonKey.isEmpty) {
|
||||||
|
emit(
|
||||||
|
state.copyWith(
|
||||||
|
urlError: none(),
|
||||||
|
anonKeyError: Some(
|
||||||
|
LocaleKeys.settings_menu_cloudSupabaseAnonKeyCanNotBeEmpty
|
||||||
|
.tr(),
|
||||||
|
),
|
||||||
|
restartApp: false,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
validateUrl(state.updatedUrl).fold(
|
||||||
|
(error) => emit(state.copyWith(urlError: Some(error))),
|
||||||
|
(_) async {
|
||||||
|
await useSupabaseCloud(
|
||||||
|
url: state.updatedUrl,
|
||||||
|
anonKey: state.upatedAnonKey,
|
||||||
|
);
|
||||||
|
|
||||||
|
add(const SupabaseCloudURLsEvent.didSaveConfig());
|
||||||
|
},
|
||||||
|
);
|
||||||
},
|
},
|
||||||
didSaveConfig: () {
|
didSaveConfig: () {
|
||||||
emit(
|
emit(
|
||||||
@ -99,6 +113,7 @@ class SupabaseCloudURLsState with _$SupabaseCloudURLsState {
|
|||||||
required Option<String> urlError,
|
required Option<String> urlError,
|
||||||
required Option<String> anonKeyError,
|
required Option<String> anonKeyError,
|
||||||
required bool restartApp,
|
required bool restartApp,
|
||||||
|
required bool showRestartHint,
|
||||||
}) = _SupabaseCloudURLsState;
|
}) = _SupabaseCloudURLsState;
|
||||||
|
|
||||||
factory SupabaseCloudURLsState.initial() {
|
factory SupabaseCloudURLsState.initial() {
|
||||||
@ -109,6 +124,7 @@ class SupabaseCloudURLsState with _$SupabaseCloudURLsState {
|
|||||||
urlError: none(),
|
urlError: none(),
|
||||||
anonKeyError: none(),
|
anonKeyError: none(),
|
||||||
restartApp: false,
|
restartApp: false,
|
||||||
|
showRestartHint: config.url.isNotEmpty && config.anon_key.isNotEmpty,
|
||||||
config: config,
|
config: config,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,7 @@ class SettingsDialog extends StatelessWidget {
|
|||||||
return const SettingsNotificationsView();
|
return const SettingsNotificationsView();
|
||||||
case SettingsPage.cloud:
|
case SettingsPage.cloud:
|
||||||
return SettingCloud(
|
return SettingCloud(
|
||||||
didResetServerUrl: () => restartApp(),
|
restartAppFlowy: () => restartApp(),
|
||||||
);
|
);
|
||||||
case SettingsPage.shortcuts:
|
case SettingsPage.shortcuts:
|
||||||
return const SettingsCustomizeShortcutsWrapper();
|
return const SettingsCustomizeShortcutsWrapper();
|
||||||
|
@ -8,13 +8,32 @@ import 'package:flutter/material.dart';
|
|||||||
class RestartButton extends StatelessWidget {
|
class RestartButton extends StatelessWidget {
|
||||||
const RestartButton({
|
const RestartButton({
|
||||||
super.key,
|
super.key,
|
||||||
|
required this.showRestartHint,
|
||||||
required this.onClick,
|
required this.onClick,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
final bool showRestartHint;
|
||||||
final VoidCallback onClick;
|
final VoidCallback onClick;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final List<Widget> children = [_buildRestartButton()];
|
||||||
|
if (showRestartHint) {
|
||||||
|
children.add(
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 10),
|
||||||
|
child: FlowyText(
|
||||||
|
LocaleKeys.settings_menu_restartAppTip.tr(),
|
||||||
|
maxLines: null,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Column(children: children);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildRestartButton() {
|
||||||
if (PlatformExtension.isDesktopOrWeb) {
|
if (PlatformExtension.isDesktopOrWeb) {
|
||||||
return Row(
|
return Row(
|
||||||
children: [
|
children: [
|
||||||
|
@ -9,7 +9,7 @@ import 'package:appflowy_backend/dispatch/dispatch.dart';
|
|||||||
import 'package:appflowy_backend/log.dart';
|
import 'package:appflowy_backend/log.dart';
|
||||||
import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart';
|
import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart';
|
||||||
import 'package:appflowy_backend/protobuf/flowy-user/user_setting.pb.dart';
|
import 'package:appflowy_backend/protobuf/flowy-user/user_setting.pb.dart';
|
||||||
import 'package:dartz/dartz.dart' show Either, Some;
|
import 'package:dartz/dartz.dart' show Either;
|
||||||
import 'package:easy_localization/easy_localization.dart';
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
import 'package:flowy_infra/size.dart';
|
import 'package:flowy_infra/size.dart';
|
||||||
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
|
import 'package:flowy_infra_ui/flowy_infra_ui.dart';
|
||||||
@ -58,23 +58,27 @@ class AppFlowyCloudViewSetting extends StatelessWidget {
|
|||||||
return BlocProvider(
|
return BlocProvider(
|
||||||
create: (context) => AppFlowyCloudSettingBloc(setting)
|
create: (context) => AppFlowyCloudSettingBloc(setting)
|
||||||
..add(const AppFlowyCloudSettingEvent.initial()),
|
..add(const AppFlowyCloudSettingEvent.initial()),
|
||||||
child: Column(
|
child: BlocBuilder<AppFlowyCloudSettingBloc, AppFlowyCloudSettingState>(
|
||||||
children: [
|
builder: (context, state) {
|
||||||
const AppFlowyCloudEnableSync(),
|
return Column(
|
||||||
const VSpace(12),
|
children: [
|
||||||
RestartButton(
|
const AppFlowyCloudEnableSync(),
|
||||||
onClick: () {
|
const VSpace(12),
|
||||||
NavigatorAlertDialog(
|
RestartButton(
|
||||||
title: LocaleKeys.settings_menu_restartAppTip.tr(),
|
onClick: () {
|
||||||
confirm: () async {
|
NavigatorAlertDialog(
|
||||||
await setAppFlowyCloudUrl(Some(serverURL));
|
title: LocaleKeys.settings_menu_restartAppTip.tr(),
|
||||||
await setAuthenticatorType(authenticatorType);
|
confirm: () async {
|
||||||
restartAppFlowy();
|
await useAppFlowyBetaCloudWithURL(serverURL);
|
||||||
|
restartAppFlowy();
|
||||||
|
},
|
||||||
|
).show(context);
|
||||||
},
|
},
|
||||||
).show(context);
|
showRestartHint: state.showRestartHint,
|
||||||
},
|
),
|
||||||
),
|
],
|
||||||
],
|
);
|
||||||
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -153,7 +157,6 @@ class AppFlowyCloudURLs extends StatelessWidget {
|
|||||||
child: BlocListener<AppFlowyCloudURLsBloc, AppFlowyCloudURLsState>(
|
child: BlocListener<AppFlowyCloudURLsBloc, AppFlowyCloudURLsState>(
|
||||||
listener: (context, state) async {
|
listener: (context, state) async {
|
||||||
if (state.restartApp) {
|
if (state.restartApp) {
|
||||||
await setAuthenticatorType(AuthenticatorType.appflowyCloudSelfHost);
|
|
||||||
restartAppFlowy();
|
restartAppFlowy();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -186,6 +189,7 @@ class AppFlowyCloudURLs extends StatelessWidget {
|
|||||||
},
|
},
|
||||||
).show(context);
|
).show(context);
|
||||||
},
|
},
|
||||||
|
showRestartHint: state.showRestartHint,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
@ -7,6 +7,7 @@ import 'package:appflowy/mobile/presentation/widgets/widgets.dart';
|
|||||||
import 'package:appflowy/startup/startup.dart';
|
import 'package:appflowy/startup/startup.dart';
|
||||||
import 'package:appflowy/workspace/application/settings/cloud_setting_bloc.dart';
|
import 'package:appflowy/workspace/application/settings/cloud_setting_bloc.dart';
|
||||||
import 'package:appflowy/workspace/presentation/settings/widgets/setting_local_cloud.dart';
|
import 'package:appflowy/workspace/presentation/settings/widgets/setting_local_cloud.dart';
|
||||||
|
import 'package:appflowy/workspace/presentation/widgets/dialogs.dart';
|
||||||
import 'package:appflowy_editor/appflowy_editor.dart';
|
import 'package:appflowy_editor/appflowy_editor.dart';
|
||||||
import 'package:appflowy_popover/appflowy_popover.dart';
|
import 'package:appflowy_popover/appflowy_popover.dart';
|
||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
@ -20,9 +21,9 @@ import 'setting_appflowy_cloud.dart';
|
|||||||
import 'setting_supabase_cloud.dart';
|
import 'setting_supabase_cloud.dart';
|
||||||
|
|
||||||
class SettingCloud extends StatelessWidget {
|
class SettingCloud extends StatelessWidget {
|
||||||
const SettingCloud({required this.didResetServerUrl, super.key});
|
const SettingCloud({required this.restartAppFlowy, super.key});
|
||||||
|
|
||||||
final VoidCallback didResetServerUrl;
|
final VoidCallback restartAppFlowy;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -46,19 +47,15 @@ class SettingCloud extends StatelessWidget {
|
|||||||
LocaleKeys.settings_menu_cloudServerType.tr(),
|
LocaleKeys.settings_menu_cloudServerType.tr(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Tooltip(
|
CloudTypeSwitcher(
|
||||||
message: LocaleKeys.settings_menu_cloudServerTypeTip
|
cloudType: state.cloudType,
|
||||||
.tr(),
|
onSelected: (newCloudType) {
|
||||||
child: CloudTypeSwitcher(
|
context.read<CloudSettingBloc>().add(
|
||||||
cloudType: state.cloudType,
|
CloudSettingEvent.updateCloudType(
|
||||||
onSelected: (newCloudType) {
|
newCloudType,
|
||||||
context.read<CloudSettingBloc>().add(
|
),
|
||||||
CloudSettingEvent.updateCloudType(
|
);
|
||||||
newCloudType,
|
},
|
||||||
),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -82,25 +79,25 @@ class SettingCloud extends StatelessWidget {
|
|||||||
switch (cloudType) {
|
switch (cloudType) {
|
||||||
case AuthenticatorType.local:
|
case AuthenticatorType.local:
|
||||||
return SettingLocalCloud(
|
return SettingLocalCloud(
|
||||||
didResetServerUrl: didResetServerUrl,
|
restartAppFlowy: restartAppFlowy,
|
||||||
);
|
);
|
||||||
case AuthenticatorType.supabase:
|
case AuthenticatorType.supabase:
|
||||||
return SettingSupabaseCloudView(
|
return SettingSupabaseCloudView(
|
||||||
didResetServerUrl: didResetServerUrl,
|
restartAppFlowy: restartAppFlowy,
|
||||||
);
|
);
|
||||||
case AuthenticatorType.appflowyCloud:
|
case AuthenticatorType.appflowyCloud:
|
||||||
return AppFlowyCloudViewSetting(
|
return AppFlowyCloudViewSetting(
|
||||||
restartAppFlowy: didResetServerUrl,
|
restartAppFlowy: restartAppFlowy,
|
||||||
);
|
);
|
||||||
case AuthenticatorType.appflowyCloudSelfHost:
|
case AuthenticatorType.appflowyCloudSelfHost:
|
||||||
return CustomAppFlowyCloudView(
|
return CustomAppFlowyCloudView(
|
||||||
restartAppFlowy: didResetServerUrl,
|
restartAppFlowy: restartAppFlowy,
|
||||||
);
|
);
|
||||||
case AuthenticatorType.appflowyCloudDevelop:
|
case AuthenticatorType.appflowyCloudDevelop:
|
||||||
return AppFlowyCloudViewSetting(
|
return AppFlowyCloudViewSetting(
|
||||||
serverURL: "http://localhost",
|
serverURL: "http://localhost",
|
||||||
authenticatorType: AuthenticatorType.appflowyCloudDevelop,
|
authenticatorType: AuthenticatorType.appflowyCloudDevelop,
|
||||||
restartAppFlowy: didResetServerUrl,
|
restartAppFlowy: restartAppFlowy,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -215,7 +212,13 @@ class CloudTypeItem extends StatelessWidget {
|
|||||||
: null,
|
: null,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
if (currentCloudtype != cloudType) {
|
if (currentCloudtype != cloudType) {
|
||||||
onSelected(cloudType);
|
NavigatorAlertDialog(
|
||||||
|
title: LocaleKeys.settings_menu_changeServerTip.tr(),
|
||||||
|
confirm: () async {
|
||||||
|
onSelected(cloudType);
|
||||||
|
},
|
||||||
|
hideCancleButton: true,
|
||||||
|
).show(context);
|
||||||
}
|
}
|
||||||
PopoverContainer.of(context).close();
|
PopoverContainer.of(context).close();
|
||||||
},
|
},
|
||||||
|
@ -6,14 +6,15 @@ import 'package:easy_localization/easy_localization.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class SettingLocalCloud extends StatelessWidget {
|
class SettingLocalCloud extends StatelessWidget {
|
||||||
const SettingLocalCloud({super.key, required this.didResetServerUrl});
|
const SettingLocalCloud({super.key, required this.restartAppFlowy});
|
||||||
|
|
||||||
final VoidCallback didResetServerUrl;
|
final VoidCallback restartAppFlowy;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return RestartButton(
|
return RestartButton(
|
||||||
onClick: () => onPressed(context),
|
onClick: () => onPressed(context),
|
||||||
|
showRestartHint: true,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -21,10 +22,8 @@ class SettingLocalCloud extends StatelessWidget {
|
|||||||
NavigatorAlertDialog(
|
NavigatorAlertDialog(
|
||||||
title: LocaleKeys.settings_menu_restartAppTip.tr(),
|
title: LocaleKeys.settings_menu_restartAppTip.tr(),
|
||||||
confirm: () async {
|
confirm: () async {
|
||||||
await setAuthenticatorType(
|
await useLocalServer();
|
||||||
AuthenticatorType.local,
|
restartAppFlowy();
|
||||||
);
|
|
||||||
didResetServerUrl();
|
|
||||||
},
|
},
|
||||||
).show(context);
|
).show(context);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import 'package:appflowy/env/cloud_env.dart';
|
|
||||||
import 'package:appflowy/generated/locale_keys.g.dart';
|
import 'package:appflowy/generated/locale_keys.g.dart';
|
||||||
import 'package:appflowy/workspace/application/settings/supabase_cloud_setting_bloc.dart';
|
import 'package:appflowy/workspace/application/settings/supabase_cloud_setting_bloc.dart';
|
||||||
import 'package:appflowy/workspace/application/settings/supabase_cloud_urls_bloc.dart';
|
import 'package:appflowy/workspace/application/settings/supabase_cloud_urls_bloc.dart';
|
||||||
@ -22,9 +21,9 @@ import 'package:flutter_bloc/flutter_bloc.dart';
|
|||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
class SettingSupabaseCloudView extends StatelessWidget {
|
class SettingSupabaseCloudView extends StatelessWidget {
|
||||||
const SettingSupabaseCloudView({required this.didResetServerUrl, super.key});
|
const SettingSupabaseCloudView({required this.restartAppFlowy, super.key});
|
||||||
|
|
||||||
final VoidCallback didResetServerUrl;
|
final VoidCallback restartAppFlowy;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -55,7 +54,7 @@ class SettingSupabaseCloudView extends StatelessWidget {
|
|||||||
const VSpace(40),
|
const VSpace(40),
|
||||||
const SupabaseSelfhostTip(),
|
const SupabaseSelfhostTip(),
|
||||||
SupabaseCloudURLs(
|
SupabaseCloudURLs(
|
||||||
didUpdateUrls: didResetServerUrl,
|
didUpdateUrls: restartAppFlowy,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -87,7 +86,6 @@ class SupabaseCloudURLs extends StatelessWidget {
|
|||||||
child: BlocListener<SupabaseCloudURLsBloc, SupabaseCloudURLsState>(
|
child: BlocListener<SupabaseCloudURLsBloc, SupabaseCloudURLsState>(
|
||||||
listener: (context, state) async {
|
listener: (context, state) async {
|
||||||
if (state.restartApp) {
|
if (state.restartApp) {
|
||||||
await setAuthenticatorType(AuthenticatorType.supabase);
|
|
||||||
didUpdateUrls();
|
didUpdateUrls();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -119,7 +117,8 @@ class SupabaseCloudURLs extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const VSpace(20),
|
const VSpace(20),
|
||||||
RestartButton(
|
RestartButton(
|
||||||
onClick: () => _restartApp,
|
onClick: () => _restartApp(context),
|
||||||
|
showRestartHint: state.showRestartHint,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
@ -100,11 +100,13 @@ class NavigatorAlertDialog extends StatefulWidget {
|
|||||||
required this.title,
|
required this.title,
|
||||||
this.cancel,
|
this.cancel,
|
||||||
this.confirm,
|
this.confirm,
|
||||||
|
this.hideCancleButton = false,
|
||||||
});
|
});
|
||||||
|
|
||||||
final String title;
|
final String title;
|
||||||
final void Function()? cancel;
|
final void Function()? cancel;
|
||||||
final void Function()? confirm;
|
final void Function()? confirm;
|
||||||
|
final bool hideCancleButton;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<NavigatorAlertDialog> createState() => _CreateFlowyAlertDialog();
|
State<NavigatorAlertDialog> createState() => _CreateFlowyAlertDialog();
|
||||||
@ -145,10 +147,12 @@ class _CreateFlowyAlertDialog extends State<NavigatorAlertDialog> {
|
|||||||
widget.confirm?.call();
|
widget.confirm?.call();
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
},
|
},
|
||||||
onCancelPressed: () {
|
onCancelPressed: widget.hideCancleButton
|
||||||
widget.cancel?.call();
|
? null
|
||||||
Navigator.of(context).pop();
|
: () {
|
||||||
},
|
widget.cancel?.call();
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
@ -249,7 +253,7 @@ class OkCancelButton extends StatelessWidget {
|
|||||||
onPressed: onCancelPressed,
|
onPressed: onCancelPressed,
|
||||||
mode: mode,
|
mode: mode,
|
||||||
),
|
),
|
||||||
HSpace(Insets.m),
|
if (onCancelPressed != null) HSpace(Insets.m),
|
||||||
if (onOkPressed != null)
|
if (onOkPressed != null)
|
||||||
PrimaryTextButton(
|
PrimaryTextButton(
|
||||||
okTitle ?? LocaleKeys.button_ok.tr(),
|
okTitle ?? LocaleKeys.button_ok.tr(),
|
||||||
|
44
frontend/appflowy_tauri/src-tauri/Cargo.lock
generated
44
frontend/appflowy_tauri/src-tauri/Cargo.lock
generated
@ -162,7 +162,7 @@ checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "app-error"
|
name = "app-error"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"bincode",
|
"bincode",
|
||||||
@ -714,7 +714,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "client-api"
|
name = "client-api"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"again",
|
"again",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
@ -816,7 +816,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab"
|
name = "collab"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
@ -838,7 +838,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-database"
|
name = "collab-database"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
@ -846,6 +846,7 @@ dependencies = [
|
|||||||
"collab",
|
"collab",
|
||||||
"collab-entity",
|
"collab-entity",
|
||||||
"collab-plugins",
|
"collab-plugins",
|
||||||
|
"getrandom 0.2.10",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"lru",
|
"lru",
|
||||||
@ -866,11 +867,12 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-document"
|
name = "collab-document"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"collab",
|
"collab",
|
||||||
"collab-entity",
|
"collab-entity",
|
||||||
|
"getrandom 0.2.10",
|
||||||
"nanoid",
|
"nanoid",
|
||||||
"parking_lot 0.12.1",
|
"parking_lot 0.12.1",
|
||||||
"serde",
|
"serde",
|
||||||
@ -884,11 +886,12 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-entity"
|
name = "collab-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"bytes",
|
"bytes",
|
||||||
"collab",
|
"collab",
|
||||||
|
"getrandom 0.2.10",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"serde_repr",
|
"serde_repr",
|
||||||
@ -898,12 +901,13 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-folder"
|
name = "collab-folder"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"chrono",
|
"chrono",
|
||||||
"collab",
|
"collab",
|
||||||
"collab-entity",
|
"collab-entity",
|
||||||
|
"getrandom 0.2.10",
|
||||||
"parking_lot 0.12.1",
|
"parking_lot 0.12.1",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
@ -934,7 +938,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-plugins"
|
name = "collab-plugins"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-stream",
|
"async-stream",
|
||||||
@ -946,6 +950,7 @@ dependencies = [
|
|||||||
"collab-entity",
|
"collab-entity",
|
||||||
"futures",
|
"futures",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
|
"getrandom 0.2.10",
|
||||||
"indexed_db_futures",
|
"indexed_db_futures",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
@ -972,11 +977,12 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-user"
|
name = "collab-user"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"collab",
|
"collab",
|
||||||
"collab-entity",
|
"collab-entity",
|
||||||
|
"getrandom 0.2.10",
|
||||||
"parking_lot 0.12.1",
|
"parking_lot 0.12.1",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
@ -1194,7 +1200,7 @@ dependencies = [
|
|||||||
"cssparser-macros",
|
"cssparser-macros",
|
||||||
"dtoa-short",
|
"dtoa-short",
|
||||||
"itoa 1.0.6",
|
"itoa 1.0.6",
|
||||||
"phf 0.8.0",
|
"phf 0.11.2",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -1305,7 +1311,7 @@ checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "database-entity"
|
name = "database-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"app-error",
|
"app-error",
|
||||||
@ -2568,7 +2574,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "gotrue"
|
name = "gotrue"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
@ -2585,7 +2591,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "gotrue-entity"
|
name = "gotrue-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"app-error",
|
"app-error",
|
||||||
@ -3022,7 +3028,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "infra"
|
name = "infra"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
@ -4700,7 +4706,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "realtime-entity"
|
name = "realtime-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"bincode",
|
"bincode",
|
||||||
@ -4723,7 +4729,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "realtime-protocol"
|
name = "realtime-protocol"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"bincode",
|
"bincode",
|
||||||
@ -5371,7 +5377,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "shared-entity"
|
name = "shared-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"app-error",
|
"app-error",
|
||||||
@ -6851,7 +6857,7 @@ checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "websocket"
|
name = "websocket"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
@ -7251,7 +7257,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "workspace-template"
|
name = "workspace-template"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
@ -62,7 +62,7 @@ custom-protocol = ["tauri/custom-protocol"]
|
|||||||
# Run the script:
|
# Run the script:
|
||||||
# scripts/tool/update_client_api_rev.sh new_rev_id
|
# scripts/tool/update_client_api_rev.sh new_rev_id
|
||||||
# ⚠️⚠️⚠️️
|
# ⚠️⚠️⚠️️
|
||||||
client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "69c69f6474eaa531fd822e9353cc5955b98e45eb" }
|
client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "199452d3b77a352c03810d4146b39d76bab0313c" }
|
||||||
# Please use the following script to update collab.
|
# Please use the following script to update collab.
|
||||||
# Working directory: frontend
|
# Working directory: frontend
|
||||||
#
|
#
|
||||||
@ -72,10 +72,10 @@ client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "69c
|
|||||||
# To switch to the local path, run:
|
# To switch to the local path, run:
|
||||||
# scripts/tool/update_collab_source.sh
|
# scripts/tool/update_collab_source.sh
|
||||||
# ⚠️⚠️⚠️️
|
# ⚠️⚠️⚠️️
|
||||||
collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-database = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-database = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-plugins = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-plugins = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-user = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-user = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
|
@ -17,7 +17,9 @@ pub fn init_flowy_core() -> AppFlowyCore {
|
|||||||
let device_id = uuid::Uuid::new_v4().to_string();
|
let device_id = uuid::Uuid::new_v4().to_string();
|
||||||
|
|
||||||
std::env::set_var("RUST_LOG", "trace");
|
std::env::set_var("RUST_LOG", "trace");
|
||||||
|
// TODO(nathan): pass the real version here
|
||||||
let config = AppFlowyCoreConfig::new(
|
let config = AppFlowyCoreConfig::new(
|
||||||
|
"1.0.0".to_string(),
|
||||||
custom_application_path,
|
custom_application_path,
|
||||||
application_path,
|
application_path,
|
||||||
device_id,
|
device_id,
|
||||||
|
55
frontend/appflowy_web/wasm-libs/Cargo.lock
generated
55
frontend/appflowy_web/wasm-libs/Cargo.lock
generated
@ -216,7 +216,7 @@ checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "app-error"
|
name = "app-error"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"bincode",
|
"bincode",
|
||||||
@ -534,7 +534,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "client-api"
|
name = "client-api"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"again",
|
"again",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
@ -605,7 +605,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab"
|
name = "collab"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
@ -627,7 +627,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-document"
|
name = "collab-document"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"collab",
|
"collab",
|
||||||
@ -646,11 +646,12 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-entity"
|
name = "collab-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"bytes",
|
"bytes",
|
||||||
"collab",
|
"collab",
|
||||||
|
"getrandom 0.2.12",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"serde_repr",
|
"serde_repr",
|
||||||
@ -660,12 +661,13 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-folder"
|
name = "collab-folder"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"chrono",
|
"chrono",
|
||||||
"collab",
|
"collab",
|
||||||
"collab-entity",
|
"collab-entity",
|
||||||
|
"getrandom 0.2.12",
|
||||||
"parking_lot 0.12.1",
|
"parking_lot 0.12.1",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
@ -696,7 +698,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-plugins"
|
name = "collab-plugins"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-stream",
|
"async-stream",
|
||||||
@ -734,11 +736,12 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-user"
|
name = "collab-user"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"collab",
|
"collab",
|
||||||
"collab-entity",
|
"collab-entity",
|
||||||
|
"getrandom 0.2.12",
|
||||||
"parking_lot 0.12.1",
|
"parking_lot 0.12.1",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
@ -885,7 +888,7 @@ dependencies = [
|
|||||||
"cssparser-macros",
|
"cssparser-macros",
|
||||||
"dtoa-short",
|
"dtoa-short",
|
||||||
"itoa",
|
"itoa",
|
||||||
"phf 0.11.2",
|
"phf 0.8.0",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -930,7 +933,7 @@ checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "database-entity"
|
name = "database-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"app-error",
|
"app-error",
|
||||||
@ -1643,7 +1646,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "gotrue"
|
name = "gotrue"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
@ -1660,7 +1663,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "gotrue-entity"
|
name = "gotrue-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"app-error",
|
"app-error",
|
||||||
@ -1976,7 +1979,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "infra"
|
name = "infra"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
@ -2678,7 +2681,7 @@ version = "0.8.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
|
checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"phf_macros 0.8.0",
|
"phf_macros",
|
||||||
"phf_shared 0.8.0",
|
"phf_shared 0.8.0",
|
||||||
"proc-macro-hack",
|
"proc-macro-hack",
|
||||||
]
|
]
|
||||||
@ -2698,7 +2701,6 @@ version = "0.11.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
|
checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"phf_macros 0.11.2",
|
|
||||||
"phf_shared 0.11.2",
|
"phf_shared 0.11.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -2766,19 +2768,6 @@ dependencies = [
|
|||||||
"syn 1.0.109",
|
"syn 1.0.109",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "phf_macros"
|
|
||||||
version = "0.11.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
|
|
||||||
dependencies = [
|
|
||||||
"phf_generator 0.11.2",
|
|
||||||
"phf_shared 0.11.2",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn 2.0.48",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "phf_shared"
|
name = "phf_shared"
|
||||||
version = "0.8.0"
|
version = "0.8.0"
|
||||||
@ -3182,7 +3171,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "realtime-entity"
|
name = "realtime-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"bincode",
|
"bincode",
|
||||||
@ -3205,7 +3194,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "realtime-protocol"
|
name = "realtime-protocol"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"bincode",
|
"bincode",
|
||||||
@ -3652,7 +3641,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "shared-entity"
|
name = "shared-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"app-error",
|
"app-error",
|
||||||
@ -4594,7 +4583,7 @@ checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "websocket"
|
name = "websocket"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
@ -4889,4 +4878,4 @@ dependencies = [
|
|||||||
[[patch.unused]]
|
[[patch.unused]]
|
||||||
name = "collab-database"
|
name = "collab-database"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
|
@ -62,7 +62,7 @@ lto = false
|
|||||||
# Run the script:
|
# Run the script:
|
||||||
# scripts/tool/update_client_api_rev.sh new_rev_id
|
# scripts/tool/update_client_api_rev.sh new_rev_id
|
||||||
# ⚠️⚠️⚠️️
|
# ⚠️⚠️⚠️️
|
||||||
client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "69c69f6474eaa531fd822e9353cc5955b98e45eb" }
|
client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "199452d3b77a352c03810d4146b39d76bab0313c" }
|
||||||
# Please use the following script to update collab.
|
# Please use the following script to update collab.
|
||||||
# Working directory: frontend
|
# Working directory: frontend
|
||||||
#
|
#
|
||||||
@ -72,10 +72,10 @@ client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "69c
|
|||||||
# To switch to the local path, run:
|
# To switch to the local path, run:
|
||||||
# scripts/tool/update_collab_source.sh
|
# scripts/tool/update_collab_source.sh
|
||||||
# ⚠️⚠️⚠️️
|
# ⚠️⚠️⚠️️
|
||||||
collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-database = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-database = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-plugins = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-plugins = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-user = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-user = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
|
@ -16,10 +16,10 @@ flowy-user-pub = { workspace = true }
|
|||||||
strum_macros = "0.25.2"
|
strum_macros = "0.25.2"
|
||||||
tracing.workspace = true
|
tracing.workspace = true
|
||||||
lib-infra = { workspace = true }
|
lib-infra = { workspace = true }
|
||||||
collab = { workspace = true, features = ["wasm_build", "async-plugin"] }
|
collab = { workspace = true, features = ["async-plugin"] }
|
||||||
collab-entity.workspace = true
|
collab-entity.workspace = true
|
||||||
collab-user.workspace = true
|
collab-user.workspace = true
|
||||||
collab-integrate = { workspace = true, features = ["enable_wasm"] }
|
collab-integrate = { workspace = true }
|
||||||
protobuf.workspace = true
|
protobuf.workspace = true
|
||||||
bytes.workspace = true
|
bytes.workspace = true
|
||||||
anyhow.workspace = true
|
anyhow.workspace = true
|
||||||
|
@ -16,18 +16,18 @@ tracing.workspace = true
|
|||||||
tracing-core = { version = "0.1.32" }
|
tracing-core = { version = "0.1.32" }
|
||||||
tracing-wasm = "0.2.1"
|
tracing-wasm = "0.2.1"
|
||||||
serde.workspace = true
|
serde.workspace = true
|
||||||
collab-integrate = { workspace = true, features = ["enable_wasm"] }
|
collab-integrate = { workspace = true }
|
||||||
tokio-stream.workspace = true
|
tokio-stream.workspace = true
|
||||||
|
|
||||||
af-user.workspace = true
|
af-user.workspace = true
|
||||||
flowy-notification = { workspace = true, features = ["web_ts"] }
|
flowy-notification = { workspace = true, features = ["web_ts"] }
|
||||||
flowy-user-pub = { workspace = true }
|
flowy-user-pub = { workspace = true }
|
||||||
flowy-server = { workspace = true, features = ["enable_wasm"] }
|
flowy-server = { workspace = true }
|
||||||
flowy-server-pub = { workspace = true }
|
flowy-server-pub = { workspace = true }
|
||||||
flowy-error = { workspace = true, features = ["impl_from_dispatch_error", "web_ts"] }
|
flowy-error = { workspace = true, features = ["impl_from_dispatch_error", "web_ts"] }
|
||||||
flowy-document = { workspace = true, features = ["web_ts"] }
|
flowy-document = { workspace = true, features = ["web_ts"] }
|
||||||
lib-infra = { workspace = true }
|
lib-infra = { workspace = true }
|
||||||
collab = { workspace = true, features = ["wasm_build", "async-plugin"] }
|
collab = { workspace = true, features = ["async-plugin"] }
|
||||||
web-sys = "0.3"
|
web-sys = "0.3"
|
||||||
wasm-bindgen-futures.workspace = true
|
wasm-bindgen-futures.workspace = true
|
||||||
uuid.workspace = true
|
uuid.workspace = true
|
||||||
|
@ -280,10 +280,12 @@
|
|||||||
"cloudLocal": "Local",
|
"cloudLocal": "Local",
|
||||||
"cloudSupabase": "Supabase",
|
"cloudSupabase": "Supabase",
|
||||||
"cloudSupabaseUrl": "Supabase URL",
|
"cloudSupabaseUrl": "Supabase URL",
|
||||||
|
"cloudSupabaseUrlCanNotBeEmpty": "The supabase url can't be empty",
|
||||||
"cloudSupabaseAnonKey": "Supabase anon key",
|
"cloudSupabaseAnonKey": "Supabase anon key",
|
||||||
"cloudSupabaseAnonKeyCanNotBeEmpty": "The anon key can't be empty if the supabase url is not empty",
|
"cloudSupabaseAnonKeyCanNotBeEmpty": "The anon key can't be empty",
|
||||||
"cloudAppFlowy": "AppFlowy Cloud Beta",
|
"cloudAppFlowy": "AppFlowy Cloud Beta",
|
||||||
"cloudAppFlowySelfHost": "AppFlowy Cloud Self-hosted",
|
"cloudAppFlowySelfHost": "AppFlowy Cloud Self-hosted",
|
||||||
|
"appFlowyCloudUrlCanNotBeEmpty": "The cloud url can't be empty",
|
||||||
"clickToCopy": "Click to copy",
|
"clickToCopy": "Click to copy",
|
||||||
"selfHostStart": "If you don't have a server, please refer to the",
|
"selfHostStart": "If you don't have a server, please refer to the",
|
||||||
"selfHostContent": "document",
|
"selfHostContent": "document",
|
||||||
@ -293,6 +295,7 @@
|
|||||||
"cloudWSURLHint": "Input the websocket address of your server",
|
"cloudWSURLHint": "Input the websocket address of your server",
|
||||||
"restartApp": "Restart",
|
"restartApp": "Restart",
|
||||||
"restartAppTip": "Restart the application for the changes to take effect. Please note that this might log out your current account",
|
"restartAppTip": "Restart the application for the changes to take effect. Please note that this might log out your current account",
|
||||||
|
"changeServerTip": "After changing the server, you must click the restart button for the changes to take effect",
|
||||||
"enableEncryptPrompt": "Activate encryption to secure your data with this secret. Store it safely; once enabled, it can't be turned off. If lost, your data becomes irretrievable. Click to copy",
|
"enableEncryptPrompt": "Activate encryption to secure your data with this secret. Store it safely; once enabled, it can't be turned off. If lost, your data becomes irretrievable. Click to copy",
|
||||||
"inputEncryptPrompt": "Please enter your encryption secret for",
|
"inputEncryptPrompt": "Please enter your encryption secret for",
|
||||||
"clickToCopySecret": "Click to copy secret",
|
"clickToCopySecret": "Click to copy secret",
|
||||||
|
58
frontend/rust-lib/Cargo.lock
generated
58
frontend/rust-lib/Cargo.lock
generated
@ -163,7 +163,7 @@ checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "app-error"
|
name = "app-error"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"bincode",
|
"bincode",
|
||||||
@ -673,7 +673,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "client-api"
|
name = "client-api"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"again",
|
"again",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
@ -744,7 +744,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab"
|
name = "collab"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
@ -766,7 +766,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-database"
|
name = "collab-database"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
@ -774,6 +774,7 @@ dependencies = [
|
|||||||
"collab",
|
"collab",
|
||||||
"collab-entity",
|
"collab-entity",
|
||||||
"collab-plugins",
|
"collab-plugins",
|
||||||
|
"getrandom 0.2.10",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"lru",
|
"lru",
|
||||||
@ -794,7 +795,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-document"
|
name = "collab-document"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"collab",
|
"collab",
|
||||||
@ -813,11 +814,12 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-entity"
|
name = "collab-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"bytes",
|
"bytes",
|
||||||
"collab",
|
"collab",
|
||||||
|
"getrandom 0.2.10",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"serde_repr",
|
"serde_repr",
|
||||||
@ -827,12 +829,13 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-folder"
|
name = "collab-folder"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"chrono",
|
"chrono",
|
||||||
"collab",
|
"collab",
|
||||||
"collab-entity",
|
"collab-entity",
|
||||||
|
"getrandom 0.2.10",
|
||||||
"parking_lot 0.12.1",
|
"parking_lot 0.12.1",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
@ -863,7 +866,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-plugins"
|
name = "collab-plugins"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-stream",
|
"async-stream",
|
||||||
@ -902,11 +905,12 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "collab-user"
|
name = "collab-user"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=e3620ae820e921955b9c3ca3ffee24aad544f972#e3620ae820e921955b9c3ca3ffee24aad544f972"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Collab?rev=d00b477a9b844d86b5caeff573ca395dc5bf7198#d00b477a9b844d86b5caeff573ca395dc5bf7198"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"collab",
|
"collab",
|
||||||
"collab-entity",
|
"collab-entity",
|
||||||
|
"getrandom 0.2.10",
|
||||||
"parking_lot 0.12.1",
|
"parking_lot 0.12.1",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
@ -1098,7 +1102,7 @@ dependencies = [
|
|||||||
"cssparser-macros",
|
"cssparser-macros",
|
||||||
"dtoa-short",
|
"dtoa-short",
|
||||||
"itoa",
|
"itoa",
|
||||||
"phf 0.11.2",
|
"phf 0.8.0",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -1231,7 +1235,7 @@ checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "database-entity"
|
name = "database-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"app-error",
|
"app-error",
|
||||||
@ -2400,7 +2404,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "gotrue"
|
name = "gotrue"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
@ -2417,7 +2421,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "gotrue-entity"
|
name = "gotrue-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"app-error",
|
"app-error",
|
||||||
@ -2793,7 +2797,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "infra"
|
name = "infra"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
@ -3583,7 +3587,7 @@ version = "0.8.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
|
checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"phf_macros 0.8.0",
|
"phf_macros",
|
||||||
"phf_shared 0.8.0",
|
"phf_shared 0.8.0",
|
||||||
"proc-macro-hack",
|
"proc-macro-hack",
|
||||||
]
|
]
|
||||||
@ -3603,7 +3607,6 @@ version = "0.11.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
|
checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"phf_macros 0.11.2",
|
|
||||||
"phf_shared 0.11.2",
|
"phf_shared 0.11.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -3671,19 +3674,6 @@ dependencies = [
|
|||||||
"syn 1.0.109",
|
"syn 1.0.109",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "phf_macros"
|
|
||||||
version = "0.11.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
|
|
||||||
dependencies = [
|
|
||||||
"phf_generator 0.11.2",
|
|
||||||
"phf_shared 0.11.2",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn 2.0.47",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "phf_shared"
|
name = "phf_shared"
|
||||||
version = "0.8.0"
|
version = "0.8.0"
|
||||||
@ -4237,7 +4227,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "realtime-entity"
|
name = "realtime-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"bincode",
|
"bincode",
|
||||||
@ -4260,7 +4250,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "realtime-protocol"
|
name = "realtime-protocol"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"bincode",
|
"bincode",
|
||||||
@ -4848,7 +4838,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "shared-entity"
|
name = "shared-entity"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"app-error",
|
"app-error",
|
||||||
@ -6023,7 +6013,7 @@ checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "websocket"
|
name = "websocket"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
"futures-util",
|
"futures-util",
|
||||||
@ -6244,7 +6234,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "workspace-template"
|
name = "workspace-template"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=69c69f6474eaa531fd822e9353cc5955b98e45eb#69c69f6474eaa531fd822e9353cc5955b98e45eb"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-Cloud?rev=199452d3b77a352c03810d4146b39d76bab0313c#199452d3b77a352c03810d4146b39d76bab0313c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
@ -105,7 +105,7 @@ incremental = false
|
|||||||
# Run the script:
|
# Run the script:
|
||||||
# scripts/tool/update_client_api_rev.sh new_rev_id
|
# scripts/tool/update_client_api_rev.sh new_rev_id
|
||||||
# ⚠️⚠️⚠️️
|
# ⚠️⚠️⚠️️
|
||||||
client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "69c69f6474eaa531fd822e9353cc5955b98e45eb" }
|
client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "199452d3b77a352c03810d4146b39d76bab0313c" }
|
||||||
# Please use the following script to update collab.
|
# Please use the following script to update collab.
|
||||||
# Working directory: frontend
|
# Working directory: frontend
|
||||||
#
|
#
|
||||||
@ -115,10 +115,10 @@ client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "69c
|
|||||||
# To switch to the local path, run:
|
# To switch to the local path, run:
|
||||||
# scripts/tool/update_collab_source.sh
|
# scripts/tool/update_collab_source.sh
|
||||||
# ⚠️⚠️⚠️️
|
# ⚠️⚠️⚠️️
|
||||||
collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-database = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-database = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-plugins = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-plugins = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-user = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-user = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
collab-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "e3620ae820e921955b9c3ca3ffee24aad544f972" }
|
collab-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "d00b477a9b844d86b5caeff573ca395dc5bf7198" }
|
||||||
|
@ -21,5 +21,4 @@ tokio = { workspace = true, features = ["sync"]}
|
|||||||
lib-infra = { workspace = true }
|
lib-infra = { workspace = true }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = []
|
default = []
|
||||||
enable_wasm = ["collab-plugins/wasm_build"]
|
|
@ -10,6 +10,7 @@ use flowy_server_pub::AuthenticatorType;
|
|||||||
pub struct AppFlowyDartConfiguration {
|
pub struct AppFlowyDartConfiguration {
|
||||||
/// The root path of the application
|
/// The root path of the application
|
||||||
pub root: String,
|
pub root: String,
|
||||||
|
pub app_version: String,
|
||||||
/// This path will be used to store the user data
|
/// This path will be used to store the user data
|
||||||
pub custom_app_path: String,
|
pub custom_app_path: String,
|
||||||
pub origin_app_path: String,
|
pub origin_app_path: String,
|
||||||
|
@ -64,6 +64,7 @@ pub extern "C" fn init_sdk(data: *mut c_char) -> i64 {
|
|||||||
|
|
||||||
let log_crates = vec!["flowy-ffi".to_string()];
|
let log_crates = vec!["flowy-ffi".to_string()];
|
||||||
let config = AppFlowyCoreConfig::new(
|
let config = AppFlowyCoreConfig::new(
|
||||||
|
configuration.app_version,
|
||||||
configuration.custom_app_path,
|
configuration.custom_app_path,
|
||||||
configuration.origin_app_path,
|
configuration.origin_app_path,
|
||||||
configuration.device_id,
|
configuration.device_id,
|
||||||
|
@ -56,4 +56,4 @@ zip = "0.6.6"
|
|||||||
default = ["supabase_cloud_test"]
|
default = ["supabase_cloud_test"]
|
||||||
dart = ["flowy-core/dart"]
|
dart = ["flowy-core/dart"]
|
||||||
supabase_cloud_test = []
|
supabase_cloud_test = []
|
||||||
single_thread = ["flowy-core/enable_wasm"]
|
single_thread = []
|
@ -53,14 +53,15 @@ impl EventIntegrationTest {
|
|||||||
let path = path_buf.to_str().unwrap().to_string();
|
let path = path_buf.to_str().unwrap().to_string();
|
||||||
let device_id = uuid::Uuid::new_v4().to_string();
|
let device_id = uuid::Uuid::new_v4().to_string();
|
||||||
|
|
||||||
let config = AppFlowyCoreConfig::new(path.clone(), path, device_id, name).log_filter(
|
let config = AppFlowyCoreConfig::new("".to_string(), path.clone(), path, device_id, name)
|
||||||
"trace",
|
.log_filter(
|
||||||
vec![
|
"trace",
|
||||||
"flowy_test".to_string(),
|
vec![
|
||||||
"tokio".to_string(),
|
"flowy_test".to_string(),
|
||||||
// "lib_dispatch".to_string(),
|
"tokio".to_string(),
|
||||||
],
|
// "lib_dispatch".to_string(),
|
||||||
);
|
],
|
||||||
|
);
|
||||||
|
|
||||||
let inner = init_core(config).await;
|
let inner = init_core(config).await;
|
||||||
let notification_sender = TestNotificationSender::new();
|
let notification_sender = TestNotificationSender::new();
|
||||||
|
@ -66,4 +66,3 @@ ts = [
|
|||||||
]
|
]
|
||||||
rev-sqlite = ["flowy-user/rev-sqlite"]
|
rev-sqlite = ["flowy-user/rev-sqlite"]
|
||||||
openssl_vendored = ["flowy-sqlite/openssl_vendored"]
|
openssl_vendored = ["flowy-sqlite/openssl_vendored"]
|
||||||
enable_wasm = ["collab-integrate/enable_wasm"]
|
|
||||||
|
@ -14,6 +14,7 @@ use crate::integrate::log::create_log_filter;
|
|||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct AppFlowyCoreConfig {
|
pub struct AppFlowyCoreConfig {
|
||||||
/// Different `AppFlowyCoreConfig` instance should have different name
|
/// Different `AppFlowyCoreConfig` instance should have different name
|
||||||
|
pub(crate) app_version: String,
|
||||||
pub(crate) name: String,
|
pub(crate) name: String,
|
||||||
pub(crate) device_id: String,
|
pub(crate) device_id: String,
|
||||||
/// Used to store the user data
|
/// Used to store the user data
|
||||||
@ -30,6 +31,7 @@ pub struct AppFlowyCoreConfig {
|
|||||||
impl fmt::Debug for AppFlowyCoreConfig {
|
impl fmt::Debug for AppFlowyCoreConfig {
|
||||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
let mut debug = f.debug_struct("AppFlowy Configuration");
|
let mut debug = f.debug_struct("AppFlowy Configuration");
|
||||||
|
debug.field("app_version", &self.app_version);
|
||||||
debug.field("storage_path", &self.storage_path);
|
debug.field("storage_path", &self.storage_path);
|
||||||
debug.field("application_path", &self.application_path);
|
debug.field("application_path", &self.application_path);
|
||||||
if let Some(config) = &self.cloud_config {
|
if let Some(config) = &self.cloud_config {
|
||||||
@ -71,6 +73,7 @@ fn make_user_data_folder(root: &str, url: &str) -> String {
|
|||||||
|
|
||||||
impl AppFlowyCoreConfig {
|
impl AppFlowyCoreConfig {
|
||||||
pub fn new(
|
pub fn new(
|
||||||
|
app_version: String,
|
||||||
custom_application_path: String,
|
custom_application_path: String,
|
||||||
application_path: String,
|
application_path: String,
|
||||||
device_id: String,
|
device_id: String,
|
||||||
@ -89,6 +92,7 @@ impl AppFlowyCoreConfig {
|
|||||||
};
|
};
|
||||||
|
|
||||||
AppFlowyCoreConfig {
|
AppFlowyCoreConfig {
|
||||||
|
app_version,
|
||||||
name,
|
name,
|
||||||
storage_path,
|
storage_path,
|
||||||
application_path,
|
application_path,
|
||||||
|
@ -55,5 +55,4 @@ flowy-codegen.workspace = true
|
|||||||
|
|
||||||
[features]
|
[features]
|
||||||
dart = ["flowy-codegen/dart", "flowy-notification/dart"]
|
dart = ["flowy-codegen/dart", "flowy-notification/dart"]
|
||||||
ts = ["flowy-codegen/ts", "flowy-notification/tauri_ts"]
|
ts = ["flowy-codegen/ts", "flowy-notification/tauri_ts"]
|
||||||
enable_wasm = ["collab-plugins/wasm_build"]
|
|
@ -54,8 +54,5 @@ dart = ["flowy-codegen/dart"]
|
|||||||
tauri_ts = ["flowy-codegen/ts"]
|
tauri_ts = ["flowy-codegen/ts"]
|
||||||
web_ts = [
|
web_ts = [
|
||||||
"flowy-codegen/ts",
|
"flowy-codegen/ts",
|
||||||
"collab-plugins/wasm_build",
|
|
||||||
"collab/wasm_build",
|
|
||||||
"collab-document/wasm_build",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -17,7 +17,4 @@ anyhow.workspace = true
|
|||||||
base64 = "0.21.2"
|
base64 = "0.21.2"
|
||||||
|
|
||||||
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
||||||
getrandom = { version = "0.2", features = ["js"]}
|
getrandom = { version = "0.2", features = ["js"]}
|
||||||
|
|
||||||
[features]
|
|
||||||
enable_wasm = []
|
|
@ -40,4 +40,3 @@ flowy-codegen.workspace = true
|
|||||||
dart = ["flowy-codegen/dart", "flowy-notification/dart"]
|
dart = ["flowy-codegen/dart", "flowy-notification/dart"]
|
||||||
ts = ["flowy-codegen/ts", "flowy-notification/tauri_ts"]
|
ts = ["flowy-codegen/ts", "flowy-notification/tauri_ts"]
|
||||||
test_helper = []
|
test_helper = []
|
||||||
enable_wasm = ["collab-plugins/wasm_build"]
|
|
||||||
|
@ -58,5 +58,4 @@ serde_json.workspace = true
|
|||||||
client-api = { version = "0.1.0" }
|
client-api = { version = "0.1.0" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
enable_wasm = ["collab/async-plugin"]
|
|
||||||
enable_supabase = ["collab-plugins/postgres_plugin"]
|
enable_supabase = ["collab-plugins/postgres_plugin"]
|
@ -20,8 +20,4 @@ flowy-error = { workspace = true, features = ["impl_from_reqwest"] }
|
|||||||
mime = "0.3.17"
|
mime = "0.3.17"
|
||||||
tokio = { workspace = true, features = ["sync", "io-util"]}
|
tokio = { workspace = true, features = ["sync", "io-util"]}
|
||||||
tracing.workspace = true
|
tracing.workspace = true
|
||||||
fxhash = "0.2.1"
|
fxhash = "0.2.1"
|
||||||
|
|
||||||
|
|
||||||
[features]
|
|
||||||
enable_wasm = []
|
|
@ -21,7 +21,3 @@ tokio-stream = "0.1.14"
|
|||||||
flowy-folder-pub.workspace = true
|
flowy-folder-pub.workspace = true
|
||||||
tracing.workspace = true
|
tracing.workspace = true
|
||||||
base64 = "0.21"
|
base64 = "0.21"
|
||||||
|
|
||||||
|
|
||||||
[features]
|
|
||||||
enable_wasm = []
|
|
@ -497,7 +497,7 @@ pub async fn update_network_state_handler(
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tracing::instrument(level = "debug", skip_all, err)]
|
#[tracing::instrument(level = "debug", skip_all)]
|
||||||
pub async fn get_anon_user_handler(
|
pub async fn get_anon_user_handler(
|
||||||
manager: AFPluginState<Weak<UserManager>>,
|
manager: AFPluginState<Weak<UserManager>>,
|
||||||
) -> DataResult<UserProfilePB, FlowyError> {
|
) -> DataResult<UserProfilePB, FlowyError> {
|
||||||
|
@ -12,7 +12,7 @@ script = [
|
|||||||
echo "🔥🔥🔥 Building $crate with wasm-pack..."
|
echo "🔥🔥🔥 Building $crate with wasm-pack..."
|
||||||
cd "$BASE_DIR/rust-lib/$crate" || { echo "Failed to enter directory $crate"; exit 1; }
|
cd "$BASE_DIR/rust-lib/$crate" || { echo "Failed to enter directory $crate"; exit 1; }
|
||||||
|
|
||||||
wasm-pack build --features="enable_wasm" || { echo "Build failed for $crate"; exit 1; }
|
wasm-pack build || { echo "Build failed for $crate"; exit 1; }
|
||||||
done
|
done
|
||||||
"""
|
"""
|
||||||
]
|
]
|
||||||
|
Reference in New Issue
Block a user