Elian Doran
8667ee3eb4
fix(server): in-app documentation for prod
2025-05-01 16:21:08 +07:00
Elian Doran
d690344c00
chore(server-e2e): URL causing cookies to not work properly
2025-05-01 14:29:45 +07:00
Elian Doran
a083418906
chore(server-e2e): allow starting via VS Code
2025-05-01 13:39:10 +07:00
Elian Doran
b64521d250
chore(nx/desktop): use custom electron-rebuild script
2025-05-01 12:45:42 +07:00
Elian Doran
a0c1bdde88
chore(nx/desktop): fix electron-rebuild on fresh install
2025-05-01 11:30:44 +07:00
Elian Doran
6e29b050af
chore(nx/desktop): rename scripts to avoid collision with server
2025-05-01 11:28:05 +07:00
Elian Doran
87d7dc8618
chore(nx): add name to each project
2025-04-30 22:28:25 +07:00
Elian Doran
e314372fbd
chore(edidt-docs): fix entrypoint partially
2025-04-30 22:17:38 +07:00
Elian Doran
52d6efedff
chore(edit-docs): get it to start partially
2025-04-30 22:17:38 +07:00
Elian Doran
57c6dd2fee
chore(forge): gather files to be signed for analysis
2025-04-30 11:36:13 +07:00
Elian Doran
614958f16c
chore(docker): reintroduce healthchecks
2025-04-30 10:23:13 +07:00
Elian Doran
78c88d797c
chore(docker): fix missing bindings after refactoring
2025-04-30 10:01:56 +07:00
Elian Doran
466e7e2fb9
chore(ci/docker): fix entrypoint
2025-04-30 09:45:52 +07:00
Elian Doran
dd99f6c918
chore(docker): integrate debian-based container
2025-04-29 22:41:26 +07:00
Elian Doran
2920838ab1
chore(docker): fix docker-build script
2025-04-29 21:54:40 +07:00
Elian Doran
6da8a89e80
chore(docker): use paths relative to project
2025-04-29 21:48:35 +07:00
Elian Doran
83385a20bc
chore(edit-docs): add serve script
2025-04-29 13:11:25 +07:00
Elian Doran
00396614ed
chore(nx): integrate edit-docs
2025-04-29 12:50:05 +07:00
Elian Doran
37708c8866
fix(docker): missing file
2025-04-29 12:19:45 +07:00
Elian Doran
50d1d4fae1
chore(test/client): wrong path to docs
2025-04-29 10:57:15 +07:00
Elian Doran
32bc24b4c8
chore(test/client): solve dependency error due to CJS
2025-04-29 10:53:08 +07:00
Elian Doran
ee428012e2
chore(nx/desktop): add entry point for NixOS
2025-04-29 09:51:32 +07:00
Elian Doran
9d5fbc60ad
chore(nx/dump-db): integrate into monorepo
2025-04-29 00:17:58 +07:00
Elian Doran
fdcdc41ea6
chore(nx): clean up package JSON
2025-04-28 23:31:58 +07:00
Elian Doran
e18613148b
chore(nx/server): set up e2e
2025-04-28 22:58:00 +07:00
Elian Doran
546bb52abe
chore(nx/forge): print signing logs on error
2025-04-28 21:57:48 +07:00
Elian Doran
6aaacd6ca1
fix(test/server): one more failing test
2025-04-28 21:55:40 +07:00
Elian Doran
4976033c16
chore(nx/forge): log architecture
2025-04-28 21:29:03 +07:00
Elian Doran
ea4f5f157e
chore(nx/forge): try to copy the file instead
2025-04-28 21:04:11 +07:00
Elian Doran
9bf1e7b0b6
chore(nx/forge): display content for debugging
2025-04-28 20:38:22 +07:00
Elian Doran
31aff8a43a
chore(nx/forge): try to use real path for signing
2025-04-28 20:24:01 +07:00
Elian Doran
d6c67b00e6
chore(nx/forge): report error when signing
2025-04-28 20:20:16 +07:00
Elian Doran
2ccbc100ec
chore(nx/forge): add error logging for windows signing
2025-04-28 20:09:45 +07:00
Elian Doran
317d95fd60
chore(nx/desktop): set up serve
2025-04-28 19:58:43 +07:00
Elian Doran
7671143233
chore(test/server): fix date notes test
2025-04-28 17:38:24 +07:00
Elian Doran
bb278d495e
chore(test/server): fix some mocks no longer working
2025-04-28 17:35:52 +07:00
Elian Doran
6db6bec847
chore(test/server): fix isWindows() read before defined
2025-04-28 17:31:08 +07:00
Elian Doran
43876deefc
chore(test/server): always initialize translations
2025-04-28 17:30:58 +07:00
Elian Doran
6e4698cf61
chore(test/server): fix some initialization errors
2025-04-28 17:02:43 +07:00
Elian Doran
cc07144f21
chore(test/server): wrong test config
2025-04-28 16:41:49 +07:00
Elian Doran
59663ed696
fix(test/server): supertest-based tests no longer working
2025-04-28 16:41:41 +07:00
Elian Doran
4dafa56671
fix(test): url import not found
2025-04-28 11:03:38 +07:00
Elian Doran
f6dc912d2a
fix(test): i18n tests
2025-04-28 10:56:20 +07:00
Elian Doran
5029bfe3fe
chore(nx): merge vitest configs
2025-04-28 10:43:18 +07:00
Elian Doran
05a61ebd29
fix(server): imports in migration not working
2025-04-28 10:19:51 +07:00
Elian Doran
d74b8e65bd
fix(server): migration not working
2025-04-28 10:02:20 +07:00
Elian Doran
729ea1d2bc
refactor(test/server): database
2025-04-28 09:52:59 +07:00
Elian Doran
0bef31c8a7
refactor(server): migration DBs
2025-04-28 09:46:25 +07:00
Elian Doran
f60bc89820
refactor(client): unused imports
2025-04-28 09:46:00 +07:00
Elian Doran
0fa6524de4
chore(test/server): add back integration test database
2025-04-28 08:54:57 +07:00
Elian Doran
b5eedf259e
chore(nx/server): introduce tests
2025-04-28 08:26:13 +07:00
Elian Doran
bac0503c74
chore(nx/ci): add debug logs for signing
2025-04-27 23:47:51 +07:00
Elian Doran
eab98e23c0
chore(nx/ci): display output of signing
2025-04-27 22:05:09 +07:00
Elian Doran
dbad4fce36
chore(nx/forge): try a method to avoid missing prebuilds
2025-04-27 21:22:04 +07:00
Elian Doran
fec9ca60db
fix(nx/forge): rebuild not working due to ignore logic
2025-04-27 18:14:55 +07:00
Elian Doran
ceb4f2084f
chore(nx/forge): add debug logging for electron-rebuild
2025-04-27 17:42:07 +07:00
Elian Doran
8c685e6c7b
chore(nx/forge): try to force rebuild packages
2025-04-27 17:41:54 +07:00
Elian Doran
00806841ab
Revert "chore(nx/forge): add some debug logging for env"
...
This reverts commit 575f38e6e0 .
2025-04-27 14:15:08 +07:00
Elian Doran
543d61590f
feat(forge): bypass macos signing when building locally
2025-04-27 14:14:54 +07:00
Elian Doran
6e1b8ba932
fix(nx/forge): missing apple id for signing
2025-04-27 12:59:46 +07:00
Elian Doran
575f38e6e0
chore(nx/forge): add some debug logging for env
2025-04-27 12:52:11 +07:00
Elian Doran
dfdc93f3fe
chore(nx/forge): missing license meta
2025-04-27 12:46:45 +07:00
Elian Doran
0784a71d79
chore(nx/forge): fix package not building server
2025-04-27 12:38:09 +07:00
Elian Doran
3bdd13fa44
chore(nx/forge): work on server packaging
2025-04-27 12:22:10 +07:00
Elian Doran
1a92e489d9
chore(nx/forge): try setting more options to fix rpm build
2025-04-27 12:13:36 +07:00
Elian Doran
8377a805c2
chore(nx/forge): try setting more options to fix deb build
2025-04-27 12:06:02 +07:00
Elian Doran
54202c55d2
chore(nx/forge): try to fix .deb building
2025-04-27 11:58:05 +07:00
Elian Doran
edffe3afe5
chore(nx/ci): set client as implicit dependency for server
2025-04-27 11:39:02 +07:00
Elian Doran
c1a7b3653d
chore(nx/ci): fix some dependencies not being triggered
2025-04-27 11:32:26 +07:00
Elian Doran
8f5dc1a1c5
chore(nx/ci):: fix glob
2025-04-27 10:28:22 +07:00
Elian Doran
3890eff6ba
chore(nx/client): reintegrate tests
2025-04-26 23:03:16 +07:00
Elian Doran
251660e0cb
chore(nx): restructure dependencies
2025-04-26 22:40:34 +07:00
Elian Doran
81df2e7fa8
refactor(nx/forge): typo
2025-04-26 11:58:35 +07:00
Elian Doran
bfb2ca577d
fix(nx/forge): missing highlightjs
2025-04-26 11:45:32 +07:00
Elian Doran
880958e251
fix(nx/forge): missing jquery-hotkeys
2025-04-26 11:38:39 +07:00
Elian Doran
7a2b481036
chore(nx/desktop): dedicated port
2025-04-26 11:27:53 +07:00
Elian Doran
379d482d24
fix(nx/server): incorrect normalize.css
2025-04-26 10:14:01 +07:00
Elian Doran
345e5cfaf0
fix(nx/forge): path to electron-forge binaries
2025-04-26 09:58:42 +07:00
Elian Doran
b34d82336c
fix(nx/forge): app icons missing
2025-04-26 09:56:23 +07:00
Elian Doran
82e98e5f59
fix(nx/forge): electron-forge:make not working
2025-04-26 04:07:22 +07:00
Elian Doran
312288988d
feat(nx/forge): reduce size of better-sqlite3
2025-04-26 04:03:20 +07:00
Elian Doran
ebb78e4ce5
fix(nx/forge): serve assets from ASAR
2025-04-26 03:25:07 +07:00
Elian Doran
e266b50198
chore(nx/forge): fix prebuilds and build from dist
2025-04-26 03:23:47 +07:00
Elian Doran
aa388e0509
chore(nx/forge): ignore a few unnecessary files
2025-04-26 02:13:59 +07:00
Elian Doran
dffbbeebc9
chore(nx/forge): add package command
2025-04-26 02:12:52 +07:00
Elian Doran
adb6a7c58b
fix(nx/forge): nuspec failing due to missing meta
2025-04-26 01:28:07 +07:00
Elian Doran
de4fc4735b
fix(nx/forge): setup icon
2025-04-26 01:09:32 +07:00
Elian Doran
b6b9ca1ab5
chore(nx/forge): add strange workaround to solve node modules
...
Here we need to ensure that there is no `node_modules` in
`apps/desktop` since electron-forge will pick it up and use only that,
meaning that all the hoisted dependencies available in the project root
will not be accessible and it will error out.
See https://github.com/pnpm/pnpm/issues/7880 for more information.
2025-04-26 00:42:43 +07:00
Elian Doran
997ed22b86
chore(nx/forge): templates not working
2025-04-25 18:44:03 +07:00
Elian Doran
457bf2bf5e
chore(nx/server): get electron-forge up to "Finalizing package"
2025-04-25 18:23:52 +07:00
Elian Doran
4257da62fd
fix(nx/forge): get forge building to actually run
2025-04-25 17:46:50 +07:00
Elian Doran
506935b365
fix(nx/forge): get forge command to execute
2025-04-25 17:13:01 +07:00
Elian Doran
8f26d4cf63
fix(nx/docker): LLM prompts not accessible
2025-04-25 16:28:36 +07:00
Elian Doran
69f854034f
fix(nx/docker): client-side translations
2025-04-25 14:06:33 +07:00
Elian Doran
d8ee579204
fix(nx/docker): icon, manifest & robots.txt
2025-04-25 14:01:39 +07:00
Elian Doran
b63a5d348a
fix(nx/docker): serving most assets
2025-04-25 13:40:11 +07:00
Elian Doran
db71c18d2b
feat(nx/docker): bind port
2025-04-25 13:34:06 +07:00
Elian Doran
73bfff34db
fix(nx/docker): access to ETAPI
2025-04-25 13:26:08 +07:00
Elian Doran
9fc06c4aed
refactor(nx/docker): more cacheable installation
2025-04-25 12:41:50 +07:00
Elian Doran
b9a16c6173
fix(nx/docker): wrong paths at app level
2025-04-25 12:27:34 +07:00
Elian Doran
a808f0680c
fix(nx/docker): wrong native for better-sqlite3
2025-04-25 12:17:52 +07:00
Elian Doran
cc7d6dea25
chore(nx/docker): add entrypoint for starting docker
2025-04-25 11:57:53 +07:00
Elian Doran
b44876ee08
chore(nx/server): resource dir
2025-04-25 10:50:58 +07:00
Elian Doran
0e8b1f31b3
chore(nx/docker): basic integration
2025-04-25 09:54:10 +07:00
Elian Doran
12581a5363
chore(monorepo/server): native dependencies
2025-04-25 00:14:00 +07:00
Elian Doran
7adafdf56e
fix(monorepo/electron): tray icon
2025-04-24 23:27:01 +07:00
Elian Doran
26815842c5
chore(monorepo/server): type error
2025-04-24 22:37:35 +07:00
Elian Doran
be79eb41da
fix(monorepo/{client,server}): loading of fonts
2025-04-24 22:36:10 +07:00
Elian Doran
7935b250d0
fix(monorepo/desktop): remote not working
2025-04-24 22:16:59 +07:00
Elian Doran
37a7cb6e82
chore(monorepo/desktop): improve run script
2025-04-24 21:47:03 +07:00
Elian Doran
e819facf63
fix(monorepo/server): missing dependencies to bettersqlite
2025-04-24 21:45:13 +07:00
Elian Doran
ec8740b179
fix(nx/desktop): get dist to start by simplifying module import
2025-04-24 21:30:31 +07:00
Elian Doran
aab545b82e
chore(nx/server): set proper resource dir when run from dist
2025-04-24 16:08:02 +07:00
Elian Doran
aa68c705f0
chore(nx/server): remove logging
2025-04-24 15:51:58 +07:00
Elian Doran
e6f9d402cd
fix(nx/desktop): use proper approach for ejs missing
2025-04-24 15:51:49 +07:00
Elian Doran
3ce4aa12d4
fix(nx/desktop): ejs missing
2025-04-24 15:39:34 +07:00
Elian Doran
e3cff46151
chore(nx/desktop): remove unnecessary dependencies & adapt scripts
2025-04-24 15:10:22 +07:00
Elian Doran
6aef6dfbd8
chore(nx/desktop): copy client
2025-04-24 15:04:39 +07:00
Elian Doran
f602a9f8bc
chore(nx/desktop): run scripts
2025-04-24 15:04:34 +07:00
Elian Doran
cd14d8eee5
fix(nx/server): access to highlight.js styles
2025-04-24 14:55:11 +07:00
Elian Doran
494ee4739a
fix(nx/server): access to assets in prod
2025-04-24 14:47:48 +07:00
Elian Doran
ab2f0eed74
fix(nx/server): disable chunking for prod
2025-04-24 14:36:25 +07:00
Elian Doran
258fe2e452
fix(nx/server): missing images in dist
2025-04-24 13:45:48 +07:00
Elian Doran
13d9cb4679
fix(nx/server): flaky run due to missing debug dependency
2025-04-24 13:43:41 +07:00
Elian Doran
a84744da30
chore(nx): trigger client build when server is built
2025-04-24 13:34:03 +07:00
Elian Doran
b3754f4263
chore(nx): sync tsconfig
2025-04-24 13:25:32 +07:00
Elian Doran
11955ae56e
fix(nx/server): serve most assets for dist
2025-04-24 13:18:06 +07:00
Elian Doran
5911eaf6b2
fix(nx/server): get images to work in dev mode
2025-04-24 12:35:53 +07:00
Elian Doran
d2010872ac
feat(nx/server): copy client into server
2025-04-24 11:55:21 +07:00
Elian Doran
28ce71a203
fix(monorepo/server): get translations to work
2025-04-24 11:38:50 +07:00
Elian Doran
c79e3f535a
fix(monorepo/server): asset path
2025-04-24 11:30:59 +07:00
Elian Doran
c8f0fac7c7
fix(monorepo/client): errors after pnpm
2025-04-24 11:28:59 +07:00
Elian Doran
de944576b6
chore(monorepo/server): set up copy of bettersqlite
2025-04-24 11:18:08 +07:00
Elian Doran
42c5ef257d
chore(monorepo): get electron to start
2025-04-23 19:59:16 +07:00
Elian Doran
5389b8b3c7
chore(monorepo): switch to pnpm
2025-04-23 19:12:54 +07:00
Elian Doran
5dd2b216a5
fix(nx/desktop): backend not imported well
2025-04-23 14:58:49 +07:00
Elian Doran
5d02afe7f8
chore(nx/desktop): implement electron-rebuild
2025-04-23 14:38:41 +07:00
Elian Doran
4e6047f84d
chore(nx/desktop): copy .node file for better-sqlite3
2025-04-23 14:31:11 +07:00
Elian Doran
470cd7f622
chore(nx/desktop): bundle server
2025-04-23 13:29:27 +07:00
Elian Doran
7f9651450b
chore(nx/desktop): set up source code via webpack
2025-04-23 13:22:13 +07:00
Elian Doran
15fbe41312
chore(nx/desktop): switch to webpack-based build
2025-04-23 13:10:13 +07:00
Elian Doran
492e953517
chore(nx/desktop): start off with empty project
2025-04-23 12:59:26 +07:00
Elian Doran
ca309f3b58
chore(nx/client): get rid of warnings overlay
2025-04-23 12:20:29 +07:00
Elian Doran
9d284a5fe5
chore(nx/client): revert change to i18n debug
2025-04-23 12:17:57 +07:00
Elian Doran
43a44bf44c
chore(nx/client): supress bootstrap warnings
2025-04-23 12:10:47 +07:00
Elian Doran
44b778fde6
fix(nx/client): proxying of libraries
2025-04-23 11:40:23 +07:00
Elian Doran
b213f9940e
fix(nx/client): missing runtime chunk
2025-04-23 11:24:30 +07:00
Elian Doran
824d9e8b59
refactor(nx/client): fix CSS comment breaking build
2025-04-23 10:30:47 +07:00
Elian Doran
b2d051edee
refactor(nx/server): fix proxying of stylesheets
2025-04-23 10:24:05 +07:00
Elian Doran
0d4de2a7dd
refactor(nx/client): add types for http proxy
2025-04-23 10:16:11 +07:00
Elian Doran
659ccd8561
refactor(nx/client): set up proxy to client
2025-04-23 10:08:02 +07:00
Elian Doran
5308a089b8
chore(nx/client): set up proxy to client
2025-04-23 10:06:37 +07:00
Elian Doran
4e8ab98db1
chore(nx/client): missing config-sample
2025-04-23 10:00:05 +07:00
Elian Doran
eb67fe540a
chore(nx/client): set up environment variables for serve
2025-04-23 09:59:05 +07:00
Elian Doran
c3a0c5427d
chore(nx/client): set up entrypoints
2025-04-23 09:32:47 +07:00
Elian Doran
f89eb8cfd9
chore(nx/client): warning about util module
2025-04-23 09:27:53 +07:00
Elian Doran
bcc908a4b2
chore(nx/client): fix asset error
2025-04-23 08:40:19 +07:00
Elian Doran
f2ade4e6ca
chore(nx/client): bypass module errors due to electron dependency
2025-04-23 08:38:06 +07:00
Elian Doran
aeeedea542
chore(monorepo/client): reintroduce script loader
2025-04-22 23:53:12 +07:00
Elian Doran
eb6d802952
chore(monorepo/client): set up stylesheets
2025-04-22 23:02:36 +07:00
Elian Doran
fa48e5986b
chore(monorepo/client): set up dependencies
2025-04-22 22:50:24 +07:00
Elian Doran
70466dd784
chore(monorepo/client): sync settings
2025-04-22 22:29:00 +07:00
Elian Doran
9afe2ef761
chore(monorepo/client): move client source files
2025-04-22 22:12:56 +07:00
Elian Doran
23572bd47c
chore(monorepo/client): create empty project
2025-04-22 22:06:10 +07:00
Elian Doran
e817a55660
chore(nx/server): fix api_docs_js_1.default.register is not a function
2025-04-22 21:35:09 +07:00
Elian Doran
d5e1c5ce1d
chore(nx/server): fix favicon
2025-04-22 21:35:03 +07:00
Elian Doran
21487142cd
chore(nx/server): add dependency to electron
2025-04-22 21:30:25 +07:00
Elian Doran
2aad162f8e
chore(monorepo/server): fix db asset path
2025-04-22 19:56:00 +07:00
Elian Doran
6543d6c362
chore(monorepo/server): remove top-level await completely
2025-04-22 19:47:27 +07:00
Elian Doran
6e35806340
chore(monorepo/server): fix build errors due to wrong imports
2025-04-22 19:21:19 +07:00
Elian Doran
1c63fb7eec
chore(monorepo/server): configure to work with top-level await
2025-04-22 19:18:02 +07:00
Elian Doran
462ed3c6be
chore(nx/server): remove empty file
2025-04-22 17:57:47 +07:00
Elian Doran
9dafabac45
chore(nx/server): manage dependencies
2025-04-22 17:37:02 +07:00
Elian Doran
e76f47ebb4
chore(nx/server): switch to module
2025-04-22 17:21:54 +07:00
Elian Doran
b2af043110
chore(nx/server): move source code
2025-04-22 17:16:41 +07:00
Elian Doran
9c0d42252e
chore(nx): create empty project for server
2025-04-22 17:13:17 +07:00
Elian Doran
62dbcc0a2e
chore(nx): move all monorepo-style in subfolder for processing
2025-04-22 10:06:06 +07:00
Elian Doran
fcd6a31a18
chore(monorepo/server): move Docker files
2025-04-22 09:45:56 +07:00
Elian Doran
a068f75960
chore(monorepo/edit-docs): fix module issue & add entry point
2025-04-22 09:37:02 +07:00
Elian Doran
e49d248bf5
chore(monorepo/dump-db): move to apps
2025-04-21 23:20:48 +07:00
Elian Doran
b750920832
chore(monorepo/edit-docs): port files
2025-04-21 23:18:45 +07:00
Elian Doran
df7e7b4d95
chore(monorepo): missing vitest dependency
2025-04-21 22:58:33 +07:00
Elian Doran
0aa55ddebc
fix(monorepo/desktop): fix missing express-partial-content
2025-04-21 09:15:08 +07:00
Jin
01121f991e
chore: 🤖 update deps from develop
2025-04-21 01:25:52 +07:00
Elian Doran
d47a0a3f87
fix(monorepo/desktop): fix missing @electron/remote
2025-04-21 00:44:33 +07:00
Elian Doran
28972b8657
fix(monorepo/desktop): fix electron-debug error
2025-04-21 00:28:53 +07:00
Elian Doran
46117ec9cb
fix(monorepo/desktop): fix electron-level deps
2025-04-21 00:19:58 +07:00
Elian Doran
8cc4bcb711
fix(monorepo/server): fix missing monorepo dependencies
2025-04-20 23:26:50 +07:00
Elian Doran
953ad2ba1e
fix(monorepo/electron): fix missing commons dependency in prod
2025-04-20 23:10:24 +07:00
Elian Doran
562d6fab3f
fix(monorepo/server): fix missing yauzl dependency in prod
2025-04-20 22:52:04 +07:00
Elian Doran
24bce54bc4
fix(monorepo/electron): rebuild deps for start-prod
2025-04-20 22:34:12 +07:00
Elian Doran
75462fb06d
fix(monorepo/server): fix mime-types not present in dist
2025-04-20 10:07:54 +07:00
Elian Doran
f73cabc952
fix(monorepo/electron): local dependency issues when running electron-forge result
2025-04-20 09:01:57 +07:00
Elian Doran
75bdb3117f
fix(monorepo/server): use different mechanism for obtaining dependencies
2025-04-19 15:05:15 +07:00
Elian Doran
e408f7d8f1
fix(monorepo/electron): fix some sub-dependencies not being copied
2025-04-19 14:29:55 +07:00
Elian Doran
3558d3aced
fix(monorepo/electron): server dependency not packaged
2025-04-19 14:09:38 +07:00
Elian Doran
abcf08e68c
fix(monorepo/electron): rewrite package.json to avoid flaky config implementations in electron-forge
2025-04-19 12:34:24 +07:00
Elian Doran
8733acebf5
fix(monorepo/electron): add back executable name in package.json
2025-04-19 12:08:45 +07:00
Elian Doran
423cc3490b
fix(monorepo/electron): use yet another approach for executableName
2025-04-19 12:00:58 +07:00
Elian Doran
0b327dd4b1
fix(monorepo/electron): use different approach for deb that might work
2025-04-19 11:47:57 +07:00