react-native-nitro-unzip 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +107 -0
- package/android/CMakeLists.txt +16 -0
- package/android/build.gradle +70 -0
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/unzip/HybridUnzip.kt +29 -0
- package/android/src/main/java/com/margelo/nitro/unzip/HybridUnzipTask.kt +256 -0
- package/android/src/main/java/com/margelo/nitro/unzip/HybridZipTask.kt +157 -0
- package/ios/HybridUnzip.swift +33 -0
- package/ios/HybridUnzipTask.swift +238 -0
- package/ios/HybridZipTask.swift +266 -0
- package/lib/commonjs/index.js +31 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/specs/Unzip.nitro.js +6 -0
- package/lib/commonjs/specs/Unzip.nitro.js.map +1 -0
- package/lib/module/index.js +27 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/specs/Unzip.nitro.js +4 -0
- package/lib/module/specs/Unzip.nitro.js.map +1 -0
- package/lib/typescript/index.d.ts +24 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/specs/Unzip.nitro.d.ts +170 -0
- package/lib/typescript/specs/Unzip.nitro.d.ts.map +1 -0
- package/nitro.json +26 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/NitroUnzip+autolinking.cmake +85 -0
- package/nitrogen/generated/android/NitroUnzip+autolinking.gradle +27 -0
- package/nitrogen/generated/android/NitroUnzipOnLoad.cpp +71 -0
- package/nitrogen/generated/android/NitroUnzipOnLoad.hpp +34 -0
- package/nitrogen/generated/android/c++/JFunc_void_UnzipProgress.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_ZipProgress.hpp +77 -0
- package/nitrogen/generated/android/c++/JHybridUnzipSpec.cpp +82 -0
- package/nitrogen/generated/android/c++/JHybridUnzipSpec.hpp +69 -0
- package/nitrogen/generated/android/c++/JHybridUnzipTaskSpec.cpp +94 -0
- package/nitrogen/generated/android/c++/JHybridUnzipTaskSpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridZipTaskSpec.cpp +94 -0
- package/nitrogen/generated/android/c++/JHybridZipTaskSpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JUnzipProgress.hpp +73 -0
- package/nitrogen/generated/android/c++/JUnzipResult.hpp +73 -0
- package/nitrogen/generated/android/c++/JZipProgress.hpp +69 -0
- package/nitrogen/generated/android/c++/JZipResult.hpp +73 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unzip/Func_void_UnzipProgress.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unzip/Func_void_ZipProgress.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unzip/HybridUnzipSpec.kt +69 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unzip/HybridUnzipTaskSpec.kt +73 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unzip/HybridZipTaskSpec.kt +73 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unzip/NitroUnzipOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unzip/UnzipProgress.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unzip/UnzipResult.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unzip/ZipProgress.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/unzip/ZipResult.kt +50 -0
- package/nitrogen/generated/ios/NitroUnzip+autolinking.rb +60 -0
- package/nitrogen/generated/ios/NitroUnzip-Swift-Cxx-Bridge.cpp +107 -0
- package/nitrogen/generated/ios/NitroUnzip-Swift-Cxx-Bridge.hpp +270 -0
- package/nitrogen/generated/ios/NitroUnzip-Swift-Cxx-Umbrella.hpp +68 -0
- package/nitrogen/generated/ios/NitroUnzipAutolinking.mm +49 -0
- package/nitrogen/generated/ios/NitroUnzipAutolinking.swift +50 -0
- package/nitrogen/generated/ios/c++/HybridUnzipSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridUnzipSpecSwift.hpp +112 -0
- package/nitrogen/generated/ios/c++/HybridUnzipTaskSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridUnzipTaskSpecSwift.hpp +104 -0
- package/nitrogen/generated/ios/c++/HybridZipTaskSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridZipTaskSpecSwift.hpp +104 -0
- package/nitrogen/generated/ios/swift/Func_void_UnzipProgress.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_UnzipResult.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_ZipProgress.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_ZipResult.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridUnzipSpec.swift +58 -0
- package/nitrogen/generated/ios/swift/HybridUnzipSpec_cxx.swift +186 -0
- package/nitrogen/generated/ios/swift/HybridUnzipTaskSpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridUnzipTaskSpec_cxx.swift +177 -0
- package/nitrogen/generated/ios/swift/HybridZipTaskSpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridZipTaskSpec_cxx.swift +177 -0
- package/nitrogen/generated/ios/swift/UnzipProgress.swift +49 -0
- package/nitrogen/generated/ios/swift/UnzipResult.swift +49 -0
- package/nitrogen/generated/ios/swift/ZipProgress.swift +44 -0
- package/nitrogen/generated/ios/swift/ZipResult.swift +49 -0
- package/nitrogen/generated/shared/c++/HybridUnzipSpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridUnzipSpec.hpp +71 -0
- package/nitrogen/generated/shared/c++/HybridUnzipTaskSpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridUnzipTaskSpec.hpp +71 -0
- package/nitrogen/generated/shared/c++/HybridZipTaskSpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridZipTaskSpec.hpp +71 -0
- package/nitrogen/generated/shared/c++/UnzipProgress.hpp +99 -0
- package/nitrogen/generated/shared/c++/UnzipResult.hpp +99 -0
- package/nitrogen/generated/shared/c++/ZipProgress.hpp +95 -0
- package/nitrogen/generated/shared/c++/ZipResult.hpp +99 -0
- package/package.json +165 -0
- package/react-native-nitro-unzip.podspec +24 -0
- package/src/index.ts +36 -0
- package/src/specs/Unzip.nitro.ts +193 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import type { HybridObject } from "react-native-nitro-modules";
|
|
2
|
+
/**
|
|
3
|
+
* Progress information for an active extraction.
|
|
4
|
+
*/
|
|
5
|
+
export interface UnzipProgress {
|
|
6
|
+
/** Number of files extracted so far */
|
|
7
|
+
extractedFiles: number;
|
|
8
|
+
/** Total number of files in the archive */
|
|
9
|
+
totalFiles: number;
|
|
10
|
+
/** Extraction progress from 0.0 to 1.0 */
|
|
11
|
+
progress: number;
|
|
12
|
+
/** Current extraction speed in files per second */
|
|
13
|
+
speed: number;
|
|
14
|
+
/** Number of bytes processed so far */
|
|
15
|
+
processedBytes: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Result returned when an extraction completes successfully.
|
|
19
|
+
*/
|
|
20
|
+
export interface UnzipResult {
|
|
21
|
+
/** Whether extraction completed successfully */
|
|
22
|
+
success: boolean;
|
|
23
|
+
/** Total number of files extracted */
|
|
24
|
+
extractedFiles: number;
|
|
25
|
+
/** Total extraction duration in milliseconds */
|
|
26
|
+
duration: number;
|
|
27
|
+
/** Average extraction speed in files per second */
|
|
28
|
+
averageSpeed: number;
|
|
29
|
+
/** Total bytes extracted */
|
|
30
|
+
totalBytes: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A single extraction operation. Each call to `Unzip.extract()` returns
|
|
34
|
+
* an `UnzipTask` instance that can be observed and cancelled independently.
|
|
35
|
+
*
|
|
36
|
+
* This is a proper HybridObject — a native instance you interact with
|
|
37
|
+
* directly, not an opaque task ID.
|
|
38
|
+
*/
|
|
39
|
+
export interface UnzipTask extends HybridObject<{
|
|
40
|
+
ios: "swift";
|
|
41
|
+
android: "kotlin";
|
|
42
|
+
}> {
|
|
43
|
+
/** Unique identifier for this extraction task */
|
|
44
|
+
readonly taskId: string;
|
|
45
|
+
/**
|
|
46
|
+
* Register a callback to receive progress updates.
|
|
47
|
+
* Progress is throttled to ~1 update per second to avoid bridge overhead.
|
|
48
|
+
* The first file and final file always trigger a callback.
|
|
49
|
+
*/
|
|
50
|
+
onProgress(callback: (progress: UnzipProgress) => void): void;
|
|
51
|
+
/** Cancel this extraction. Safe to call multiple times. */
|
|
52
|
+
cancel(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Await the extraction result. Resolves when extraction completes,
|
|
55
|
+
* rejects if cancelled or an error occurs.
|
|
56
|
+
*/
|
|
57
|
+
await(): Promise<UnzipResult>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Progress information for an active zip creation.
|
|
61
|
+
*/
|
|
62
|
+
export interface ZipProgress {
|
|
63
|
+
/** Number of files compressed so far */
|
|
64
|
+
compressedFiles: number;
|
|
65
|
+
/** Total number of files to compress */
|
|
66
|
+
totalFiles: number;
|
|
67
|
+
/** Compression progress from 0.0 to 1.0 */
|
|
68
|
+
progress: number;
|
|
69
|
+
/** Current compression speed in files per second */
|
|
70
|
+
speed: number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Result returned when zip creation completes successfully.
|
|
74
|
+
*/
|
|
75
|
+
export interface ZipResult {
|
|
76
|
+
/** Whether compression completed successfully */
|
|
77
|
+
success: boolean;
|
|
78
|
+
/** Total number of files compressed */
|
|
79
|
+
compressedFiles: number;
|
|
80
|
+
/** Total compression duration in milliseconds */
|
|
81
|
+
duration: number;
|
|
82
|
+
/** Average compression speed in files per second */
|
|
83
|
+
averageSpeed: number;
|
|
84
|
+
/** Total bytes written to the zip file */
|
|
85
|
+
totalBytes: number;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* A single zip creation operation. Each call to `Unzip.zip()` returns
|
|
89
|
+
* a `ZipTask` instance that can be observed and cancelled independently.
|
|
90
|
+
*/
|
|
91
|
+
export interface ZipTask extends HybridObject<{
|
|
92
|
+
ios: "swift";
|
|
93
|
+
android: "kotlin";
|
|
94
|
+
}> {
|
|
95
|
+
/** Unique identifier for this zip task */
|
|
96
|
+
readonly taskId: string;
|
|
97
|
+
/**
|
|
98
|
+
* Register a callback to receive progress updates.
|
|
99
|
+
* Progress is throttled to ~1 update per second.
|
|
100
|
+
*/
|
|
101
|
+
onProgress(callback: (progress: ZipProgress) => void): void;
|
|
102
|
+
/** Cancel this zip creation. Safe to call multiple times. */
|
|
103
|
+
cancel(): void;
|
|
104
|
+
/**
|
|
105
|
+
* Await the zip result. Resolves when zip creation completes,
|
|
106
|
+
* rejects if cancelled or an error occurs.
|
|
107
|
+
*/
|
|
108
|
+
await(): Promise<ZipResult>;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Factory for creating extraction and compression tasks.
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* import { getUnzip } from 'react-native-nitro-unzip'
|
|
116
|
+
*
|
|
117
|
+
* const unzip = getUnzip()
|
|
118
|
+
*
|
|
119
|
+
* // Extract
|
|
120
|
+
* const task = unzip.extract('/path/to/archive.zip', '/path/to/output')
|
|
121
|
+
* task.onProgress((p) => console.log(`${(p.progress * 100).toFixed(0)}%`))
|
|
122
|
+
* const result = await task.await()
|
|
123
|
+
*
|
|
124
|
+
* // Extract with password
|
|
125
|
+
* const pwTask = unzip.extractWithPassword('/path/to/encrypted.zip', '/output', 'secret')
|
|
126
|
+
* const pwResult = await pwTask.await()
|
|
127
|
+
*
|
|
128
|
+
* // Create zip
|
|
129
|
+
* const zipTask = unzip.zip('/path/to/folder', '/path/to/output.zip')
|
|
130
|
+
* const zipResult = await zipTask.await()
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
export interface Unzip extends HybridObject<{
|
|
134
|
+
ios: "swift";
|
|
135
|
+
android: "kotlin";
|
|
136
|
+
}> {
|
|
137
|
+
/**
|
|
138
|
+
* Start extracting a ZIP archive to the given destination directory.
|
|
139
|
+
* Returns an `UnzipTask` instance for progress tracking and cancellation.
|
|
140
|
+
*
|
|
141
|
+
* @param zipPath - Absolute path to the ZIP file (file:// URIs accepted)
|
|
142
|
+
* @param destinationPath - Absolute path to extract into (created if missing)
|
|
143
|
+
*/
|
|
144
|
+
extract(zipPath: string, destinationPath: string): UnzipTask;
|
|
145
|
+
/**
|
|
146
|
+
* Extract a password-protected ZIP archive.
|
|
147
|
+
*
|
|
148
|
+
* @param zipPath - Absolute path to the ZIP file
|
|
149
|
+
* @param destinationPath - Absolute path to extract into
|
|
150
|
+
* @param password - Password for the encrypted archive
|
|
151
|
+
*/
|
|
152
|
+
extractWithPassword(zipPath: string, destinationPath: string, password: string): UnzipTask;
|
|
153
|
+
/**
|
|
154
|
+
* Create a ZIP archive from a directory.
|
|
155
|
+
*
|
|
156
|
+
* @param sourcePath - Absolute path to the directory to compress
|
|
157
|
+
* @param destinationZipPath - Absolute path for the output ZIP file
|
|
158
|
+
*/
|
|
159
|
+
zip(sourcePath: string, destinationZipPath: string): ZipTask;
|
|
160
|
+
/**
|
|
161
|
+
* Create a password-protected ZIP archive from a directory.
|
|
162
|
+
* Uses AES-256 encryption on Android, standard zip encryption on iOS.
|
|
163
|
+
*
|
|
164
|
+
* @param sourcePath - Absolute path to the directory to compress
|
|
165
|
+
* @param destinationZipPath - Absolute path for the output ZIP file
|
|
166
|
+
* @param password - Password to protect the archive
|
|
167
|
+
*/
|
|
168
|
+
zipWithPassword(sourcePath: string, destinationZipPath: string, password: string): ZipTask;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=Unzip.nitro.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Unzip.nitro.d.ts","sourceRoot":"","sources":["../../../src/specs/Unzip.nitro.ts"],"names":[],"mappings":"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"}
|
package/nitro.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://nitro.margelo.com/nitro.schema.json",
|
|
3
|
+
"cxxNamespace": ["unzip"],
|
|
4
|
+
"ios": {
|
|
5
|
+
"iosModuleName": "NitroUnzip"
|
|
6
|
+
},
|
|
7
|
+
"android": {
|
|
8
|
+
"androidNamespace": ["unzip"],
|
|
9
|
+
"androidCxxLibName": "NitroUnzip"
|
|
10
|
+
},
|
|
11
|
+
"autolinking": {
|
|
12
|
+
"Unzip": {
|
|
13
|
+
"swift": "HybridUnzip",
|
|
14
|
+
"kotlin": "HybridUnzip"
|
|
15
|
+
},
|
|
16
|
+
"UnzipTask": {
|
|
17
|
+
"swift": "HybridUnzipTask",
|
|
18
|
+
"kotlin": "HybridUnzipTask"
|
|
19
|
+
},
|
|
20
|
+
"ZipTask": {
|
|
21
|
+
"swift": "HybridZipTask",
|
|
22
|
+
"kotlin": "HybridZipTask"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"ignorePaths": ["node_modules", "lib", "example"]
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
** linguist-generated=true
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
#
|
|
2
|
+
# NitroUnzip+autolinking.cmake
|
|
3
|
+
# This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
# https://github.com/mrousavy/nitro
|
|
5
|
+
# Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
#
|
|
7
|
+
|
|
8
|
+
# This is a CMake file that adds all files generated by Nitrogen
|
|
9
|
+
# to the current CMake project.
|
|
10
|
+
#
|
|
11
|
+
# To use it, add this to your CMakeLists.txt:
|
|
12
|
+
# ```cmake
|
|
13
|
+
# include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/NitroUnzip+autolinking.cmake)
|
|
14
|
+
# ```
|
|
15
|
+
|
|
16
|
+
# Define a flag to check if we are building properly
|
|
17
|
+
add_definitions(-DBUILDING_NITROUNZIP_WITH_GENERATED_CMAKE_PROJECT)
|
|
18
|
+
|
|
19
|
+
# Enable Raw Props parsing in react-native (for Nitro Views)
|
|
20
|
+
add_definitions(-DRN_SERIALIZABLE_STATE)
|
|
21
|
+
|
|
22
|
+
# Add all headers that were generated by Nitrogen
|
|
23
|
+
include_directories(
|
|
24
|
+
"../nitrogen/generated/shared/c++"
|
|
25
|
+
"../nitrogen/generated/android/c++"
|
|
26
|
+
"../nitrogen/generated/android/"
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
# Add all .cpp sources that were generated by Nitrogen
|
|
30
|
+
target_sources(
|
|
31
|
+
# CMake project name (Android C++ library name)
|
|
32
|
+
NitroUnzip PRIVATE
|
|
33
|
+
# Autolinking Setup
|
|
34
|
+
../nitrogen/generated/android/NitroUnzipOnLoad.cpp
|
|
35
|
+
# Shared Nitrogen C++ sources
|
|
36
|
+
../nitrogen/generated/shared/c++/HybridUnzipTaskSpec.cpp
|
|
37
|
+
../nitrogen/generated/shared/c++/HybridZipTaskSpec.cpp
|
|
38
|
+
../nitrogen/generated/shared/c++/HybridUnzipSpec.cpp
|
|
39
|
+
# Android-specific Nitrogen C++ sources
|
|
40
|
+
../nitrogen/generated/android/c++/JHybridUnzipTaskSpec.cpp
|
|
41
|
+
../nitrogen/generated/android/c++/JHybridZipTaskSpec.cpp
|
|
42
|
+
../nitrogen/generated/android/c++/JHybridUnzipSpec.cpp
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
# From node_modules/react-native/ReactAndroid/cmake-utils/folly-flags.cmake
|
|
46
|
+
# Used in node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake
|
|
47
|
+
target_compile_definitions(
|
|
48
|
+
NitroUnzip PRIVATE
|
|
49
|
+
-DFOLLY_NO_CONFIG=1
|
|
50
|
+
-DFOLLY_HAVE_CLOCK_GETTIME=1
|
|
51
|
+
-DFOLLY_USE_LIBCPP=1
|
|
52
|
+
-DFOLLY_CFG_NO_COROUTINES=1
|
|
53
|
+
-DFOLLY_MOBILE=1
|
|
54
|
+
-DFOLLY_HAVE_RECVMMSG=1
|
|
55
|
+
-DFOLLY_HAVE_PTHREAD=1
|
|
56
|
+
# Once we target android-23 above, we can comment
|
|
57
|
+
# the following line. NDK uses GNU style stderror_r() after API 23.
|
|
58
|
+
-DFOLLY_HAVE_XSI_STRERROR_R=1
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
# Add all libraries required by the generated specs
|
|
62
|
+
find_package(fbjni REQUIRED) # <-- Used for communication between Java <-> C++
|
|
63
|
+
find_package(ReactAndroid REQUIRED) # <-- Used to set up React Native bindings (e.g. CallInvoker/TurboModule)
|
|
64
|
+
find_package(react-native-nitro-modules REQUIRED) # <-- Used to create all HybridObjects and use the Nitro core library
|
|
65
|
+
|
|
66
|
+
# Link all libraries together
|
|
67
|
+
target_link_libraries(
|
|
68
|
+
NitroUnzip
|
|
69
|
+
fbjni::fbjni # <-- Facebook C++ JNI helpers
|
|
70
|
+
ReactAndroid::jsi # <-- RN: JSI
|
|
71
|
+
react-native-nitro-modules::NitroModules # <-- NitroModules Core :)
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
# Link react-native (different prefab between RN 0.75 and RN 0.76)
|
|
75
|
+
if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
|
|
76
|
+
target_link_libraries(
|
|
77
|
+
NitroUnzip
|
|
78
|
+
ReactAndroid::reactnative # <-- RN: Native Modules umbrella prefab
|
|
79
|
+
)
|
|
80
|
+
else()
|
|
81
|
+
target_link_libraries(
|
|
82
|
+
NitroUnzip
|
|
83
|
+
ReactAndroid::react_nativemodule_core # <-- RN: TurboModules Core
|
|
84
|
+
)
|
|
85
|
+
endif()
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// NitroUnzip+autolinking.gradle
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
/// This is a Gradle file that adds all files generated by Nitrogen
|
|
9
|
+
/// to the current Gradle project.
|
|
10
|
+
///
|
|
11
|
+
/// To use it, add this to your build.gradle:
|
|
12
|
+
/// ```gradle
|
|
13
|
+
/// apply from: '../nitrogen/generated/android/NitroUnzip+autolinking.gradle'
|
|
14
|
+
/// ```
|
|
15
|
+
|
|
16
|
+
logger.warn("[NitroModules] 🔥 NitroUnzip is boosted by nitro!")
|
|
17
|
+
|
|
18
|
+
android {
|
|
19
|
+
sourceSets {
|
|
20
|
+
main {
|
|
21
|
+
java.srcDirs += [
|
|
22
|
+
// Nitrogen files
|
|
23
|
+
"${project.projectDir}/../nitrogen/generated/android/kotlin"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// NitroUnzipOnLoad.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#ifndef BUILDING_NITROUNZIP_WITH_GENERATED_CMAKE_PROJECT
|
|
9
|
+
#error NitroUnzipOnLoad.cpp is not being built with the autogenerated CMakeLists.txt project. Is a different CMakeLists.txt building this?
|
|
10
|
+
#endif
|
|
11
|
+
|
|
12
|
+
#include "NitroUnzipOnLoad.hpp"
|
|
13
|
+
|
|
14
|
+
#include <jni.h>
|
|
15
|
+
#include <fbjni/fbjni.h>
|
|
16
|
+
#include <NitroModules/HybridObjectRegistry.hpp>
|
|
17
|
+
|
|
18
|
+
#include "JHybridUnzipTaskSpec.hpp"
|
|
19
|
+
#include "JFunc_void_UnzipProgress.hpp"
|
|
20
|
+
#include "JHybridZipTaskSpec.hpp"
|
|
21
|
+
#include "JFunc_void_ZipProgress.hpp"
|
|
22
|
+
#include "JHybridUnzipSpec.hpp"
|
|
23
|
+
#include <NitroModules/DefaultConstructableObject.hpp>
|
|
24
|
+
|
|
25
|
+
namespace margelo::nitro::unzip {
|
|
26
|
+
|
|
27
|
+
int initialize(JavaVM* vm) {
|
|
28
|
+
return facebook::jni::initialize(vm, []() {
|
|
29
|
+
::margelo::nitro::unzip::registerAllNatives();
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
void registerAllNatives() {
|
|
34
|
+
using namespace margelo::nitro;
|
|
35
|
+
using namespace margelo::nitro::unzip;
|
|
36
|
+
|
|
37
|
+
// Register native JNI methods
|
|
38
|
+
margelo::nitro::unzip::JHybridUnzipTaskSpec::registerNatives();
|
|
39
|
+
margelo::nitro::unzip::JFunc_void_UnzipProgress_cxx::registerNatives();
|
|
40
|
+
margelo::nitro::unzip::JHybridZipTaskSpec::registerNatives();
|
|
41
|
+
margelo::nitro::unzip::JFunc_void_ZipProgress_cxx::registerNatives();
|
|
42
|
+
margelo::nitro::unzip::JHybridUnzipSpec::registerNatives();
|
|
43
|
+
|
|
44
|
+
// Register Nitro Hybrid Objects
|
|
45
|
+
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
46
|
+
"Unzip",
|
|
47
|
+
[]() -> std::shared_ptr<HybridObject> {
|
|
48
|
+
static DefaultConstructableObject<JHybridUnzipSpec::javaobject> object("com/margelo/nitro/unzip/HybridUnzip");
|
|
49
|
+
auto instance = object.create();
|
|
50
|
+
return instance->cthis()->shared();
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
54
|
+
"UnzipTask",
|
|
55
|
+
[]() -> std::shared_ptr<HybridObject> {
|
|
56
|
+
static DefaultConstructableObject<JHybridUnzipTaskSpec::javaobject> object("com/margelo/nitro/unzip/HybridUnzipTask");
|
|
57
|
+
auto instance = object.create();
|
|
58
|
+
return instance->cthis()->shared();
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
62
|
+
"ZipTask",
|
|
63
|
+
[]() -> std::shared_ptr<HybridObject> {
|
|
64
|
+
static DefaultConstructableObject<JHybridZipTaskSpec::javaobject> object("com/margelo/nitro/unzip/HybridZipTask");
|
|
65
|
+
auto instance = object.create();
|
|
66
|
+
return instance->cthis()->shared();
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
} // namespace margelo::nitro::unzip
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// NitroUnzipOnLoad.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include <jni.h>
|
|
9
|
+
#include <functional>
|
|
10
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
11
|
+
|
|
12
|
+
namespace margelo::nitro::unzip {
|
|
13
|
+
|
|
14
|
+
[[deprecated("Use registerNatives() instead.")]]
|
|
15
|
+
int initialize(JavaVM* vm);
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Register the native (C++) part of NitroUnzip, and autolinks all Hybrid Objects.
|
|
19
|
+
* Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`),
|
|
20
|
+
* inside a `facebook::jni::initialize(vm, ...)` call.
|
|
21
|
+
* Example:
|
|
22
|
+
* ```cpp (cpp-adapter.cpp)
|
|
23
|
+
* JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
|
|
24
|
+
* return facebook::jni::initialize(vm, []() {
|
|
25
|
+
* // register all NitroUnzip HybridObjects
|
|
26
|
+
* margelo::nitro::unzip::registerNatives();
|
|
27
|
+
* // any other custom registrations go here.
|
|
28
|
+
* });
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
void registerAllNatives();
|
|
33
|
+
|
|
34
|
+
} // namespace margelo::nitro::unzip
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JFunc_void_UnzipProgress.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include <functional>
|
|
12
|
+
|
|
13
|
+
#include "UnzipProgress.hpp"
|
|
14
|
+
#include <functional>
|
|
15
|
+
#include <NitroModules/JNICallable.hpp>
|
|
16
|
+
#include "JUnzipProgress.hpp"
|
|
17
|
+
|
|
18
|
+
namespace margelo::nitro::unzip {
|
|
19
|
+
|
|
20
|
+
using namespace facebook;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Represents the Java/Kotlin callback `(progress: UnzipProgress) -> Unit`.
|
|
24
|
+
* This can be passed around between C++ and Java/Kotlin.
|
|
25
|
+
*/
|
|
26
|
+
struct JFunc_void_UnzipProgress: public jni::JavaClass<JFunc_void_UnzipProgress> {
|
|
27
|
+
public:
|
|
28
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/unzip/Func_void_UnzipProgress;";
|
|
29
|
+
|
|
30
|
+
public:
|
|
31
|
+
/**
|
|
32
|
+
* Invokes the function this `JFunc_void_UnzipProgress` instance holds through JNI.
|
|
33
|
+
*/
|
|
34
|
+
void invoke(const UnzipProgress& progress) const {
|
|
35
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JUnzipProgress> /* progress */)>("invoke");
|
|
36
|
+
method(self(), JUnzipProgress::fromCpp(progress));
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* An implementation of Func_void_UnzipProgress that is backed by a C++ implementation (using `std::function<...>`)
|
|
42
|
+
*/
|
|
43
|
+
class JFunc_void_UnzipProgress_cxx final: public jni::HybridClass<JFunc_void_UnzipProgress_cxx, JFunc_void_UnzipProgress> {
|
|
44
|
+
public:
|
|
45
|
+
static jni::local_ref<JFunc_void_UnzipProgress::javaobject> fromCpp(const std::function<void(const UnzipProgress& /* progress */)>& func) {
|
|
46
|
+
return JFunc_void_UnzipProgress_cxx::newObjectCxxArgs(func);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public:
|
|
50
|
+
/**
|
|
51
|
+
* Invokes the C++ `std::function<...>` this `JFunc_void_UnzipProgress_cxx` instance holds.
|
|
52
|
+
*/
|
|
53
|
+
void invoke_cxx(jni::alias_ref<JUnzipProgress> progress) {
|
|
54
|
+
_func(progress->toCpp());
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public:
|
|
58
|
+
[[nodiscard]]
|
|
59
|
+
inline const std::function<void(const UnzipProgress& /* progress */)>& getFunction() const {
|
|
60
|
+
return _func;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public:
|
|
64
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/unzip/Func_void_UnzipProgress_cxx;";
|
|
65
|
+
static void registerNatives() {
|
|
66
|
+
registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_UnzipProgress_cxx::invoke_cxx)});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
private:
|
|
70
|
+
explicit JFunc_void_UnzipProgress_cxx(const std::function<void(const UnzipProgress& /* progress */)>& func): _func(func) { }
|
|
71
|
+
|
|
72
|
+
private:
|
|
73
|
+
friend HybridBase;
|
|
74
|
+
std::function<void(const UnzipProgress& /* progress */)> _func;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
} // namespace margelo::nitro::unzip
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JFunc_void_ZipProgress.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include <functional>
|
|
12
|
+
|
|
13
|
+
#include "ZipProgress.hpp"
|
|
14
|
+
#include <functional>
|
|
15
|
+
#include <NitroModules/JNICallable.hpp>
|
|
16
|
+
#include "JZipProgress.hpp"
|
|
17
|
+
|
|
18
|
+
namespace margelo::nitro::unzip {
|
|
19
|
+
|
|
20
|
+
using namespace facebook;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Represents the Java/Kotlin callback `(progress: ZipProgress) -> Unit`.
|
|
24
|
+
* This can be passed around between C++ and Java/Kotlin.
|
|
25
|
+
*/
|
|
26
|
+
struct JFunc_void_ZipProgress: public jni::JavaClass<JFunc_void_ZipProgress> {
|
|
27
|
+
public:
|
|
28
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/unzip/Func_void_ZipProgress;";
|
|
29
|
+
|
|
30
|
+
public:
|
|
31
|
+
/**
|
|
32
|
+
* Invokes the function this `JFunc_void_ZipProgress` instance holds through JNI.
|
|
33
|
+
*/
|
|
34
|
+
void invoke(const ZipProgress& progress) const {
|
|
35
|
+
static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JZipProgress> /* progress */)>("invoke");
|
|
36
|
+
method(self(), JZipProgress::fromCpp(progress));
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* An implementation of Func_void_ZipProgress that is backed by a C++ implementation (using `std::function<...>`)
|
|
42
|
+
*/
|
|
43
|
+
class JFunc_void_ZipProgress_cxx final: public jni::HybridClass<JFunc_void_ZipProgress_cxx, JFunc_void_ZipProgress> {
|
|
44
|
+
public:
|
|
45
|
+
static jni::local_ref<JFunc_void_ZipProgress::javaobject> fromCpp(const std::function<void(const ZipProgress& /* progress */)>& func) {
|
|
46
|
+
return JFunc_void_ZipProgress_cxx::newObjectCxxArgs(func);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public:
|
|
50
|
+
/**
|
|
51
|
+
* Invokes the C++ `std::function<...>` this `JFunc_void_ZipProgress_cxx` instance holds.
|
|
52
|
+
*/
|
|
53
|
+
void invoke_cxx(jni::alias_ref<JZipProgress> progress) {
|
|
54
|
+
_func(progress->toCpp());
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public:
|
|
58
|
+
[[nodiscard]]
|
|
59
|
+
inline const std::function<void(const ZipProgress& /* progress */)>& getFunction() const {
|
|
60
|
+
return _func;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public:
|
|
64
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/unzip/Func_void_ZipProgress_cxx;";
|
|
65
|
+
static void registerNatives() {
|
|
66
|
+
registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_ZipProgress_cxx::invoke_cxx)});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
private:
|
|
70
|
+
explicit JFunc_void_ZipProgress_cxx(const std::function<void(const ZipProgress& /* progress */)>& func): _func(func) { }
|
|
71
|
+
|
|
72
|
+
private:
|
|
73
|
+
friend HybridBase;
|
|
74
|
+
std::function<void(const ZipProgress& /* progress */)> _func;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
} // namespace margelo::nitro::unzip
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JHybridUnzipSpec.cpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#include "JHybridUnzipSpec.hpp"
|
|
9
|
+
|
|
10
|
+
// Forward declaration of `HybridUnzipTaskSpec` to properly resolve imports.
|
|
11
|
+
namespace margelo::nitro::unzip { class HybridUnzipTaskSpec; }
|
|
12
|
+
// Forward declaration of `HybridZipTaskSpec` to properly resolve imports.
|
|
13
|
+
namespace margelo::nitro::unzip { class HybridZipTaskSpec; }
|
|
14
|
+
|
|
15
|
+
#include <memory>
|
|
16
|
+
#include "HybridUnzipTaskSpec.hpp"
|
|
17
|
+
#include "JHybridUnzipTaskSpec.hpp"
|
|
18
|
+
#include "HybridZipTaskSpec.hpp"
|
|
19
|
+
#include "JHybridZipTaskSpec.hpp"
|
|
20
|
+
#include <string>
|
|
21
|
+
|
|
22
|
+
namespace margelo::nitro::unzip {
|
|
23
|
+
|
|
24
|
+
jni::local_ref<JHybridUnzipSpec::jhybriddata> JHybridUnzipSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
25
|
+
return makeCxxInstance(jThis);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
void JHybridUnzipSpec::registerNatives() {
|
|
29
|
+
registerHybrid({
|
|
30
|
+
makeNativeMethod("initHybrid", JHybridUnzipSpec::initHybrid),
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
size_t JHybridUnzipSpec::getExternalMemorySize() noexcept {
|
|
35
|
+
static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
|
|
36
|
+
return method(_javaPart);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
bool JHybridUnzipSpec::equals(const std::shared_ptr<HybridObject>& other) {
|
|
40
|
+
if (auto otherCast = std::dynamic_pointer_cast<JHybridUnzipSpec>(other)) {
|
|
41
|
+
return _javaPart == otherCast->_javaPart;
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
void JHybridUnzipSpec::dispose() noexcept {
|
|
47
|
+
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
48
|
+
method(_javaPart);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
std::string JHybridUnzipSpec::toString() {
|
|
52
|
+
static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
|
|
53
|
+
auto javaString = method(_javaPart);
|
|
54
|
+
return javaString->toStdString();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Properties
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
// Methods
|
|
61
|
+
std::shared_ptr<HybridUnzipTaskSpec> JHybridUnzipSpec::extract(const std::string& zipPath, const std::string& destinationPath) {
|
|
62
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JHybridUnzipTaskSpec::javaobject>(jni::alias_ref<jni::JString> /* zipPath */, jni::alias_ref<jni::JString> /* destinationPath */)>("extract");
|
|
63
|
+
auto __result = method(_javaPart, jni::make_jstring(zipPath), jni::make_jstring(destinationPath));
|
|
64
|
+
return __result->cthis()->shared_cast<JHybridUnzipTaskSpec>();
|
|
65
|
+
}
|
|
66
|
+
std::shared_ptr<HybridUnzipTaskSpec> JHybridUnzipSpec::extractWithPassword(const std::string& zipPath, const std::string& destinationPath, const std::string& password) {
|
|
67
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JHybridUnzipTaskSpec::javaobject>(jni::alias_ref<jni::JString> /* zipPath */, jni::alias_ref<jni::JString> /* destinationPath */, jni::alias_ref<jni::JString> /* password */)>("extractWithPassword");
|
|
68
|
+
auto __result = method(_javaPart, jni::make_jstring(zipPath), jni::make_jstring(destinationPath), jni::make_jstring(password));
|
|
69
|
+
return __result->cthis()->shared_cast<JHybridUnzipTaskSpec>();
|
|
70
|
+
}
|
|
71
|
+
std::shared_ptr<HybridZipTaskSpec> JHybridUnzipSpec::zip(const std::string& sourcePath, const std::string& destinationZipPath) {
|
|
72
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JHybridZipTaskSpec::javaobject>(jni::alias_ref<jni::JString> /* sourcePath */, jni::alias_ref<jni::JString> /* destinationZipPath */)>("zip");
|
|
73
|
+
auto __result = method(_javaPart, jni::make_jstring(sourcePath), jni::make_jstring(destinationZipPath));
|
|
74
|
+
return __result->cthis()->shared_cast<JHybridZipTaskSpec>();
|
|
75
|
+
}
|
|
76
|
+
std::shared_ptr<HybridZipTaskSpec> JHybridUnzipSpec::zipWithPassword(const std::string& sourcePath, const std::string& destinationZipPath, const std::string& password) {
|
|
77
|
+
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JHybridZipTaskSpec::javaobject>(jni::alias_ref<jni::JString> /* sourcePath */, jni::alias_ref<jni::JString> /* destinationZipPath */, jni::alias_ref<jni::JString> /* password */)>("zipWithPassword");
|
|
78
|
+
auto __result = method(_javaPart, jni::make_jstring(sourcePath), jni::make_jstring(destinationZipPath), jni::make_jstring(password));
|
|
79
|
+
return __result->cthis()->shared_cast<JHybridZipTaskSpec>();
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
} // namespace margelo::nitro::unzip
|