Compare commits
5 Commits
e987a00707
...
91f6ce8288
| Author | SHA1 | Date | |
|---|---|---|---|
| 91f6ce8288 | |||
| f213a11368 | |||
| 561a5df648 | |||
| f063d2126b | |||
| 154719f7ed |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
|||||||
|
<EFBFBD>mtq2jwarfnafxi7l63qo7uu7aa<10><>_<EFBFBD>G<EFBFBD>La<4C><61>G<EFBFBD><47>_1uh<02>classesA7<41><37><EFBFBD>Bt<42>J<EFBFBD>h[;8%<25><>sourcesJ7<4A>ȤH<C8A4><48>`<60>db<64>WD
|
||||||
@ -0,0 +1,309 @@
|
|||||||
|
package org.gradle.accessors.dm;
|
||||||
|
|
||||||
|
import org.gradle.api.NonNullApi;
|
||||||
|
import org.gradle.api.artifacts.MinimalExternalModuleDependency;
|
||||||
|
import org.gradle.plugin.use.PluginDependency;
|
||||||
|
import org.gradle.api.artifacts.ExternalModuleDependencyBundle;
|
||||||
|
import org.gradle.api.artifacts.MutableVersionConstraint;
|
||||||
|
import org.gradle.api.provider.Provider;
|
||||||
|
import org.gradle.api.model.ObjectFactory;
|
||||||
|
import org.gradle.api.provider.ProviderFactory;
|
||||||
|
import org.gradle.api.internal.catalog.AbstractExternalDependencyFactory;
|
||||||
|
import org.gradle.api.internal.catalog.DefaultVersionCatalog;
|
||||||
|
import java.util.Map;
|
||||||
|
import org.gradle.api.internal.attributes.ImmutableAttributesFactory;
|
||||||
|
import org.gradle.api.internal.artifacts.dsl.CapabilityNotationParser;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A catalog of dependencies accessible via the {@code libs} extension.
|
||||||
|
*/
|
||||||
|
@NonNullApi
|
||||||
|
public class LibrariesForLibs extends AbstractExternalDependencyFactory {
|
||||||
|
|
||||||
|
private final AbstractExternalDependencyFactory owner = this;
|
||||||
|
private final AndroidxLibraryAccessors laccForAndroidxLibraryAccessors = new AndroidxLibraryAccessors(owner);
|
||||||
|
private final KotlinLibraryAccessors laccForKotlinLibraryAccessors = new KotlinLibraryAccessors(owner);
|
||||||
|
private final KotlinxLibraryAccessors laccForKotlinxLibraryAccessors = new KotlinxLibraryAccessors(owner);
|
||||||
|
private final VersionAccessors vaccForVersionAccessors = new VersionAccessors(providers, config);
|
||||||
|
private final BundleAccessors baccForBundleAccessors = new BundleAccessors(objects, providers, config, attributesFactory, capabilityNotationParser);
|
||||||
|
private final PluginAccessors paccForPluginAccessors = new PluginAccessors(providers, config);
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public LibrariesForLibs(DefaultVersionCatalog config, ProviderFactory providers, ObjectFactory objects, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) {
|
||||||
|
super(config, providers, objects, attributesFactory, capabilityNotationParser);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dependency provider for <b>junit</b> with <b>junit:junit</b> coordinates and
|
||||||
|
* with version reference <b>junit</b>
|
||||||
|
* <p>
|
||||||
|
* This dependency was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<MinimalExternalModuleDependency> getJunit() {
|
||||||
|
return create("junit");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of libraries at <b>androidx</b>
|
||||||
|
*/
|
||||||
|
public AndroidxLibraryAccessors getAndroidx() {
|
||||||
|
return laccForAndroidxLibraryAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of libraries at <b>kotlin</b>
|
||||||
|
*/
|
||||||
|
public KotlinLibraryAccessors getKotlin() {
|
||||||
|
return laccForKotlinLibraryAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of libraries at <b>kotlinx</b>
|
||||||
|
*/
|
||||||
|
public KotlinxLibraryAccessors getKotlinx() {
|
||||||
|
return laccForKotlinxLibraryAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of versions at <b>versions</b>
|
||||||
|
*/
|
||||||
|
public VersionAccessors getVersions() {
|
||||||
|
return vaccForVersionAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of bundles at <b>bundles</b>
|
||||||
|
*/
|
||||||
|
public BundleAccessors getBundles() {
|
||||||
|
return baccForBundleAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of plugins at <b>plugins</b>
|
||||||
|
*/
|
||||||
|
public PluginAccessors getPlugins() {
|
||||||
|
return paccForPluginAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class AndroidxLibraryAccessors extends SubDependencyFactory {
|
||||||
|
private final AndroidxLifecycleLibraryAccessors laccForAndroidxLifecycleLibraryAccessors = new AndroidxLifecycleLibraryAccessors(owner);
|
||||||
|
|
||||||
|
public AndroidxLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of libraries at <b>androidx.lifecycle</b>
|
||||||
|
*/
|
||||||
|
public AndroidxLifecycleLibraryAccessors getLifecycle() {
|
||||||
|
return laccForAndroidxLifecycleLibraryAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class AndroidxLifecycleLibraryAccessors extends SubDependencyFactory {
|
||||||
|
|
||||||
|
public AndroidxLifecycleLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dependency provider for <b>runtimeCompose</b> with <b>org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose</b> coordinates and
|
||||||
|
* with version reference <b>androidx.lifecycle</b>
|
||||||
|
* <p>
|
||||||
|
* This dependency was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<MinimalExternalModuleDependency> getRuntimeCompose() {
|
||||||
|
return create("androidx.lifecycle.runtimeCompose");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dependency provider for <b>viewmodel</b> with <b>org.jetbrains.androidx.lifecycle:lifecycle-viewmodel</b> coordinates and
|
||||||
|
* with version reference <b>androidx.lifecycle</b>
|
||||||
|
* <p>
|
||||||
|
* This dependency was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<MinimalExternalModuleDependency> getViewmodel() {
|
||||||
|
return create("androidx.lifecycle.viewmodel");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class KotlinLibraryAccessors extends SubDependencyFactory {
|
||||||
|
|
||||||
|
public KotlinLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dependency provider for <b>test</b> with <b>org.jetbrains.kotlin:kotlin-test</b> coordinates and
|
||||||
|
* with version reference <b>kotlin</b>
|
||||||
|
* <p>
|
||||||
|
* This dependency was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<MinimalExternalModuleDependency> getTest() {
|
||||||
|
return create("kotlin.test");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dependency provider for <b>testJunit</b> with <b>org.jetbrains.kotlin:kotlin-test-junit</b> coordinates and
|
||||||
|
* with version reference <b>kotlin</b>
|
||||||
|
* <p>
|
||||||
|
* This dependency was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<MinimalExternalModuleDependency> getTestJunit() {
|
||||||
|
return create("kotlin.testJunit");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class KotlinxLibraryAccessors extends SubDependencyFactory {
|
||||||
|
|
||||||
|
public KotlinxLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dependency provider for <b>coroutinesSwing</b> with <b>org.jetbrains.kotlinx:kotlinx-coroutines-swing</b> coordinates and
|
||||||
|
* with version reference <b>kotlinx.coroutines</b>
|
||||||
|
* <p>
|
||||||
|
* This dependency was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<MinimalExternalModuleDependency> getCoroutinesSwing() {
|
||||||
|
return create("kotlinx.coroutinesSwing");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class VersionAccessors extends VersionFactory {
|
||||||
|
|
||||||
|
private final AndroidxVersionAccessors vaccForAndroidxVersionAccessors = new AndroidxVersionAccessors(providers, config);
|
||||||
|
private final KotlinxVersionAccessors vaccForKotlinxVersionAccessors = new KotlinxVersionAccessors(providers, config);
|
||||||
|
public VersionAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Version alias <b>composeHotReload</b> with value <b>1.0.0-alpha11</b>
|
||||||
|
* <p>
|
||||||
|
* If the version is a rich version and cannot be represented as a
|
||||||
|
* single version string, an empty string is returned.
|
||||||
|
* <p>
|
||||||
|
* This version was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<String> getComposeHotReload() { return getVersion("composeHotReload"); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Version alias <b>composeMultiplatform</b> with value <b>1.8.2</b>
|
||||||
|
* <p>
|
||||||
|
* If the version is a rich version and cannot be represented as a
|
||||||
|
* single version string, an empty string is returned.
|
||||||
|
* <p>
|
||||||
|
* This version was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<String> getComposeMultiplatform() { return getVersion("composeMultiplatform"); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Version alias <b>junit</b> with value <b>4.13.2</b>
|
||||||
|
* <p>
|
||||||
|
* If the version is a rich version and cannot be represented as a
|
||||||
|
* single version string, an empty string is returned.
|
||||||
|
* <p>
|
||||||
|
* This version was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<String> getJunit() { return getVersion("junit"); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Version alias <b>kotlin</b> with value <b>2.2.0</b>
|
||||||
|
* <p>
|
||||||
|
* If the version is a rich version and cannot be represented as a
|
||||||
|
* single version string, an empty string is returned.
|
||||||
|
* <p>
|
||||||
|
* This version was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<String> getKotlin() { return getVersion("kotlin"); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of versions at <b>versions.androidx</b>
|
||||||
|
*/
|
||||||
|
public AndroidxVersionAccessors getAndroidx() {
|
||||||
|
return vaccForAndroidxVersionAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of versions at <b>versions.kotlinx</b>
|
||||||
|
*/
|
||||||
|
public KotlinxVersionAccessors getKotlinx() {
|
||||||
|
return vaccForKotlinxVersionAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class AndroidxVersionAccessors extends VersionFactory {
|
||||||
|
|
||||||
|
public AndroidxVersionAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Version alias <b>androidx.lifecycle</b> with value <b>2.9.1</b>
|
||||||
|
* <p>
|
||||||
|
* If the version is a rich version and cannot be represented as a
|
||||||
|
* single version string, an empty string is returned.
|
||||||
|
* <p>
|
||||||
|
* This version was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<String> getLifecycle() { return getVersion("androidx.lifecycle"); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class KotlinxVersionAccessors extends VersionFactory {
|
||||||
|
|
||||||
|
public KotlinxVersionAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Version alias <b>kotlinx.coroutines</b> with value <b>1.10.2</b>
|
||||||
|
* <p>
|
||||||
|
* If the version is a rich version and cannot be represented as a
|
||||||
|
* single version string, an empty string is returned.
|
||||||
|
* <p>
|
||||||
|
* This version was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<String> getCoroutines() { return getVersion("kotlinx.coroutines"); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class BundleAccessors extends BundleFactory {
|
||||||
|
|
||||||
|
public BundleAccessors(ObjectFactory objects, ProviderFactory providers, DefaultVersionCatalog config, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) { super(objects, providers, config, attributesFactory, capabilityNotationParser); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class PluginAccessors extends PluginFactory {
|
||||||
|
|
||||||
|
public PluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin provider for <b>composeCompiler</b> with plugin id <b>org.jetbrains.kotlin.plugin.compose</b> and
|
||||||
|
* with version reference <b>kotlin</b>
|
||||||
|
* <p>
|
||||||
|
* This plugin was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<PluginDependency> getComposeCompiler() { return createPlugin("composeCompiler"); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin provider for <b>composeHotReload</b> with plugin id <b>org.jetbrains.compose.hot-reload</b> and
|
||||||
|
* with version reference <b>composeHotReload</b>
|
||||||
|
* <p>
|
||||||
|
* This plugin was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<PluginDependency> getComposeHotReload() { return createPlugin("composeHotReload"); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin provider for <b>composeMultiplatform</b> with plugin id <b>org.jetbrains.compose</b> and
|
||||||
|
* with version reference <b>composeMultiplatform</b>
|
||||||
|
* <p>
|
||||||
|
* This plugin was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<PluginDependency> getComposeMultiplatform() { return createPlugin("composeMultiplatform"); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin provider for <b>kotlinMultiplatform</b> with plugin id <b>org.jetbrains.kotlin.multiplatform</b> and
|
||||||
|
* with version reference <b>kotlin</b>
|
||||||
|
* <p>
|
||||||
|
* This plugin was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<PluginDependency> getKotlinMultiplatform() { return createPlugin("kotlinMultiplatform"); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,373 @@
|
|||||||
|
package org.gradle.accessors.dm;
|
||||||
|
|
||||||
|
import org.gradle.api.NonNullApi;
|
||||||
|
import org.gradle.api.artifacts.MinimalExternalModuleDependency;
|
||||||
|
import org.gradle.plugin.use.PluginDependency;
|
||||||
|
import org.gradle.api.artifacts.ExternalModuleDependencyBundle;
|
||||||
|
import org.gradle.api.artifacts.MutableVersionConstraint;
|
||||||
|
import org.gradle.api.provider.Provider;
|
||||||
|
import org.gradle.api.model.ObjectFactory;
|
||||||
|
import org.gradle.api.provider.ProviderFactory;
|
||||||
|
import org.gradle.api.internal.catalog.AbstractExternalDependencyFactory;
|
||||||
|
import org.gradle.api.internal.catalog.DefaultVersionCatalog;
|
||||||
|
import java.util.Map;
|
||||||
|
import org.gradle.api.internal.attributes.ImmutableAttributesFactory;
|
||||||
|
import org.gradle.api.internal.artifacts.dsl.CapabilityNotationParser;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A catalog of dependencies accessible via the {@code libs} extension.
|
||||||
|
*/
|
||||||
|
@NonNullApi
|
||||||
|
public class LibrariesForLibsInPluginsBlock extends AbstractExternalDependencyFactory {
|
||||||
|
|
||||||
|
private final AbstractExternalDependencyFactory owner = this;
|
||||||
|
private final AndroidxLibraryAccessors laccForAndroidxLibraryAccessors = new AndroidxLibraryAccessors(owner);
|
||||||
|
private final KotlinLibraryAccessors laccForKotlinLibraryAccessors = new KotlinLibraryAccessors(owner);
|
||||||
|
private final KotlinxLibraryAccessors laccForKotlinxLibraryAccessors = new KotlinxLibraryAccessors(owner);
|
||||||
|
private final VersionAccessors vaccForVersionAccessors = new VersionAccessors(providers, config);
|
||||||
|
private final BundleAccessors baccForBundleAccessors = new BundleAccessors(objects, providers, config, attributesFactory, capabilityNotationParser);
|
||||||
|
private final PluginAccessors paccForPluginAccessors = new PluginAccessors(providers, config);
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public LibrariesForLibsInPluginsBlock(DefaultVersionCatalog config, ProviderFactory providers, ObjectFactory objects, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) {
|
||||||
|
super(config, providers, objects, attributesFactory, capabilityNotationParser);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dependency provider for <b>junit</b> with <b>junit:junit</b> coordinates and
|
||||||
|
* with version reference <b>junit</b>
|
||||||
|
* <p>
|
||||||
|
* This dependency was declared in catalog libs.versions.toml
|
||||||
|
*
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public Provider<MinimalExternalModuleDependency> getJunit() {
|
||||||
|
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||||
|
return create("junit");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of libraries at <b>androidx</b>
|
||||||
|
*
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public AndroidxLibraryAccessors getAndroidx() {
|
||||||
|
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||||
|
return laccForAndroidxLibraryAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of libraries at <b>kotlin</b>
|
||||||
|
*
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public KotlinLibraryAccessors getKotlin() {
|
||||||
|
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||||
|
return laccForKotlinLibraryAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of libraries at <b>kotlinx</b>
|
||||||
|
*
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public KotlinxLibraryAccessors getKotlinx() {
|
||||||
|
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||||
|
return laccForKotlinxLibraryAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of versions at <b>versions</b>
|
||||||
|
*/
|
||||||
|
public VersionAccessors getVersions() {
|
||||||
|
return vaccForVersionAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of bundles at <b>bundles</b>
|
||||||
|
*
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public BundleAccessors getBundles() {
|
||||||
|
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||||
|
return baccForBundleAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of plugins at <b>plugins</b>
|
||||||
|
*/
|
||||||
|
public PluginAccessors getPlugins() {
|
||||||
|
return paccForPluginAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public static class AndroidxLibraryAccessors extends SubDependencyFactory {
|
||||||
|
private final AndroidxLifecycleLibraryAccessors laccForAndroidxLifecycleLibraryAccessors = new AndroidxLifecycleLibraryAccessors(owner);
|
||||||
|
|
||||||
|
public AndroidxLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of libraries at <b>androidx.lifecycle</b>
|
||||||
|
*
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public AndroidxLifecycleLibraryAccessors getLifecycle() {
|
||||||
|
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||||
|
return laccForAndroidxLifecycleLibraryAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public static class AndroidxLifecycleLibraryAccessors extends SubDependencyFactory {
|
||||||
|
|
||||||
|
public AndroidxLifecycleLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dependency provider for <b>runtimeCompose</b> with <b>org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose</b> coordinates and
|
||||||
|
* with version reference <b>androidx.lifecycle</b>
|
||||||
|
* <p>
|
||||||
|
* This dependency was declared in catalog libs.versions.toml
|
||||||
|
*
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public Provider<MinimalExternalModuleDependency> getRuntimeCompose() {
|
||||||
|
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||||
|
return create("androidx.lifecycle.runtimeCompose");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dependency provider for <b>viewmodel</b> with <b>org.jetbrains.androidx.lifecycle:lifecycle-viewmodel</b> coordinates and
|
||||||
|
* with version reference <b>androidx.lifecycle</b>
|
||||||
|
* <p>
|
||||||
|
* This dependency was declared in catalog libs.versions.toml
|
||||||
|
*
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public Provider<MinimalExternalModuleDependency> getViewmodel() {
|
||||||
|
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||||
|
return create("androidx.lifecycle.viewmodel");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public static class KotlinLibraryAccessors extends SubDependencyFactory {
|
||||||
|
|
||||||
|
public KotlinLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dependency provider for <b>test</b> with <b>org.jetbrains.kotlin:kotlin-test</b> coordinates and
|
||||||
|
* with version reference <b>kotlin</b>
|
||||||
|
* <p>
|
||||||
|
* This dependency was declared in catalog libs.versions.toml
|
||||||
|
*
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public Provider<MinimalExternalModuleDependency> getTest() {
|
||||||
|
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||||
|
return create("kotlin.test");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dependency provider for <b>testJunit</b> with <b>org.jetbrains.kotlin:kotlin-test-junit</b> coordinates and
|
||||||
|
* with version reference <b>kotlin</b>
|
||||||
|
* <p>
|
||||||
|
* This dependency was declared in catalog libs.versions.toml
|
||||||
|
*
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public Provider<MinimalExternalModuleDependency> getTestJunit() {
|
||||||
|
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||||
|
return create("kotlin.testJunit");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public static class KotlinxLibraryAccessors extends SubDependencyFactory {
|
||||||
|
|
||||||
|
public KotlinxLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dependency provider for <b>coroutinesSwing</b> with <b>org.jetbrains.kotlinx:kotlinx-coroutines-swing</b> coordinates and
|
||||||
|
* with version reference <b>kotlinx.coroutines</b>
|
||||||
|
* <p>
|
||||||
|
* This dependency was declared in catalog libs.versions.toml
|
||||||
|
*
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public Provider<MinimalExternalModuleDependency> getCoroutinesSwing() {
|
||||||
|
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||||
|
return create("kotlinx.coroutinesSwing");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class VersionAccessors extends VersionFactory {
|
||||||
|
|
||||||
|
private final AndroidxVersionAccessors vaccForAndroidxVersionAccessors = new AndroidxVersionAccessors(providers, config);
|
||||||
|
private final KotlinxVersionAccessors vaccForKotlinxVersionAccessors = new KotlinxVersionAccessors(providers, config);
|
||||||
|
public VersionAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Version alias <b>composeHotReload</b> with value <b>1.0.0-alpha11</b>
|
||||||
|
* <p>
|
||||||
|
* If the version is a rich version and cannot be represented as a
|
||||||
|
* single version string, an empty string is returned.
|
||||||
|
* <p>
|
||||||
|
* This version was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<String> getComposeHotReload() { return getVersion("composeHotReload"); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Version alias <b>composeMultiplatform</b> with value <b>1.8.2</b>
|
||||||
|
* <p>
|
||||||
|
* If the version is a rich version and cannot be represented as a
|
||||||
|
* single version string, an empty string is returned.
|
||||||
|
* <p>
|
||||||
|
* This version was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<String> getComposeMultiplatform() { return getVersion("composeMultiplatform"); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Version alias <b>junit</b> with value <b>4.13.2</b>
|
||||||
|
* <p>
|
||||||
|
* If the version is a rich version and cannot be represented as a
|
||||||
|
* single version string, an empty string is returned.
|
||||||
|
* <p>
|
||||||
|
* This version was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<String> getJunit() { return getVersion("junit"); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Version alias <b>kotlin</b> with value <b>2.2.0</b>
|
||||||
|
* <p>
|
||||||
|
* If the version is a rich version and cannot be represented as a
|
||||||
|
* single version string, an empty string is returned.
|
||||||
|
* <p>
|
||||||
|
* This version was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<String> getKotlin() { return getVersion("kotlin"); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of versions at <b>versions.androidx</b>
|
||||||
|
*/
|
||||||
|
public AndroidxVersionAccessors getAndroidx() {
|
||||||
|
return vaccForAndroidxVersionAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Group of versions at <b>versions.kotlinx</b>
|
||||||
|
*/
|
||||||
|
public KotlinxVersionAccessors getKotlinx() {
|
||||||
|
return vaccForKotlinxVersionAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class AndroidxVersionAccessors extends VersionFactory {
|
||||||
|
|
||||||
|
public AndroidxVersionAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Version alias <b>androidx.lifecycle</b> with value <b>2.9.1</b>
|
||||||
|
* <p>
|
||||||
|
* If the version is a rich version and cannot be represented as a
|
||||||
|
* single version string, an empty string is returned.
|
||||||
|
* <p>
|
||||||
|
* This version was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<String> getLifecycle() { return getVersion("androidx.lifecycle"); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class KotlinxVersionAccessors extends VersionFactory {
|
||||||
|
|
||||||
|
public KotlinxVersionAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Version alias <b>kotlinx.coroutines</b> with value <b>1.10.2</b>
|
||||||
|
* <p>
|
||||||
|
* If the version is a rich version and cannot be represented as a
|
||||||
|
* single version string, an empty string is returned.
|
||||||
|
* <p>
|
||||||
|
* This version was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<String> getCoroutines() { return getVersion("kotlinx.coroutines"); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Will be removed in Gradle 9.0.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public static class BundleAccessors extends BundleFactory {
|
||||||
|
|
||||||
|
public BundleAccessors(ObjectFactory objects, ProviderFactory providers, DefaultVersionCatalog config, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) { super(objects, providers, config, attributesFactory, capabilityNotationParser); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class PluginAccessors extends PluginFactory {
|
||||||
|
|
||||||
|
public PluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin provider for <b>composeCompiler</b> with plugin id <b>org.jetbrains.kotlin.plugin.compose</b> and
|
||||||
|
* with version reference <b>kotlin</b>
|
||||||
|
* <p>
|
||||||
|
* This plugin was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<PluginDependency> getComposeCompiler() { return createPlugin("composeCompiler"); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin provider for <b>composeHotReload</b> with plugin id <b>org.jetbrains.compose.hot-reload</b> and
|
||||||
|
* with version reference <b>composeHotReload</b>
|
||||||
|
* <p>
|
||||||
|
* This plugin was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<PluginDependency> getComposeHotReload() { return createPlugin("composeHotReload"); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin provider for <b>composeMultiplatform</b> with plugin id <b>org.jetbrains.compose</b> and
|
||||||
|
* with version reference <b>composeMultiplatform</b>
|
||||||
|
* <p>
|
||||||
|
* This plugin was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<PluginDependency> getComposeMultiplatform() { return createPlugin("composeMultiplatform"); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plugin provider for <b>kotlinMultiplatform</b> with plugin id <b>org.jetbrains.kotlin.multiplatform</b> and
|
||||||
|
* with version reference <b>kotlin</b>
|
||||||
|
* <p>
|
||||||
|
* This plugin was declared in catalog libs.versions.toml
|
||||||
|
*/
|
||||||
|
public Provider<PluginDependency> getKotlinMultiplatform() { return createPlugin("kotlinMultiplatform"); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
|||||||
|
<EFBFBD>mtq2jwarfnafxi7l63qo7uu7aao5<6F><35><EFBFBD><EFBFBD>_i^i</<2F><>&<02>classes<06>]<0F><EFBFBD>ʶ<12>5<EFBFBD>z<EFBFBD>sources<10>g<EFBFBD><67>x<EFBFBD>}<7D>a@k<><6B>
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package org.gradle.accessors.dm;
|
||||||
|
|
||||||
|
import org.gradle.api.NonNullApi;
|
||||||
|
import org.gradle.api.artifacts.ProjectDependency;
|
||||||
|
import org.gradle.api.internal.artifacts.dependencies.ProjectDependencyInternal;
|
||||||
|
import org.gradle.api.internal.artifacts.DefaultProjectDependencyFactory;
|
||||||
|
import org.gradle.api.internal.artifacts.dsl.dependencies.ProjectFinder;
|
||||||
|
import org.gradle.api.internal.catalog.DelegatingProjectDependency;
|
||||||
|
import org.gradle.api.internal.catalog.TypeSafeProjectDependencyFactory;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
@NonNullApi
|
||||||
|
public class ComposeAppProjectDependency extends DelegatingProjectDependency {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public ComposeAppProjectDependency(TypeSafeProjectDependencyFactory factory, ProjectDependencyInternal delegate) {
|
||||||
|
super(factory, delegate);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
package org.gradle.accessors.dm;
|
||||||
|
|
||||||
|
import org.gradle.api.NonNullApi;
|
||||||
|
import org.gradle.api.artifacts.ProjectDependency;
|
||||||
|
import org.gradle.api.internal.artifacts.dependencies.ProjectDependencyInternal;
|
||||||
|
import org.gradle.api.internal.artifacts.DefaultProjectDependencyFactory;
|
||||||
|
import org.gradle.api.internal.artifacts.dsl.dependencies.ProjectFinder;
|
||||||
|
import org.gradle.api.internal.catalog.DelegatingProjectDependency;
|
||||||
|
import org.gradle.api.internal.catalog.TypeSafeProjectDependencyFactory;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
@NonNullApi
|
||||||
|
public class RootProjectAccessor extends TypeSafeProjectDependencyFactory {
|
||||||
|
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public RootProjectAccessor(DefaultProjectDependencyFactory factory, ProjectFinder finder) {
|
||||||
|
super(factory, finder);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a project dependency on the project at path ":"
|
||||||
|
*/
|
||||||
|
public SClientProjectDependency getSClient() { return new SClientProjectDependency(getFactory(), create(":")); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a project dependency on the project at path ":composeApp"
|
||||||
|
*/
|
||||||
|
public ComposeAppProjectDependency getComposeApp() { return new ComposeAppProjectDependency(getFactory(), create(":composeApp")); }
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
package org.gradle.accessors.dm;
|
||||||
|
|
||||||
|
import org.gradle.api.NonNullApi;
|
||||||
|
import org.gradle.api.artifacts.ProjectDependency;
|
||||||
|
import org.gradle.api.internal.artifacts.dependencies.ProjectDependencyInternal;
|
||||||
|
import org.gradle.api.internal.artifacts.DefaultProjectDependencyFactory;
|
||||||
|
import org.gradle.api.internal.artifacts.dsl.dependencies.ProjectFinder;
|
||||||
|
import org.gradle.api.internal.catalog.DelegatingProjectDependency;
|
||||||
|
import org.gradle.api.internal.catalog.TypeSafeProjectDependencyFactory;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
@NonNullApi
|
||||||
|
public class SClientProjectDependency extends DelegatingProjectDependency {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public SClientProjectDependency(TypeSafeProjectDependencyFactory factory, ProjectDependencyInternal delegate) {
|
||||||
|
super(factory, delegate);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a project dependency on the project at path ":composeApp"
|
||||||
|
*/
|
||||||
|
public ComposeAppProjectDependency getComposeApp() { return new ComposeAppProjectDependency(getFactory(), create(":composeApp")); }
|
||||||
|
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
18
client/README.md
Normal file
18
client/README.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
This is a Kotlin Multiplatform project targeting Web, Desktop.
|
||||||
|
|
||||||
|
* `/composeApp` is for code that will be shared across your Compose Multiplatform applications.
|
||||||
|
It contains several subfolders:
|
||||||
|
- `commonMain` is for code that’s common for all targets.
|
||||||
|
- Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name.
|
||||||
|
For example, if you want to use Apple’s CoreCrypto for the iOS part of your Kotlin app,
|
||||||
|
`iosMain` would be the right folder for such calls.
|
||||||
|
|
||||||
|
|
||||||
|
Learn more about [Kotlin Multiplatform](https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html),
|
||||||
|
[Compose Multiplatform](https://github.com/JetBrains/compose-multiplatform/#compose-multiplatform),
|
||||||
|
[Kotlin/Wasm](https://kotl.in/wasm/)…
|
||||||
|
|
||||||
|
We would appreciate your feedback on Compose/Web and Kotlin/Wasm in the public Slack channel [#compose-web](https://slack-chats.kotlinlang.org/c/compose-web).
|
||||||
|
If you face any issues, please report them on [YouTrack](https://youtrack.jetbrains.com/newIssue?project=CMP).
|
||||||
|
|
||||||
|
You can open the web application by running the `:composeApp:wasmJsBrowserDevelopmentRun` Gradle task.
|
||||||
8
client/build.gradle.kts
Normal file
8
client/build.gradle.kts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
plugins {
|
||||||
|
// this is necessary to avoid the plugins to be loaded multiple times
|
||||||
|
// in each subproject's classloader
|
||||||
|
alias(libs.plugins.composeHotReload) apply false
|
||||||
|
alias(libs.plugins.composeMultiplatform) apply false
|
||||||
|
alias(libs.plugins.composeCompiler) apply false
|
||||||
|
alias(libs.plugins.kotlinMultiplatform) apply false
|
||||||
|
}
|
||||||
69
client/composeApp/build.gradle.kts
Normal file
69
client/composeApp/build.gradle.kts
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
|
||||||
|
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
alias(libs.plugins.kotlinMultiplatform)
|
||||||
|
alias(libs.plugins.composeMultiplatform)
|
||||||
|
alias(libs.plugins.composeCompiler)
|
||||||
|
alias(libs.plugins.composeHotReload)
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlin {
|
||||||
|
jvm("desktop")
|
||||||
|
|
||||||
|
@OptIn(ExperimentalWasmDsl::class)
|
||||||
|
wasmJs {
|
||||||
|
outputModuleName.set("composeApp")
|
||||||
|
browser {
|
||||||
|
val rootDirPath = project.rootDir.path
|
||||||
|
val projectDirPath = project.projectDir.path
|
||||||
|
commonWebpackConfig {
|
||||||
|
outputFileName = "composeApp.js"
|
||||||
|
devServer = (devServer ?: KotlinWebpackConfig.DevServer()).apply {
|
||||||
|
static = (static ?: mutableListOf()).apply {
|
||||||
|
// Serve sources to debug inside browser
|
||||||
|
add(rootDirPath)
|
||||||
|
add(projectDirPath)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
binaries.executable()
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
val desktopMain by getting
|
||||||
|
|
||||||
|
commonMain.dependencies {
|
||||||
|
implementation(compose.runtime)
|
||||||
|
implementation(compose.foundation)
|
||||||
|
implementation(compose.material3)
|
||||||
|
implementation(compose.ui)
|
||||||
|
implementation(compose.components.resources)
|
||||||
|
implementation(compose.components.uiToolingPreview)
|
||||||
|
implementation(libs.androidx.lifecycle.viewmodel)
|
||||||
|
implementation(libs.androidx.lifecycle.runtimeCompose)
|
||||||
|
}
|
||||||
|
commonTest.dependencies {
|
||||||
|
implementation(libs.kotlin.test)
|
||||||
|
}
|
||||||
|
desktopMain.dependencies {
|
||||||
|
implementation(compose.desktop.currentOs)
|
||||||
|
implementation(libs.kotlinx.coroutinesSwing)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
compose.desktop {
|
||||||
|
application {
|
||||||
|
mainClass = "su.sonoma.sclient.MainKt"
|
||||||
|
|
||||||
|
nativeDistributions {
|
||||||
|
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
|
||||||
|
packageName = "su.sonoma.sclient"
|
||||||
|
packageVersion = "1.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
<vector
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:aapt="http://schemas.android.com/aapt"
|
||||||
|
android:width="450dp"
|
||||||
|
android:height="450dp"
|
||||||
|
android:viewportWidth="64"
|
||||||
|
android:viewportHeight="64">
|
||||||
|
<path
|
||||||
|
android:pathData="M56.25,18V46L32,60 7.75,46V18L32,4Z"
|
||||||
|
android:fillColor="#6075f2"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m41.5,26.5v11L32,43V60L56.25,46V18Z"
|
||||||
|
android:fillColor="#6b57ff"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m32,43 l-9.5,-5.5v-11L7.75,18V46L32,60Z">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient
|
||||||
|
android:centerX="23.131"
|
||||||
|
android:centerY="18.441"
|
||||||
|
android:gradientRadius="42.132"
|
||||||
|
android:type="radial">
|
||||||
|
<item android:offset="0" android:color="#FF5383EC"/>
|
||||||
|
<item android:offset="0.867" android:color="#FF7F52FF"/>
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
</path>
|
||||||
|
<path
|
||||||
|
android:pathData="M22.5,26.5 L32,21 41.5,26.5 56.25,18 32,4 7.75,18Z">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient
|
||||||
|
android:startX="44.172"
|
||||||
|
android:startY="4.377"
|
||||||
|
android:endX="17.973"
|
||||||
|
android:endY="34.035"
|
||||||
|
android:type="linear">
|
||||||
|
<item android:offset="0" android:color="#FF33C3FF"/>
|
||||||
|
<item android:offset="0.878" android:color="#FF5383EC"/>
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
</path>
|
||||||
|
<path
|
||||||
|
android:pathData="m32,21 l9.526,5.5v11L32,43 22.474,37.5v-11z"
|
||||||
|
android:fillColor="#000000"/>
|
||||||
|
</vector>
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
package su.sonoma.sclient
|
||||||
|
|
||||||
|
import androidx.compose.animation.AnimatedVisibility
|
||||||
|
import androidx.compose.foundation.Image
|
||||||
|
import androidx.compose.foundation.layout.Column
|
||||||
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
|
import androidx.compose.foundation.layout.safeContentPadding
|
||||||
|
import androidx.compose.material3.Button
|
||||||
|
import androidx.compose.material3.MaterialTheme
|
||||||
|
import androidx.compose.material3.Text
|
||||||
|
import androidx.compose.runtime.*
|
||||||
|
import androidx.compose.ui.Alignment
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import org.jetbrains.compose.resources.painterResource
|
||||||
|
import org.jetbrains.compose.ui.tooling.preview.Preview
|
||||||
|
|
||||||
|
import sclient.composeapp.generated.resources.Res
|
||||||
|
import sclient.composeapp.generated.resources.compose_multiplatform
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
@Preview
|
||||||
|
fun App() {
|
||||||
|
MaterialTheme {
|
||||||
|
var showContent by remember { mutableStateOf(false) }
|
||||||
|
Column(
|
||||||
|
modifier = Modifier
|
||||||
|
.safeContentPadding()
|
||||||
|
.fillMaxSize(),
|
||||||
|
horizontalAlignment = Alignment.CenterHorizontally,
|
||||||
|
) {
|
||||||
|
Button(onClick = { showContent = !showContent }) {
|
||||||
|
Text("Click me!")
|
||||||
|
}
|
||||||
|
AnimatedVisibility(showContent) {
|
||||||
|
val greeting = remember { Greeting().greet() }
|
||||||
|
Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {
|
||||||
|
Image(painterResource(Res.drawable.compose_multiplatform), null)
|
||||||
|
Text("Compose: $greeting")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
package su.sonoma.sclient
|
||||||
|
|
||||||
|
class Greeting {
|
||||||
|
private val platform = getPlatform()
|
||||||
|
|
||||||
|
fun greet(): String {
|
||||||
|
return "Hello, ${platform.name}!"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
package su.sonoma.sclient
|
||||||
|
|
||||||
|
interface Platform {
|
||||||
|
val name: String
|
||||||
|
}
|
||||||
|
|
||||||
|
expect fun getPlatform(): Platform
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
package su.sonoma.sclient
|
||||||
|
|
||||||
|
class JVMPlatform: Platform {
|
||||||
|
override val name: String = "Java ${System.getProperty("java.version")}"
|
||||||
|
}
|
||||||
|
|
||||||
|
actual fun getPlatform(): Platform = JVMPlatform()
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package su.sonoma.sclient
|
||||||
|
|
||||||
|
import androidx.compose.ui.window.Window
|
||||||
|
import androidx.compose.ui.window.application
|
||||||
|
|
||||||
|
fun main() = application {
|
||||||
|
Window(
|
||||||
|
onCloseRequest = ::exitApplication,
|
||||||
|
title = "SClient",
|
||||||
|
) {
|
||||||
|
App()
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
package su.sonoma.sclient
|
||||||
|
|
||||||
|
class WasmPlatform: Platform {
|
||||||
|
override val name: String = "Web with Kotlin/Wasm"
|
||||||
|
}
|
||||||
|
|
||||||
|
actual fun getPlatform(): Platform = WasmPlatform()
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
package su.sonoma.sclient
|
||||||
|
|
||||||
|
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||||
|
import androidx.compose.ui.window.ComposeViewport
|
||||||
|
import kotlinx.browser.document
|
||||||
|
|
||||||
|
@OptIn(ExperimentalComposeUiApi::class)
|
||||||
|
fun main() {
|
||||||
|
ComposeViewport(document.body!!) {
|
||||||
|
App()
|
||||||
|
}
|
||||||
|
}
|
||||||
12
client/composeApp/src/wasmJsMain/resources/index.html
Normal file
12
client/composeApp/src/wasmJsMain/resources/index.html
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>SClient</title>
|
||||||
|
<link type="text/css" rel="stylesheet" href="styles.css">
|
||||||
|
<script type="application/javascript" src="composeApp.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
7
client/composeApp/src/wasmJsMain/resources/styles.css
Normal file
7
client/composeApp/src/wasmJsMain/resources/styles.css
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
html, body {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
8
client/gradle.properties
Normal file
8
client/gradle.properties
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#Kotlin
|
||||||
|
kotlin.code.style=official
|
||||||
|
kotlin.daemon.jvmargs=-Xmx3072M
|
||||||
|
|
||||||
|
#Gradle
|
||||||
|
org.gradle.jvmargs=-Xmx3072M -Dfile.encoding=UTF-8
|
||||||
|
org.gradle.configuration-cache=true
|
||||||
|
org.gradle.caching=true
|
||||||
21
client/gradle/libs.versions.toml
Normal file
21
client/gradle/libs.versions.toml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
[versions]
|
||||||
|
androidx-lifecycle = "2.9.1"
|
||||||
|
composeHotReload = "1.0.0-alpha11"
|
||||||
|
composeMultiplatform = "1.8.2"
|
||||||
|
junit = "4.13.2"
|
||||||
|
kotlin = "2.2.0"
|
||||||
|
kotlinx-coroutines = "1.10.2"
|
||||||
|
|
||||||
|
[libraries]
|
||||||
|
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
|
||||||
|
kotlin-testJunit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" }
|
||||||
|
junit = { module = "junit:junit", version.ref = "junit" }
|
||||||
|
androidx-lifecycle-viewmodel = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel", version.ref = "androidx-lifecycle" }
|
||||||
|
androidx-lifecycle-runtimeCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }
|
||||||
|
kotlinx-coroutinesSwing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" }
|
||||||
|
|
||||||
|
[plugins]
|
||||||
|
composeHotReload = { id = "org.jetbrains.compose.hot-reload", version.ref = "composeHotReload" }
|
||||||
|
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatform" }
|
||||||
|
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
||||||
|
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
|
||||||
BIN
client/gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
BIN
client/gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
Binary file not shown.
7
client/gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
7
client/gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
distributionBase=GRADLE_USER_HOME
|
||||||
|
distributionPath=wrapper/dists
|
||||||
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
|
||||||
|
networkTimeout=10000
|
||||||
|
validateDistributionUrl=true
|
||||||
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
zipStorePath=wrapper/dists
|
||||||
252
client/gradlew
vendored
Executable file
252
client/gradlew
vendored
Executable file
@ -0,0 +1,252 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright © 2015-2021 the original authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# Gradle start up script for POSIX generated by Gradle.
|
||||||
|
#
|
||||||
|
# Important for running:
|
||||||
|
#
|
||||||
|
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||||
|
# noncompliant, but you have some other compliant shell such as ksh or
|
||||||
|
# bash, then to run this script, type that shell name before the whole
|
||||||
|
# command line, like:
|
||||||
|
#
|
||||||
|
# ksh Gradle
|
||||||
|
#
|
||||||
|
# Busybox and similar reduced shells will NOT work, because this script
|
||||||
|
# requires all of these POSIX shell features:
|
||||||
|
# * functions;
|
||||||
|
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||||
|
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||||
|
# * compound commands having a testable exit status, especially «case»;
|
||||||
|
# * various built-in commands including «command», «set», and «ulimit».
|
||||||
|
#
|
||||||
|
# Important for patching:
|
||||||
|
#
|
||||||
|
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||||
|
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||||
|
#
|
||||||
|
# The "traditional" practice of packing multiple parameters into a
|
||||||
|
# space-separated string is a well documented source of bugs and security
|
||||||
|
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||||
|
# options in "$@", and eventually passing that to Java.
|
||||||
|
#
|
||||||
|
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||||
|
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||||
|
# see the in-line comments for details.
|
||||||
|
#
|
||||||
|
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||||
|
# Darwin, MinGW, and NonStop.
|
||||||
|
#
|
||||||
|
# (3) This script is generated from the Groovy template
|
||||||
|
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||||
|
# within the Gradle project.
|
||||||
|
#
|
||||||
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
# Attempt to set APP_HOME
|
||||||
|
|
||||||
|
# Resolve links: $0 may be a link
|
||||||
|
app_path=$0
|
||||||
|
|
||||||
|
# Need this for daisy-chained symlinks.
|
||||||
|
while
|
||||||
|
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||||
|
[ -h "$app_path" ]
|
||||||
|
do
|
||||||
|
ls=$( ls -ld "$app_path" )
|
||||||
|
link=${ls#*' -> '}
|
||||||
|
case $link in #(
|
||||||
|
/*) app_path=$link ;; #(
|
||||||
|
*) app_path=$APP_HOME$link ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# This is normally unused
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
APP_BASE_NAME=${0##*/}
|
||||||
|
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||||
|
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
|
||||||
|
' "$PWD" ) || exit
|
||||||
|
|
||||||
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
|
MAX_FD=maximum
|
||||||
|
|
||||||
|
warn () {
|
||||||
|
echo "$*"
|
||||||
|
} >&2
|
||||||
|
|
||||||
|
die () {
|
||||||
|
echo
|
||||||
|
echo "$*"
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
} >&2
|
||||||
|
|
||||||
|
# OS specific support (must be 'true' or 'false').
|
||||||
|
cygwin=false
|
||||||
|
msys=false
|
||||||
|
darwin=false
|
||||||
|
nonstop=false
|
||||||
|
case "$( uname )" in #(
|
||||||
|
CYGWIN* ) cygwin=true ;; #(
|
||||||
|
Darwin* ) darwin=true ;; #(
|
||||||
|
MSYS* | MINGW* ) msys=true ;; #(
|
||||||
|
NONSTOP* ) nonstop=true ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||||
|
|
||||||
|
|
||||||
|
# Determine the Java command to use to start the JVM.
|
||||||
|
if [ -n "$JAVA_HOME" ] ; then
|
||||||
|
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||||
|
# IBM's JDK on AIX uses strange locations for the executables
|
||||||
|
JAVACMD=$JAVA_HOME/jre/sh/java
|
||||||
|
else
|
||||||
|
JAVACMD=$JAVA_HOME/bin/java
|
||||||
|
fi
|
||||||
|
if [ ! -x "$JAVACMD" ] ; then
|
||||||
|
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||||
|
|
||||||
|
Please set the JAVA_HOME variable in your environment to match the
|
||||||
|
location of your Java installation."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
JAVACMD=java
|
||||||
|
if ! command -v java >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
|
|
||||||
|
Please set the JAVA_HOME variable in your environment to match the
|
||||||
|
location of your Java installation."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Increase the maximum file descriptors if we can.
|
||||||
|
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||||
|
case $MAX_FD in #(
|
||||||
|
max*)
|
||||||
|
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||||
|
# shellcheck disable=SC2039,SC3045
|
||||||
|
MAX_FD=$( ulimit -H -n ) ||
|
||||||
|
warn "Could not query maximum file descriptor limit"
|
||||||
|
esac
|
||||||
|
case $MAX_FD in #(
|
||||||
|
'' | soft) :;; #(
|
||||||
|
*)
|
||||||
|
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||||
|
# shellcheck disable=SC2039,SC3045
|
||||||
|
ulimit -n "$MAX_FD" ||
|
||||||
|
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Collect all arguments for the java command, stacking in reverse order:
|
||||||
|
# * args from the command line
|
||||||
|
# * the main class name
|
||||||
|
# * -classpath
|
||||||
|
# * -D...appname settings
|
||||||
|
# * --module-path (only if needed)
|
||||||
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
||||||
|
|
||||||
|
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||||
|
if "$cygwin" || "$msys" ; then
|
||||||
|
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||||
|
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||||
|
|
||||||
|
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||||
|
|
||||||
|
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||||
|
for arg do
|
||||||
|
if
|
||||||
|
case $arg in #(
|
||||||
|
-*) false ;; # don't mess with options #(
|
||||||
|
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||||
|
[ -e "$t" ] ;; #(
|
||||||
|
*) false ;;
|
||||||
|
esac
|
||||||
|
then
|
||||||
|
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||||
|
fi
|
||||||
|
# Roll the args list around exactly as many times as the number of
|
||||||
|
# args, so each arg winds up back in the position where it started, but
|
||||||
|
# possibly modified.
|
||||||
|
#
|
||||||
|
# NB: a `for` loop captures its iteration list before it begins, so
|
||||||
|
# changing the positional parameters here affects neither the number of
|
||||||
|
# iterations, nor the values presented in `arg`.
|
||||||
|
shift # remove old arg
|
||||||
|
set -- "$@" "$arg" # push replacement arg
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
|
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||||
|
|
||||||
|
# Collect all arguments for the java command:
|
||||||
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||||
|
# and any embedded shellness will be escaped.
|
||||||
|
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||||
|
# treated as '${Hostname}' itself on the command line.
|
||||||
|
|
||||||
|
set -- \
|
||||||
|
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||||
|
-classpath "$CLASSPATH" \
|
||||||
|
org.gradle.wrapper.GradleWrapperMain \
|
||||||
|
"$@"
|
||||||
|
|
||||||
|
# Stop when "xargs" is not available.
|
||||||
|
if ! command -v xargs >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
die "xargs is not available"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use "xargs" to parse quoted args.
|
||||||
|
#
|
||||||
|
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||||
|
#
|
||||||
|
# In Bash we could simply go:
|
||||||
|
#
|
||||||
|
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||||
|
# set -- "${ARGS[@]}" "$@"
|
||||||
|
#
|
||||||
|
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||||
|
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||||
|
# character that might be a shell metacharacter, then use eval to reverse
|
||||||
|
# that process (while maintaining the separation between arguments), and wrap
|
||||||
|
# the whole thing up as a single "set" statement.
|
||||||
|
#
|
||||||
|
# This will of course break if any of these variables contains a newline or
|
||||||
|
# an unmatched quote.
|
||||||
|
#
|
||||||
|
|
||||||
|
eval "set -- $(
|
||||||
|
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
||||||
|
xargs -n1 |
|
||||||
|
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||||
|
tr '\n' ' '
|
||||||
|
)" '"$@"'
|
||||||
|
|
||||||
|
exec "$JAVACMD" "$@"
|
||||||
94
client/gradlew.bat
vendored
Normal file
94
client/gradlew.bat
vendored
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
@rem
|
||||||
|
@rem Copyright 2015 the original author or authors.
|
||||||
|
@rem
|
||||||
|
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
@rem you may not use this file except in compliance with the License.
|
||||||
|
@rem You may obtain a copy of the License at
|
||||||
|
@rem
|
||||||
|
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
@rem
|
||||||
|
@rem Unless required by applicable law or agreed to in writing, software
|
||||||
|
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
@rem See the License for the specific language governing permissions and
|
||||||
|
@rem limitations under the License.
|
||||||
|
@rem
|
||||||
|
@rem SPDX-License-Identifier: Apache-2.0
|
||||||
|
@rem
|
||||||
|
|
||||||
|
@if "%DEBUG%"=="" @echo off
|
||||||
|
@rem ##########################################################################
|
||||||
|
@rem
|
||||||
|
@rem Gradle startup script for Windows
|
||||||
|
@rem
|
||||||
|
@rem ##########################################################################
|
||||||
|
|
||||||
|
@rem Set local scope for the variables with windows NT shell
|
||||||
|
if "%OS%"=="Windows_NT" setlocal
|
||||||
|
|
||||||
|
set DIRNAME=%~dp0
|
||||||
|
if "%DIRNAME%"=="" set DIRNAME=.
|
||||||
|
@rem This is normally unused
|
||||||
|
set APP_BASE_NAME=%~n0
|
||||||
|
set APP_HOME=%DIRNAME%
|
||||||
|
|
||||||
|
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||||
|
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||||
|
|
||||||
|
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
|
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||||
|
|
||||||
|
@rem Find java.exe
|
||||||
|
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||||
|
|
||||||
|
set JAVA_EXE=java.exe
|
||||||
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
|
if %ERRORLEVEL% equ 0 goto execute
|
||||||
|
|
||||||
|
echo. 1>&2
|
||||||
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||||
|
echo. 1>&2
|
||||||
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
|
goto fail
|
||||||
|
|
||||||
|
:findJavaFromJavaHome
|
||||||
|
set JAVA_HOME=%JAVA_HOME:"=%
|
||||||
|
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||||
|
|
||||||
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
|
echo. 1>&2
|
||||||
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||||
|
echo. 1>&2
|
||||||
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
|
goto fail
|
||||||
|
|
||||||
|
:execute
|
||||||
|
@rem Setup the command line
|
||||||
|
|
||||||
|
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||||
|
|
||||||
|
|
||||||
|
@rem Execute Gradle
|
||||||
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||||
|
|
||||||
|
:end
|
||||||
|
@rem End local scope for the variables with windows NT shell
|
||||||
|
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||||
|
|
||||||
|
:fail
|
||||||
|
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||||
|
rem the _cmd.exe /c_ return code!
|
||||||
|
set EXIT_CODE=%ERRORLEVEL%
|
||||||
|
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||||
|
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||||
|
exit /b %EXIT_CODE%
|
||||||
|
|
||||||
|
:mainEnd
|
||||||
|
if "%OS%"=="Windows_NT" endlocal
|
||||||
|
|
||||||
|
:omega
|
||||||
@ -1,2 +0,0 @@
|
|||||||
[virtualenvs]
|
|
||||||
in-project = true
|
|
||||||
@ -1,36 +0,0 @@
|
|||||||
[project]
|
|
||||||
name = "sonoma-app-client"
|
|
||||||
version = "0.1.0"
|
|
||||||
description = ""
|
|
||||||
requires-python = ">=3.12"
|
|
||||||
authors = [
|
|
||||||
{ name = "SaddyDEAD", email = "saddydead@sonoma.su" }
|
|
||||||
]
|
|
||||||
dependencies = [
|
|
||||||
"flet==0.28.3",
|
|
||||||
"cryptography",
|
|
||||||
"httpx (>=0.28.1,<0.29.0)"
|
|
||||||
]
|
|
||||||
|
|
||||||
[tool.flet]
|
|
||||||
org = "su.sonoma"
|
|
||||||
|
|
||||||
product = "SApp"
|
|
||||||
|
|
||||||
company = "Sonoma"
|
|
||||||
|
|
||||||
copyright = "Copyright (C) 2025 by Sonoma Org."
|
|
||||||
|
|
||||||
[tool.flet.app]
|
|
||||||
path = "src"
|
|
||||||
|
|
||||||
[tool.uv]
|
|
||||||
dev-dependencies = [
|
|
||||||
"flet[all]==0.28.3",
|
|
||||||
]
|
|
||||||
|
|
||||||
[tool.poetry]
|
|
||||||
package-mode = false
|
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
|
||||||
flet = {extras = ["all"], version = "0.28.3"}
|
|
||||||
35
client/settings.gradle.kts
Normal file
35
client/settings.gradle.kts
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
rootProject.name = "SClient"
|
||||||
|
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
|
||||||
|
|
||||||
|
pluginManagement {
|
||||||
|
repositories {
|
||||||
|
google {
|
||||||
|
mavenContent {
|
||||||
|
includeGroupAndSubgroups("androidx")
|
||||||
|
includeGroupAndSubgroups("com.android")
|
||||||
|
includeGroupAndSubgroups("com.google")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mavenCentral()
|
||||||
|
gradlePluginPortal()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencyResolutionManagement {
|
||||||
|
repositories {
|
||||||
|
google {
|
||||||
|
mavenContent {
|
||||||
|
includeGroupAndSubgroups("androidx")
|
||||||
|
includeGroupAndSubgroups("com.android")
|
||||||
|
includeGroupAndSubgroups("com.google")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
|
||||||
|
}
|
||||||
|
|
||||||
|
include(":composeApp")
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.3 MiB |
@ -1,34 +0,0 @@
|
|||||||
from cryptography.fernet import Fernet
|
|
||||||
import os
|
|
||||||
import httpx
|
|
||||||
|
|
||||||
KEY_FILE = ".key"
|
|
||||||
REMEMBER_FILE = ".auth_data"
|
|
||||||
|
|
||||||
def generate_key():
|
|
||||||
if not os.path.exists(KEY_FILE):
|
|
||||||
key = Fernet.generate_key()
|
|
||||||
with open(KEY_FILE, "wb") as f:
|
|
||||||
f.write(key)
|
|
||||||
|
|
||||||
|
|
||||||
async def load_fernet():
|
|
||||||
with open(KEY_FILE, "rb") as f:
|
|
||||||
key = f.read()
|
|
||||||
return Fernet(key)
|
|
||||||
|
|
||||||
|
|
||||||
async def login(name: str, password: str):
|
|
||||||
async with httpx.AsyncClient() as client:
|
|
||||||
r = await client.post(
|
|
||||||
'http://127.0.0.1:7535/login',
|
|
||||||
json={
|
|
||||||
"username": name,
|
|
||||||
"password": password
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
if r.is_success:
|
|
||||||
return True
|
|
||||||
else:
|
|
||||||
return False
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
from enum import Enum
|
|
||||||
|
|
||||||
|
|
||||||
class Role(Enum):
|
|
||||||
ADMIN = 'Admin'
|
|
||||||
USER = 'User'
|
|
||||||
|
|
||||||
|
|
||||||
class User:
|
|
||||||
username: str
|
|
||||||
email: str
|
|
||||||
role: Role
|
|
||||||
out_vpn_access: bool
|
|
||||||
docker_access: bool
|
|
||||||
git_access: bool
|
|
||||||
password: str
|
|
||||||
@ -1,102 +0,0 @@
|
|||||||
import flet as ft
|
|
||||||
from auth.login import *
|
|
||||||
|
|
||||||
USERNAME = "admin"
|
|
||||||
PASSWORD = "1234"
|
|
||||||
|
|
||||||
|
|
||||||
def generate_key():
|
|
||||||
if not os.path.exists(KEY_FILE):
|
|
||||||
key = Fernet.generate_key()
|
|
||||||
with open(KEY_FILE, "wb") as f:
|
|
||||||
f.write(key)
|
|
||||||
|
|
||||||
|
|
||||||
async def load_fernet():
|
|
||||||
with open(KEY_FILE, "rb") as f:
|
|
||||||
key = f.read()
|
|
||||||
return Fernet(key)
|
|
||||||
|
|
||||||
|
|
||||||
async def main(page: ft.Page):
|
|
||||||
generate_key()
|
|
||||||
fernet = await load_fernet()
|
|
||||||
|
|
||||||
page.title = "SClient"
|
|
||||||
page.window_width = 400
|
|
||||||
page.window_height = 300
|
|
||||||
page.vertical_alignment = ft.MainAxisAlignment.CENTER
|
|
||||||
|
|
||||||
login_input = ft.TextField(label="Логин", autofocus=True)
|
|
||||||
password_input = ft.TextField(label="Пароль", password=True, can_reveal_password=True)
|
|
||||||
remember_checkbox = ft.Checkbox(label="Запомнить меня")
|
|
||||||
status_text = ft.Text(color=ft.Colors.RED)
|
|
||||||
|
|
||||||
if os.path.exists(REMEMBER_FILE):
|
|
||||||
try:
|
|
||||||
with open(REMEMBER_FILE, "rb") as f:
|
|
||||||
lines = f.readlines()
|
|
||||||
if len(lines) == 2:
|
|
||||||
saved_login = lines[0].decode().strip()
|
|
||||||
encrypted_pw = lines[1].strip()
|
|
||||||
decrypted_pw = fernet.decrypt(encrypted_pw).decode()
|
|
||||||
|
|
||||||
login_input.value = saved_login
|
|
||||||
password_input.value = decrypted_pw
|
|
||||||
remember_checkbox.value = True
|
|
||||||
except Exception as e:
|
|
||||||
print(f"[ОШИБКА] Не удалось прочитать данные: {e}")
|
|
||||||
|
|
||||||
async def login_click(e):
|
|
||||||
if await login(login_input.value, password_input.value):
|
|
||||||
if remember_checkbox.value:
|
|
||||||
encrypted_pw = fernet.encrypt(password_input.value.encode())
|
|
||||||
with open(REMEMBER_FILE, "wb") as f:
|
|
||||||
f.write(f"{login_input.value}\n".encode())
|
|
||||||
f.write(encrypted_pw)
|
|
||||||
else:
|
|
||||||
if os.path.exists(REMEMBER_FILE):
|
|
||||||
os.remove(REMEMBER_FILE)
|
|
||||||
|
|
||||||
page.clean()
|
|
||||||
page.add(
|
|
||||||
ft.Column(
|
|
||||||
[
|
|
||||||
ft.Text(f"Добро пожаловать, {USERNAME}!", size=24),
|
|
||||||
ft.ElevatedButton("Выйти", on_click=lambda e: page.go("/"))
|
|
||||||
],
|
|
||||||
alignment=ft.MainAxisAlignment.CENTER,
|
|
||||||
horizontal_alignment=ft.CrossAxisAlignment.CENTER
|
|
||||||
)
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
status_text.value = "Неверный логин или пароль"
|
|
||||||
page.update()
|
|
||||||
|
|
||||||
page.add(
|
|
||||||
ft.Container(
|
|
||||||
content=ft.Column(
|
|
||||||
controls=[
|
|
||||||
ft.Image(
|
|
||||||
src="sonoma.png",
|
|
||||||
width=50,
|
|
||||||
height=50,
|
|
||||||
fit=ft.ImageFit.CONTAIN
|
|
||||||
),
|
|
||||||
ft.Text("SClient", size=24, weight=ft.FontWeight.BOLD),
|
|
||||||
login_input,
|
|
||||||
password_input,
|
|
||||||
remember_checkbox,
|
|
||||||
ft.ElevatedButton("Войти", on_click=login_click),
|
|
||||||
status_text
|
|
||||||
],
|
|
||||||
width=300,
|
|
||||||
alignment=ft.MainAxisAlignment.CENTER,
|
|
||||||
horizontal_alignment=ft.CrossAxisAlignment.CENTER
|
|
||||||
),
|
|
||||||
alignment=ft.alignment.center,
|
|
||||||
expand=True
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
ft.app(main)
|
|
||||||
Reference in New Issue
Block a user