From 7358ecd627d7de2df58b75e11132e39019169e45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jim=C3=A9nez=20Rivera?= Date: Thu, 7 Aug 2025 12:46:25 +0200 Subject: [PATCH 1/2] Simplify node-win --- .github/workflows/check-pr-size.yml | 2 +- .github/workflows/publish-npm.yml | 1 + .github/workflows/stale-prs.yml | 1 + binding.gyp | 1 - dist/addon.node | Bin 668160 -> 668160 bytes include/sync_root_interface/Utilities.h | 18 --- include/types/ProcessTypes.h | 22 --- native-src/main.cpp | 8 - native-src/sync_root_interface/Utilities.cpp | 141 ------------------ .../callbacks/FetchData/FetchData.cpp | 33 ---- native-src/virtual_drive/Wrappers.cpp | 57 +------ package.json | 9 +- 12 files changed, 5 insertions(+), 288 deletions(-) delete mode 100644 include/types/ProcessTypes.h diff --git a/.github/workflows/check-pr-size.yml b/.github/workflows/check-pr-size.yml index c9291779..25d9a7e0 100644 --- a/.github/workflows/check-pr-size.yml +++ b/.github/workflows/check-pr-size.yml @@ -11,7 +11,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml index 810fcce4..ed8bddbe 100644 --- a/.github/workflows/publish-npm.yml +++ b/.github/workflows/publish-npm.yml @@ -7,6 +7,7 @@ on: jobs: publish_npm: runs-on: ubuntu-latest + timeout-minutes: 1 permissions: contents: read diff --git a/.github/workflows/stale-prs.yml b/.github/workflows/stale-prs.yml index 4c77c94c..25372656 100644 --- a/.github/workflows/stale-prs.yml +++ b/.github/workflows/stale-prs.yml @@ -12,6 +12,7 @@ permissions: jobs: stale_prs: runs-on: ubuntu-latest + timeout-minutes: 1 steps: - uses: actions/stale@v9 diff --git a/binding.gyp b/binding.gyp index f03368d2..60f1d9c4 100644 --- a/binding.gyp +++ b/binding.gyp @@ -34,7 +34,6 @@ "include/placeholders_interface", "include/sync_root_interface", "include/sync_root_interface/callbacks", - "include/types", "include/virtual_drive" ], "libraries": [ diff --git a/dist/addon.node b/dist/addon.node index 030c589c3dc303a5d982ab120ea984fb43fc6dc4..5a6f75cc44f6868052e90bc5308a6db5c2016cea 100644 GIT binary patch delta 26999 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

K+gjz;?EO< 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 -#include "ProcessTypes.h" class Utilities { public: static void AddFolderToSearchIndexer(_In_ LPCWSTR folder); static void ApplyTransferStateToFile(_In_ LPCWSTR fullPath, _In_ CF_CALLBACK_INFO &callbackInfo, UINT64 total, UINT64 completed); - static void ApplyCustomStateToPlaceholderFile(_In_ LPCWSTR path, _In_ LPCWSTR filename, _In_ winrt::StorageProviderItemProperty &prop); - static void ApplyCustomOverwriteStateToPlaceholderFile(_In_ LPCWSTR path, _In_ LPCWSTR filename, _In_ winrt::StorageProviderItemProperty &prop); - static std::wstring ProcessErrorNameToWString(_In_ ProcessErrorName error); - static std::wstring FileOperationErrorToWString(_In_ FileOperationError error); - static bool IsTemporaryFile(const std::wstring &fullPath); static std::wstring GetErrorMessageCloudFiles(HRESULT hr); - static void ClearTransferProperties(_In_ LPCWSTR fullPath); static winrt::com_array ConvertSidToStringSid(_In_ PSID sid) @@ -45,17 +38,6 @@ class Utilities return largeInteger; } - inline static CF_OPERATION_INFO ToOperationInfo( - _In_ CF_CALLBACK_INFO const *info, - _In_ CF_OPERATION_TYPE operationType) - { - return CF_OPERATION_INFO{ - sizeof(CF_OPERATION_INFO), - operationType, - info->ConnectionKey, - info->TransferKey}; - } - static DWORD convertSizeToDWORD(size_t &convertVar) { if (convertVar > UINT_MAX) diff --git a/include/types/ProcessTypes.h b/include/types/ProcessTypes.h deleted file mode 100644 index 5a6dba3e..00000000 --- a/include/types/ProcessTypes.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once - -enum class ProcessErrorName -{ - NOT_EXISTS, - NO_PERMISSION, - NO_INTERNET, - NO_REMOTE_CONNECTION, - BAD_RESPONSE, - EMPTY_FILE, - FILE_TOO_BIG, - FILE_NON_EXTENSION, - UNKNOWN, -}; - -enum class FileOperationError -{ - UPLOAD_ERROR, - DOWNLOAD_ERROR, - DELETE_ERROR, - METADATA_READ_ERROR -}; \ No newline at end of file diff --git a/native-src/main.cpp b/native-src/main.cpp index 51b20597..2c1b58e9 100644 --- a/native-src/main.cpp +++ b/native-src/main.cpp @@ -3,7 +3,6 @@ napi_value init(napi_env env, napi_value exports) { - // CreatePlaceholderFileWrapper napi_property_descriptor desc = { "createPlaceholderFile", nullptr, @@ -21,7 +20,6 @@ napi_value init(napi_env env, napi_value exports) return nullptr; } - // UnregisterSyncRootWrapper napi_property_descriptor unregisterDesc = { "unregisterSyncRoot", nullptr, @@ -39,7 +37,6 @@ napi_value init(napi_env env, napi_value exports) return nullptr; } - // RegisterSyncRootWrapper napi_property_descriptor registerSyncRootDesc = { "registerSyncRoot", nullptr, @@ -57,7 +54,6 @@ napi_value init(napi_env env, napi_value exports) return nullptr; } - // GetRegisteredSyncRootsWrapper napi_property_descriptor getRegisteredSyncRootsRootDesc = { "getRegisteredSyncRoots", nullptr, @@ -75,7 +71,6 @@ napi_value init(napi_env env, napi_value exports) return nullptr; } - // ConnectSyncRootWrapper napi_property_descriptor connectSyncRootDesc = { "connectSyncRoot", nullptr, @@ -110,7 +105,6 @@ napi_value init(napi_env env, napi_value exports) return nullptr; } - // disconection napi_property_descriptor disconnectDesc = { "disconnectSyncRoot", nullptr, @@ -247,7 +241,6 @@ napi_value init(napi_env env, napi_value exports) return nullptr; } - // Define HydrateFile wrapper napi_property_descriptor hydrateFileDesc = { "hydrateFile", nullptr, @@ -265,7 +258,6 @@ napi_value init(napi_env env, napi_value exports) return nullptr; } - // Define DehydrateFile wrapper napi_property_descriptor dehydrateFileDesc = { "dehydrateFile", nullptr, diff --git a/native-src/sync_root_interface/Utilities.cpp b/native-src/sync_root_interface/Utilities.cpp index fc38fdab..b0c1a00c 100644 --- a/native-src/sync_root_interface/Utilities.cpp +++ b/native-src/sync_root_interface/Utilities.cpp @@ -3,57 +3,11 @@ #include #include #include "Utilities.h" -#include #include #define MSSEARCH_INDEX L"SystemIndex" DEFINE_PROPERTYKEY(PKEY_StorageProviderTransferProgress, 0xE77E90DF, 0x6271, 0x4F5B, 0x83, 0x4F, 0x2D, 0xD1, 0xF2, 0x45, 0xDD, 0xA4, 4); -void Utilities::ApplyCustomStateToPlaceholderFile(LPCWSTR path, LPCWSTR filename, winrt::StorageProviderItemProperty &prop) -{ - try - { - std::wstring fullPath(path); - fullPath.append(L"\\"); - fullPath.append(filename); - - // wprintf(L"Full path: %s\n", fullPath.c_str()); - winrt::IStorageItem item = winrt::StorageFile::GetFileFromPathAsync(fullPath).get(); - winrt::StorageProviderItemProperties::SetAsync(item, {prop}).get(); - } - catch (const winrt::hresult_error &error) - { - wprintf(L"Failed to set custom state. Error: %s (Code: %08x)\n", error.message().c_str(), error.code()); - } - catch (...) - { - wprintf(L"Failed to set custom state with unknown error %08x\n", static_cast(winrt::to_hresult())); - } -} - -void Utilities::ApplyCustomOverwriteStateToPlaceholderFile(LPCWSTR path, LPCWSTR filename, winrt::StorageProviderItemProperty &prop) -{ - try - { - std::wstring fullPath(path); - fullPath.append(L"\\"); - fullPath.append(filename); - - // wprintf(L"Full path: %s\n", fullPath.c_str()); - winrt::IStorageItem item = winrt::StorageFile::GetFileFromPathAsync(fullPath).get(); - winrt::StorageProviderItemProperties::SetAsync(item, {}).get(); - winrt::StorageProviderItemProperties::SetAsync(item, {prop}).get(); - } - catch (const winrt::hresult_error &error) - { - wprintf(L"Failed to set custom state. Error: %s (Code: %08x)\n", error.message().c_str(), error.code()); - } - catch (...) - { - wprintf(L"Failed to set custom state with unknown error %08x\n", static_cast(winrt::to_hresult())); - } -} - void Utilities::AddFolderToSearchIndexer(_In_ PCWSTR folder) { HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); @@ -88,26 +42,6 @@ void Utilities::AddFolderToSearchIndexer(_In_ PCWSTR folder) } } -void Utilities::ClearTransferProperties(PCWSTR fullPath) -{ - winrt::com_ptr item; - winrt::com_ptrstore; - - if (FAILED(SHCreateItemFromParsingName(fullPath, nullptr, - __uuidof(item), item.put_void()))) - return; - - if (FAILED(item->GetPropertyStore(GPS_READWRITE | GPS_VOLATILEPROPERTIESONLY, - __uuidof(store), store.put_void()))) - return; - - PROPVARIANT empty; PropVariantInit(&empty); - store->SetValue(PKEY_StorageProviderTransferProgress, empty); - store->SetValue(PKEY_SyncTransferStatus, empty); - store->Commit(); -} - - void Utilities::ApplyTransferStateToFile(_In_ PCWSTR fullPath, _In_ CF_CALLBACK_INFO &callbackInfo, UINT64 total, UINT64 completed) { Logger::getInstance().log("ApplyTransferStateToFile", LogLevel::INFO); @@ -211,78 +145,3 @@ std::wstring Utilities::GetErrorMessageCloudFiles(HRESULT hr) { LocalFree(errorMsg); return message; } - - -bool Utilities::IsTemporaryFile(const std::wstring &fullPath) -{ - size_t fileNameStart = fullPath.find_last_of(L'\\') + 1; - if (fullPath.size() >= fileNameStart + 2 && fullPath.compare(fileNameStart, 2, L"~$") == 0) - { - return true; - } - - std::array tempExtensions = { - L".tmp", - L".laccdb", - L".ldb", - L".bak", - L".sv$", - L".psdtmp", - L".~tmp" - }; - - for (const auto &ext : tempExtensions) - { - if (fullPath.size() >= ext.size() && - fullPath.compare(fullPath.size() - ext.size(), ext.size(), ext) == 0) - { - return true; - } - } - - return false; -} - -std::wstring Utilities::ProcessErrorNameToWString(ProcessErrorName error) -{ - switch (error) - { - case ProcessErrorName::NOT_EXISTS: - return L"NOT_EXISTS"; - case ProcessErrorName::NO_PERMISSION: - return L"NO_PERMISSION"; - case ProcessErrorName::NO_INTERNET: - return L"NO_INTERNET"; - case ProcessErrorName::NO_REMOTE_CONNECTION: - return L"NO_REMOTE_CONNECTION"; - case ProcessErrorName::BAD_RESPONSE: - return L"BAD_RESPONSE"; - case ProcessErrorName::EMPTY_FILE: - return L"EMPTY_FILE"; - case ProcessErrorName::FILE_TOO_BIG: - return L"FILE_TOO_BIG"; - case ProcessErrorName::UNKNOWN: - return L"UNKNOWN"; - case ProcessErrorName::FILE_NON_EXTENSION: - return L"FILE_NON_EXTENSION"; - default: - return L"UNKNOWN"; - } -} - -std::wstring Utilities::FileOperationErrorToWString(FileOperationError error) -{ - switch (error) - { - case FileOperationError::UPLOAD_ERROR: - return L"UPLOAD_ERROR"; - case FileOperationError::DOWNLOAD_ERROR: - return L"DOWNLOAD_ERROR"; - case FileOperationError::DELETE_ERROR: - return L"DELETE_ERROR"; - case FileOperationError::METADATA_READ_ERROR: - return L"METADATA_READ_ERROR"; - default: - return L"UNKNOWN"; - } -} \ No newline at end of file diff --git a/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp b/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp index 97fe2f72..1bff77f8 100644 --- a/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp +++ b/native-src/sync_root_interface/callbacks/FetchData/FetchData.cpp @@ -50,11 +50,6 @@ void load_data() printf("load_data called"); } -void setup_global_tsfn_fetch_data(napi_threadsafe_function tsfn) -{ - g_fetch_data_threadsafe_callback = tsfn; -} - napi_value create_response(napi_env env, bool finished, float progress) { napi_value result_object; @@ -276,34 +271,6 @@ static napi_value response_callback_fn_fetch_data(napi_env env, napi_callback_in return create_response(env, ctxPtr->loadFinished, progress); } -static napi_value create_error_response(napi_env env) -{ - Logger::getInstance().log("An error occurred during callback execution", LogLevel::ERROR); - return create_response(env, true, 0); -} - -static void handle_cancellation(TransferContext* ctxPtr) -{ - ctxPtr->loadFinished = true; - ctxPtr->lastReadOffset = 0; - { - std::lock_guard lock(ctxPtr->mtx); - ctxPtr->ready = true; - ctxPtr->cv.notify_one(); - } -} - -static void notify_completion(TransferContext* ctxPtr, float progress) -{ - std::lock_guard lock(ctxPtr->mtx); - if (ctxPtr->loadFinished) { - ctxPtr->ready = true; - ctxPtr->cv.notify_one(); - } -} - - - static void notify_fetch_data_call(napi_env env, napi_value js_callback, void *context, void *data) { Logger::getInstance().log("notify_fetch_data_call called context isolated", LogLevel::DEBUG); diff --git a/native-src/virtual_drive/Wrappers.cpp b/native-src/virtual_drive/Wrappers.cpp index 02c14488..01b0eed9 100644 --- a/native-src/virtual_drive/Wrappers.cpp +++ b/native-src/virtual_drive/Wrappers.cpp @@ -812,62 +812,7 @@ napi_value HydrateFileWrapper(napi_env env, napi_callback_info args) return promise; } -// napi_value HydrateFileWrapper(napi_env env, napi_callback_info args) { -// size_t argc = 1; -// napi_value argv[1]; -// napi_value thisArg; -// napi_get_cb_info(env, args, &argc, argv, &thisArg, nullptr); - -// if (argc < 1) { -// napi_throw_type_error(env, nullptr, "The file path is required for HydrateFile"); -// return nullptr; -// } - -// // Obtener el argumento de JavaScript y convertirlo a una cadena de C++ -// size_t pathLength; -// napi_get_value_string_utf16(env, argv[0], nullptr, 0, &pathLength); -// std::wstring fullPath(pathLength, L'\0'); -// napi_get_value_string_utf16(env, argv[0], reinterpret_cast(&fullPath[0]), pathLength + 1, nullptr); - -// // Crear una promesa -// napi_deferred deferred; -// napi_value promise; -// napi_create_promise(env, &deferred, &promise); - -// // Crear un handle scope para manejar la creación de objetos V8 -// napi_handle_scope handleScope; -// napi_open_handle_scope(env, &handleScope); - -// // Usar un bloque de manejo de V8 -// { -// v8::Isolate* isolate = v8::Isolate::GetCurrent(); -// v8::HandleScope scope(isolate); - -// try { -// Logger::getInstance().log("init... " + Logger::fromWStringToString(fullPath.c_str()), LogLevel::INFO); -// SyncRoot::HydrateFile(fullPath.c_str()); - -// napi_value result; -// napi_get_undefined(env, &result); -// napi_resolve_deferred(env, deferred, result); -// } catch (const std::exception& e) { -// napi_value error; -// napi_create_string_utf8(env, e.what(), NAPI_AUTO_LENGTH, &error); -// napi_reject_deferred(env, deferred, error); -// } catch (...) { -// napi_value error; -// napi_create_string_utf8(env, "Unknown error", NAPI_AUTO_LENGTH, &error); -// napi_reject_deferred(env, deferred, error); -// } -// } - -// // Cerrar el handle scope -// napi_close_handle_scope(env, handleScope); - -// return promise; -// } - -// Wrapper for DehydrateFile + napi_value DehydrateFileWrapper(napi_env env, napi_callback_info args) { size_t argc = 1; diff --git a/package.json b/package.json index 52976d4e..e9dc40b7 100644 --- a/package.json +++ b/package.json @@ -1,23 +1,16 @@ { "name": "@internxt/node-win", "version": "1.0.20", + "author": "Internxt ", "description": "Drive desktop node addon", "main": "dist/index.js", "types": "dist/index.d.ts", - "author": "Internxt ", "license": "MIT", "gypfile": true, - "repository": { - "type": "git", - "url": "git+https://github.com/internxt/node-win.git" - }, "scripts": { "clean": "node-gyp clean", "build:gyp": "node-gyp configure build", "config:gyp": "python gyp.config.py", "build": "python gyp.config.py && node-gyp clean && node-gyp configure build" - }, - "engines": { - "node": ">=20.0.0" } } From b537e713156eaa2fa362df2e94f045d55e3cd84a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jim=C3=A9nez=20Rivera?= Date: Thu, 7 Aug 2025 12:46:54 +0200 Subject: [PATCH 2/2] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e9dc40b7..f9b1284a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@internxt/node-win", - "version": "1.0.20", + "version": "1.0.21", "author": "Internxt ", "description": "Drive desktop node addon", "main": "dist/index.js",