This commit is contained in:
Yamozha
2021-04-02 02:24:13 +03:00
parent c23950b545
commit 7256d79e2c
31493 changed files with 3036630 additions and 0 deletions

View File

@ -0,0 +1,25 @@
# Changelog
## Unpublished
### 🛠 Breaking changes
### 🎉 New features
### 🐛 Bug fixes
## 5.4.0 — 2020-11-17
_This version does not introduce any user-facing changes._
## 5.3.0 — 2020-08-18
_This version does not introduce any user-facing changes._
## 5.2.1 — 2020-05-29
*This version does not introduce any user-facing changes.*
## 5.2.0 — 2020-05-27
*This version does not introduce any user-facing changes.*

View File

@ -0,0 +1,29 @@
# unimodules-file-system-interface
Interface for file system modules
# Installation in managed Expo projects
For managed [managed](https://docs.expo.io/versions/latest/introduction/managed-vs-bare/) Expo projects, please follow the installation instructions in the [API documentation for the latest stable release](#api-documentation). If you follow the link and there is no documentation available then this library is not yet usable within managed projects — it is likely to be included in an upcoming Expo SDK release.
# Installation in bare React Native projects
For bare React Native projects, you must ensure that you have [installed and configured the `react-native-unimodules` package](https://github.com/expo/expo/tree/master/packages/react-native-unimodules) before continuing.
### Add the package to your npm dependencies
```
npm install unimodules-file-system-interface
```
### Configure for iOS
Run `npx pod-install` after installing the npm package.
### Configure for Android
No additional set up necessary.
# Contributing
Contributions are very welcome! Please refer to guidelines described in the [contributing guide](https://github.com/expo/expo#contributing).

View File

@ -0,0 +1,57 @@
apply plugin: 'com.android.library'
apply plugin: 'maven'
group = 'org.unimodules'
version = '5.4.0'
// Simple helper that allows the root project to override versions declared by this library.
def safeExtGet(prop, fallback) {
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
}
//Upload android library to maven with javadoc and android sources
configurations {
deployerJars
}
//Creating sources with comments
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
//Put the androidSources and javadoc to the artifacts
artifacts {
archives androidSourcesJar
}
uploadArchives {
repositories {
mavenDeployer {
configuration = configurations.deployerJars
repository(url: mavenLocal().url)
}
}
}
android {
compileSdkVersion safeExtGet("compileSdkVersion", 29)
defaultConfig {
minSdkVersion safeExtGet("minSdkVersion", 21)
targetSdkVersion safeExtGet("targetSdkVersion", 29)
versionCode 14
versionName "5.4.0"
}
lintOptions {
abortOnError false
}
}
if (new File(rootProject.projectDir.parentFile, 'package.json').exists()) {
apply from: project(":unimodules-core").file("../unimodules-core.gradle")
} else {
throw new GradleException(
"'unimodules-core.gradle' was not found in the usual React Native dependency location. " +
"This package can only be used in such projects. Are you sure you've installed the dependencies properly?")
}

View File

@ -0,0 +1,5 @@
<manifest package="org.unimodules.interfaces.filesystem">
</manifest>

View File

@ -0,0 +1,9 @@
package org.unimodules.interfaces.filesystem;
import android.content.Context;
import java.util.EnumSet;
public interface FilePermissionModuleInterface {
EnumSet<Permission> getPathPermissions(Context context, String path);
}

View File

@ -0,0 +1,5 @@
package org.unimodules.interfaces.filesystem;
public enum Permission {
READ, WRITE,
}

View File

@ -0,0 +1 @@
module.exports = null;

View File

@ -0,0 +1,18 @@
require 'json'
package = JSON.parse(File.read(File.join(__dir__, '..', 'package.json')))
Pod::Spec.new do |s|
s.name = 'UMFileSystemInterface'
s.version = package['version']
s.summary = package['description']
s.description = package['description']
s.license = package['license']
s.author = package['author']
s.homepage = package['homepage']
s.platform = :ios, '10.0'
s.source = { git: 'https://github.com/expo/expo.git' }
s.source_files = 'UMFileSystemInterface/**/*.{h,m}'
s.preserve_paths = 'UMFileSystemInterface/**/*.{h,m}'
s.requires_arc = true
end

View File

@ -0,0 +1,9 @@
// Copyright 2018-present 650 Industries. All rights reserved.
#import <UMFileSystemInterface/UMFileSystemInterface.h>
@protocol UMFilePermissionModuleInterface
- (UMFileSystemPermissionFlags)getPathPermissions:(NSString *)path;
@end

View File

@ -0,0 +1,23 @@
// Copyright 2016-present 650 Industries. All rights reserved.
#import <Foundation/Foundation.h>
typedef NS_OPTIONS(unsigned int, UMFileSystemPermissionFlags) {
UMFileSystemPermissionNone = 0,
UMFileSystemPermissionRead = 1 << 1,
UMFileSystemPermissionWrite = 1 << 2,
};
// TODO: Maybe get rid of this interface in favor of EXFileSystemManager and private utilities classes
@protocol UMFileSystemInterface
@property (nonatomic, readonly) NSString *documentDirectory;
@property (nonatomic, readonly) NSString *cachesDirectory;
@property (nonatomic, readonly) NSString *bundleDirectory;
// TODO: Move permissionsForURI to UMFileSystemManagerInterface
- (UMFileSystemPermissionFlags)permissionsForURI:(NSURL *)uri;
- (NSString *)generatePathInDirectory:(NSString *)directory withExtension:(NSString *)extension;
- (BOOL)ensureDirExistsWithPath:(NSString *)path;
@end

View File

@ -0,0 +1,23 @@
{
"name": "unimodules-file-system-interface",
"version": "5.4.0",
"description": "Interface for file system modules",
"main": "index.js",
"keywords": [
"unimodules",
"file-system",
"file"
],
"repository": {
"type": "git",
"url": "https://github.com/expo/expo.git",
"directory": "packages/unimodules-file-system-interface"
},
"bugs": {
"url": "https://github.com/expo/expo/issues"
},
"author": "650 Industries, Inc.",
"license": "MIT",
"homepage": "https://github.com/expo/expo/tree/master/packages/unimodules-file-system-interface",
"gitHead": "bc6b4b3bc3cb5e44e477f145c72c07ed09588651"
}

View File

@ -0,0 +1,4 @@
{
"name": "unimodules-file-system-interface",
"platforms": ["ios", "android"]
}