Commit graph

380 commits

Author SHA1 Message Date
Manav Rathi 3d298a9cd4
separate type 2024-04-29 14:23:33 +05:30
Manav Rathi 3b6204f47d
Take 2 2024-04-29 13:49:02 +05:30
Manav Rathi 63841abd30
Envision 2024-04-29 11:44:43 +05:30
Manav Rathi e8687caba2
wip pending 2024-04-29 11:07:57 +05:30
Manav Rathi 75c058fc4c
This is where it comes from 2024-04-29 09:53:54 +05:30
Manav Rathi 13f0ff3af5
wip zip selection on web itself 2024-04-28 20:31:11 +05:30
Manav Rathi a3d06c54af
Prune 2024-04-28 17:38:03 +05:30
Manav Rathi e65307517d
Scaffold 2024-04-28 17:08:22 +05:30
Manav Rathi 0e9507be34
Understand better 2024-04-28 16:47:03 +05:30
Manav Rathi 42b0b6e9bb
convert to mp4 2024-04-28 16:28:57 +05:30
Manav Rathi b66972e884
Handle missing stacks 2024-04-28 12:48:00 +05:30
Manav Rathi e7a4e3e7c2
fix logger 2024-04-28 12:27:36 +05:30
Manav Rathi 85d0a72df3
Rework the stream handling 2024-04-28 11:32:23 +05:30
Manav Rathi 17275ed29d
Inline 2024-04-27 18:03:09 +05:30
Manav Rathi bb2ddec163
Inline
The zip-file tests are no longer directly usable, the way we read the files has
changed, these will have to be recreated in a new form.
2024-04-27 17:45:34 +05:30
Manav Rathi 8ba952c3b8
Remove unused 2024-04-26 17:48:10 +05:30
Manav Rathi 38fe3f5300
Types 2024-04-25 16:54:49 +05:30
Manav Rathi ca0afc2f3a
File sizes 2024-04-25 15:47:34 +05:30
Manav Rathi 4ae4e42260
log.warn 2024-04-25 15:19:46 +05:30
Manav Rathi eb4d83749f
Hash 2024-04-25 14:08:03 +05:30
Manav Rathi c76d12f4a7
Document based on current understanding 2024-04-25 12:52:42 +05:30
Manav Rathi c13812c31a
Move to library 2024-04-25 12:46:21 +05:30
Manav Rathi 0603f8ffb9
Extract 2024-04-25 12:15:09 +05:30
Manav Rathi 5324d805c6
Rejig type 2024-04-25 09:56:25 +05:30
Manav Rathi 7f3d9690c0
exactType => extension 2024-04-24 22:02:46 +05:30
Manav Rathi e03a0a09d4
lowercase extension 2024-04-24 21:28:30 +05:30
Manav Rathi 34d44f599d
Cleanup 2024-04-24 21:12:56 +05:30
Manav Rathi 1106393045
Inline 2024-04-24 20:54:56 +05:30
Manav Rathi af79db90d0
Doesn't work for us yet
Current version throws
    Module build failed: UnhandledSchemeError: Reading from "node:buffer" is not handled by plugins (Unhandled scheme).
    Webpack supports "data:" and "file:" URIs by default.
    You may need an additional plugin to handle "node:" URIs.

See: https://github.com/sindresorhus/file-type/issues/502

There are ways around by using polyfills, e.g.
- https://stackoverflow.com/questions/76500464/issues-while-using-gradio-client-in-next-js/76522223#76522223
- https://github.com/vercel/next.js/discussions/33982

but since no functional changes in the detection that impact us have been made,
stay back at the old version for now.
2024-04-24 18:44:09 +05:30
Manav Rathi 38e18f29bd
Update file-type dependency and move it to its correct package.json
Refs:
- https://github.com/sindresorhus/file-type/releases/tag/v17.0.0

Went through the release notes since v16 to check that none of the MIME types we
care about have changed.
2024-04-24 18:27:30 +05:30
Manav Rathi f3c798148c
type-detect 2024-04-24 18:06:52 +05:30
Manav Rathi 81c729a405
Inline 2024-04-24 16:18:01 +05:30
Manav Rathi cf576c07f7
[desktop] [web] Upload refactoring (#1527) 2024-04-24 14:59:20 +05:30
Manav Rathi f32a396b36
Fix video thumbnailing (the .jpeg extension is required) 2024-04-24 14:37:14 +05:30
Manav Rathi 51a1c77720
Get to a mergeable state 2024-04-24 12:50:55 +05:30
Manav Rathi 58d2670171
Prune 2024-04-24 11:29:54 +05:30
Manav Rathi 5b928883a6
Tinker 2024-04-24 11:03:49 +05:30
Manav Rathi f96adddf54
Prune 2024-04-23 18:54:34 +05:30
Manav Rathi 4a12774a3c
Impl 1 2024-04-23 11:07:10 +05:30
Manav Rathi 1f0c80cabc
Refactor 1 2024-04-23 10:21:39 +05:30
Crowdin Bot 7e2ba7e5da New Crowdin translations by GitHub Action 2024-04-23 01:38:47 +00:00
Manav Rathi 3ab14d5949
Remove unnecessary flexibility 2024-04-22 17:20:21 +05:30
Manav Rathi 05cd0bcd2c
input filename is not needed
tested with sips
2024-04-22 16:49:06 +05:30
Manav Rathi 4461775283
Desktop side 2024-04-22 16:32:04 +05:30
Manav Rathi 4750caf156
Blob 2024-04-22 16:12:03 +05:30
Manav Rathi 1c9c6d849a
Rework 1 2024-04-22 15:30:48 +05:30
Manav Rathi 9038ea7959
Dead-endish 2024-04-22 14:57:38 +05:30
Manav Rathi 875b92ea91
New interface 2024-04-22 14:39:48 +05:30
Manav Rathi afca600a69
New abstraction 2024-04-22 14:04:49 +05:30
Manav Rathi 31a19cb738
Desktop side 2024-04-21 11:29:58 +05:30
Manav Rathi cfced851c6
Expectation 2024-04-21 10:26:17 +05:30
Manav Rathi 08e71a1718
Import what we need 2024-04-20 21:58:09 +05:30
Manav Rathi 0dfaa15923
Tinker 2024-04-20 21:09:35 +05:30
Manav Rathi 5992efd58a
Document 2024-04-20 19:54:26 +05:30
Manav Rathi eed95811c5
JPEG + temp wip 2024-04-20 17:12:25 +05:30
Manav Rathi 14e4205feb
Restructure 2024-04-20 12:16:58 +05:30
Manav Rathi 6337ffc203
Inline 2024-04-20 11:50:15 +05:30
Manav Rathi d0b1ff5520
In band signalling 2024-04-20 10:17:51 +05:30
Manav Rathi 196090152c
Remove an error that is never thrown 2024-04-19 21:39:44 +05:30
Manav Rathi 80a6fe16e7
timeouts 2024-04-19 21:34:35 +05:30
Manav Rathi 32ac31fd44
Start using it 2024-04-19 16:20:20 +05:30
Manav Rathi a9ccec6398
The remaining 2 2024-04-18 21:26:05 +05:30
Manav Rathi 76053c4029
impl 2024-04-18 21:07:00 +05:30
Manav Rathi 14285b66ae
Seep deeper 2024-04-18 18:45:02 +05:30
Manav Rathi 4455bb9595
API on electron side 2024-04-18 18:31:38 +05:30
Manav Rathi 275b763648
Work towards it 2024-04-18 16:18:01 +05:30
Manav Rathi 8a728abffe
Envision the API 2024-04-18 15:31:22 +05:30
Manav Rathi c90cd258ec
Deduce 2024-04-18 15:05:39 +05:30
Manav Rathi 9e35469bdc
Emulate basename and dirname 2024-04-18 14:42:52 +05:30
Manav Rathi e9e17e6ea3
Handle dotfiles 2024-04-18 14:10:43 +05:30
Manav Rathi 9c336a38c0
path mainp 2024-04-18 13:47:46 +05:30
Manav Rathi 518d573add
Improve docs 2024-04-18 13:23:20 +05:30
Manav Rathi 532824b3d5
Spruce types 2024-04-18 12:53:47 +05:30
Manav Rathi 4d80dc3af9
Interface for pending uploads 2024-04-18 11:51:14 +05:30
Manav Rathi acec41f526
More renaming - wip 2024-04-17 20:56:00 +05:30
Manav Rathi ca5b98b8d2
Enum to type - wip 2024-04-17 20:32:21 +05:30
Manav Rathi a22423d039
WIP 2 2024-04-17 17:00:51 +05:30
Manav Rathi 52c35108ca
WIP 1 2024-04-17 15:51:51 +05:30
Manav Rathi 2051ccee46
List files alternate 2024-04-17 14:48:03 +05:30
Manav Rathi ee89506923
Unlegacy isDir 2024-04-17 14:27:48 +05:30
Manav Rathi 4971099da9
Merge 2024-04-17 13:41:10 +05:30
Manav Rathi 184ba91a2d
Refactor 2024-04-17 12:34:00 +05:30
Manav Rathi 27a2b087c7
Elaborate 2024-04-17 12:01:54 +05:30
Manav Rathi 2d5ab044ee
Docs 2024-04-17 11:55:07 +05:30
Manav Rathi 637d830f19
Replace encodelivephoto 2024-04-17 11:51:35 +05:30
Manav Rathi 4b9446a9b0
Create a package to share code between photos and cast 2024-04-17 09:47:28 +05:30
Manav Rathi f775890af7
Rename on the renderer side 2024-04-16 16:35:30 +05:30
Crowdin Bot 0f4624e829 New Crowdin translations by GitHub Action 2024-04-16 01:37:39 +00:00
Manav Rathi 67aacf8391
Replace everywhere 2024-04-15 19:40:50 +05:30
Manav Rathi 8cdb31783b
Enhance 2024-04-15 15:57:57 +05:30
Manav Rathi 9eab93cfdf
Suppress webpack's critical dependency warnings for libheif
Supressing it for now since it obscures other important information in the console.

Upstream issue, which currently doesn't have a workaround:
https://github.com/catdad-experiments/libheif-js/issues/23

Full error message:

     ⚠ ../../node_modules/libheif-js/libheif-wasm/libheif-bundle.js
    Critical dependency: require function is used in a way in which dependencies cannot be statically extracted

    Import trace for requested module:
    ../../node_modules/libheif-js/libheif-wasm/libheif-bundle.js
    ../../node_modules/libheif-js/wasm-bundle.js
    ../../node_modules/heic-decode/index.js
    ../../node_modules/heic-convert/index.js
    ./src/worker/convert.worker.ts
    ./src/utils/comlink/ComlinkConvertWorker.ts
    ./src/services/heic-convert/service.ts
    ...

Refs:
- https://stackoverflow.com/questions/38392697/webpack-umd-critical-dependency-cannot-be-statically-extracted
2024-04-15 13:47:46 +05:30
Manav Rathi 3ea4879cf0
Remove text qualifier
The type already enforces that. And it reads better and the call sites this way.
2024-04-15 12:20:41 +05:30
Manav Rathi 73ef03a5d9
Move read/write whole files into fs 2024-04-15 12:17:33 +05:30
Manav Rathi 18ac361688
Remove unused IPC method 2024-04-14 20:11:25 +05:30
Manav Rathi 28574e516d
[desktop] Fix export related IPC - Part 3/x (#1439) 2024-04-14 19:04:38 +05:30
Manav Rathi eb64a00ed2
Remove unnecessary checks
It is simpler for us to parallel the rm command than our bespoke variant.
2024-04-14 18:22:46 +05:30
Manav Rathi 59b9e3e586
Move into fs 2024-04-14 18:12:19 +05:30
daviddeepan 2a9060bd39 css-alignment-issue-page-gallery 2024-04-14 13:53:00 +05:30
Manav Rathi 7438c3301e
Move mkdirIfNeeded into fs 2024-04-14 10:25:28 +05:30
Manav Rathi 72dd47fa7b
Audit rename 2024-04-14 09:27:52 +05:30
Manav Rathi 297ca09535
Refactor and extract 2024-04-13 21:20:20 +05:30
Manav Rathi 4fbfbf0aa0
Cleanup 2024-04-13 20:53:35 +05:30
Manav Rathi c7757cb08e
Prune more stale overrides 2024-04-13 18:54:15 +05:30
Manav Rathi ce642e12c1
Remove stale disables 2024-04-13 18:50:12 +05:30
Manav Rathi 64231c73f1
[web] Add ESLint to enforce HMR how vite likes it
Configuration changes taken from the vite starter (react-ts).

From the vite docs (https://github.com/vitejs/vite-plugin-react-swc?tab=readme-ov-file#consistent-components-exports)

> For React refresh to work correctly, your file should only export React components.
>
> If an incompatible change in exports is found, the module will be invalidated.
> To make it easier to export simple constants alongside your component the module
> is only invalidated when their value changes.

While we're not currently using vite for our main apps, it would be worthwhile
to write code in a way that a future migration to it is painless if needed.

About the what and the why, the Gatsby docs are illuminating:
https://www.gatsbyjs.com/docs/reference/local-development/fast-refresh/#how-it-works

Some other refs:
- https://github.com/ArnaudBarre/eslint-plugin-react-refresh
- https://github.com/vitejs/vite/discussions/4577#discussioncomment-1161007
- https://github.com/vitejs/vite-plugin-react/issues/34
2024-04-13 18:38:24 +05:30
Manav Rathi 95a0e80c5b
Recreate ML db 2024-04-13 12:46:48 +05:30
Manav Rathi 75e693186a
Inline 2024-04-13 10:14:35 +05:30
Manav Rathi 5082124aa5
Cleanup 2024-04-13 09:44:06 +05:30
Manav Rathi 4055f02a1d
Cleaner 2024-04-13 08:52:37 +05:30
Manav Rathi b32c13fe31
thumb2 2024-04-13 08:48:39 +05:30
Manav Rathi c52fd4383c
Nicer delete 2024-04-13 08:43:01 +05:30
Manav Rathi a86cdb1f1e
Interface 2024-04-13 08:40:08 +05:30
Manav Rathi e8b779745d
put2 2024-04-13 08:33:13 +05:30
Manav Rathi f2aee30f7c
get 2024-04-13 08:18:11 +05:30
Manav Rathi db96a0eb1b
get 2024-04-13 08:12:38 +05:30
Manav Rathi 6d1f8b4728
Blobs it is 2024-04-13 08:04:43 +05:30
Manav Rathi acedbdbe7d
Note 2024-04-13 07:42:24 +05:30
Manav Rathi 6cd795e29c
Create alternate code path 2024-04-13 07:19:28 +05:30
Manav Rathi 3499e47c88
Tweak 2024-04-13 06:47:43 +05:30
Manav Rathi 5ff01c40d8
poc implementation 2024-04-12 21:29:05 +05:30
Manav Rathi 295c0aa82e
Splinter 2024-04-12 21:12:37 +05:30
Manav Rathi 871a0e83cf
Fix 2024-04-12 20:59:15 +05:30
Manav Rathi a56cf55ffa
Remove indirection 2024-04-12 20:58:00 +05:30
Manav Rathi b056cf7f56
Move to newer shared package 2024-04-12 20:55:07 +05:30
Manav Rathi a2a8be3b19
Scaffold the split 2024-04-12 20:52:33 +05:30
Manav Rathi 41472eb87d
Document and structure more 2024-04-12 20:24:48 +05:30
Manav Rathi c691ad2ac1
Document the plan 2024-04-12 20:11:44 +05:30
Manav Rathi 36f9ca2004
Remove unused param 2024-04-12 19:53:23 +05:30
Manav Rathi 65c7cd2c05
[web] Various changes, moving towards fixing desktop caching (#1424)
The overall aim was to get the caching layer trimmed down to a point
where we can plug in OPFS into it for desktop. This PR doesn't have that
specific change, but it's just me gradually changing things, working
towards that.
2024-04-12 16:28:59 +05:30
Manav Rathi b36175a779
user 2024-04-12 15:40:24 +05:30
Manav Rathi c83dc87d5d
Inline the factory 2024-04-12 14:45:03 +05:30
Manav Rathi 495ff99874
Replace enum with TS type 2024-04-12 14:41:33 +05:30
Manav Rathi cd3ff6f878
Delete is not needed outside 2024-04-12 14:32:50 +05:30
Manav Rathi b447dedf83
Cache limit is usused 2024-04-12 14:26:41 +05:30
Manav Rathi bdadc839e0
Remove firefox specific workaround
In a quick (but possibly incomplete) test I wasn't able to reproduce this in an
incognito window. Throwing the error from here has a potential for breaking
things though, I'll try to verify this as I go through the flows individually.
2024-04-12 14:23:56 +05:30
Crowdin Bot ac534cf163 New Crowdin translations by GitHub Action 2024-04-12 01:37:37 +00:00
Manav Rathi 7fa9e924eb
Consolidate 2024-04-11 20:57:54 +05:30
Manav Rathi 320db9f8b7
Fix the putEmbeddings API calls for now 2024-04-11 16:22:38 +05:30
Manav Rathi ff66a2f44c
The ML code runs in workers 2024-04-11 15:27:02 +05:30
Manav Rathi a1d6ef43b4
Roundtrip 2024-04-11 14:37:44 +05:30
Manav Rathi a88f551b6a
WIP IPC API 2024-04-11 13:58:52 +05:30
Manav Rathi 6fc82ff062
[web] Import ONNX-YOLO face changes from the web_face branch (#1399)
Laurens has made the relevant changes to get ONNX-YOLO face detection
working in a manner where the generated embeddings are the same as what
get generated by the corresponding ML stack in the mobile client.

This PR cherry picks his ML related changes from the branch he was
working in, but leaves out the surrounding scaffolding (We cannot merge
that branch directly because it relies on wasm that we don't need and
don't want to commit to main).

At this point this functionality is correct but not usable - the next
step will be to tie this to the ONNX runtime that we already have on the
Node.js layer of our desktop app.

**Tests**

- yarn dev + smoke test
- yarn build + smoke test
- yarn lint
2024-04-10 15:36:03 +05:30
laurenspriem 3eb95bd822
Import ONNX-YOLO face changes from the web_face branch
Laurens has made the relevant changes to get ONNX-YOLO face detection working in
a manner where the generated embeddings are the same as what get generated by
the corresponding ML stack in the mobile client.

This commit cherry picks his ML related changes from the branch he was working
in, but leaves out the surrounding scaffolding (We cannot merge that branch
directly because it relies on wasm that we don't need and don't want to commit
to main).

At this point this functionality is correct but not usable - the next step will
be to tie this to the ONNX runtime that we already have on the Node.js layer of
our desktop app.
2024-04-10 14:41:59 +05:30
Manav Rathi e0fe018f34
Log on unhandled errors and promise rejections
Test code:

    useEffect(() => {
        setTimeout(() => testFunctionSync(), 5000);
    }, []);

    useEffect(() => {
        testFunction();
    }, []);

    const testFunctionSync = () => {
        console.log("sleeping not");
        // sleep(2000);
        console.log("woke up not");
        throw new Error("Handle me");
    };

    const testFunction = async () => {
        console.log("sleeping");
        sleep(2000);
        console.log("woke up");
        throw new Error("Handle me");
    };

Refs:
- https://developer.mozilla.org/en-US/docs/Web/API/Window/unhandledrejection_event
- https://github.com/megahertz/electron-log/blob/master/src/renderer/lib/RendererErrorHandler.js
2024-04-10 13:05:00 +05:30
Manav Rathi af79f4f0c9
Audit app update functions 2024-04-10 12:32:43 +05:30
Manav Rathi 3c7277a0b1
onMainWindowFocus 2024-04-10 11:16:21 +05:30
Manav Rathi 170aef9b30
Rename 2024-04-10 11:06:18 +05:30
Manav Rathi 8bcf77b7f7
IPC keys 2024-04-10 11:03:36 +05:30
Manav Rathi 18606b2358
IPC cleanup 2024-04-10 10:18:06 +05:30
Manav Rathi a813de5617
Only ONNX, web 2024-04-09 20:53:08 +05:30