mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +01:00 
			
		
		
		
	Compare commits
	
		
			1304 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | c5acb7fc9b | ||
|  | 834e1f7253 | ||
|  | 1a87190f43 | ||
|  | a1262aaaf3 | ||
|  | 1838f097e5 | ||
|  | 95d0ad1cad | ||
|  | f9b5e473f2 | ||
|  | 35e9df6170 | ||
|  | c5e040c4a4 | ||
|  | e00ab5dbf9 | ||
|  | 95c37cfdd1 | ||
|  | c0eb30472e | ||
|  | 8b320bb85f | ||
|  | d93b9b8a23 | ||
|  | 69b53fdfb3 | ||
|  | 920d71a5a6 | ||
|  | d4a277321c | ||
|  | 4068691078 | ||
|  | 86d7e139a4 | ||
|  | 44add751b2 | ||
|  | c49c69f824 | ||
|  | 7bd1d8feb4 | ||
|  | 4ba7e74b58 | ||
|  | 4cda661c1b | ||
|  | 5b4a2bd71c | ||
|  | a808e12d31 | ||
|  | 1f3f9a4037 | ||
|  | 77ac8df1e6 | ||
|  | b53e2a3570 | ||
|  | 7539e6a616 | ||
|  | b5a0cadcf4 | ||
|  | b8db842788 | ||
|  | dea5195223 | ||
|  | c3ea2ae1b3 | ||
|  | 1fddd6f318 | ||
|  | 466a4802b6 | ||
|  | 8f2d2b189c | ||
|  | 0837cabb41 | ||
|  | 5646218be8 | ||
|  | 169551c6a8 | ||
|  | 3a1c80c189 | ||
|  | 31bcc037f1 | ||
|  | 179d530ea9 | ||
|  | da92809299 | ||
|  | c2ebd4b308 | ||
|  | 9b24ae0600 | ||
|  | 7cd75cebfc | ||
|  | 664485ccd5 | ||
|  | 60ac1a04f4 | ||
|  | 7c7beb5502 | ||
|  | 5aa5ec3af1 | ||
|  | 58a857cf79 | ||
|  | 712f67e983 | ||
|  | 3149dff880 | ||
|  | d58e98e361 | ||
|  | 744855d4f5 | ||
|  | 8a9f2ff1d8 | ||
|  | f539aedd25 | ||
|  | 05547845cb | ||
|  | 9b905563c3 | ||
|  | 894c888d87 | ||
|  | 34d4274032 | ||
|  | b685d7ffb5 | ||
|  | d87c469fbb | ||
|  | d8730f1722 | ||
|  | 72fda89360 | ||
|  | 7075842954 | ||
|  | a2c78e2c5c | ||
|  | 9c9ef1c7b4 | ||
|  | df40accdd4 | ||
|  | b67aa99b86 | ||
|  | 5ecb881cec | ||
|  | fcb6a06d68 | ||
|  | 5b5ab0b044 | ||
|  | ab04bde5fb | ||
|  | c9e4261930 | ||
|  | 9ea8209d4e | ||
|  | 56e50cc850 | ||
|  | fc87bcf10c | ||
|  | b471d51cb4 | ||
|  | b7b583ff04 | ||
|  | 475fddeec1 | ||
|  | 2af86927b0 | ||
|  | 2e58e32112 | ||
|  | 5c05963bd9 | ||
|  | 4e5e3e4675 | ||
|  | f7c59700a5 | ||
|  | f1a7fce277 | ||
|  | cf53cbf1dd | ||
|  | 1a182d1b58 | ||
|  | 8bd52f349a | ||
|  | 68faa47c6f | ||
|  | 2f2a14d4b8 | ||
|  | a2a53deb94 | ||
|  | d50e072ea4 | ||
|  | 904eb25f64 | ||
|  | 205081c804 | ||
|  | c4d5060a0b | ||
|  | 5bba18191f | ||
|  | 5e3538669d | ||
|  | 23c449ca0c | ||
|  | b7344329f4 | ||
|  | e04845335b | ||
|  | 86a330c8c3 | ||
|  | f82e99b5ed | ||
|  | bdf42749f3 | ||
|  | 7ccbf45569 | ||
|  | c0b30e603a | ||
|  | d3c957768f | ||
|  | ed9ecf2a57 | ||
|  | 22d48b0586 | ||
|  | edc23940d0 | ||
|  | c72ea2ed60 | ||
|  | 4570319517 | ||
|  | 69d739400c | ||
|  | ec7c0f0723 | ||
|  | 3de124748d | ||
|  | 41d47c5d33 | ||
|  | 132360b46b | ||
|  | f0496cb42c | ||
|  | 1522297700 | ||
|  | 2a5ab3a5e1 | ||
|  | 358fd13c8d | ||
|  | 2305ad7405 | ||
|  | 78f5b7b288 | ||
|  | 1903c59163 | ||
|  | b16c2d19b6 | ||
|  | 00bb1236ce | ||
|  | 82bbf4173b | ||
|  | 9f4ca279aa | ||
|  | b890859025 | ||
|  | 56e4f4f5ac | ||
|  | 157bd3816d | ||
|  | 21588829c7 | ||
|  | 9689029c4b | ||
|  | 992d174b23 | ||
|  | 8886e95847 | ||
|  | 6d5762fac8 | ||
|  | e9ab044e46 | ||
|  | fda219d070 | ||
|  | 2be1aca2f3 | ||
|  | 1b318d6a30 | ||
|  | 22c4859d42 | ||
|  | 80a6361cf1 | ||
|  | 8439effeeb | ||
|  | fafab95a07 | ||
|  | 24c8e8fc2b | ||
|  | 1923bf7dda | ||
|  | 2ee94a3a69 | ||
|  | 2fb3a3eff9 | ||
|  | bcbbf4dc3e | ||
|  | 7dc793920f | ||
|  | 0b43eceb2d | ||
|  | 85f736139b | ||
|  | 98a6670cb4 | ||
|  | a15be82f00 | ||
|  | 6c3809e1db | ||
|  | 33a2cd21a3 | ||
|  | 3eebce22e7 | ||
|  | adae0625b9 | ||
|  | 5063cfb979 | ||
|  | 0835930a8a | ||
|  | c9432990b7 | ||
|  | 9ad521822d | ||
|  | 824fb08511 | ||
|  | cc4c15daf0 | ||
|  | 7718778013 | ||
|  | a25260353d | ||
|  | c1e8a4b384 | ||
|  | 3f2229d9e1 | ||
|  | 8561227622 | ||
|  | 8859e2ac40 | ||
|  | 7423b2f4fd | ||
|  | d23e9f1bc4 | ||
|  | 516277a478 | ||
|  | cbc7710d81 | ||
|  | ea71e96f72 | ||
|  | 59d1cb1833 | ||
|  | 7c54ba63ce | ||
|  | 5892b5b851 | ||
|  | 02eb737b9d | ||
|  | 144e75da9e | ||
|  | 8d14a0d687 | ||
|  | dec2c218f7 | ||
|  | dd147a7209 | ||
|  | c3fabcb666 | ||
|  | 35e825b376 | ||
|  | 334a38c493 | ||
|  | 8ec01c73cd | ||
|  | 0ef6634d41 | ||
|  | f6fc24d11d | ||
|  | ed24e32305 | ||
|  | 86df60bb74 | ||
|  | 42cf02e9a4 | ||
|  | 3add997b49 | ||
|  | 649862b01c | ||
|  | f5228f87f0 | ||
|  | 76f3e87790 | ||
|  | 30c56cd8af | ||
|  | 16be0c1014 | ||
|  | c82de8b6b2 | ||
|  | d3f2b71803 | ||
|  | f3955bcbdc | ||
|  | 90afb2a1ee | ||
|  | 2dae9b9621 | ||
|  | 521a9b0b2c | ||
|  | 2cfe9b3c03 | ||
|  | 45ee959c11 | ||
|  | 3bf8546d51 | ||
|  | ca8b603bd9 | ||
|  | faae11f070 | ||
|  | b069436039 | ||
|  | e828ef370d | ||
|  | 50a0400616 | ||
|  | 0226b1e9a8 | ||
|  | 135102d2b5 | ||
|  | a17b8a053e | ||
|  | fdc86bab50 | ||
|  | f885388bf7 | ||
|  | aa96b33bc2 | ||
|  | e36d636f93 | ||
|  | 2e05cb1764 | ||
|  | 9404e27cba | ||
|  | 494ec0b051 | ||
|  | 36b575c286 | ||
|  | d1992b061c | ||
|  | a79aec85b5 | ||
|  | 76dce5197f | ||
|  | 5d80df398b | ||
|  | a6f57d7761 | ||
|  | a981df6282 | ||
|  | ae8a2bfb1b | ||
|  | 15a2fe2570 | ||
|  | 8dadc7e518 | ||
|  | c614bc3263 | ||
|  | 1e50d88166 | ||
|  | c9cc2cb4f3 | ||
|  | c8a5c71ec2 | ||
|  | 55356963dd | ||
|  | 0e867a995f | ||
|  | 3ca37b2f42 | ||
|  | 0c78fda531 | ||
|  | 7c60080772 | ||
|  | bf5a31dcdb | ||
|  | a5e38165ef | ||
|  | fe6f19e611 | ||
|  | 576a07bcb7 | ||
|  | 4be7ac7ae1 | ||
|  | a81b00e130 | ||
|  | d4e27c1b76 | ||
|  | be477f178b | ||
|  | de95b92f90 | ||
|  | 89ed9027da | ||
|  | 1c0b55e422 | ||
|  | 10d089240a | ||
|  | 84b1f1f24e | ||
|  | c8f59ea547 | ||
|  | 9d958e1860 | ||
|  | ec06b940f4 | ||
|  | f331172c7d | ||
|  | 650d9e0b27 | ||
|  | ff1d312a43 | ||
|  | a4acbf3aea | ||
|  | 242bea236f | ||
|  | ca2f14a2d0 | ||
|  | 48a654630f | ||
|  | cf5c1c1be1 | ||
|  | 0558c30b56 | ||
|  | 36c87b7fa0 | ||
|  | d039a5f24e | ||
|  | 3e3d111d76 | ||
|  | ecb485c8bc | ||
|  | 02ab59c9e0 | ||
|  | 8e4e0bd543 | ||
|  | bbe0e9e425 | ||
|  | 24a3f814ed | ||
|  | 233a50dbb7 | ||
|  | 6d8f11d533 | ||
|  | 4e4beb26c6 | ||
|  | 1f092c2656 | ||
|  | 9622b046e0 | ||
|  | f9abea83f3 | ||
|  | b84542064c | ||
|  | 8ab2c924c4 | ||
|  | 4b9415a619 | ||
|  | c11479de58 | ||
|  | dddb02a286 | ||
|  | fab4c59f9b | ||
|  | b818f020a7 | ||
|  | 9888850c22 | ||
|  | 04209182c1 | ||
|  | 02c9dabcff | ||
|  | c9d0b8cc40 | ||
|  | 3cb421143f | ||
|  | fd9b79e115 | ||
|  | 53c4bb8a94 | ||
|  | 723fc42d88 | ||
|  | 1882b089ab | ||
|  | ad7a6c4d79 | ||
|  | 48e0e797da | ||
|  | fbb77d3e55 | ||
|  | d1d8e54d20 | ||
|  | f259c60b54 | ||
|  | aa981d3cd4 | ||
|  | f8118444f9 | ||
|  | 59da25ef55 | ||
|  | 61520bc3b3 | ||
|  | 5406b09f3a | ||
|  | 90f1bfb3e4 | ||
|  | f30eec7737 | ||
|  | 493cd1a7e0 | ||
|  | dfa1ab65c6 | ||
|  | 963ed32ce4 | ||
|  | de4733e848 | ||
|  | bfbc124e78 | ||
|  | fcd87b3e2d | ||
|  | 7bee93bb73 | ||
|  | c0c36d10e5 | ||
|  | 6e260ee563 | ||
|  | b1075d956f | ||
|  | 4dd6352aec | ||
|  | 6fe8bde720 | ||
|  | 0556ab5e66 | ||
|  | 7060700225 | ||
|  | 385b79ad34 | ||
|  | b8509c487d | ||
|  | 083dee9bdd | ||
|  | 0c2dd6aa35 | ||
|  | 743c15aacc | ||
|  | 263bff903c | ||
|  | 741dfaf2de | ||
|  | e4e4f73638 | ||
|  | 85e4bd817b | ||
|  | 78ffac8232 | ||
|  | b488adc330 | ||
|  | a06bd877c9 | ||
|  | b3834324f6 | ||
|  | d351134b75 | ||
|  | ea0835561c | ||
|  | b0c0c5f56b | ||
|  | 849fad0421 | ||
|  | eb28a3b0c9 | ||
|  | 5283b489dc | ||
|  | d54f848572 | ||
|  | 1ac0c4f874 | ||
|  | 3850f52401 | ||
|  | 6d5f8e0562 | ||
|  | 04633bdf3a | ||
|  | 97219aa12e | ||
|  | e825abf893 | ||
|  | 63b655cff4 | ||
|  | 0524942d11 | ||
|  | b5d75f183a | ||
|  | 706fc647ff | ||
|  | 13e9f9f9e7 | ||
|  | a76dcb44ae | ||
|  | b9373806cf | ||
|  | 9de2927304 | ||
|  | c3e1126489 | ||
|  | 3413c9ed64 | ||
|  | dcebcb0e73 | ||
|  | 3d7a5f20e7 | ||
|  | 6a99af64a8 | ||
|  | 7d57961ab2 | ||
|  | 95a773e5c9 | ||
|  | a912b2f23d | ||
|  | 36b581489c | ||
|  | 976684a3a8 | ||
|  | 093dfb4a39 | ||
|  | ddf381f92d | ||
|  | 2b44f3bc76 | ||
|  | 7b1fdfabf8 | ||
|  | 070e8d9647 | ||
|  | bf3360572a | ||
|  | e5036318af | ||
|  | 6d2394a9da | ||
|  | 427a266c57 | ||
|  | 196264b8c2 | ||
|  | afe24866f0 | ||
|  | d18a20cc06 | ||
|  | e94669de03 | ||
|  | 9c91b0459e | ||
|  | b161db064e | ||
|  | ec4abe0d81 | ||
|  | af21dd4463 | ||
|  | ef46727870 | ||
|  | 1ea0d283de | ||
|  | ed380e09c9 | ||
|  | b5daa83d69 | ||
|  | c4b957427d | ||
|  | 2f3b256272 | ||
|  | 6e3d8472e1 | ||
|  | 2a9f36a027 | ||
|  | cf3726289c | ||
|  | c8e4a5c9e7 | ||
|  | 3851bedb57 | ||
|  | a3951f1cce | ||
|  | 7c77ae758b | ||
|  | 20d3d61cec | ||
|  | 1b831f94a9 | ||
|  | 3f241553aa | ||
|  | 8624c83108 | ||
|  | d49cae9cea | ||
|  | 174128447b | ||
|  | 5d213eea7e | ||
|  | f45e25172b | ||
|  | ec87856ef4 | ||
|  | 6feb7ad1d5 | ||
|  | 6833e84d55 | ||
|  | 154a575701 | ||
|  | 504b2e2c4a | ||
|  | 2c5292222f | ||
|  | 989da8877b | ||
|  | 70591eadd5 | ||
|  | fead3cd7ad | ||
|  | a7cf3cdf05 | ||
|  | 5372f71faa | ||
|  | 3b76939f17 | ||
|  | c827d38f39 | ||
|  | 1e7586fae4 | ||
|  | ee89111bfb | ||
|  | 288b3077b2 | ||
|  | 5c1922ac9f | ||
|  | 93f1d46104 | ||
|  | c5daaf541a | ||
|  | 12b17b1e9e | ||
|  | ad46ba7d0f | ||
|  | 44f592c6cb | ||
|  | 943b35fb7d | ||
|  | f1967fd466 | ||
|  | ce2404b18a | ||
|  | cdd53a39f1 | ||
|  | c646019536 | ||
|  | c8049f0efe | ||
|  | f2c497049b | ||
|  | d713274ae2 | ||
|  | a72eeb9a98 | ||
|  | 41cdd5c640 | ||
|  | 4cde65d171 | ||
|  | 27659805f6 | ||
|  | 8ab081a3fd | ||
|  | ccbb2e2e12 | ||
|  | 2bf2ec5a6c | ||
|  | 4329675c60 | ||
|  | 412b0377e9 | ||
|  | 69e48ff4d7 | ||
|  | 4cacd1dfa2 | ||
|  | 0c8ad1b46e | ||
|  | d3ac7b0939 | ||
|  | e0306d4ad7 | ||
|  | 1f3d726048 | ||
|  | f3ed7e936d | ||
|  | 547ad7221d | ||
|  | 97a258c0c6 | ||
|  | 19a154c2f4 | ||
|  | b389ec5ea3 | ||
|  | 412375e92f | ||
|  | 4b96ada781 | ||
|  | 87b16f3325 | ||
|  | 0a0663be69 | ||
|  | 7eed076674 | ||
|  | b5143c152b | ||
|  | 6ef8a4c018 | ||
|  | ebd26f85bd | ||
|  | fbfb7b3b30 | ||
|  | cfb313b60e | ||
|  | 54e37dea20 | ||
|  | 5b14358620 | ||
|  | c4669cbaa3 | ||
|  | 74b41c9911 | ||
|  | d08a36174d | ||
|  | e845b80e10 | ||
|  | b0303ef529 | ||
|  | 68f67ec6ee | ||
|  | 20ae67f510 | ||
|  | 237749e4af | ||
|  | 15f4782947 | ||
|  | d48efd1925 | ||
|  | 883d726622 | ||
|  | 0a0cac5f41 | ||
|  | 012a18be00 | ||
|  | 890c00d4ba | ||
|  | bb43014230 | ||
|  | 53a995fecb | ||
|  | 8d3262d232 | ||
|  | 373ec4ac50 | ||
|  | 3fdecee95f | ||
|  | 86b9f5a8b0 | ||
|  | 873b60b00d | ||
|  | fc58086f6e | ||
|  | 40cec31099 | ||
|  | 33733d3ab7 | ||
|  | f08bf0be15 | ||
|  | 296cb7236f | ||
|  | d614967d62 | ||
|  | 35648b9f37 | ||
|  | 494a980ecb | ||
|  | 810aa8c2fb | ||
|  | 027b3eaed8 | ||
|  | dedc1e708f | ||
|  | 79956b5676 | ||
|  | 48b1aece4d | ||
|  | eee75bd2e8 | ||
|  | 29828f8e8f | ||
|  | ced02b42b5 | ||
|  | 3fe9218ea8 | ||
|  | ff5ea8b311 | ||
|  | 32fae5e9e8 | ||
|  | 48b4488a58 | ||
|  | aead6a44de | ||
|  | f59f08fa0e | ||
|  | 119d7367da | ||
|  | ddb99a0917 | ||
|  | ecfba95841 | ||
|  | 597eb5a300 | ||
|  | f3e7e6bbe7 | ||
|  | 722380e7b8 | ||
|  | 8c46e96397 | ||
|  | f22cc37df7 | ||
|  | dd1fc23fe8 | ||
|  | f9f4148e8c | ||
|  | 2178f82324 | ||
|  | 79d779dee8 | ||
|  | 93c0469aa0 | ||
|  | 81d10fa605 | ||
|  | 75ef766649 | ||
|  | fab8b77794 | ||
|  | 8b030a2323 | ||
|  | 14c420b782 | ||
|  | 637547a3fa | ||
|  | c39c1baa4d | ||
|  | b9edd0ecc7 | ||
|  | 2dec8f1ad6 | ||
|  | bd97df5ee9 | ||
|  | 8a501521e8 | ||
|  | be68391c37 | ||
|  | 89d4be504d | ||
|  | 0a2acbe4be | ||
|  | a7a42ff4af | ||
|  | bacf163c96 | ||
|  | db7e083a21 | ||
|  | 8eaf44735a | ||
|  | bfc61f8b36 | ||
|  | 4ea27e604f | ||
|  | aef0e552a0 | ||
|  | d36bff2a97 | ||
|  | 61696f0287 | ||
|  | 9a97fe09ee | ||
|  | b1d0cef33b | ||
|  | 7f0c92c56b | ||
|  | b21568806a | ||
|  | 80fb89b794 | ||
|  | 47d28b4eef | ||
|  | a9762c5139 | ||
|  | 32439ed006 | ||
|  | ff41904d72 | ||
|  | 39093cbc4c | ||
|  | c7b5784123 | ||
|  | 3e22804a76 | ||
|  | 7ce98b0b28 | ||
|  | 0d11cadc18 | ||
|  | 63ab82a076 | ||
|  | 7e03f14e01 | ||
|  | c9183f8bd4 | ||
|  | bc2d1f1ef9 | ||
|  | e7c053d273 | ||
|  | 3ccf553fda | ||
|  | 6d2eb7b187 | ||
|  | 7234324112 | ||
|  | 8205cdc288 | ||
|  | 29931bbddf | ||
|  | 68cd4c9a31 | ||
|  | f4b986e1c1 | ||
|  | c0496ebef3 | ||
|  | 6aa30a4c74 | ||
|  | 3035a948b9 | ||
|  | 7880cf62fe | ||
|  | ff76ba7d1b | ||
|  | 06be593fe4 | ||
|  | 91e3eb8ae7 | ||
|  | f7dd3558a7 | ||
|  | eac5ec6e26 | ||
|  | f273b4334e | ||
|  | 15eaf67189 | ||
|  | 983d9c4319 | ||
|  | a88a00b60e | ||
|  | a44f43b133 | ||
|  | 69677b15fe | ||
|  | 2573c3b8a6 | ||
|  | 0b0e9f2953 | ||
|  | 1990c9399e | ||
|  | 151641b659 | ||
|  | 36c6376220 | ||
|  | f0e22b70f6 | ||
|  | 225e893461 | ||
|  | 064a11d872 | ||
|  | 3760835608 | ||
|  | e7ac2ec4ed | ||
|  | 8da8dfc543 | ||
|  | 6b3c8b4bac | ||
|  | 25fe78012f | ||
|  | 147d79c65c | ||
|  | 6fddd2bd62 | ||
|  | 77c9b64dc7 | ||
|  | 47cb7c7f5e | ||
|  | 1bd769827d | ||
|  | 288ec88c2f | ||
|  | 71916b5e28 | ||
|  | b2d4330692 | ||
|  | 253a6ef081 | ||
|  | e1e020c1a4 | ||
|  | 2b4413a1bd | ||
|  | dae674a7cd | ||
|  | 751bf94758 | ||
|  | 4b934a4a81 | ||
|  | 7e374e795b | ||
|  | be378f71b0 | ||
|  | 27f74489fd | ||
|  | ae8f4ffbbe | ||
|  | 896776516b | ||
|  | a27525af9e | ||
|  | 83b4382787 | ||
|  | ef1b32d586 | ||
|  | fe3a0bc756 | ||
|  | 2259e1d44d | ||
|  | 9ca4a016eb | ||
|  | 2978a262f7 | ||
|  | f47f3461e6 | ||
|  | 06202c31e4 | ||
|  | 925dc258a6 | ||
|  | 3670800a51 | ||
|  | 90a331b989 | ||
|  | a4c8bdeda2 | ||
|  | 5bda254184 | ||
|  | 26621c0318 | ||
|  | c6806256fd | ||
|  | f00e1235f9 | ||
|  | 51bede6541 | ||
|  | 75dbaa4b77 | ||
|  | bec6576620 | ||
|  | 44551e0e8c | ||
|  | 67553cb40e | ||
|  | 7cafbda7cd | ||
|  | 9a5a085103 | ||
|  | cdb17ae937 | ||
|  | c240fb9896 | ||
|  | 4b41eddf44 | ||
|  | b51ac112a2 | ||
|  | a1ac609b34 | ||
|  | 66e2a12f3d | ||
|  | 9f69294f7f | ||
|  | a5fc8d5329 | ||
|  | 7bbf797caf | ||
|  | f479c0e10e | ||
|  | 0f32154b91 | ||
|  | f2019ee5f9 | ||
|  | 89b8e2bb08 | ||
|  | 8fb6edad67 | ||
|  | c2e3a3fe04 | ||
|  | b2052a6ccd | ||
|  | a07479cd5a | ||
|  | 3820384f51 | ||
|  | 0610576e5a | ||
|  | efac7701eb | ||
|  | 905eb303bc | ||
|  | 27cee1cf33 | ||
|  | 3c56d29fca | ||
|  | 946dae72d9 | ||
|  | 58f71c7300 | ||
|  | 07e9013152 | ||
|  | 29c60581a6 | ||
|  | 4bdcf32475 | ||
|  | 44c742e839 | ||
|  | 001bd1d004 | ||
|  | 6c7e2f0aa1 | ||
|  | 9fc5d328b4 | ||
|  | f6413d095c | ||
|  | d66ad4319e | ||
|  | 251fcaeb48 | ||
|  | 3311c6336c | ||
|  | fc13e1fa6a | ||
|  | 9ca680f842 | ||
|  | 616829464f | ||
|  | 0267468cd5 | ||
|  | ca0d17d93a | ||
|  | 3f656ea76f | ||
|  | 1faf2c6ecd | ||
|  | 33f2aaa650 | ||
|  | 177caec011 | ||
|  | 62650a4545 | ||
|  | 81dc907afc | ||
|  | 3ee33e1024 | ||
|  | 2326eb85f1 | ||
|  | 0885e60b80 | ||
|  | ef40c66344 | ||
|  | 0d0464549f | ||
|  | b68b0fe783 | ||
|  | b4c6d9f800 | ||
|  | 24c8b39d8e | ||
|  | 0144dc12df | ||
|  | 65684550a8 | ||
|  | 6d09931a39 | ||
|  | 1c41d459f0 | ||
|  | f65fefe7b1 | ||
|  | 0a906b5663 | ||
|  | dd9b7bbbb5 | ||
|  | d25a1e3ed9 | ||
|  | 05374becfd | ||
|  | 37d2a7939c | ||
|  | a432ad7483 | ||
|  | ae17e4dc60 | ||
|  | 02eddc347a | ||
|  | ee58bf3d5c | ||
|  | ecbaffa5f3 | ||
|  | fe86c09f22 | ||
|  | c8e01d6cce | ||
|  | fd0bd5dd00 | ||
|  | cd6d4fb527 | ||
|  | 8ed6851e85 | ||
|  | a6fd3bfb00 | ||
|  | 610dd8a783 | ||
|  | 7c404f03db | ||
|  | ed1cf6aad5 | ||
|  | 9703fd61e2 | ||
|  | 16790e388b | ||
|  | b48474998b | ||
|  | 95d8f07458 | ||
|  | e628c30c89 | ||
|  | 52a8aae74f | ||
|  | 54b5898582 | ||
|  | 64974d75d5 | ||
|  | bd118027fb | ||
|  | 36de217835 | ||
|  | b5283d58bb | ||
|  | 8414d97ffa | ||
|  | 9f30d4e673 | ||
|  | 8e0d1fa0df | ||
|  | 5b251b9977 | ||
|  | 8b3e721028 | ||
|  | 7e2a2baa5d | ||
|  | 003eed368b | ||
|  | 4b1cf05c0e | ||
|  | d9429c4f4b | ||
|  | b7bd94b6b0 | ||
|  | 51bbc10744 | ||
|  | fb5df33ee7 | ||
|  | d8ba0ccd7d | ||
|  | 886ea6c68c | ||
|  | ec384fafce | ||
|  | 936f85c09e | ||
|  | b25deea21d | ||
|  | cf5ec44303 | ||
|  | 6f956c2415 | ||
|  | 3533160bef | ||
|  | 60cbfdcabd | ||
|  | 604f036a54 | ||
|  | dd4f3ec264 | ||
|  | ff67b8a0ba | ||
|  | 1d5fb0b646 | ||
|  | 80931a318f | ||
|  | 16f16cb36a | ||
|  | 899f24cde5 | ||
|  | 9f29521ab8 | ||
|  | c1ce0c6b22 | ||
|  | a7fce33750 | ||
|  | 6fd8e73150 | ||
|  | 1359dd86c2 | ||
|  | a1b610fc50 | ||
|  | c849d719e9 | ||
|  | 96de2e7008 | ||
|  | f140b77e7c | ||
|  | 22228de63b | ||
|  | b0596c9eb2 | ||
|  | 2a2319d434 | ||
|  | dad47d115f | ||
|  | 502026359c | ||
|  | 47b0e4e4d3 | ||
|  | 6c927d9159 | ||
|  | ddc79b2517 | ||
|  | 4c2e12d2cb | ||
|  | 14f7a8b7b9 | ||
|  | caa7dd9619 | ||
|  | 8aa7e2d0a0 | ||
|  | 6be8a3f343 | ||
|  | a097cefba7 | ||
|  | e4c78f3887 | ||
|  | 5baa251944 | ||
|  | cde68abec9 | ||
|  | 51175e3676 | ||
|  | 45ddfef30a | ||
|  | 1e1d78999e | ||
|  | 92fcd7b345 | ||
|  | e04f1cd574 | ||
|  | 176c3a5d51 | ||
|  | c09570cf39 | ||
|  | 4a093000be | ||
|  | 6952b643ae | ||
|  | c487a95bc7 | ||
|  | 8884177d9f | ||
|  | 8b250ed523 | ||
|  | d8b78d8025 | ||
|  | 42112b8053 | ||
|  | 6cc0dd5a80 | ||
|  | afd5f4823f | ||
|  | b0cf82c91b | ||
|  | 6a67cdd5af | ||
|  | bad7b84993 | ||
|  | d3ca6b5ae6 | ||
|  | da5009f089 | ||
|  | c08524c977 | ||
|  | f89537037e | ||
|  | c153793766 | ||
|  | 0aec5927d5 | ||
|  | 8aea9a1801 | ||
|  | 73247e3220 | ||
|  | 89344a6eda | ||
|  | 40d2e6ea83 | ||
|  | 910cfe9a17 | ||
|  | e58a80fc00 | ||
|  | 4a2319cb33 | ||
|  | 5619088c41 | ||
|  | 60271993eb | ||
|  | 6695e8b011 | ||
|  | 707df18b93 | ||
|  | 90895f1288 | ||
|  | ba1ca506af | ||
|  | f90ed99a40 | ||
|  | 67630b1a22 | ||
|  | 2c1580ea65 | ||
|  | 840a0b5f64 | ||
|  | b39f6ef7ad | ||
|  | fb27088fcd | ||
|  | 76fbff68ba | ||
|  | 54de4d236d | ||
|  | e211dd65ad | ||
|  | a87f4d8653 | ||
|  | b59c175c2e | ||
|  | 580104c4c5 | ||
|  | 0fc3053b0a | ||
|  | 929e0f69c2 | ||
|  | e70af1300a | ||
|  | 4d0e46021b | ||
|  | 1a9a49b739 | ||
|  | 2ac560c56e | ||
|  | c23387c0fb | ||
|  | 0ff250fe15 | ||
|  | 52b1e58b26 | ||
|  | 484715e440 | ||
|  | 9d42c3d802 | ||
|  | c654172d33 | ||
|  | e17b26c883 | ||
|  | 24d02d9cf5 | ||
|  | 7208a311ac | ||
|  | ad7355372b | ||
|  | f18b5babad | ||
|  | 9831ec0ca9 | ||
|  | 596544eca3 | ||
|  | 1f853024ee | ||
|  | 0308b13460 | ||
|  | 06b8a82f70 | ||
|  | 91ca07929d | ||
|  | afabaa5fdb | ||
|  | a6fd3fa77c | ||
|  | 58a2c08dcd | ||
|  | 299bbff2f4 | ||
|  | 19d8947123 | ||
|  | 35edce7523 | ||
|  | bc4cec69a5 | ||
|  | cce8c1b674 | ||
|  | aa58788769 | ||
|  | 6c62ab7a52 | ||
|  | d6ab638b30 | ||
|  | bd4db406de | ||
|  | e50f9cd0a3 | ||
|  | 2b64cbce2c | ||
|  | 2797c942ab | ||
|  | f1c3278874 | ||
|  | 424c22dcde | ||
|  | 5c223dfd12 | ||
|  | 6a3e7a5a8e | ||
|  | f88cdac000 | ||
|  | eeead90f32 | ||
|  | b607857409 | ||
|  | 9268f88bc3 | ||
|  | f7f0560a9f | ||
|  | 3d8905207e | ||
|  | dbc312010b | ||
|  | b115a7cf19 | ||
|  | 348562352c | ||
|  | 70fd917e7c | ||
|  | d2b60764cd | ||
|  | 581b1fdaa5 | ||
|  | 3c19a712c0 | ||
|  | cc27f16088 | ||
|  | dffdb82288 | ||
|  | 2b32addade | ||
|  | 0b251530fa | ||
|  | f5b933149a | ||
|  | 48bbfb8bdb | ||
|  | 889971c4d6 | ||
|  | 0722494d41 | ||
|  | 4b977a3306 | ||
|  | 3ff3021acd | ||
|  | 99e56a9c42 | ||
|  | 77279dfe16 | ||
|  | 93f8050454 | ||
|  | 31cfede7a7 | ||
|  | c8ec86e537 | ||
|  | 05aee884b6 | ||
|  | 012ba9e060 | ||
|  | 8e8fd88857 | ||
|  | 523ccdad6b | ||
|  | ded3f605be | ||
|  | 62b44e3549 | ||
|  | 030d12a465 | ||
|  | 4d15628840 | ||
|  | 81b849898c | ||
|  | 3824486b85 | ||
|  | 081ab00a0a | ||
|  | 04f6af5c9a | ||
|  | 4dc1f1f6eb | ||
|  | 3930a02123 | ||
|  | 3112de105e | ||
|  | 3b8d7b8fba | ||
|  | 9fca7f09a5 | ||
|  | fd39d6b3a9 | ||
|  | a103886ea5 | ||
|  | 373408e401 | ||
|  | db44c1d8e6 | ||
|  | 95a34c9e2d | ||
|  | 6ce401f260 | ||
|  | 5d74dcd256 | ||
|  | 5a9fc1697b | ||
|  | 927415838c | ||
|  | d72fcefdc7 | ||
|  | 0be173a8f7 | ||
|  | c3913a8735 | ||
|  | e2dfe1b6de | ||
|  | fec3e47eb8 | ||
|  | d72efd2450 | ||
|  | ef1c840aa7 | ||
|  | 1581464d8c | ||
|  | 9de29584a4 | ||
|  | 9e2e6fb50c | ||
|  | c85979b66b | ||
|  | ecdc5865a6 | ||
|  | 1771ddb787 | ||
|  | 3ab657fe46 | ||
|  | 8785dae753 | ||
|  | 2f1c5b29d4 | ||
|  | 7135349a10 | ||
|  | 66c639d5e3 | ||
|  | 6704b755d8 | ||
|  | cf96baad48 | ||
|  | 32220476aa | ||
|  | 86bc84a2ad | ||
|  | de9e0c7929 | ||
|  | 6963e662ef | ||
|  | 7127822e8f | ||
|  | 0a35abf68f | ||
|  | 3f8e8f8561 | ||
|  | e02eca87b0 | ||
|  | 2f680c4326 | ||
|  | 0b4a44a403 | ||
|  | 89299f865c | ||
|  | f6db9a50ab | ||
|  | 78d9fac1e6 | ||
|  | 458ed1faff | ||
|  | 0657815de5 | ||
|  | a608832681 | ||
|  | d2f72529b3 | ||
|  | 28185af158 | ||
|  | 7aacd01ad7 | ||
|  | 74cc34696e | ||
|  | d4baac0bb5 | ||
|  | 35bc1421f1 | ||
|  | d4db265fd9 | ||
|  | 1dad919de9 | ||
|  | 246dfbdcb4 | ||
|  | f8d32d64f5 | ||
|  | 5dea271d6f | ||
|  | eeb62a6cf2 | ||
|  | 35cf8026b0 | ||
|  | e0028ab6f1 | ||
|  | a32645cdeb | ||
|  | 812f9f6fca | ||
|  | f7a670ec24 | ||
|  | d0d24f0f4a | ||
|  | 042f9b7f2d | ||
|  | 2d260cdbed | ||
|  | 6a786cad83 | ||
|  | 67019b3d6c | ||
|  | 1db6e59077 | ||
|  | 5e4770875e | ||
|  | e9a77f3f16 | ||
|  | cbec85f295 | ||
|  | 14bd5d301d | ||
|  | 321d0e8d64 | ||
|  | 84e1512031 | ||
|  | b036852b2d | ||
|  | f693dc31e8 | ||
|  | af8f5b11b8 | ||
|  | 8ca943f87b | ||
|  | 35cc9da626 | ||
|  | 44cc86a1a5 | ||
|  | 7c3bbfd45e | ||
|  | a1f939e3a0 | ||
|  | 4ca7886090 | ||
|  | b942163748 | ||
|  | 5b6d15acb3 | ||
|  | 841420360e | ||
|  | a680bb4612 | ||
|  | f763e13996 | ||
|  | e73e1262ae | ||
|  | b774d56cf7 | ||
|  | bae55f2e8b | ||
|  | 6c16cdb011 | ||
|  | 86fcbb0354 | ||
|  | 17d030e800 | ||
|  | 6fbf28b30d | ||
|  | 8171b68b18 | ||
|  | d30e3a4052 | ||
|  | 87aab7ac5b | ||
|  | c46f5805b1 | ||
|  | dd6a29dfc0 | ||
|  | a0933c7f10 | ||
|  | 492adc2909 | ||
|  | 90a52f57b5 | ||
|  | a1469854e8 | ||
|  | e2c2993255 | ||
|  | 270d63b265 | ||
|  | 1d004be91d | ||
|  | b8a74c727e | ||
|  | c87b592277 | ||
|  | cfa926602a | ||
|  | 350cb52c07 | ||
|  | af195beb7e | ||
|  | cb00d42546 | ||
|  | ee0b0c3dfe | ||
|  | ddcb4a0e10 | ||
|  | 8cbb29ee25 | ||
|  | 9da11ac144 | ||
|  | ba7c8e77e5 | ||
|  | 4577b03fc9 | ||
|  | 72d83aa85e | ||
|  | 8ee80cb5f1 | ||
|  | 4cc08bff8b | ||
|  | 295cfb2d75 | ||
|  | 7775376b33 | ||
|  | 9f64e994dc | ||
|  | ee1e4fc710 | ||
|  | 5ea62c710d | ||
|  | aeca31d06a | ||
|  | 9cb9ea6ab5 | ||
|  | e37dd69827 | ||
|  | 6c51696d1a | ||
|  | 27787c8f37 | ||
|  | e910595545 | ||
|  | a616739805 | ||
|  | bea28de6a0 | ||
|  | 4e198ca2f0 | ||
|  | 2fbd16a0e3 | ||
|  | 76fc49f037 | ||
|  | 139c99440f | ||
|  | 137b9dfa0b | ||
|  | 5f0fdd15eb | ||
|  | 61e1427b83 | ||
|  | b3aa0ba47c | ||
|  | 56e2b44c25 | ||
|  | 4d5a17583f | ||
|  | 71eda5aa3d | ||
|  | 0711ea8dc8 | ||
|  | be206872d1 | ||
|  | fcf3fe8dcd | ||
|  | 62dbd4062a | ||
|  | 196e8b4380 | ||
|  | 551e1255ff | ||
|  | e09b61d1ac | ||
|  | ee23bcc783 | ||
|  | 3e351bd8d3 | ||
|  | 0d3bc22d73 | ||
|  | d82898421e | ||
|  | 1db2f0c2c5 | ||
|  | 6cd8a2203e | ||
|  | 08e062ab34 | ||
|  | 3a06493459 | ||
|  | 8159564885 | ||
|  | 8ce3c1a480 | ||
|  | dbc93f4a79 | ||
|  | 92ffe321aa | ||
|  | 6cb7d0098e | ||
|  | bdcb4361b2 | ||
|  | 15366d37d7 | ||
|  | acd001501b | ||
|  | 0019865807 | ||
|  | 137ffcc4e3 | ||
|  | 585398ad5c | ||
|  | 50401954d1 | ||
|  | 32a9df8489 | ||
|  | 5bf5d1cac4 | ||
|  | 3608857f25 | ||
|  | 16a1dc12df | ||
|  | 9c834229b9 | ||
|  | 3fd45b15e7 | ||
|  | f20ab45576 | ||
|  | 77a89d85c8 | ||
|  | 30249a353e | ||
|  | eb9bae9010 | ||
|  | 0c7ae527c5 | ||
|  | fef4705e2f | ||
|  | 568c2c997f | ||
|  | d6b5cd6ead | ||
|  | 00ce379962 | ||
|  | b1ed022771 | ||
|  | ad6cb6ba34 | ||
|  | 2e76de5f34 | ||
|  | 4f23f2515a | ||
|  | 8e16cc2326 | ||
|  | 49bca04ebb | ||
|  | 05e9669eaf | ||
|  | 62a250a7fc | ||
|  | 8299524682 | ||
|  | 7691a59977 | ||
|  | 3db2f6784d | ||
|  | 48684d0509 | ||
|  | 1ee8d9fd93 | ||
|  | 228a77cb89 | ||
|  | 90eb1b53fb | ||
|  | 6a36e1ca86 | ||
|  | 3fee263355 | ||
|  | d19fa89f69 | ||
|  | 6b65592d7a | ||
|  | 94565e3ec0 | ||
|  | 5b9a1ef0e9 | ||
|  | e0f9a7fc6a | ||
|  | 46c7901e1f | ||
|  | efc5cf4091 | ||
|  | 39b3c91abf | ||
|  | 6749cbed1b | ||
|  | 346b8c21dd | ||
|  | 8ee8639faa | ||
|  | fa264d1cbe | ||
|  | 8a3f508825 | ||
|  | 19a07c699c | ||
|  | b8feb4cce3 | ||
|  | cfce744338 | ||
|  | 211001fb2f | ||
|  | a334f08782 | ||
|  | 040bb13800 | ||
|  | 6652ddc20a | ||
|  | e44c7c9947 | ||
|  | 24a0856d22 | ||
|  | 74acb08f7b | ||
|  | 7be85acf11 | ||
|  | fc9495bcdf | ||
|  | 247275d391 | ||
|  | 427234293e | ||
|  | 9568fde027 | ||
|  | 9cf08bf926 | ||
|  | 295800881b | ||
|  | 25e68762fe | ||
|  | ea0a5bc1c9 | ||
|  | abbade96af | ||
|  | 83c6f86d26 | ||
|  | db17b05db1 | ||
|  | 1ce26ed704 | ||
|  | a065a610c1 | ||
|  | 0b85f87cb2 | ||
|  | 144e814b02 | ||
|  | 8dc32e581e | ||
|  | 21d3b0c9d8 | ||
|  | e7cea59ba7 | ||
|  | 2523f81f3b | ||
|  | c6e1ad5f15 | ||
|  | 340916d5da | ||
|  | bbe36fc7fb | ||
|  | 02fd8f8133 | ||
|  | 525f167127 | ||
|  | 3750919169 | ||
|  | 4f34fb802b | ||
|  | d978c64e1a | ||
|  | bc2e230425 | ||
|  | 71f333154d | ||
|  | c5113eb292 | ||
|  | 232f135843 | ||
|  | 8be328cb3b | ||
|  | bfc09187e3 | ||
|  | 3a4691b46d | ||
|  | 7b3c0243f3 | ||
|  | 8d7a2546e1 | ||
|  | 991d5d3be3 | ||
|  | 6416e3e9fb | ||
|  | 3ba761fe28 | ||
|  | 273a9b14d9 | ||
|  | afcbfcfa03 | ||
|  | d7afbe4059 | ||
|  | 21e952a7f0 | ||
|  | d0d2a7fe47 | ||
|  | 5f427e37fe | ||
|  | 13f9007bd6 | ||
|  | 90dbe637ed | ||
|  | a0f362457e | ||
|  | 1febf5136c | ||
|  | 3c23d7085e | ||
|  | 57e9850ca6 | ||
|  | 2f4ef0a4a2 | ||
|  | 6fb99ae89e | ||
|  | 69d2bd8b58 | ||
|  | e62cca886c | ||
|  | a8e13eac3a | ||
|  | 2f887f1ea7 | ||
|  | 3856de4483 | ||
|  | 0348bbe4f1 | ||
|  | 24dfe0fa98 | ||
|  | 20baa47d26 | ||
|  | 19cb29cdca | ||
|  | 24a1838b13 | ||
|  | 7bdbea81f1 | ||
|  | b8eaff055a | ||
|  | 5e318c6242 | ||
|  | 607c821cac | ||
|  | 26b9302267 | ||
|  | de14e808c7 | ||
|  | 80178b52c0 | ||
|  | 370efdc034 | ||
|  | f06d8c7c54 | ||
|  | 63edde8a73 | ||
|  | 5872146172 | ||
|  | ab26216cbe | ||
|  | 5cc91c64a3 | ||
|  | 4858f0bec6 | ||
|  | 639284fd85 | ||
|  | f33f99134b | ||
|  | a2434f200e | ||
|  | 31abec5d1c | ||
|  | 93d152eae5 | ||
|  | 2a14ea8d0c | ||
|  | a19af8a61d | ||
|  | 2a129809b3 | ||
|  | 07cbc385e5 | ||
|  | 67d47c389a | ||
|  | e61f17809a | ||
|  | 23de04daaa | ||
|  | a8774353fd | ||
|  | 18f2419bd6 | ||
|  | 332a65a9cc | ||
|  | 1d51f58447 | ||
|  | 41fca4c4f3 | ||
|  | 4a5a63d7b4 | ||
|  | b17f442d1f | ||
|  | 9f0860edab | ||
|  | 0c007566ad | ||
|  | bfa2b5fa62 | ||
|  | 6559e6c25b | ||
|  | 627e5e0edb | ||
|  | 2a8de2653e | ||
|  | e487dc1df7 | ||
|  | 04af8a3a96 | ||
|  | 209551a205 | ||
|  | c6bfd3909f | ||
|  | 8b7694d0ec | ||
|  | 76c980b51f | ||
|  | 1de06b4fc9 | ||
|  | 949456212a | ||
|  | 06a867773e | ||
|  | 269f56bdca | ||
|  | 5352f388a7 | ||
|  | be94766f76 | ||
|  | 24673168bb | ||
|  | b5bb653889 | ||
|  | b09071eb9b | ||
|  | 5f95ab95c9 | ||
|  | 0ce8d1e7e8 | ||
|  | b2776954a1 | ||
|  | d65610429c | ||
|  | 62de7f28eb | ||
|  | 257cced182 | ||
|  | 3af27845b5 | ||
|  | 9b425025c9 | ||
|  | e8797a137f | ||
|  | 947e875b6c | ||
|  | 15610626f1 | ||
|  | eb84cfbef2 | ||
|  | e4381d10e8 | ||
|  | b4a566df9e | ||
|  | b20ff78653 | ||
|  | 15888a5f8f | ||
|  | a90c164bbe | ||
|  | 4f3aa9cd79 | ||
|  | d248994143 | ||
|  | 78518fbc60 | ||
|  | 50cd0c792c | ||
|  | 22e905aa99 | ||
|  | 8b41c1ef31 | ||
|  | 492fde6f46 | ||
|  | 892a254e5a | ||
|  | 1ef3188213 | ||
|  | c76329e671 | ||
|  | c95e409b5e | ||
|  | ff086569f2 | ||
|  | bdc2fa1019 | ||
|  | 6668b55d6e | ||
|  | 46f37f7426 | ||
|  | bc669c7b81 | 
| @@ -1,4 +1,7 @@ | |||||||
| node_modules | .git | ||||||
| npm-debug.log |  | ||||||
| dist |  | ||||||
| .idea | .idea | ||||||
|  | /bin | ||||||
|  | /dist | ||||||
|  | /docs | ||||||
|  | /npm-debug.log | ||||||
|  | node_modules | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -7,3 +7,4 @@ yarn-error.log | |||||||
| config.ini | config.ini | ||||||
| cert.key | cert.key | ||||||
| cert.crt | cert.crt | ||||||
|  | server-package.json | ||||||
							
								
								
									
										15
									
								
								.gitpod.dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								.gitpod.dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | FROM gitpod/workspace-full | ||||||
|  |  | ||||||
|  | RUN sudo apt-get update \ | ||||||
|  |     && sudo apt-get install -yq --no-install-recommends \ | ||||||
|  |         libpng16-16 \ | ||||||
|  |         libpng-dev \ | ||||||
|  |         pkg-config \ | ||||||
|  |         autoconf \ | ||||||
|  |         libtool \ | ||||||
|  |         build-essential \ | ||||||
|  |         nasm \ | ||||||
|  |         libx11-dev \ | ||||||
|  |         libxkbfile-dev \ | ||||||
|  |     && sudo rm -rf /var/lib/apt/lists/* | ||||||
|  |  | ||||||
							
								
								
									
										11
									
								
								.gitpod.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								.gitpod.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | image: | ||||||
|  |   file: .gitpod.dockerfile | ||||||
|  |  | ||||||
|  | tasks: | ||||||
|  |     - before: nvm install 10 && nvm use 10 | ||||||
|  |       init: npm install | ||||||
|  |       command: npm run start-server | ||||||
|  |  | ||||||
|  | ports: | ||||||
|  |     - port: 8080 | ||||||
|  |       onOpen: open-preview | ||||||
							
								
								
									
										5
									
								
								.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | # Default ignored files | ||||||
|  | /workspace.xml | ||||||
|  |  | ||||||
|  | # Datasource local storage ignored files | ||||||
|  | /dataSources.local.xml | ||||||
							
								
								
									
										13
									
								
								.idea/codeStyles/Project.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.idea/codeStyles/Project.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | <component name="ProjectCodeStyleConfiguration"> | ||||||
|  |   <code_scheme name="Project" version="173"> | ||||||
|  |     <option name="OTHER_INDENT_OPTIONS"> | ||||||
|  |       <value> | ||||||
|  |         <option name="INDENT_SIZE" value="2" /> | ||||||
|  |         <option name="TAB_SIZE" value="2" /> | ||||||
|  |       </value> | ||||||
|  |     </option> | ||||||
|  |     <JSCodeStyleSettings version="0"> | ||||||
|  |       <option name="USE_EXPLICIT_JS_EXTENSION" value="TRUE" /> | ||||||
|  |     </JSCodeStyleSettings> | ||||||
|  |   </code_scheme> | ||||||
|  | </component> | ||||||
							
								
								
									
										5
									
								
								.idea/codeStyles/codeStyleConfig.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.idea/codeStyles/codeStyleConfig.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | <component name="ProjectCodeStyleConfiguration"> | ||||||
|  |   <state> | ||||||
|  |     <option name="USE_PER_PROJECT_SETTINGS" value="true" /> | ||||||
|  |   </state> | ||||||
|  | </component> | ||||||
							
								
								
									
										2
									
								
								.idea/dataSources.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.idea/dataSources.xml
									
									
									
										generated
									
									
									
								
							| @@ -5,7 +5,7 @@ | |||||||
|       <driver-ref>sqlite.xerial</driver-ref> |       <driver-ref>sqlite.xerial</driver-ref> | ||||||
|       <synchronize>true</synchronize> |       <synchronize>true</synchronize> | ||||||
|       <jdbc-driver>org.sqlite.JDBC</jdbc-driver> |       <jdbc-driver>org.sqlite.JDBC</jdbc-driver> | ||||||
|       <jdbc-url>jdbc:sqlite:$USER_HOME$/trilium-data/document.db</jdbc-url> |       <jdbc-url>jdbc:sqlite:$PROJECT_DIR$/../trilium-data/document.db</jdbc-url> | ||||||
|       <driver-properties> |       <driver-properties> | ||||||
|         <property name="enable_load_extension" value="true" /> |         <property name="enable_load_extension" value="true" /> | ||||||
|       </driver-properties> |       </driver-properties> | ||||||
|   | |||||||
| @@ -1,12 +1,11 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||||
| <dataSource name="document.db"> | <dataSource name="document.db"> | ||||||
|   <database-model serializer="dbm" rdbms="SQLITE" format-version="4.11"> |   <database-model serializer="dbm" dbms="SQLITE" family-id="SQLITE" format-version="4.16"> | ||||||
|     <root id="1"> |     <root id="1"> | ||||||
|       <ServerVersion>3.16.1</ServerVersion> |       <ServerVersion>3.25.1</ServerVersion> | ||||||
|     </root> |     </root> | ||||||
|     <schema id="2" parent="1" name="main"> |     <schema id="2" parent="1" name="main"> | ||||||
|       <Current>1</Current> |       <Current>1</Current> | ||||||
|       <Visible>1</Visible> |  | ||||||
|     </schema> |     </schema> | ||||||
|     <collation id="3" parent="1" name="BINARY"/> |     <collation id="3" parent="1" name="BINARY"/> | ||||||
|     <collation id="4" parent="1" name="NOCASE"/> |     <collation id="4" parent="1" name="NOCASE"/> | ||||||
| @@ -14,636 +13,630 @@ | |||||||
|     <table id="6" parent="2" name="api_tokens"/> |     <table id="6" parent="2" name="api_tokens"/> | ||||||
|     <table id="7" parent="2" name="attributes"/> |     <table id="7" parent="2" name="attributes"/> | ||||||
|     <table id="8" parent="2" name="branches"/> |     <table id="8" parent="2" name="branches"/> | ||||||
|     <table id="9" parent="2" name="event_log"/> |     <table id="9" parent="2" name="note_contents"/> | ||||||
|     <table id="10" parent="2" name="images"/> |     <table id="10" parent="2" name="note_revision_contents"/> | ||||||
|     <table id="11" parent="2" name="note_images"/> |     <table id="11" parent="2" name="note_revisions"/> | ||||||
|     <table id="12" parent="2" name="note_revisions"/> |     <table id="12" parent="2" name="notes"/> | ||||||
|     <table id="13" parent="2" name="notes"/> |     <table id="13" parent="2" name="options"/> | ||||||
|     <table id="14" parent="2" name="options"/> |     <table id="14" parent="2" name="recent_notes"/> | ||||||
|     <table id="15" parent="2" name="recent_notes"/> |     <table id="15" parent="2" name="source_ids"/> | ||||||
|     <table id="16" parent="2" name="source_ids"/> |     <table id="16" parent="2" name="sqlite_master"> | ||||||
|     <table id="17" parent="2" name="sqlite_master"> |  | ||||||
|       <System>1</System> |       <System>1</System> | ||||||
|     </table> |     </table> | ||||||
|     <table id="18" parent="2" name="sqlite_sequence"> |     <table id="17" parent="2" name="sqlite_sequence"> | ||||||
|       <System>1</System> |       <System>1</System> | ||||||
|     </table> |     </table> | ||||||
|     <table id="19" parent="2" name="sync"/> |     <table id="18" parent="2" name="sync"/> | ||||||
|     <column id="20" parent="6" name="apiTokenId"> |     <column id="19" parent="6" name="apiTokenId"> | ||||||
|       <Position>1</Position> |       <Position>1</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="21" parent="6" name="token"> |     <column id="20" parent="6" name="token"> | ||||||
|       <Position>2</Position> |       <Position>2</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="22" parent="6" name="dateCreated"> |     <column id="21" parent="6" name="utcDateCreated"> | ||||||
|       <Position>3</Position> |       <Position>3</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="23" parent="6" name="isDeleted"> |     <column id="22" parent="6" name="isDeleted"> | ||||||
|       <Position>4</Position> |       <Position>4</Position> | ||||||
|       <DataType>INT|0s</DataType> |       <DataType>INT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>0</DefaultExpression> |       <DefaultExpression>0</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="24" parent="6" name="hash"> |     <column id="23" parent="6" name="hash"> | ||||||
|       <Position>5</Position> |       <Position>5</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>""</DefaultExpression> |       <DefaultExpression>""</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <index id="25" parent="6" name="sqlite_autoindex_api_tokens_1"> |     <index id="24" parent="6" name="sqlite_autoindex_api_tokens_1"> | ||||||
|       <NameSurrogate>1</NameSurrogate> |       <NameSurrogate>1</NameSurrogate> | ||||||
|       <ColNames>apiTokenId</ColNames> |       <ColNames>apiTokenId</ColNames> | ||||||
|       <Unique>1</Unique> |       <Unique>1</Unique> | ||||||
|     </index> |     </index> | ||||||
|     <key id="26" parent="6"> |     <key id="25" parent="6"> | ||||||
|       <ColNames>apiTokenId</ColNames> |       <ColNames>apiTokenId</ColNames> | ||||||
|       <Primary>1</Primary> |       <Primary>1</Primary> | ||||||
|       <UnderlyingIndexName>sqlite_autoindex_api_tokens_1</UnderlyingIndexName> |       <UnderlyingIndexName>sqlite_autoindex_api_tokens_1</UnderlyingIndexName> | ||||||
|     </key> |     </key> | ||||||
|     <column id="27" parent="7" name="attributeId"> |     <column id="26" parent="7" name="attributeId"> | ||||||
|       <Position>1</Position> |       <Position>1</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="28" parent="7" name="noteId"> |     <column id="27" parent="7" name="noteId"> | ||||||
|       <Position>2</Position> |       <Position>2</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="29" parent="7" name="type"> |     <column id="28" parent="7" name="type"> | ||||||
|       <Position>3</Position> |       <Position>3</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="30" parent="7" name="name"> |     <column id="29" parent="7" name="name"> | ||||||
|       <Position>4</Position> |       <Position>4</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="31" parent="7" name="value"> |     <column id="30" parent="7" name="value"> | ||||||
|       <Position>5</Position> |       <Position>5</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>''</DefaultExpression> |       <DefaultExpression>''</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="32" parent="7" name="position"> |     <column id="31" parent="7" name="position"> | ||||||
|       <Position>6</Position> |       <Position>6</Position> | ||||||
|       <DataType>INT|0s</DataType> |       <DataType>INT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>0</DefaultExpression> |       <DefaultExpression>0</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="33" parent="7" name="dateCreated"> |     <column id="32" parent="7" name="utcDateCreated"> | ||||||
|       <Position>7</Position> |       <Position>7</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="34" parent="7" name="dateModified"> |     <column id="33" parent="7" name="utcDateModified"> | ||||||
|       <Position>8</Position> |       <Position>8</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="35" parent="7" name="isDeleted"> |     <column id="34" parent="7" name="isDeleted"> | ||||||
|       <Position>9</Position> |       <Position>9</Position> | ||||||
|       <DataType>INT|0s</DataType> |       <DataType>INT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="36" parent="7" name="hash"> |     <column id="35" parent="7" name="hash"> | ||||||
|       <Position>10</Position> |       <Position>10</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>""</DefaultExpression> |       <DefaultExpression>""</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="37" parent="7" name="isInheritable"> |     <column id="36" parent="7" name="isInheritable"> | ||||||
|       <Position>11</Position> |       <Position>11</Position> | ||||||
|       <DataType>int|0s</DataType> |       <DataType>int|0s</DataType> | ||||||
|       <DefaultExpression>0</DefaultExpression> |       <DefaultExpression>0</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <index id="38" parent="7" name="sqlite_autoindex_attributes_1"> |     <index id="37" parent="7" name="sqlite_autoindex_attributes_1"> | ||||||
|       <NameSurrogate>1</NameSurrogate> |       <NameSurrogate>1</NameSurrogate> | ||||||
|       <ColNames>attributeId</ColNames> |       <ColNames>attributeId</ColNames> | ||||||
|       <Unique>1</Unique> |       <Unique>1</Unique> | ||||||
|     </index> |     </index> | ||||||
|     <key id="39" parent="7"> |     <index id="38" parent="7" name="IDX_attributes_noteId_index"> | ||||||
|  |       <ColNames>noteId</ColNames> | ||||||
|  |     </index> | ||||||
|  |     <index id="39" parent="7" name="IDX_attributes_name_value"> | ||||||
|  |       <ColNames>name | ||||||
|  | value</ColNames> | ||||||
|  |     </index> | ||||||
|  |     <index id="40" parent="7" name="IDX_attributes_name_index"> | ||||||
|  |       <ColNames>name</ColNames> | ||||||
|  |     </index> | ||||||
|  |     <index id="41" parent="7" name="IDX_attributes_value_index"> | ||||||
|  |       <ColNames>value</ColNames> | ||||||
|  |     </index> | ||||||
|  |     <key id="42" parent="7"> | ||||||
|       <ColNames>attributeId</ColNames> |       <ColNames>attributeId</ColNames> | ||||||
|       <Primary>1</Primary> |       <Primary>1</Primary> | ||||||
|       <UnderlyingIndexName>sqlite_autoindex_attributes_1</UnderlyingIndexName> |       <UnderlyingIndexName>sqlite_autoindex_attributes_1</UnderlyingIndexName> | ||||||
|     </key> |     </key> | ||||||
|     <column id="40" parent="8" name="branchId"> |     <column id="43" parent="8" name="branchId"> | ||||||
|       <Position>1</Position> |       <Position>1</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="41" parent="8" name="noteId"> |     <column id="44" parent="8" name="noteId"> | ||||||
|       <Position>2</Position> |       <Position>2</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="42" parent="8" name="parentNoteId"> |     <column id="45" parent="8" name="parentNoteId"> | ||||||
|       <Position>3</Position> |       <Position>3</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="43" parent="8" name="notePosition"> |     <column id="46" parent="8" name="notePosition"> | ||||||
|       <Position>4</Position> |       <Position>4</Position> | ||||||
|       <DataType>INTEGER|0s</DataType> |       <DataType>INTEGER|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="44" parent="8" name="prefix"> |     <column id="47" parent="8" name="prefix"> | ||||||
|       <Position>5</Position> |       <Position>5</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|     </column> |     </column> | ||||||
|     <column id="45" parent="8" name="isExpanded"> |     <column id="48" parent="8" name="isExpanded"> | ||||||
|       <Position>6</Position> |       <Position>6</Position> | ||||||
|       <DataType>BOOLEAN|0s</DataType> |       <DataType>INTEGER|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |       <DefaultExpression>0</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="46" parent="8" name="isDeleted"> |     <column id="49" parent="8" name="isDeleted"> | ||||||
|       <Position>7</Position> |       <Position>7</Position> | ||||||
|       <DataType>INTEGER|0s</DataType> |       <DataType>INTEGER|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>0</DefaultExpression> |       <DefaultExpression>0</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="47" parent="8" name="dateModified"> |     <column id="50" parent="8" name="utcDateModified"> | ||||||
|       <Position>8</Position> |       <Position>8</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="48" parent="8" name="hash"> |     <column id="51" parent="8" name="utcDateCreated"> | ||||||
|       <Position>9</Position> |       <Position>9</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|  |     </column> | ||||||
|  |     <column id="52" parent="8" name="hash"> | ||||||
|  |       <Position>10</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>""</DefaultExpression> |       <DefaultExpression>""</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="49" parent="8" name="dateCreated"> |     <index id="53" parent="8" name="sqlite_autoindex_branches_1"> | ||||||
|       <Position>10</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|       <DefaultExpression>'1970-01-01T00:00:00.000Z'</DefaultExpression> |  | ||||||
|     </column> |  | ||||||
|     <index id="50" parent="8" name="sqlite_autoindex_branches_1"> |  | ||||||
|       <NameSurrogate>1</NameSurrogate> |       <NameSurrogate>1</NameSurrogate> | ||||||
|       <ColNames>branchId</ColNames> |       <ColNames>branchId</ColNames> | ||||||
|       <Unique>1</Unique> |       <Unique>1</Unique> | ||||||
|     </index> |     </index> | ||||||
|     <index id="51" parent="8" name="IDX_branches_noteId_parentNoteId"> |     <index id="54" parent="8" name="IDX_branches_noteId_parentNoteId"> | ||||||
|       <ColNames>noteId |       <ColNames>noteId | ||||||
| parentNoteId</ColNames> | parentNoteId</ColNames> | ||||||
|     </index> |     </index> | ||||||
|     <index id="52" parent="8" name="IDX_branches_noteId"> |     <index id="55" parent="8" name="IDX_branches_noteId"> | ||||||
|       <ColNames>noteId</ColNames> |       <ColNames>noteId</ColNames> | ||||||
|     </index> |     </index> | ||||||
|     <index id="53" parent="8" name="IDX_branches_parentNoteId"> |     <index id="56" parent="8" name="IDX_branches_parentNoteId"> | ||||||
|       <ColNames>parentNoteId</ColNames> |       <ColNames>parentNoteId</ColNames> | ||||||
|     </index> |     </index> | ||||||
|     <key id="54" parent="8"> |     <key id="57" parent="8"> | ||||||
|       <ColNames>branchId</ColNames> |       <ColNames>branchId</ColNames> | ||||||
|       <Primary>1</Primary> |       <Primary>1</Primary> | ||||||
|       <UnderlyingIndexName>sqlite_autoindex_branches_1</UnderlyingIndexName> |       <UnderlyingIndexName>sqlite_autoindex_branches_1</UnderlyingIndexName> | ||||||
|     </key> |     </key> | ||||||
|     <column id="55" parent="9" name="eventId"> |     <column id="58" parent="9" name="noteId"> | ||||||
|       <Position>1</Position> |       <Position>1</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="56" parent="9" name="noteId"> |     <column id="59" parent="9" name="content"> | ||||||
|       <Position>2</Position> |       <Position>2</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <DefaultExpression>NULL</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="57" parent="9" name="comment"> |     <column id="60" parent="9" name="hash"> | ||||||
|       <Position>3</Position> |       <Position>3</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|     </column> |  | ||||||
|     <column id="58" parent="9" name="dateCreated"> |  | ||||||
|       <Position>4</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |  | ||||||
|     <index id="59" parent="9" name="sqlite_autoindex_event_log_1"> |  | ||||||
|       <NameSurrogate>1</NameSurrogate> |  | ||||||
|       <ColNames>eventId</ColNames> |  | ||||||
|       <Unique>1</Unique> |  | ||||||
|     </index> |  | ||||||
|     <key id="60" parent="9"> |  | ||||||
|       <ColNames>eventId</ColNames> |  | ||||||
|       <Primary>1</Primary> |  | ||||||
|       <UnderlyingIndexName>sqlite_autoindex_event_log_1</UnderlyingIndexName> |  | ||||||
|     </key> |  | ||||||
|     <column id="61" parent="10" name="imageId"> |  | ||||||
|       <Position>1</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |  | ||||||
|     <column id="62" parent="10" name="format"> |  | ||||||
|       <Position>2</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |  | ||||||
|     <column id="63" parent="10" name="checksum"> |  | ||||||
|       <Position>3</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |  | ||||||
|     <column id="64" parent="10" name="name"> |  | ||||||
|       <Position>4</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |  | ||||||
|     <column id="65" parent="10" name="data"> |  | ||||||
|       <Position>5</Position> |  | ||||||
|       <DataType>BLOB|0s</DataType> |  | ||||||
|     </column> |  | ||||||
|     <column id="66" parent="10" name="isDeleted"> |  | ||||||
|       <Position>6</Position> |  | ||||||
|       <DataType>INT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|       <DefaultExpression>0</DefaultExpression> |  | ||||||
|     </column> |  | ||||||
|     <column id="67" parent="10" name="dateModified"> |  | ||||||
|       <Position>7</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |  | ||||||
|     <column id="68" parent="10" name="dateCreated"> |  | ||||||
|       <Position>8</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |  | ||||||
|     <column id="69" parent="10" name="hash"> |  | ||||||
|       <Position>9</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>""</DefaultExpression> |       <DefaultExpression>""</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <index id="70" parent="10" name="sqlite_autoindex_images_1"> |     <column id="61" parent="9" name="utcDateModified"> | ||||||
|       <NameSurrogate>1</NameSurrogate> |  | ||||||
|       <ColNames>imageId</ColNames> |  | ||||||
|       <Unique>1</Unique> |  | ||||||
|     </index> |  | ||||||
|     <key id="71" parent="10"> |  | ||||||
|       <ColNames>imageId</ColNames> |  | ||||||
|       <Primary>1</Primary> |  | ||||||
|       <UnderlyingIndexName>sqlite_autoindex_images_1</UnderlyingIndexName> |  | ||||||
|     </key> |  | ||||||
|     <column id="72" parent="11" name="noteImageId"> |  | ||||||
|       <Position>1</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |  | ||||||
|     <column id="73" parent="11" name="noteId"> |  | ||||||
|       <Position>2</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |  | ||||||
|     <column id="74" parent="11" name="imageId"> |  | ||||||
|       <Position>3</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |  | ||||||
|     <column id="75" parent="11" name="isDeleted"> |  | ||||||
|       <Position>4</Position> |       <Position>4</Position> | ||||||
|       <DataType>INT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|       <DefaultExpression>0</DefaultExpression> |  | ||||||
|     </column> |  | ||||||
|     <column id="76" parent="11" name="dateModified"> |  | ||||||
|       <Position>5</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="77" parent="11" name="dateCreated"> |     <index id="62" parent="9" name="sqlite_autoindex_note_contents_1"> | ||||||
|       <Position>6</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |  | ||||||
|     <column id="78" parent="11" name="hash"> |  | ||||||
|       <Position>7</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|       <DefaultExpression>""</DefaultExpression> |  | ||||||
|     </column> |  | ||||||
|     <index id="79" parent="11" name="sqlite_autoindex_note_images_1"> |  | ||||||
|       <NameSurrogate>1</NameSurrogate> |       <NameSurrogate>1</NameSurrogate> | ||||||
|       <ColNames>noteImageId</ColNames> |  | ||||||
|       <Unique>1</Unique> |  | ||||||
|     </index> |  | ||||||
|     <index id="80" parent="11" name="IDX_note_images_noteId_imageId"> |  | ||||||
|       <ColNames>noteId |  | ||||||
| imageId</ColNames> |  | ||||||
|     </index> |  | ||||||
|     <index id="81" parent="11" name="IDX_note_images_noteId"> |  | ||||||
|       <ColNames>noteId</ColNames> |       <ColNames>noteId</ColNames> | ||||||
|  |       <Unique>1</Unique> | ||||||
|     </index> |     </index> | ||||||
|     <index id="82" parent="11" name="IDX_note_images_imageId"> |     <key id="63" parent="9"> | ||||||
|       <ColNames>imageId</ColNames> |       <ColNames>noteId</ColNames> | ||||||
|     </index> |  | ||||||
|     <key id="83" parent="11"> |  | ||||||
|       <ColNames>noteImageId</ColNames> |  | ||||||
|       <Primary>1</Primary> |       <Primary>1</Primary> | ||||||
|       <UnderlyingIndexName>sqlite_autoindex_note_images_1</UnderlyingIndexName> |       <UnderlyingIndexName>sqlite_autoindex_note_contents_1</UnderlyingIndexName> | ||||||
|     </key> |     </key> | ||||||
|     <column id="84" parent="12" name="noteRevisionId"> |     <column id="64" parent="10" name="noteRevisionId"> | ||||||
|       <Position>1</Position> |       <Position>1</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="85" parent="12" name="noteId"> |     <column id="65" parent="10" name="content"> | ||||||
|       <Position>2</Position> |       <Position>2</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |     </column> | ||||||
|     <column id="86" parent="12" name="title"> |     <column id="66" parent="10" name="hash"> | ||||||
|       <Position>3</Position> |       <Position>3</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |       <DefaultExpression>''</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="87" parent="12" name="content"> |     <column id="67" parent="10" name="utcDateModified"> | ||||||
|       <Position>4</Position> |       <Position>4</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|     </column> |  | ||||||
|     <column id="88" parent="12" name="isProtected"> |  | ||||||
|       <Position>5</Position> |  | ||||||
|       <DataType>INT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|       <DefaultExpression>0</DefaultExpression> |  | ||||||
|     </column> |  | ||||||
|     <column id="89" parent="12" name="dateModifiedFrom"> |  | ||||||
|       <Position>6</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="90" parent="12" name="dateModifiedTo"> |     <index id="68" parent="10" name="sqlite_autoindex_note_revision_contents_1"> | ||||||
|       <Position>7</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |  | ||||||
|     <column id="91" parent="12" name="type"> |  | ||||||
|       <Position>8</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|       <DefaultExpression>''</DefaultExpression> |  | ||||||
|     </column> |  | ||||||
|     <column id="92" parent="12" name="mime"> |  | ||||||
|       <Position>9</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|       <DefaultExpression>''</DefaultExpression> |  | ||||||
|     </column> |  | ||||||
|     <column id="93" parent="12" name="hash"> |  | ||||||
|       <Position>10</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|       <DefaultExpression>""</DefaultExpression> |  | ||||||
|     </column> |  | ||||||
|     <index id="94" parent="12" name="sqlite_autoindex_note_revisions_1"> |  | ||||||
|       <NameSurrogate>1</NameSurrogate> |       <NameSurrogate>1</NameSurrogate> | ||||||
|       <ColNames>noteRevisionId</ColNames> |       <ColNames>noteRevisionId</ColNames> | ||||||
|       <Unique>1</Unique> |       <Unique>1</Unique> | ||||||
|     </index> |     </index> | ||||||
|     <index id="95" parent="12" name="IDX_note_revisions_noteId"> |     <key id="69" parent="10"> | ||||||
|  |       <ColNames>noteRevisionId</ColNames> | ||||||
|  |       <Primary>1</Primary> | ||||||
|  |       <UnderlyingIndexName>sqlite_autoindex_note_revision_contents_1</UnderlyingIndexName> | ||||||
|  |     </key> | ||||||
|  |     <column id="70" parent="11" name="noteRevisionId"> | ||||||
|  |       <Position>1</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |     </column> | ||||||
|  |     <column id="71" parent="11" name="noteId"> | ||||||
|  |       <Position>2</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |     </column> | ||||||
|  |     <column id="72" parent="11" name="title"> | ||||||
|  |       <Position>3</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |     </column> | ||||||
|  |     <column id="73" parent="11" name="contentLength"> | ||||||
|  |       <Position>4</Position> | ||||||
|  |       <DataType>INT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |     </column> | ||||||
|  |     <column id="74" parent="11" name="isErased"> | ||||||
|  |       <Position>5</Position> | ||||||
|  |       <DataType>INT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |       <DefaultExpression>0</DefaultExpression> | ||||||
|  |     </column> | ||||||
|  |     <column id="75" parent="11" name="isProtected"> | ||||||
|  |       <Position>6</Position> | ||||||
|  |       <DataType>INT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |       <DefaultExpression>0</DefaultExpression> | ||||||
|  |     </column> | ||||||
|  |     <column id="76" parent="11" name="utcDateLastEdited"> | ||||||
|  |       <Position>7</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |     </column> | ||||||
|  |     <column id="77" parent="11" name="utcDateCreated"> | ||||||
|  |       <Position>8</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |     </column> | ||||||
|  |     <column id="78" parent="11" name="utcDateModified"> | ||||||
|  |       <Position>9</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |     </column> | ||||||
|  |     <column id="79" parent="11" name="dateLastEdited"> | ||||||
|  |       <Position>10</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |     </column> | ||||||
|  |     <column id="80" parent="11" name="dateCreated"> | ||||||
|  |       <Position>11</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |     </column> | ||||||
|  |     <column id="81" parent="11" name="type"> | ||||||
|  |       <Position>12</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |       <DefaultExpression>''</DefaultExpression> | ||||||
|  |     </column> | ||||||
|  |     <column id="82" parent="11" name="mime"> | ||||||
|  |       <Position>13</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |       <DefaultExpression>''</DefaultExpression> | ||||||
|  |     </column> | ||||||
|  |     <column id="83" parent="11" name="hash"> | ||||||
|  |       <Position>14</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |       <DefaultExpression>''</DefaultExpression> | ||||||
|  |     </column> | ||||||
|  |     <index id="84" parent="11" name="sqlite_autoindex_note_revisions_1"> | ||||||
|  |       <NameSurrogate>1</NameSurrogate> | ||||||
|  |       <ColNames>noteRevisionId</ColNames> | ||||||
|  |       <Unique>1</Unique> | ||||||
|  |     </index> | ||||||
|  |     <index id="85" parent="11" name="IDX_note_revisions_noteId"> | ||||||
|       <ColNames>noteId</ColNames> |       <ColNames>noteId</ColNames> | ||||||
|     </index> |     </index> | ||||||
|     <index id="96" parent="12" name="IDX_note_revisions_dateModifiedFrom"> |     <index id="86" parent="11" name="IDX_note_revisions_utcDateLastEdited"> | ||||||
|       <ColNames>dateModifiedFrom</ColNames> |       <ColNames>utcDateLastEdited</ColNames> | ||||||
|     </index> |     </index> | ||||||
|     <index id="97" parent="12" name="IDX_note_revisions_dateModifiedTo"> |     <index id="87" parent="11" name="IDX_note_revisions_utcDateCreated"> | ||||||
|       <ColNames>dateModifiedTo</ColNames> |       <ColNames>utcDateCreated</ColNames> | ||||||
|     </index> |     </index> | ||||||
|     <key id="98" parent="12"> |     <index id="88" parent="11" name="IDX_note_revisions_dateLastEdited"> | ||||||
|  |       <ColNames>dateLastEdited</ColNames> | ||||||
|  |     </index> | ||||||
|  |     <index id="89" parent="11" name="IDX_note_revisions_dateCreated"> | ||||||
|  |       <ColNames>dateCreated</ColNames> | ||||||
|  |     </index> | ||||||
|  |     <key id="90" parent="11"> | ||||||
|       <ColNames>noteRevisionId</ColNames> |       <ColNames>noteRevisionId</ColNames> | ||||||
|       <Primary>1</Primary> |       <Primary>1</Primary> | ||||||
|       <UnderlyingIndexName>sqlite_autoindex_note_revisions_1</UnderlyingIndexName> |       <UnderlyingIndexName>sqlite_autoindex_note_revisions_1</UnderlyingIndexName> | ||||||
|     </key> |     </key> | ||||||
|     <column id="99" parent="13" name="noteId"> |     <column id="91" parent="12" name="noteId"> | ||||||
|       <Position>1</Position> |       <Position>1</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="100" parent="13" name="title"> |     <column id="92" parent="12" name="title"> | ||||||
|       <Position>2</Position> |       <Position>2</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>"unnamed"</DefaultExpression> |       <DefaultExpression>"note"</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="101" parent="13" name="content"> |     <column id="93" parent="12" name="contentLength"> | ||||||
|       <Position>3</Position> |       <Position>3</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>INT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>""</DefaultExpression> |  | ||||||
|     </column> |     </column> | ||||||
|     <column id="102" parent="13" name="isProtected"> |     <column id="94" parent="12" name="isProtected"> | ||||||
|       <Position>4</Position> |       <Position>4</Position> | ||||||
|       <DataType>INT|0s</DataType> |       <DataType>INT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>0</DefaultExpression> |       <DefaultExpression>0</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="103" parent="13" name="isDeleted"> |     <column id="95" parent="12" name="type"> | ||||||
|       <Position>5</Position> |       <Position>5</Position> | ||||||
|       <DataType>INT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|       <DefaultExpression>0</DefaultExpression> |  | ||||||
|     </column> |  | ||||||
|     <column id="104" parent="13" name="dateCreated"> |  | ||||||
|       <Position>6</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |  | ||||||
|     <column id="105" parent="13" name="dateModified"> |  | ||||||
|       <Position>7</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |  | ||||||
|       <NotNull>1</NotNull> |  | ||||||
|     </column> |  | ||||||
|     <column id="106" parent="13" name="type"> |  | ||||||
|       <Position>8</Position> |  | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>'text'</DefaultExpression> |       <DefaultExpression>'text'</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="107" parent="13" name="mime"> |     <column id="96" parent="12" name="mime"> | ||||||
|       <Position>9</Position> |       <Position>6</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>'text/html'</DefaultExpression> |       <DefaultExpression>'text/html'</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="108" parent="13" name="hash"> |     <column id="97" parent="12" name="hash"> | ||||||
|       <Position>10</Position> |       <Position>7</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>""</DefaultExpression> |       <DefaultExpression>""</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <index id="109" parent="13" name="sqlite_autoindex_notes_1"> |     <column id="98" parent="12" name="isDeleted"> | ||||||
|  |       <Position>8</Position> | ||||||
|  |       <DataType>INT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |       <DefaultExpression>0</DefaultExpression> | ||||||
|  |     </column> | ||||||
|  |     <column id="99" parent="12" name="isErased"> | ||||||
|  |       <Position>9</Position> | ||||||
|  |       <DataType>INT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |       <DefaultExpression>0</DefaultExpression> | ||||||
|  |     </column> | ||||||
|  |     <column id="100" parent="12" name="dateCreated"> | ||||||
|  |       <Position>10</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |     </column> | ||||||
|  |     <column id="101" parent="12" name="dateModified"> | ||||||
|  |       <Position>11</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |     </column> | ||||||
|  |     <column id="102" parent="12" name="utcDateCreated"> | ||||||
|  |       <Position>12</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |     </column> | ||||||
|  |     <column id="103" parent="12" name="utcDateModified"> | ||||||
|  |       <Position>13</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |     </column> | ||||||
|  |     <index id="104" parent="12" name="sqlite_autoindex_notes_1"> | ||||||
|       <NameSurrogate>1</NameSurrogate> |       <NameSurrogate>1</NameSurrogate> | ||||||
|       <ColNames>noteId</ColNames> |       <ColNames>noteId</ColNames> | ||||||
|       <Unique>1</Unique> |       <Unique>1</Unique> | ||||||
|     </index> |     </index> | ||||||
|     <index id="110" parent="13" name="IDX_notes_type"> |     <index id="105" parent="12" name="IDX_notes_title"> | ||||||
|  |       <ColNames>title</ColNames> | ||||||
|  |     </index> | ||||||
|  |     <index id="106" parent="12" name="IDX_notes_type"> | ||||||
|       <ColNames>type</ColNames> |       <ColNames>type</ColNames> | ||||||
|     </index> |     </index> | ||||||
|     <key id="111" parent="13"> |     <index id="107" parent="12" name="IDX_notes_isDeleted"> | ||||||
|  |       <ColNames>isDeleted</ColNames> | ||||||
|  |     </index> | ||||||
|  |     <index id="108" parent="12" name="IDX_notes_dateCreated"> | ||||||
|  |       <ColNames>dateCreated</ColNames> | ||||||
|  |     </index> | ||||||
|  |     <index id="109" parent="12" name="IDX_notes_dateModified"> | ||||||
|  |       <ColNames>dateModified</ColNames> | ||||||
|  |     </index> | ||||||
|  |     <index id="110" parent="12" name="IDX_notes_utcDateCreated"> | ||||||
|  |       <ColNames>utcDateCreated</ColNames> | ||||||
|  |     </index> | ||||||
|  |     <index id="111" parent="12" name="IDX_notes_utcDateModified"> | ||||||
|  |       <ColNames>utcDateModified</ColNames> | ||||||
|  |     </index> | ||||||
|  |     <key id="112" parent="12"> | ||||||
|       <ColNames>noteId</ColNames> |       <ColNames>noteId</ColNames> | ||||||
|       <Primary>1</Primary> |       <Primary>1</Primary> | ||||||
|       <UnderlyingIndexName>sqlite_autoindex_notes_1</UnderlyingIndexName> |       <UnderlyingIndexName>sqlite_autoindex_notes_1</UnderlyingIndexName> | ||||||
|     </key> |     </key> | ||||||
|     <column id="112" parent="14" name="name"> |     <column id="113" parent="13" name="name"> | ||||||
|       <Position>1</Position> |       <Position>1</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="113" parent="14" name="value"> |     <column id="114" parent="13" name="value"> | ||||||
|       <Position>2</Position> |       <Position>2</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|     </column> |     </column> | ||||||
|     <column id="114" parent="14" name="dateModified"> |     <column id="115" parent="13" name="isSynced"> | ||||||
|       <Position>3</Position> |       <Position>3</Position> | ||||||
|       <DataType>INT|0s</DataType> |  | ||||||
|     </column> |  | ||||||
|     <column id="115" parent="14" name="isSynced"> |  | ||||||
|       <Position>4</Position> |  | ||||||
|       <DataType>INTEGER|0s</DataType> |       <DataType>INTEGER|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>0</DefaultExpression> |       <DefaultExpression>0</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="116" parent="14" name="hash"> |     <column id="116" parent="13" name="hash"> | ||||||
|       <Position>5</Position> |       <Position>4</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>""</DefaultExpression> |       <DefaultExpression>""</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="117" parent="14" name="dateCreated"> |     <column id="117" parent="13" name="utcDateCreated"> | ||||||
|  |       <Position>5</Position> | ||||||
|  |       <DataType>TEXT|0s</DataType> | ||||||
|  |       <NotNull>1</NotNull> | ||||||
|  |     </column> | ||||||
|  |     <column id="118" parent="13" name="utcDateModified"> | ||||||
|       <Position>6</Position> |       <Position>6</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>'1970-01-01T00:00:00.000Z'</DefaultExpression> |  | ||||||
|     </column> |     </column> | ||||||
|     <index id="118" parent="14" name="sqlite_autoindex_options_1"> |     <index id="119" parent="13" name="sqlite_autoindex_options_1"> | ||||||
|       <NameSurrogate>1</NameSurrogate> |       <NameSurrogate>1</NameSurrogate> | ||||||
|       <ColNames>name</ColNames> |       <ColNames>name</ColNames> | ||||||
|       <Unique>1</Unique> |       <Unique>1</Unique> | ||||||
|     </index> |     </index> | ||||||
|     <key id="119" parent="14"> |     <key id="120" parent="13"> | ||||||
|       <ColNames>name</ColNames> |       <ColNames>name</ColNames> | ||||||
|       <Primary>1</Primary> |       <Primary>1</Primary> | ||||||
|       <UnderlyingIndexName>sqlite_autoindex_options_1</UnderlyingIndexName> |       <UnderlyingIndexName>sqlite_autoindex_options_1</UnderlyingIndexName> | ||||||
|     </key> |     </key> | ||||||
|     <column id="120" parent="15" name="branchId"> |     <column id="121" parent="14" name="noteId"> | ||||||
|       <Position>1</Position> |       <Position>1</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="121" parent="15" name="notePath"> |     <column id="122" parent="14" name="notePath"> | ||||||
|       <Position>2</Position> |       <Position>2</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="122" parent="15" name="hash"> |     <column id="123" parent="14" name="hash"> | ||||||
|       <Position>3</Position> |       <Position>3</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <DefaultExpression>""</DefaultExpression> |       <DefaultExpression>""</DefaultExpression> | ||||||
|     </column> |     </column> | ||||||
|     <column id="123" parent="15" name="dateCreated"> |     <column id="124" parent="14" name="utcDateCreated"> | ||||||
|       <Position>4</Position> |       <Position>4</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="124" parent="15" name="isDeleted"> |     <column id="125" parent="14" name="isDeleted"> | ||||||
|       <Position>5</Position> |       <Position>5</Position> | ||||||
|       <DataType>INT|0s</DataType> |       <DataType>INT|0s</DataType> | ||||||
|     </column> |     </column> | ||||||
|     <index id="125" parent="15" name="sqlite_autoindex_recent_notes_1"> |     <index id="126" parent="14" name="sqlite_autoindex_recent_notes_1"> | ||||||
|       <NameSurrogate>1</NameSurrogate> |       <NameSurrogate>1</NameSurrogate> | ||||||
|       <ColNames>branchId</ColNames> |       <ColNames>noteId</ColNames> | ||||||
|       <Unique>1</Unique> |       <Unique>1</Unique> | ||||||
|     </index> |     </index> | ||||||
|     <key id="126" parent="15"> |     <key id="127" parent="14"> | ||||||
|       <ColNames>branchId</ColNames> |       <ColNames>noteId</ColNames> | ||||||
|       <Primary>1</Primary> |       <Primary>1</Primary> | ||||||
|       <UnderlyingIndexName>sqlite_autoindex_recent_notes_1</UnderlyingIndexName> |       <UnderlyingIndexName>sqlite_autoindex_recent_notes_1</UnderlyingIndexName> | ||||||
|     </key> |     </key> | ||||||
|     <column id="127" parent="16" name="sourceId"> |     <column id="128" parent="15" name="sourceId"> | ||||||
|       <Position>1</Position> |       <Position>1</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="128" parent="16" name="dateCreated"> |     <column id="129" parent="15" name="utcDateCreated"> | ||||||
|       <Position>2</Position> |       <Position>2</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <index id="129" parent="16" name="sqlite_autoindex_source_ids_1"> |     <index id="130" parent="15" name="sqlite_autoindex_source_ids_1"> | ||||||
|       <NameSurrogate>1</NameSurrogate> |       <NameSurrogate>1</NameSurrogate> | ||||||
|       <ColNames>sourceId</ColNames> |       <ColNames>sourceId</ColNames> | ||||||
|       <Unique>1</Unique> |       <Unique>1</Unique> | ||||||
|     </index> |     </index> | ||||||
|     <key id="130" parent="16"> |     <key id="131" parent="15"> | ||||||
|       <ColNames>sourceId</ColNames> |       <ColNames>sourceId</ColNames> | ||||||
|       <Primary>1</Primary> |       <Primary>1</Primary> | ||||||
|       <UnderlyingIndexName>sqlite_autoindex_source_ids_1</UnderlyingIndexName> |       <UnderlyingIndexName>sqlite_autoindex_source_ids_1</UnderlyingIndexName> | ||||||
|     </key> |     </key> | ||||||
|     <column id="131" parent="17" name="type"> |     <column id="132" parent="16" name="type"> | ||||||
|       <Position>1</Position> |       <Position>1</Position> | ||||||
|       <DataType>text|0s</DataType> |       <DataType>text|0s</DataType> | ||||||
|     </column> |     </column> | ||||||
|     <column id="132" parent="17" name="name"> |     <column id="133" parent="16" name="name"> | ||||||
|       <Position>2</Position> |       <Position>2</Position> | ||||||
|       <DataType>text|0s</DataType> |       <DataType>text|0s</DataType> | ||||||
|     </column> |     </column> | ||||||
|     <column id="133" parent="17" name="tbl_name"> |     <column id="134" parent="16" name="tbl_name"> | ||||||
|       <Position>3</Position> |       <Position>3</Position> | ||||||
|       <DataType>text|0s</DataType> |       <DataType>text|0s</DataType> | ||||||
|     </column> |     </column> | ||||||
|     <column id="134" parent="17" name="rootpage"> |     <column id="135" parent="16" name="rootpage"> | ||||||
|       <Position>4</Position> |       <Position>4</Position> | ||||||
|       <DataType>integer|0s</DataType> |       <DataType>int|0s</DataType> | ||||||
|     </column> |     </column> | ||||||
|     <column id="135" parent="17" name="sql"> |     <column id="136" parent="16" name="sql"> | ||||||
|       <Position>5</Position> |       <Position>5</Position> | ||||||
|       <DataType>text|0s</DataType> |       <DataType>text|0s</DataType> | ||||||
|     </column> |     </column> | ||||||
|     <column id="136" parent="18" name="name"> |     <column id="137" parent="17" name="name"> | ||||||
|       <Position>1</Position> |       <Position>1</Position> | ||||||
|     </column> |     </column> | ||||||
|     <column id="137" parent="18" name="seq"> |     <column id="138" parent="17" name="seq"> | ||||||
|       <Position>2</Position> |       <Position>2</Position> | ||||||
|     </column> |     </column> | ||||||
|     <column id="138" parent="19" name="id"> |     <column id="139" parent="18" name="id"> | ||||||
|       <Position>1</Position> |       <Position>1</Position> | ||||||
|       <DataType>INTEGER|0s</DataType> |       <DataType>INTEGER|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|       <SequenceIdentity>1</SequenceIdentity> |       <SequenceIdentity>1</SequenceIdentity> | ||||||
|     </column> |     </column> | ||||||
|     <column id="139" parent="19" name="entityName"> |     <column id="140" parent="18" name="entityName"> | ||||||
|       <Position>2</Position> |       <Position>2</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="140" parent="19" name="entityId"> |     <column id="141" parent="18" name="entityId"> | ||||||
|       <Position>3</Position> |       <Position>3</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="141" parent="19" name="sourceId"> |     <column id="142" parent="18" name="sourceId"> | ||||||
|       <Position>4</Position> |       <Position>4</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <column id="142" parent="19" name="syncDate"> |     <column id="143" parent="18" name="utcSyncDate"> | ||||||
|       <Position>5</Position> |       <Position>5</Position> | ||||||
|       <DataType>TEXT|0s</DataType> |       <DataType>TEXT|0s</DataType> | ||||||
|       <NotNull>1</NotNull> |       <NotNull>1</NotNull> | ||||||
|     </column> |     </column> | ||||||
|     <index id="143" parent="19" name="IDX_sync_entityName_entityId"> |     <index id="144" parent="18" name="IDX_sync_entityName_entityId"> | ||||||
|       <ColNames>entityName |       <ColNames>entityName | ||||||
| entityId</ColNames> | entityId</ColNames> | ||||||
|       <Unique>1</Unique> |       <Unique>1</Unique> | ||||||
|     </index> |     </index> | ||||||
|     <index id="144" parent="19" name="IDX_sync_syncDate"> |     <index id="145" parent="18" name="IDX_sync_utcSyncDate"> | ||||||
|       <ColNames>syncDate</ColNames> |       <ColNames>utcSyncDate</ColNames> | ||||||
|     </index> |     </index> | ||||||
|     <key id="145" parent="19"> |     <key id="146" parent="18"> | ||||||
|       <ColNames>id</ColNames> |       <ColNames>id</ColNames> | ||||||
|       <Primary>1</Primary> |       <Primary>1</Primary> | ||||||
|     </key> |     </key> | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								.idea/encodings.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.idea/encodings.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <project version="4"> | ||||||
|  |   <component name="Encoding" addBOMForNewFiles="with NO BOM" /> | ||||||
|  | </project> | ||||||
							
								
								
									
										6
									
								
								.idea/jsLibraryMappings.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.idea/jsLibraryMappings.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <project version="4"> | ||||||
|  |   <component name="JavaScriptLibraryMappings"> | ||||||
|  |     <file url="PROJECT" libraries="{@types/jquery}" /> | ||||||
|  |   </component> | ||||||
|  | </project> | ||||||
							
								
								
									
										28
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -1,21 +1,27 @@ | |||||||
| FROM node:8.11.2 | FROM node:12.13.0-alpine | ||||||
|  |  | ||||||
| RUN apt-get update && apt-get install -y nasm |  | ||||||
|  |  | ||||||
| # Create app directory | # Create app directory | ||||||
| WORKDIR /usr/src/app | WORKDIR /usr/src/app | ||||||
|  |  | ||||||
| # Install app dependencies | COPY server-package.json package.json | ||||||
| # A wildcard is used to ensure both package.json AND package-lock.json are copied |  | ||||||
| # where available (npm@5+) |  | ||||||
| COPY package*.json ./ |  | ||||||
|  |  | ||||||
| RUN npm install --production | # Install app dependencies | ||||||
| # If you are building your code for production | RUN set -x \ | ||||||
| # RUN npm install --only=production |     && apk add --no-cache --virtual .build-dependencies \ | ||||||
|  |         autoconf \ | ||||||
|  |         automake \ | ||||||
|  |         g++ \ | ||||||
|  |         gcc \ | ||||||
|  |         libtool \ | ||||||
|  |         make \ | ||||||
|  |         nasm \ | ||||||
|  |         libpng-dev \ | ||||||
|  |         python \ | ||||||
|  |     && npm install --production \ | ||||||
|  |     && apk del .build-dependencies | ||||||
|  |  | ||||||
| # Bundle app source | # Bundle app source | ||||||
| COPY . . | COPY . . | ||||||
|  |  | ||||||
| EXPOSE 8080 | EXPOSE 8080 | ||||||
| CMD [ "node", "src/www" ] | CMD [ "node", "./src/www" ] | ||||||
|   | |||||||
							
								
								
									
										46
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,39 +1,57 @@ | |||||||
| # Trilium Notes | # Trilium Notes | ||||||
|  |  | ||||||
| [](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | [](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | ||||||
| Trilium Notes is a hierarchical note taking application. Picture tells a thousand words: | Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases. See [screenshots](https://github.com/zadam/trilium/wiki/Screenshot-tour) for quick overview: | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| See other pictures in [screenshot tour](https://github.com/zadam/trilium/wiki/Screenshot-tour). |  | ||||||
|  |  | ||||||
| ## Features | ## Features | ||||||
|  |  | ||||||
| * Notes can be arranged into arbitrarily deep hierarchy (tree) | * Notes can be arranged into arbitrarily deep tree. Single note can be placed into multiple places in the tree (see [cloning](https://github.com/zadam/trilium/wiki/Cloning-notes)) | ||||||
|    * Notes can have more than 1 parents - see [cloning](https://github.com/zadam/trilium/wiki/Cloning-notes) |  | ||||||
| * Rich WYSIWYG note editing including e.g. tables and images with markdown [autoformat](https://github.com/zadam/trilium/wiki/Text-editor#autoformat) | * Rich WYSIWYG note editing including e.g. tables and images with markdown [autoformat](https://github.com/zadam/trilium/wiki/Text-editor#autoformat) | ||||||
| * Support for editing [notes with source code](https://raw.githubusercontent.com/wiki/zadam/trilium/images/code-note.png), including syntax highlighting | * Support for editing [notes with source code](https://github.com/zadam/trilium/wiki/Code-notes), including syntax highlighting | ||||||
| * Fast and easy [navigation between notes](https://github.com/zadam/trilium/wiki/Note-navigation) | * Fast and easy [navigation between notes](https://github.com/zadam/trilium/wiki/Note-navigation), full text search and [note hoisting](https://github.com/zadam/trilium/wiki/Note-hoisting) | ||||||
| * Seamless [note versioning](https://github.com/zadam/trilium/wiki/Note-revisions) | * Seamless [note versioning](https://github.com/zadam/trilium/wiki/Note-revisions) | ||||||
| * Note [attributes](https://github.com/zadam/trilium/wiki/Attributes) can be used for note organization, querying and advanced [[scripting|scripts]] | * Note [attributes](https://github.com/zadam/trilium/wiki/Attributes) can be used for note organization, querying and advanced [scripting](https://github.com/zadam/trilium/wiki/Scripts) | ||||||
| * [Synchronization](https://github.com/zadam/trilium/wiki/Synchronization) with self-hosted sync server | * [Synchronization](https://github.com/zadam/trilium/wiki/Synchronization) with self-hosted sync server | ||||||
| * Strong [note encryption](https://github.com/zadam/trilium/wiki/Protected-notes) | * Strong [note encryption](https://github.com/zadam/trilium/wiki/Protected-notes) with per-note granularity | ||||||
|  | * [Relation maps](https://github.com/zadam/trilium/wiki/Relation-map) and [link maps](https://github.com/zadam/trilium/wiki/Link-map) for visualizing notes and their relations | ||||||
| * [Scripting](https://github.com/zadam/trilium/wiki/Scripts) - see [Advanced showcases](https://github.com/zadam/trilium/wiki/Advanced-showcases) | * [Scripting](https://github.com/zadam/trilium/wiki/Scripts) - see [Advanced showcases](https://github.com/zadam/trilium/wiki/Advanced-showcases) | ||||||
| * Scales well in both usability and performance upwards of 100 000 notes | * Scales well in both usability and performance upwards of 100 000 notes | ||||||
|  | * Touch optimized [mobile frontend](https://github.com/zadam/trilium/wiki/Mobile-frontend) for smartphones and tablets | ||||||
| * [Night theme](https://github.com/zadam/trilium/wiki/Themes) | * [Night theme](https://github.com/zadam/trilium/wiki/Themes) | ||||||
|  | * [Evernote](https://github.com/zadam/trilium/wiki/Evernote-import) and [Markdown import & export](https://github.com/zadam/trilium/wiki/Markdown) | ||||||
|  | * [Web Clipper](https://github.com/zadam/trilium/wiki/Web-clipper) for easy saving of web content | ||||||
|  |  | ||||||
| ## Builds | ## Builds | ||||||
|  |  | ||||||
| Trilium is provided as either desktop application ([Electron](https://electronjs.org)-based) or web application hosted on your server. | Trilium is provided as either desktop application (Linux and Windows) or web application hosted on your server (Linux). Mac OS desktop build is available, but it is [unsupported](https://github.com/zadam/trilium/wiki/FAQ#mac-os-support). | ||||||
|  |  | ||||||
| * If you want to use Trilium on the desktop, download binary release for your platform from [latest release](https://github.com/zadam/trilium/releases/latest), unzip the package and run ```trilium``` executable. | * If you want to use Trilium on the desktop, download binary release for your platform from [latest release](https://github.com/zadam/trilium/releases/latest), unzip the package and run ```trilium``` executable. | ||||||
| * If you want to install Trilium on server, follow [this page](https://github.com/zadam/trilium/wiki/Server-installation). | * If you want to install Trilium on server, follow [this page](https://github.com/zadam/trilium/wiki/Server-installation). | ||||||
|   * Currently only recent Chrome and Firefox are supported (tested) browsers. |   * Currently only recent Chrome and Firefox are supported (tested) browsers. | ||||||
|  |  | ||||||
| ## Status |  | ||||||
|  |  | ||||||
| Trilium is beta quality software. While it is reasonably feature complete and is tested by its author, it lacks proper testing by more users. It's not yet recommended for daily use, but testing and experimentation is encouraged. |  | ||||||
|  |  | ||||||
| ## Documentation | ## Documentation | ||||||
|  |  | ||||||
| [See wiki for complete list of documentation pages.](https://github.com/zadam/trilium/wiki/) | [See wiki for complete list of documentation pages.](https://github.com/zadam/trilium/wiki/) | ||||||
|  |  | ||||||
|  | You can also read [Patterns of personal knowledge base](https://github.com/zadam/trilium/wiki/Patterns-of-personal-knowledge-base) to get some inspiration on how you might use Trilium. | ||||||
|  |  | ||||||
|  | ## Contribute | ||||||
|  |  | ||||||
|  | Use a browser based dev environment | ||||||
|  |  | ||||||
|  | [](https://gitpod.io/#https://github.com/zadam/trilium) | ||||||
|  |  | ||||||
|  | Or clone locally and run | ||||||
|  | ``` | ||||||
|  | npm install | ||||||
|  | npm run start-server | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ## Shoutouts | ||||||
|  |  | ||||||
|  | * [CKEditor 5](https://github.com/ckeditor/ckeditor5) - best WYSIWYG editor on the market, very interactive and listening team | ||||||
|  | * [FancyTree](https://github.com/mar10/fancytree) - very feature rich tree library without real competition. Trilium Notes would not be the same without it. | ||||||
|  | * [CodeMirror](https://github.com/codemirror/CodeMirror) - code editor with support for huge amount of languages | ||||||
|  | * [jsPlumb](https://github.com/jsplumb/jsplumb) - visual connectivity library without competition. Used in [relation maps](https://github.com/zadam/trilium/wiki/Relation-map) and [link maps](https://github.com/zadam/trilium/wiki/Link-map) | ||||||
							
								
								
									
										7
									
								
								bin/build-debian.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										7
									
								
								bin/build-debian.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,7 @@ | |||||||
|  | #!/usr/bin/env bash | ||||||
|  |  | ||||||
|  | echo "Packaging debian x64 distribution..." | ||||||
|  |  | ||||||
|  | VERSION=`jq -r ".version" package.json` | ||||||
|  |  | ||||||
|  | ./node_modules/.bin/electron-installer-debian --config bin/deb-options.json --options.version=${VERSION} --arch amd64 | ||||||
| @@ -1,8 +1,12 @@ | |||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
|  |  | ||||||
| if [[ $# -eq 0 ]] ; then | VERSION=`jq -r ".version" package.json` | ||||||
|     echo "Missing argument of new version" | SERIES=${VERSION:0:4}-latest | ||||||
|     exit 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| sudo docker build -t zadam/trilium:latest -t zadam/trilium:$1 . | cat package.json | grep -v electron > server-package.json | ||||||
|  |  | ||||||
|  | sudo docker build -t zadam/trilium:$VERSION -t zadam/trilium:$SERIES . | ||||||
|  |  | ||||||
|  | if [[ $VERSION != *"beta"* ]]; then | ||||||
|  |   sudo docker tag zadam/trilium:$VERSION zadam/trilium:latest | ||||||
|  | fi | ||||||
|   | |||||||
							
								
								
									
										41
									
								
								bin/build-linux-x64.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										41
									
								
								bin/build-linux-x64.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,41 @@ | |||||||
|  | #!/usr/bin/env bash | ||||||
|  |  | ||||||
|  | SRC_DIR=./dist/trilium-linux-x64-src | ||||||
|  |  | ||||||
|  | if [ "$1" != "DONTCOPY" ] | ||||||
|  | then | ||||||
|  |     ./bin/copy-trilium.sh $SRC_DIR | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | echo "Copying required linux-x64 binaries" | ||||||
|  |  | ||||||
|  | rm -r $SRC_DIR/node_modules/sqlite3/lib/binding/* | ||||||
|  | rm -r $SRC_DIR/node_modules/pngquant-bin/vendor/* | ||||||
|  | rm -r $SRC_DIR/node_modules/@felixrieseberg/spellchecker/build/Release/* | ||||||
|  |  | ||||||
|  | cp -r bin/deps/linux-x64/sqlite/* $SRC_DIR/node_modules/sqlite3/lib/binding/ | ||||||
|  | cp bin/deps/linux-x64/image/pngquant $SRC_DIR/node_modules/pngquant-bin/vendor/ | ||||||
|  | cp bin/deps/linux-x64/spellchecker/* $SRC_DIR/node_modules/@felixrieseberg/spellchecker/build/Release/ | ||||||
|  |  | ||||||
|  | ./node_modules/.bin/electron-packager $SRC_DIR --asar --out=dist --executable-name=trilium --platform=linux --arch=x64 --overwrite | ||||||
|  |  | ||||||
|  | BUILD_DIR=./dist/trilium-linux-x64 | ||||||
|  | rm -rf $BUILD_DIR | ||||||
|  |  | ||||||
|  | mv "./dist/Trilium Notes-linux-x64" $BUILD_DIR | ||||||
|  |  | ||||||
|  | cp images/app-icons/png/128x128.png $BUILD_DIR/icon.png | ||||||
|  |  | ||||||
|  | # removing software WebGL binaries because they are pretty huge and not necessary | ||||||
|  | rm -r $BUILD_DIR/swiftshader | ||||||
|  |  | ||||||
|  | echo "Packaging linux x64 electron distribution..." | ||||||
|  | VERSION=`jq -r ".version" package.json` | ||||||
|  |  | ||||||
|  | cd dist | ||||||
|  |  | ||||||
|  | tar cJf trilium-linux-x64-${VERSION}.tar.xz trilium-linux-x64 | ||||||
|  |  | ||||||
|  | cd .. | ||||||
|  |  | ||||||
|  | bin/build-debian.sh | ||||||
							
								
								
									
										41
									
								
								bin/build-mac-x64.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										41
									
								
								bin/build-mac-x64.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,41 @@ | |||||||
|  | #!/usr/bin/env bash | ||||||
|  |  | ||||||
|  | SRC_DIR=./dist/trilium-mac-x64-src | ||||||
|  |  | ||||||
|  | if [ "$1" != "DONTCOPY" ] | ||||||
|  | then | ||||||
|  |     ./bin/copy-trilium.sh $SRC_DIR | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | echo "Copying required mac binaries" | ||||||
|  |  | ||||||
|  | rm -r $SRC_DIR/node_modules/sqlite3/lib/binding/* | ||||||
|  | rm -r $SRC_DIR/node_modules/mozjpeg/vendor/* | ||||||
|  | rm -r $SRC_DIR/node_modules/pngquant-bin/vendor/* | ||||||
|  | rm -r $SRC_DIR/node_modules/giflossy/vendor/* | ||||||
|  | rm -r $SRC_DIR/node_modules/@felixrieseberg/spellchecker/build/Release/* | ||||||
|  | rm -r $SRC_DIR/node_modules/keyboard-layout/build/Release/* | ||||||
|  |  | ||||||
|  | cp -r bin/deps/mac-x64/sqlite/* $SRC_DIR/node_modules/sqlite3/lib/binding/ | ||||||
|  | cp bin/deps/mac-x64/image/cjpeg $SRC_DIR/node_modules/mozjpeg/vendor/ | ||||||
|  | cp bin/deps/mac-x64/image/pngquant $SRC_DIR/node_modules/pngquant-bin/vendor/ | ||||||
|  | cp bin/deps/mac-x64/image/gifsicle $SRC_DIR/node_modules/giflossy/vendor/ | ||||||
|  | cp bin/deps/mac-x64/spellchecker/* $SRC_DIR/node_modules/@felixrieseberg/spellchecker/build/Release/ | ||||||
|  | cp bin/deps/mac-x64/keyboard-layout-manager.node $SRC_DIR/node_modules/keyboard-layout/build/Release/ | ||||||
|  |  | ||||||
|  | ./node_modules/.bin/electron-packager $SRC_DIR --asar --out=dist --executable-name=trilium --platform=darwin --arch=x64 --overwrite --icon=images/app-icons/mac/icon.icns | ||||||
|  |  | ||||||
|  | BUILD_DIR=./dist/trilium-mac-x64 | ||||||
|  | rm -rf $BUILD_DIR | ||||||
|  |  | ||||||
|  | # Mac build has by default useless directory level | ||||||
|  | mv "./dist/Trilium Notes-darwin-x64" $BUILD_DIR | ||||||
|  |  | ||||||
|  | echo "Zipping mac x64 electron distribution..." | ||||||
|  |  | ||||||
|  | VERSION=`jq -r ".version" package.json` | ||||||
|  |  | ||||||
|  | cd dist | ||||||
|  |  | ||||||
|  | rm trilium-mac-x64-${VERSION}.zip | ||||||
|  | zip -r9 --symlinks trilium-mac-x64-${VERSION}.zip trilium-mac-x64 | ||||||
| @@ -1,38 +1,32 @@ | |||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
|  |  | ||||||
| if [[ $# -eq 0 ]] ; then | PKG_DIR=dist/trilium-linux-x64-server | ||||||
|     echo "Missing argument of new version" | NODE_VERSION=12.13.0 | ||||||
|     exit 1 |  | ||||||
|  | if [ "$1" != "DONTCOPY" ] | ||||||
|  | then | ||||||
|  |     ./bin/copy-trilium.sh $PKG_DIR | ||||||
| fi | fi | ||||||
|  |  | ||||||
| VERSION=$1 | cd dist | ||||||
| PKG_DIR=dist/trilium-linux-x64-server | wget https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz | ||||||
| NODE_VERSION=8.11.4 |  | ||||||
|  |  | ||||||
| rm -r $PKG_DIR |  | ||||||
| mkdir $PKG_DIR |  | ||||||
| cd $PKG_DIR |  | ||||||
|  |  | ||||||
| wget https://nodejs.org/dist/latest-v8.x/node-v${NODE_VERSION}-linux-x64.tar.xz |  | ||||||
| tar xvfJ node-v${NODE_VERSION}-linux-x64.tar.xz | tar xvfJ node-v${NODE_VERSION}-linux-x64.tar.xz | ||||||
| rm node-v${NODE_VERSION}-linux-x64.tar.xz | rm node-v${NODE_VERSION}-linux-x64.tar.xz | ||||||
|  |  | ||||||
| mv node-v${NODE_VERSION}-linux-x64 node |  | ||||||
|  |  | ||||||
| cp -r ../../node_modules/ ./ |  | ||||||
| cp -r ../../src/ ./ |  | ||||||
| cp -r ../../db/ ./ |  | ||||||
| cp -r ../../package.json ./ |  | ||||||
| cp -r ../../package-lock.json ./ |  | ||||||
| cp -r ../../README.md ./ |  | ||||||
| cp -r ../../LICENSE ./ |  | ||||||
| cp -r ../../config-sample.ini ./ |  | ||||||
|  |  | ||||||
| rm -r ./node_modules/electron* |  | ||||||
|  |  | ||||||
| printf "#/bin/sh\n./node/bin/node src/www" > trilium.sh |  | ||||||
| chmod 755 trilium.sh |  | ||||||
|  |  | ||||||
| cd .. | cd .. | ||||||
|  |  | ||||||
| 7z a trilium-linux-x64-server-${VERSION}.7z trilium-linux-x64-server | mv dist/node-v${NODE_VERSION}-linux-x64 $PKG_DIR/node | ||||||
|  |  | ||||||
|  | rm -r $PKG_DIR/node_modules/electron* | ||||||
|  |  | ||||||
|  | rm -r $PKG_DIR/node_modules/sqlite3/lib/binding/* | ||||||
|  |  | ||||||
|  | cp -r ./bin/deps/linux-x64/sqlite/node* $PKG_DIR/node_modules/sqlite3/lib/binding/ | ||||||
|  |  | ||||||
|  | printf "#!/bin/sh\n./node/bin/node src/www" > $PKG_DIR/trilium.sh | ||||||
|  | chmod 755 $PKG_DIR/trilium.sh | ||||||
|  |  | ||||||
|  | VERSION=`jq -r ".version" package.json` | ||||||
|  |  | ||||||
|  | cd dist | ||||||
|  |  | ||||||
|  | tar cJf trilium-linux-x64-server-${VERSION}.tar.xz trilium-linux-x64-server | ||||||
|   | |||||||
							
								
								
									
										42
									
								
								bin/build-win-x64.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										42
									
								
								bin/build-win-x64.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,42 @@ | |||||||
|  | #!/usr/bin/env bash | ||||||
|  |  | ||||||
|  | SRC_DIR=./dist/trilium-windows-x64-src | ||||||
|  |  | ||||||
|  | if [ "$1" != "DONTCOPY" ] | ||||||
|  | then | ||||||
|  |     ./bin/copy-trilium.sh $SRC_DIR | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | echo "Copying required windows binaries" | ||||||
|  |  | ||||||
|  | rm -r $SRC_DIR/node_modules/sqlite3/lib/binding/* | ||||||
|  | rm -r $SRC_DIR/node_modules/mozjpeg/vendor/* | ||||||
|  | rm -r $SRC_DIR/node_modules/pngquant-bin/vendor/* | ||||||
|  | rm -r $SRC_DIR/node_modules/giflossy/vendor/* | ||||||
|  | rm -r $SRC_DIR/node_modules/@felixrieseberg/spellchecker/build/Release/* | ||||||
|  | rm -r $SRC_DIR/node_modules/keyboard-layout/build/Release/* | ||||||
|  | rm -r $SRC_DIR/node_modules/cld/build/Release/* | ||||||
|  |  | ||||||
|  | cp -r bin/deps/win-x64/sqlite/* $SRC_DIR/node_modules/sqlite3/lib/binding/ | ||||||
|  | cp bin/deps/win-x64/image/cjpeg.exe $SRC_DIR/node_modules/mozjpeg/vendor/ | ||||||
|  | cp bin/deps/win-x64/image/pngquant.exe $SRC_DIR/node_modules/pngquant-bin/vendor/ | ||||||
|  | cp bin/deps/win-x64/image/gifsicle.exe $SRC_DIR/node_modules/giflossy/vendor/ | ||||||
|  | cp bin/deps/win-x64/spellchecker/* $SRC_DIR/node_modules/@felixrieseberg/spellchecker/build/Release/ | ||||||
|  | cp bin/deps/win-x64/keyboard-layout-manager.node $SRC_DIR/node_modules/keyboard-layout/build/Release/ | ||||||
|  |  | ||||||
|  | ./node_modules/.bin/electron-packager $SRC_DIR --asar --out=dist --executable-name=trilium --platform=win32  --arch=x64 --overwrite --icon=images/app-icons/win/icon.ico | ||||||
|  |  | ||||||
|  | BUILD_DIR=./dist/trilium-windows-x64 | ||||||
|  | rm -rf $BUILD_DIR | ||||||
|  |  | ||||||
|  | mv "./dist/Trilium Notes-win32-x64" $BUILD_DIR | ||||||
|  |  | ||||||
|  | # removing software WebGL binaries because they are pretty huge and not necessary | ||||||
|  | rm -r $BUILD_DIR/swiftshader | ||||||
|  |  | ||||||
|  | echo "Zipping windows x64 electron distribution..." | ||||||
|  | VERSION=`jq -r ".version" package.json` | ||||||
|  |  | ||||||
|  | cd dist | ||||||
|  |  | ||||||
|  | zip -r9 trilium-windows-x64-${VERSION}.zip trilium-windows-x64 | ||||||
							
								
								
									
										39
									
								
								bin/build.sh
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								bin/build.sh
									
									
									
									
									
								
							| @@ -1,38 +1,23 @@ | |||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
|  |  | ||||||
| rm -r node_modules |  | ||||||
|  |  | ||||||
| npm install |  | ||||||
|  |  | ||||||
| echo "Deleting existing builds" | echo "Deleting existing builds" | ||||||
|  |  | ||||||
| rm -r dist/* | rm -rf dist/* | ||||||
|  |  | ||||||
| echo "Rebuilding binaries for linux-ia32" | SRC_DIR=dist/trilium-src | ||||||
| ./node_modules/.bin/electron-rebuild --arch=ia32 |  | ||||||
|  |  | ||||||
| ./node_modules/.bin/electron-packager . --out=dist --platform=linux --arch=ia32 --overwrite | bin/copy-trilium.sh $SRC_DIR | ||||||
|  |  | ||||||
| ./node_modules/.bin/electron-packager . --out=dist --platform=win32 --arch=x64 --overwrite | # we'll just copy the same SRC dir to all the builds so we don't have to do npm install in each separately | ||||||
|  | cp -r $SRC_DIR ./dist/trilium-linux-x64-src | ||||||
|  | cp -r $SRC_DIR ./dist/trilium-linux-x64-server | ||||||
|  | cp -r $SRC_DIR ./dist/trilium-windows-x64-src | ||||||
|  | cp -r $SRC_DIR ./dist/trilium-mac-x64-src | ||||||
|  |  | ||||||
| # we build x64 as second so that we keep X64 binaries in node_modules for local development and server build | bin/build-win-x64.sh DONTCOPY | ||||||
| echo "Rebuilding binaries for linux-x64" |  | ||||||
| ./node_modules/.bin/electron-rebuild --arch=x64 |  | ||||||
|  |  | ||||||
| ./node_modules/.bin/electron-packager . --out=dist --platform=linux --arch=x64 --overwrite | bin/build-mac-x64.sh DONTCOPY | ||||||
|  |  | ||||||
| echo "Copying required windows binaries" | bin/build-linux-x64.sh DONTCOPY | ||||||
|  |  | ||||||
| WIN_RES_DIR=./dist/trilium-win32-x64/resources/app | bin/build-server.sh DONTCOPY | ||||||
|  |  | ||||||
| cp -r bin/deps/sqlite/* $WIN_RES_DIR/node_modules/sqlite3/lib/binding/ |  | ||||||
| cp bin/deps/image/cjpeg.exe $WIN_RES_DIR/node_modules/mozjpeg/vendor/ |  | ||||||
| cp bin/deps/image/pngquant.exe $WIN_RES_DIR/node_modules/imagemin-pngquant/node_modules/pngquant-bin/vendor/ |  | ||||||
| cp bin/deps/image/gifsicle.exe $WIN_RES_DIR/node_modules/giflossy/vendor/ |  | ||||||
| cp bin/deps/scrypt.node $WIN_RES_DIR/node_modules/scrypt/build/Release/ |  | ||||||
|  |  | ||||||
| echo "Cleaning up unnecessary binaries from all builds" |  | ||||||
|  |  | ||||||
| rm -r ./dist/trilium-linux-ia32/resources/app/bin/deps |  | ||||||
| rm -r ./dist/trilium-linux-x64/resources/app/bin/deps |  | ||||||
| rm -r ./dist/trilium-win32-x64/resources/app/bin/deps |  | ||||||
|   | |||||||
							
								
								
									
										32
									
								
								bin/copy-trilium.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										32
									
								
								bin/copy-trilium.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,32 @@ | |||||||
|  | #!/usr/bin/env bash | ||||||
|  |  | ||||||
|  | if [[ $# -eq 0 ]] ; then | ||||||
|  |     echo "Missing argument of target directory" | ||||||
|  |     exit 1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | DIR=$1 | ||||||
|  |  | ||||||
|  | rm -rf $DIR | ||||||
|  | mkdir $DIR | ||||||
|  |  | ||||||
|  | echo "Copying Trilium to build directory $DIR" | ||||||
|  |  | ||||||
|  | cp -r images $DIR/ | ||||||
|  | cp -r libraries $DIR/ | ||||||
|  | cp -r src $DIR/ | ||||||
|  | cp -r db $DIR/ | ||||||
|  | cp -r package.json $DIR/ | ||||||
|  | cp -r package-lock.json $DIR/ | ||||||
|  | cp -r README.md $DIR/ | ||||||
|  | cp -r LICENSE $DIR/ | ||||||
|  | cp -r config-sample.ini $DIR/ | ||||||
|  | cp -r electron.js $DIR/ | ||||||
|  |  | ||||||
|  | # run in subshell (so we return to original dir) | ||||||
|  | (cd $DIR && npm install --only=prod) | ||||||
|  |  | ||||||
|  | rm -r $DIR/node_modules/cld/deps | ||||||
|  |  | ||||||
|  | find $DIR/libraries -name "*.map" -type f -delete | ||||||
|  | find $DIR/libraries -name "hunspell.lib" -type f -delete | ||||||
							
								
								
									
										14
									
								
								bin/deb-options.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								bin/deb-options.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | { | ||||||
|  |   "src": "dist/trilium-linux-x64", | ||||||
|  |   "dest": "dist/", | ||||||
|  |   "name": "trilium", | ||||||
|  |   "productName": "Trilium Notes", | ||||||
|  |   "genericName": "Note taker", | ||||||
|  |   "description": "Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases.", | ||||||
|  |   "sections": "misc", | ||||||
|  |   "maintainer": "zadam.apps@gmail.com", | ||||||
|  |   "homepage": "https://github.com/zadam/trilium", | ||||||
|  |   "bin": "trilium", | ||||||
|  |   "icon": "dist/trilium-linux-x64/icon.png", | ||||||
|  |   "categories": [ "Office" ] | ||||||
|  | } | ||||||
							
								
								
									
										
											BIN
										
									
								
								bin/deps/linux-x64/image/pngquant
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/linux-x64/image/pngquant
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/linux-x64/spellchecker/hunspell.a
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/linux-x64/spellchecker/hunspell.a
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/linux-x64/spellchecker/spellchecker.node
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/linux-x64/spellchecker/spellchecker.node
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/linux-x64/sqlite/electron-v6.0-linux-x64/node_sqlite3.node
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/linux-x64/sqlite/electron-v6.0-linux-x64/node_sqlite3.node
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/linux-x64/sqlite/node-v72-linux-x64/node_sqlite3.node
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/linux-x64/sqlite/node-v72-linux-x64/node_sqlite3.node
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/mac-x64/image/cjpeg
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/mac-x64/image/cjpeg
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/mac-x64/image/gifsicle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/mac-x64/image/gifsicle
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/mac-x64/image/pngquant
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/mac-x64/image/pngquant
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/mac-x64/keyboard-layout-manager.node
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/mac-x64/keyboard-layout-manager.node
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/mac-x64/spellchecker/hunspell.a
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/mac-x64/spellchecker/hunspell.a
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/mac-x64/spellchecker/spellchecker.node
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/mac-x64/spellchecker/spellchecker.node
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/mac-x64/sqlite/electron-v6.0-darwin-x64/node_sqlite3.node
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/mac-x64/sqlite/electron-v6.0-darwin-x64/node_sqlite3.node
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								bin/deps/image/cjpeg.exe → bin/deps/win-x64/image/cjpeg.exe
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								bin/deps/image/cjpeg.exe → bin/deps/win-x64/image/cjpeg.exe
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/win-x64/keyboard-layout-manager.node
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/win-x64/keyboard-layout-manager.node
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/win-x64/spellchecker/hunspell.lib
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/win-x64/spellchecker/hunspell.lib
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/win-x64/spellchecker/spellchecker.lib
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/win-x64/spellchecker/spellchecker.lib
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/deps/win-x64/spellchecker/spellchecker.node
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/deps/win-x64/spellchecker/spellchecker.node
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,3 +0,0 @@ | |||||||
| #!/usr/bin/env bash |  | ||||||
|  |  | ||||||
| sqlite3 ~/trilium-data/document.db < bin/dump.sql |  | ||||||
							
								
								
									
										19
									
								
								bin/dump.sql
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								bin/dump.sql
									
									
									
									
									
								
							| @@ -1,19 +0,0 @@ | |||||||
| .mode insert branches |  | ||||||
| .out db/main_branches.sql |  | ||||||
| select * from branches where isDeleted = 0; |  | ||||||
|  |  | ||||||
| .mode insert notes |  | ||||||
| .out db/main_notes.sql |  | ||||||
| select * from notes where isDeleted = 0; |  | ||||||
|  |  | ||||||
| .mode insert images |  | ||||||
| .out db/main_images.sql |  | ||||||
| select * from images where isDeleted = 0; |  | ||||||
|  |  | ||||||
| .mode insert note_images |  | ||||||
| .out db/main_note_images.sql |  | ||||||
| select * from note_images where isDeleted = 0; |  | ||||||
|  |  | ||||||
| .mode insert attributes |  | ||||||
| .out db/main_attributes.sql |  | ||||||
| select * from attributes where isDeleted = 0; |  | ||||||
| @@ -2,6 +2,6 @@ | |||||||
|  |  | ||||||
| SCHEMA_FILE_PATH=db/schema.sql | SCHEMA_FILE_PATH=db/schema.sql | ||||||
|  |  | ||||||
| sqlite3 ~/trilium-data/document.db .schema > "$SCHEMA_FILE_PATH" | sqlite3 ~/trilium-data/document.db .schema | grep -v "sqlite_sequence" > "$SCHEMA_FILE_PATH" | ||||||
|  |  | ||||||
| echo "DB schema exported to $SCHEMA_FILE_PATH" | echo "DB schema exported to $SCHEMA_FILE_PATH" | ||||||
							
								
								
									
										0
									
								
								bin/generate-cert.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								bin/generate-cert.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -1,14 +0,0 @@ | |||||||
| #!/usr/bin/env bash |  | ||||||
|  |  | ||||||
| VERSION=`jq -r ".version" package.json` |  | ||||||
|  |  | ||||||
| cd dist |  | ||||||
|  |  | ||||||
| echo "Packaging linux x64 electron distribution..." |  | ||||||
| 7z a trilium-linux-x64-${VERSION}.7z trilium-linux-x64 |  | ||||||
|  |  | ||||||
| echo "Packaging linux ia32 electron distribution..." |  | ||||||
| 7z a trilium-linux-ia32-${VERSION}.7z trilium-linux-ia32 |  | ||||||
|  |  | ||||||
| echo "Packaging windows x64 electron distribution..." |  | ||||||
| 7z a trilium-windows-x64-${VERSION}.7z trilium-win32-x64 |  | ||||||
| @@ -5,5 +5,12 @@ if [[ $# -eq 0 ]] ; then | |||||||
|     exit 1 |     exit 1 | ||||||
| fi | fi | ||||||
|  |  | ||||||
| sudo docker push zadam/trilium:latest | VERSION=$1 | ||||||
| sudo docker push zadam/trilium:$1 | SERIES=${VERSION:0:4}-latest | ||||||
|  |  | ||||||
|  | sudo docker push zadam/trilium:$VERSION | ||||||
|  | sudo docker push zadam/trilium:$SERIES | ||||||
|  |  | ||||||
|  | if [[ $1 != *"beta"* ]]; then | ||||||
|  |   sudo docker push zadam/trilium:latest | ||||||
|  | fi | ||||||
|   | |||||||
| @@ -1,5 +1,7 @@ | |||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
|  |  | ||||||
|  | export GITHUB_REPO=trilium | ||||||
|  |  | ||||||
| if [[ $# -eq 0 ]] ; then | if [[ $# -eq 0 ]] ; then | ||||||
|     echo "Missing argument of new version" |     echo "Missing argument of new version" | ||||||
|     exit 1 |     exit 1 | ||||||
| @@ -42,18 +44,30 @@ git push origin $TAG | |||||||
|  |  | ||||||
| bin/build.sh | bin/build.sh | ||||||
|  |  | ||||||
| bin/package.sh | LINUX_X64_BUILD=trilium-linux-x64-$VERSION.tar.xz | ||||||
|  | DEBIAN_X64_BUILD=trilium_${VERSION}_amd64.deb | ||||||
| LINUX_X64_BUILD=trilium-linux-x64-$VERSION.7z | WINDOWS_X64_BUILD=trilium-windows-x64-$VERSION.zip | ||||||
| LINUX_IA32_BUILD=trilium-linux-ia32-$VERSION.7z | MAC_X64_BUILD=trilium-mac-x64-$VERSION.zip | ||||||
| WINDOWS_X64_BUILD=trilium-windows-x64-$VERSION.7z | SERVER_BUILD=trilium-linux-x64-server-$VERSION.tar.xz | ||||||
| SERVER_BUILD=trilium-linux-x64-server-$VERSION.7z |  | ||||||
|  |  | ||||||
| echo "Creating release in GitHub" | echo "Creating release in GitHub" | ||||||
|  |  | ||||||
|  | EXTRA= | ||||||
|  |  | ||||||
|  | if [[ $TAG == *"beta"* ]]; then | ||||||
|  |   EXTRA=--pre-release | ||||||
|  | fi | ||||||
|  |  | ||||||
| github-release release \ | github-release release \ | ||||||
|     --tag $TAG \ |     --tag $TAG \ | ||||||
|     --name "$TAG release" |     --name "$TAG release" $EXTRA | ||||||
|  |  | ||||||
|  | echo "Uploading debian x64 package" | ||||||
|  |  | ||||||
|  | github-release upload \ | ||||||
|  |     --tag $TAG \ | ||||||
|  |     --name "$DEBIAN_X64_BUILD" \ | ||||||
|  |     --file "dist/$DEBIAN_X64_BUILD" | ||||||
|  |  | ||||||
| echo "Uploading linux x64 build" | echo "Uploading linux x64 build" | ||||||
|  |  | ||||||
| @@ -62,13 +76,6 @@ github-release upload \ | |||||||
|     --name "$LINUX_X64_BUILD" \ |     --name "$LINUX_X64_BUILD" \ | ||||||
|     --file "dist/$LINUX_X64_BUILD" |     --file "dist/$LINUX_X64_BUILD" | ||||||
|  |  | ||||||
| echo "Uploading linux ia32 build" |  | ||||||
|  |  | ||||||
| github-release upload \ |  | ||||||
|     --tag $TAG \ |  | ||||||
|     --name "$LINUX_IA32_BUILD" \ |  | ||||||
|     --file "dist/$LINUX_IA32_BUILD" |  | ||||||
|  |  | ||||||
| echo "Uploading windows x64 build" | echo "Uploading windows x64 build" | ||||||
|  |  | ||||||
| github-release upload \ | github-release upload \ | ||||||
| @@ -76,9 +83,14 @@ github-release upload \ | |||||||
|     --name "$WINDOWS_X64_BUILD" \ |     --name "$WINDOWS_X64_BUILD" \ | ||||||
|     --file "dist/$WINDOWS_X64_BUILD" |     --file "dist/$WINDOWS_X64_BUILD" | ||||||
|  |  | ||||||
| echo "Packaging server version" | echo "Uploading mac x64 build" | ||||||
|  |  | ||||||
| bin/build-server.sh $VERSION | github-release upload \ | ||||||
|  |     --tag $TAG \ | ||||||
|  |     --name "$MAC_X64_BUILD" \ | ||||||
|  |     --file "dist/$MAC_X64_BUILD" | ||||||
|  |  | ||||||
|  | echo "Uploading linux x64 server build" | ||||||
|  |  | ||||||
| github-release upload \ | github-release upload \ | ||||||
|     --tag $TAG \ |     --tag $TAG \ | ||||||
|   | |||||||
| @@ -3,6 +3,8 @@ | |||||||
| instanceName= | instanceName= | ||||||
|  |  | ||||||
| [Network] | [Network] | ||||||
|  | # host setting is relevant only for web deployments - set the host on which the server will listen | ||||||
|  | # host=0.0.0.0 | ||||||
| # port setting is relevant only for web deployments, desktop builds run on random free port | # port setting is relevant only for web deployments, desktop builds run on random free port | ||||||
| port=8080 | port=8080 | ||||||
| # true for TLS/SSL/HTTPS (secure), false for HTTP (unsecure). | # true for TLS/SSL/HTTPS (secure), false for HTTP (unsecure). | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								db/demo.tar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								db/demo.tar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,215 +0,0 @@ | |||||||
| INSERT INTO attributes VALUES('YGaLsZ2s2WFr','N029F9ANGn8b','label','originalFileName','d3.js',1,'2018-08-28T20:50:22.260Z','2018-08-28T20:50:22.260Z',0,'71K4ZEuZMn',0); |  | ||||||
| INSERT INTO attributes VALUES('MU459UPoTpIl','N029F9ANGn8b','label','fileSize','495159',2,'2018-08-28T20:50:22.268Z','2018-08-28T20:50:22.269Z',0,'Uw4q81aSPb',0); |  | ||||||
| INSERT INTO attributes VALUES('K7NPLAdJC75T','bFTtwsnNgw9T','label','originalFileName','dagre-d3.js',1,'2018-08-28T20:50:22.278Z','2018-08-28T20:50:22.278Z',0,'B+5IYDa0kV',0); |  | ||||||
| INSERT INTO attributes VALUES('fxcbzV7SajDg','bFTtwsnNgw9T','label','fileSize','1412934',2,'2018-08-28T20:50:22.338Z','2018-08-28T20:50:22.338Z',0,'fKMcMhthAe',0); |  | ||||||
| INSERT INTO attributes VALUES('H1Y47EfTlkcx','ucC6Zabv3Uml','label','appCss','',0,'2018-08-28T20:50:22.404Z','2018-08-28T20:50:22.404Z',0,'gy/N05x553',0); |  | ||||||
| INSERT INTO attributes VALUES('dClxXNDtkPhG','YULCKCrWJJZ6','relation','child:template','WkdQrYTnsgxP',0,'2018-08-28T20:50:22.407Z','2018-08-28T20:50:22.407Z',0,'KCB4vrX2+Q',0); |  | ||||||
| INSERT INTO attributes VALUES('ascoxgnizejs','YULCKCrWJJZ6','label','child:person','',1,'2018-08-28T20:50:22.410Z','2018-08-28T20:50:22.410Z',0,'cWQ4h0JzfC',0); |  | ||||||
| INSERT INTO attributes VALUES('nDrmznDDBYA9','wHb2YBwhjxiD','label','dateOfBirth','1895-12-14',0,'2018-08-28T20:50:22.413Z','2018-08-28T20:50:22.413Z',0,'erlRsUQzW5',0); |  | ||||||
| INSERT INTO attributes VALUES('xQ6wvIQaVIZ1','wHb2YBwhjxiD','label','dateOfDeath','1952-02-06',1,'2018-08-28T20:50:22.416Z','2018-08-28T20:50:22.416Z',0,'2uh0vKvpVU',0); |  | ||||||
| INSERT INTO attributes VALUES('oyIs9VmMgsvI','wHb2YBwhjxiD','relation','isPartnerOf','cUYFEvsdY6N6',2,'2018-08-28T20:50:22.419Z','2018-08-28T20:50:22.419Z',0,'OM3NVpPaUq',0); |  | ||||||
| INSERT INTO attributes VALUES('O54Zoiiq2Fcu','wHb2YBwhjxiD','label','person','',3,'2018-08-28T20:50:22.423Z','2018-08-28T20:50:22.423Z',0,'FHNEKhY7+c',0); |  | ||||||
| INSERT INTO attributes VALUES('hq6g3wa2T2Iw','wHb2YBwhjxiD','relation','template','WkdQrYTnsgxP',4,'2018-08-28T20:50:22.426Z','2018-08-28T20:50:22.426Z',0,'+K8jpY+5S/',0); |  | ||||||
| INSERT INTO attributes VALUES('8zizvAfpH5Jl','wHb2YBwhjxiD','relation','hasChild','s0Hhsl0nb1bg',5,'2018-08-28T20:50:22.428Z','2018-08-28T20:50:22.428Z',0,'NRrR0GBy88',0); |  | ||||||
| INSERT INTO attributes VALUES('WPqEnSKOFM8N','cUYFEvsdY6N6','label','dateOfBirth','1900-08-04',0,'2018-08-28T20:50:22.431Z','2018-08-28T20:50:22.432Z',0,'3HOaOLE+oy',0); |  | ||||||
| INSERT INTO attributes VALUES('BY6Kj6aAFu0e','cUYFEvsdY6N6','label','dateOfDeath','2002-03-30',1,'2018-08-28T20:50:22.436Z','2018-08-28T20:50:22.436Z',0,'rZrLFiOvj8',0); |  | ||||||
| INSERT INTO attributes VALUES('0555anatAyWg','cUYFEvsdY6N6','relation','isPartnerOf','wHb2YBwhjxiD',2,'2018-08-28T20:50:22.439Z','2018-08-28T20:50:22.439Z',0,'yWMcMCRxnH',0); |  | ||||||
| INSERT INTO attributes VALUES('oXibmgJQOzGB','cUYFEvsdY6N6','label','person','',3,'2018-08-28T20:50:22.441Z','2018-08-28T20:50:22.441Z',0,'RetqdPzOby',0); |  | ||||||
| INSERT INTO attributes VALUES('A0E0SgIGNYBR','cUYFEvsdY6N6','relation','template','WkdQrYTnsgxP',4,'2018-08-28T20:50:22.444Z','2018-08-28T20:50:22.444Z',0,'UGs+JIASFB',0); |  | ||||||
| INSERT INTO attributes VALUES('DlXDyWCKW7ST','cUYFEvsdY6N6','relation','hasChild','s0Hhsl0nb1bg',5,'2018-08-28T20:50:22.448Z','2018-08-28T20:50:22.448Z',0,'wPF8Epw2f2',0); |  | ||||||
| INSERT INTO attributes VALUES('5Dxq7ZOSyOwZ','8APXN4n4Hnb8','label','dateOfBirth','1921-06-10',0,'2018-08-28T20:50:22.451Z','2018-08-28T20:50:22.451Z',0,'kM9tlQ1n7a',0); |  | ||||||
| INSERT INTO attributes VALUES('pRMQNiknkpSr','8APXN4n4Hnb8','relation','isPartnerOf','s0Hhsl0nb1bg',1,'2018-08-28T20:50:22.457Z','2018-08-28T20:50:22.457Z',0,'TzsOqFQYjk',0); |  | ||||||
| INSERT INTO attributes VALUES('OKlFBgqr61Uy','8APXN4n4Hnb8','relation','hasChild','baafKkgNGYLm',2,'2018-08-28T20:50:22.460Z','2018-08-28T20:50:22.460Z',0,'t4hEDC534r',0); |  | ||||||
| INSERT INTO attributes VALUES('yVZf4BNnV0Ev','8APXN4n4Hnb8','label','person','',3,'2018-08-28T20:50:22.462Z','2018-08-28T20:50:22.462Z',0,'L+xujQPpBw',0); |  | ||||||
| INSERT INTO attributes VALUES('8oAIhmdTUvEg','8APXN4n4Hnb8','relation','template','WkdQrYTnsgxP',4,'2018-08-28T20:50:22.465Z','2018-08-28T20:50:22.465Z',0,'GbRQJL+GEp',0); |  | ||||||
| INSERT INTO attributes VALUES('cneD8mgzvai7','s0Hhsl0nb1bg','label','dateOfBirth','1926-04-21',0,'2018-08-28T20:50:22.468Z','2018-08-28T20:50:22.468Z',0,'cXdtlXqXEB',0); |  | ||||||
| INSERT INTO attributes VALUES('8z9zChaZOTDH','s0Hhsl0nb1bg','relation','isPartnerOf','8APXN4n4Hnb8',1,'2018-08-28T20:50:22.471Z','2018-08-28T20:50:22.471Z',0,'33J9ZyF2ho',0); |  | ||||||
| INSERT INTO attributes VALUES('gdJaomu0xBOu','s0Hhsl0nb1bg','relation','isChildOf','cUYFEvsdY6N6',3,'2018-08-28T20:50:22.477Z','2018-08-28T20:50:22.477Z',0,'BIFGASgBgq',0); |  | ||||||
| INSERT INTO attributes VALUES('9Jwa8a993yen','s0Hhsl0nb1bg','relation','isChildOf','wHb2YBwhjxiD',4,'2018-08-28T20:50:22.479Z','2018-08-28T20:50:22.480Z',0,'TG9GD3do5B',0); |  | ||||||
| INSERT INTO attributes VALUES('Xe1QAkKsWWpF','s0Hhsl0nb1bg','relation','hasChild','baafKkgNGYLm',5,'2018-08-28T20:50:22.482Z','2018-08-28T20:50:22.482Z',0,'dqIMe2e19M',0); |  | ||||||
| INSERT INTO attributes VALUES('kEg8zFFq248G','s0Hhsl0nb1bg','label','person','',6,'2018-08-28T20:50:22.485Z','2018-08-28T20:50:22.485Z',0,'MMnLxCR8F3',0); |  | ||||||
| INSERT INTO attributes VALUES('tRZ6MSnKSTqR','s0Hhsl0nb1bg','relation','template','WkdQrYTnsgxP',7,'2018-08-28T20:50:22.509Z','2018-08-28T20:50:22.509Z',0,'rosgXW/nGc',0); |  | ||||||
| INSERT INTO attributes VALUES('JBKulahGmJbS','baafKkgNGYLm','label','dateOfBirth','1948-11-14',0,'2018-08-28T20:50:22.513Z','2018-08-28T20:50:22.513Z',0,'rrxcH0EJyd',0); |  | ||||||
| INSERT INTO attributes VALUES('iQrlMg7Hw4TV','baafKkgNGYLm','relation','isPartnerOf','Ab7WuV47mQOf',1,'2018-08-28T20:50:22.517Z','2018-08-28T20:50:22.517Z',0,'ZC8g7df+GX',0); |  | ||||||
| INSERT INTO attributes VALUES('lR5KNuf8nZPv','baafKkgNGYLm','relation','isChildOf','s0Hhsl0nb1bg',3,'2018-08-28T20:50:22.520Z','2018-08-28T20:50:22.520Z',0,'3+cBucfifY',0); |  | ||||||
| INSERT INTO attributes VALUES('Zy86gvVrUdL9','baafKkgNGYLm','relation','isChildOf','8APXN4n4Hnb8',4,'2018-08-28T20:50:22.527Z','2018-08-28T20:50:22.527Z',0,'S8oRMD6Zl2',0); |  | ||||||
| INSERT INTO attributes VALUES('4A0fdX1Nw6HW','baafKkgNGYLm','relation','hasChild','w7t110kWsK8e',5,'2018-08-28T20:50:22.529Z','2018-08-28T20:50:22.529Z',0,'1xwLwGQ8Nq',0); |  | ||||||
| INSERT INTO attributes VALUES('KJp2whVwU9t8','baafKkgNGYLm','relation','hasChild','at7bZyjJfIrM',6,'2018-08-28T20:50:22.533Z','2018-08-28T20:50:22.533Z',0,'GCW74wkayV',0); |  | ||||||
| INSERT INTO attributes VALUES('Z9XptIzsoACA','baafKkgNGYLm','label','person','',7,'2018-08-28T20:50:22.536Z','2018-08-28T20:50:22.536Z',0,'JjkYlF07eh',0); |  | ||||||
| INSERT INTO attributes VALUES('ZW3lFQx4x5b2','baafKkgNGYLm','relation','template','WkdQrYTnsgxP',8,'2018-08-28T20:50:22.540Z','2018-08-28T20:50:22.540Z',0,'UpMRWuOZb/',0); |  | ||||||
| INSERT INTO attributes VALUES('Ey8y4cy3DcCi','Ab7WuV47mQOf','label','dateOfBirth','1961-07-01',0,'2018-08-28T20:50:22.543Z','2018-08-28T20:50:22.543Z',0,'64htbnhge6',0); |  | ||||||
| INSERT INTO attributes VALUES('AiAfIBWpOz5x','Ab7WuV47mQOf','label','dateOfDeath','1997-08-31',1,'2018-08-28T20:50:22.545Z','2018-08-28T20:50:22.546Z',0,'mFxHu1vXL5',0); |  | ||||||
| INSERT INTO attributes VALUES('MZYw8enjG9NE','Ab7WuV47mQOf','relation','isPartnerOf','baafKkgNGYLm',2,'2018-08-28T20:50:22.549Z','2018-08-28T20:50:22.549Z',0,'jvWO1/tx45',0); |  | ||||||
| INSERT INTO attributes VALUES('ScLhggJccqQa','Ab7WuV47mQOf','relation','hasChild','at7bZyjJfIrM',3,'2018-08-28T20:50:22.551Z','2018-08-28T20:50:22.552Z',0,'bvNZplJq2L',0); |  | ||||||
| INSERT INTO attributes VALUES('ZsXr2c8BygWE','Ab7WuV47mQOf','relation','hasChild','w7t110kWsK8e',4,'2018-08-28T20:50:22.555Z','2018-08-28T20:50:22.555Z',0,'FN00a6ym1T',0); |  | ||||||
| INSERT INTO attributes VALUES('YdQLLaYVuziQ','Ab7WuV47mQOf','label','person','',5,'2018-08-28T20:50:22.558Z','2018-08-28T20:50:22.558Z',0,'j3DcoUoRob',0); |  | ||||||
| INSERT INTO attributes VALUES('wCFa6BcfMeYs','Ab7WuV47mQOf','relation','template','WkdQrYTnsgxP',6,'2018-08-28T20:50:22.561Z','2018-08-28T20:50:22.561Z',0,'pWMc9bIpYU',0); |  | ||||||
| INSERT INTO attributes VALUES('UjQK6CfeN1FQ','w7t110kWsK8e','label','dateOfBirth','1982-06-21',0,'2018-08-28T20:50:22.564Z','2018-08-28T20:50:22.564Z',0,'KmPfpQC3YZ',0); |  | ||||||
| INSERT INTO attributes VALUES('BgEgHc6nbK9N','w7t110kWsK8e','relation','isPartnerOf','OZKicr536m7U',1,'2018-08-28T20:50:22.567Z','2018-08-28T20:50:22.567Z',0,'/x6KvO+8a3',0); |  | ||||||
| INSERT INTO attributes VALUES('KqV4d4pJYS2E','w7t110kWsK8e','relation','isChildOf','Ab7WuV47mQOf',2,'2018-08-28T20:50:22.570Z','2018-08-28T20:50:22.570Z',0,'KyraxcQqDz',0); |  | ||||||
| INSERT INTO attributes VALUES('wlb9vaZSYcq5','w7t110kWsK8e','relation','isChildOf','baafKkgNGYLm',3,'2018-08-28T20:50:22.575Z','2018-08-28T20:50:22.575Z',0,'UU8YR4ybWt',0); |  | ||||||
| INSERT INTO attributes VALUES('z5LqaK45g4hR','w7t110kWsK8e','relation','hasChild','oato1D7kuNU2',4,'2018-08-28T20:50:22.577Z','2018-08-28T20:50:22.577Z',0,'e/UPI6kcvv',0); |  | ||||||
| INSERT INTO attributes VALUES('fCD45rh2vdkT','w7t110kWsK8e','relation','hasChild','C1I7GPA8ORO4',5,'2018-08-28T20:50:22.580Z','2018-08-28T20:50:22.581Z',0,'oT4QlgrVte',0); |  | ||||||
| INSERT INTO attributes VALUES('C2Vigv6G5FS1','w7t110kWsK8e','relation','hasChild','gQNQaMBzRYdb',6,'2018-08-28T20:50:22.584Z','2018-08-28T20:50:22.584Z',0,'wUKaPiuJQk',0); |  | ||||||
| INSERT INTO attributes VALUES('E9rVr79Kz9V6','w7t110kWsK8e','label','person','',7,'2018-08-28T20:50:22.587Z','2018-08-28T20:50:22.587Z',0,'K/hdjV+tSK',0); |  | ||||||
| INSERT INTO attributes VALUES('8XRlAf6WV3qg','w7t110kWsK8e','relation','template','WkdQrYTnsgxP',8,'2018-08-28T20:50:22.590Z','2018-08-28T20:50:22.590Z',0,'FSl46d9i1L',0); |  | ||||||
| INSERT INTO attributes VALUES('zH72GS2ubC6n','at7bZyjJfIrM','label','dateOfBirth','1984-09-15',0,'2018-08-28T20:50:22.593Z','2018-08-28T20:50:22.593Z',0,'gRa24FkJ54',0); |  | ||||||
| INSERT INTO attributes VALUES('RUlGHoZKKwI1','at7bZyjJfIrM','relation','isChildOf','Ab7WuV47mQOf',2,'2018-08-28T20:50:22.595Z','2018-08-28T20:50:22.595Z',0,'UqtXMxkS8I',0); |  | ||||||
| INSERT INTO attributes VALUES('s6fz9RfUkN16','at7bZyjJfIrM','relation','isChildOf','baafKkgNGYLm',3,'2018-08-28T20:50:22.598Z','2018-08-28T20:50:22.598Z',0,'sflViPP/Jy',0); |  | ||||||
| INSERT INTO attributes VALUES('ewBwlqrIQ4gT','at7bZyjJfIrM','label','person','',4,'2018-08-28T20:50:22.600Z','2018-08-28T20:50:22.600Z',0,'qV4yjjVjU8',0); |  | ||||||
| INSERT INTO attributes VALUES('R2LUPwcGsuNw','at7bZyjJfIrM','relation','template','WkdQrYTnsgxP',5,'2018-08-28T20:50:22.603Z','2018-08-28T20:50:22.603Z',0,'NRS6Dn58NQ',0); |  | ||||||
| INSERT INTO attributes VALUES('NmqnFfEvfSPm','OZKicr536m7U','label','dateOfBirth','1982-01-09',0,'2018-08-28T20:50:22.606Z','2018-08-28T20:50:22.607Z',0,'d3wENODQzf',0); |  | ||||||
| INSERT INTO attributes VALUES('TFzxV7PECiaL','OZKicr536m7U','relation','isPartnerOf','w7t110kWsK8e',1,'2018-08-28T20:50:22.611Z','2018-08-28T20:50:22.611Z',0,'Om8CZOKQ3n',0); |  | ||||||
| INSERT INTO attributes VALUES('KZkuMnxLcwXv','OZKicr536m7U','label','person','',2,'2018-08-28T20:50:22.615Z','2018-08-28T20:50:22.615Z',0,'ant2+CLJEK',0); |  | ||||||
| INSERT INTO attributes VALUES('mpaiLAxFYEaV','OZKicr536m7U','relation','template','WkdQrYTnsgxP',3,'2018-08-28T20:50:22.618Z','2018-08-28T20:50:22.619Z',0,'sny+Ar6U5l',0); |  | ||||||
| INSERT INTO attributes VALUES('DMrFjWJ1gEGV','OZKicr536m7U','relation','hasChild','oato1D7kuNU2',4,'2018-08-28T20:50:22.624Z','2018-08-28T20:50:22.624Z',0,'JDx8fEDsrJ',0); |  | ||||||
| INSERT INTO attributes VALUES('We1iR49umgtV','OZKicr536m7U','relation','hasChild','C1I7GPA8ORO4',5,'2018-08-28T20:50:22.626Z','2018-08-28T20:50:22.626Z',0,'ZZPFqVVGHL',0); |  | ||||||
| INSERT INTO attributes VALUES('AYJHtO581jiN','OZKicr536m7U','relation','hasChild','gQNQaMBzRYdb',6,'2018-08-28T20:50:22.628Z','2018-08-28T20:50:22.629Z',0,'tbtnoMJJZn',0); |  | ||||||
| INSERT INTO attributes VALUES('iuCrdcbtL4qC','oato1D7kuNU2','label','dateOfBirth','2013-07-22',0,'2018-08-28T20:50:22.632Z','2018-08-28T20:50:22.632Z',0,'IcMT391SzX',0); |  | ||||||
| INSERT INTO attributes VALUES('Q8Vo1KIxkJmj','oato1D7kuNU2','relation','isChildOf','w7t110kWsK8e',1,'2018-08-28T20:50:22.635Z','2018-08-28T20:50:22.635Z',0,'zoA+rRFKM+',0); |  | ||||||
| INSERT INTO attributes VALUES('5mrM42brxDuz','oato1D7kuNU2','relation','isChildOf','OZKicr536m7U',2,'2018-08-28T20:50:22.638Z','2018-08-28T20:50:22.639Z',0,'P6P4YU7BTd',0); |  | ||||||
| INSERT INTO attributes VALUES('buvl0DlrHfPa','oato1D7kuNU2','label','person','',3,'2018-08-28T20:50:22.642Z','2018-08-28T20:50:22.642Z',0,'AumhH4Hib8',0); |  | ||||||
| INSERT INTO attributes VALUES('fmy9BlOToZyF','oato1D7kuNU2','relation','template','WkdQrYTnsgxP',4,'2018-08-28T20:50:22.645Z','2018-08-28T20:50:22.645Z',0,'E1I7jbmUVs',0); |  | ||||||
| INSERT INTO attributes VALUES('dO2wroKfcuE0','C1I7GPA8ORO4','label','dateOfBirth','2015-05-02',0,'2018-08-28T20:50:22.647Z','2018-08-28T20:50:22.648Z',0,'Y7bf4ZWZCE',0); |  | ||||||
| INSERT INTO attributes VALUES('Z5gVHx3DbIch','C1I7GPA8ORO4','relation','isChildOf','w7t110kWsK8e',1,'2018-08-28T20:50:22.650Z','2018-08-28T20:50:22.650Z',0,'LSINZZQzBt',0); |  | ||||||
| INSERT INTO attributes VALUES('1kNzvErwUjrs','C1I7GPA8ORO4','relation','isChildOf','OZKicr536m7U',2,'2018-08-28T20:50:22.653Z','2018-08-28T20:50:22.653Z',0,'ePUs5vanHB',0); |  | ||||||
| INSERT INTO attributes VALUES('W6glbhKhyWPT','C1I7GPA8ORO4','label','person','',3,'2018-08-28T20:50:22.658Z','2018-08-28T20:50:22.658Z',0,'zRvRYSbqZi',0); |  | ||||||
| INSERT INTO attributes VALUES('0GJ2aHqAuodC','C1I7GPA8ORO4','relation','template','WkdQrYTnsgxP',4,'2018-08-28T20:50:22.661Z','2018-08-28T20:50:22.661Z',0,'m88hxWjzQ0',0); |  | ||||||
| INSERT INTO attributes VALUES('ITjvtJPre6AT','gQNQaMBzRYdb','label','dateOfBirth','2018-04-23',0,'2018-08-28T20:50:22.664Z','2018-08-28T20:50:22.664Z',0,'ceKKy9B5o1',0); |  | ||||||
| INSERT INTO attributes VALUES('CObXkmUCKNvA','gQNQaMBzRYdb','relation','isChildOf','w7t110kWsK8e',1,'2018-08-28T20:50:22.667Z','2018-08-28T20:50:22.668Z',0,'D/R7JZPq5g',0); |  | ||||||
| INSERT INTO attributes VALUES('zFLwAPnbTSXJ','gQNQaMBzRYdb','relation','isChildOf','OZKicr536m7U',2,'2018-08-28T20:50:22.674Z','2018-08-28T20:50:22.674Z',0,'Hi1uUloX9W',0); |  | ||||||
| INSERT INTO attributes VALUES('76tF3kkXj0DU','gQNQaMBzRYdb','label','person','',3,'2018-08-28T20:50:22.676Z','2018-08-28T20:50:22.676Z',0,'MDjdPy4afu',0); |  | ||||||
| INSERT INTO attributes VALUES('t1iefYiRAtYo','gQNQaMBzRYdb','relation','template','WkdQrYTnsgxP',4,'2018-08-28T20:50:22.679Z','2018-08-28T20:50:22.679Z',0,'5GgcLGKhaR',0); |  | ||||||
| INSERT INTO attributes VALUES('Bpe9iT3XyyOY','WkdQrYTnsgxP','label-definition','dateOfBirth','{"labelType":"date","multiplicityType":"singlevalue","isPromoted":true}',0,'2018-08-28T20:50:22.682Z','2018-08-28T20:50:22.682Z',0,'NYj5Rr17+t',1); |  | ||||||
| INSERT INTO attributes VALUES('GxEesX6Ps1qg','WkdQrYTnsgxP','label-definition','dateOfDeath','{"labelType":"date","multiplicityType":"singlevalue","isPromoted":true}',1,'2018-08-28T20:50:22.684Z','2018-08-28T20:50:22.685Z',0,'ayZ1VP6NAU',1); |  | ||||||
| INSERT INTO attributes VALUES('8lmgLJkU0fts','WkdQrYTnsgxP','relation-definition','isPartnerOf','{"multiplicityType":"multivalue","isPromoted":true}',2,'2018-08-28T20:50:22.687Z','2018-08-28T20:50:22.687Z',0,'efMdysR9Pd',1); |  | ||||||
| INSERT INTO attributes VALUES('jKbUzkPDskWK','WkdQrYTnsgxP','relation-definition','isChildOf','{"multiplicityType":"multivalue","isPromoted":true}',3,'2018-08-28T20:50:22.690Z','2018-08-28T20:50:22.690Z',0,'ZUJB7r3rT4',1); |  | ||||||
| INSERT INTO attributes VALUES('WUn7ZivbtEEL','WkdQrYTnsgxP','relation-definition','hasChild','{"multiplicityType":"multivalue","isPromoted":true}',4,'2018-08-28T20:50:22.693Z','2018-08-28T20:50:22.694Z',0,'l55U94jslK',1); |  | ||||||
| INSERT INTO attributes VALUES('9bwMbu66bibw','WkdQrYTnsgxP','label','person','',5,'2018-08-28T20:50:22.696Z','2018-08-28T20:50:22.696Z',0,'4PC6o0t3Pr',0); |  | ||||||
| INSERT INTO attributes VALUES('6oj5nftjfbBC','HgaAwBX5zVcP','label','originalFileName','chart.js',1,'2018-08-28T20:50:36.164Z','2018-08-28T20:50:36.164Z',0,'6nDd6oTR6B',0); |  | ||||||
| INSERT INTO attributes VALUES('gZgmYZ9C4foc','HgaAwBX5zVcP','label','fileSize','211133',2,'2018-08-28T20:50:36.171Z','2018-08-28T20:50:36.171Z',0,'hHlFlDfuQP',0); |  | ||||||
| INSERT INTO attributes VALUES('Fb8UazsIiOk5','Dyahpf7LroQY','label','taskLocationRoot','',0,'2018-08-28T20:50:48.604Z','2018-08-28T20:50:48.604Z',0,'DM2/m1t5TR',0); |  | ||||||
| INSERT INTO attributes VALUES('f0Ow5PJyhbYY','nUgD4SYx2gt7','label','taskTagRoot','',0,'2018-08-28T20:50:48.618Z','2018-08-28T20:50:48.618Z',0,'5MQeVb7i0Z',0); |  | ||||||
| INSERT INTO attributes VALUES('6or0Gr0hFW2t','9HHqPxJkLAkl','label','taskDoneRoot','',0,'2018-08-28T20:50:48.626Z','2018-08-28T20:50:48.626Z',0,'e8MjtXx+UD',0); |  | ||||||
| INSERT INTO attributes VALUES('pSVR4p5EM3i1','XVlWndK4Oh6A','label','run','frontendStartup',0,'2018-08-28T20:50:48.630Z','2018-08-28T20:50:48.630Z',0,'/Og2vneotj',0); |  | ||||||
| INSERT INTO attributes VALUES('uSj6vDAaM3Z8','gYNJtGEPGW95','label','appCss','',0,'2018-08-28T20:50:48.636Z','2018-08-28T20:50:48.636Z',0,'TssM5mauP3',0); |  | ||||||
| INSERT INTO attributes VALUES('lKaZjiGo2X1T','gDrEI7LFWqrP','label','hideChildrenOverview','',0,'2018-08-28T20:50:22.253Z','2018-08-28T20:50:22.253Z',0,'qGo6F87JjB',0); |  | ||||||
| INSERT INTO attributes VALUES('wycKIOGBLBr2','gDrEI7LFWqrP','relation','familyContainer','YULCKCrWJJZ6',1,'2018-08-28T20:50:22.257Z','2018-08-28T20:50:22.257Z',0,'wRgPdq8myG',0); |  | ||||||
| INSERT INTO attributes VALUES('45sz6us7COFA','gDrEI7LFWqrP','relation','renderNote','Z5yhGE5g0UB5',2,'2018-08-28T20:52:45.872Z','2018-08-28T20:52:45.872Z',0,'Rf2zkiB3bY',0); |  | ||||||
| INSERT INTO attributes VALUES('4m6dIcDjkC2q','8LOr7xUMuWD4','label','hideChildrenOverview','',0,'2018-08-28T20:50:36.159Z','2018-08-28T20:50:36.159Z',0,'3emtcLLcp7',0); |  | ||||||
| INSERT INTO attributes VALUES('UbMObRd5U1p3','8LOr7xUMuWD4','relation','renderNote','YBAcWV8TjYEp',1,'2018-08-28T20:54:40.517Z','2018-08-28T20:56:27.135Z',0,'iqKSOL+B1L',0); |  | ||||||
| INSERT INTO attributes VALUES('2YBCX6bTRrde','qEi5St9PBPCP','label','run','frontendStartup',0,'2018-08-28T20:50:36.178Z','2018-08-28T20:50:36.179Z',0,'hDcu/CoV8A',0); |  | ||||||
| INSERT INTO attributes VALUES('IhuXzxRoCdJj','qEi5St9PBPCP','relation','targetNote','8LOr7xUMuWD4',1,'2018-08-28T20:58:15.164Z','2018-08-28T20:58:15.164Z',0,'un6P3bD9wb',0); |  | ||||||
| INSERT INTO attributes VALUES('wfv43UPhvRDB','1s6SGhByxkoU','label','cssClass','todo',3,'2018-08-28T21:11:48.954Z','2018-08-28T21:11:48.955Z',0,'CFjJZ/EjzN',0); |  | ||||||
| INSERT INTO attributes VALUES('vnDnf7erhpHf','eXHZAKsMYgur','relation','child:template','TlGCAdcfxkOT',0,'2018-08-29T17:13:34.317Z','2018-08-29T17:13:34.317Z',0,'8W6ql67C0G',0); |  | ||||||
| INSERT INTO attributes VALUES('Vwo09bhVsDFP','TjWEndYCCg7g','relation','child:template','TlGCAdcfxkOT',0,'2018-08-29T17:15:28.700Z','2018-08-29T17:15:28.700Z',0,'Dowmf6VzWU',0); |  | ||||||
| INSERT INTO attributes VALUES('zguuNS6ERdQL','8nRNDJGyGs2Z','relation','template','TlGCAdcfxkOT',0,'2018-08-29T17:16:14.938Z','2018-08-29T17:16:14.940Z',0,'bQanDjKWpy',0); |  | ||||||
| INSERT INTO attributes VALUES('Ar39t8omV0MM','8nRNDJGyGs2Z','label','link','https://www.amazon.com/Mechanical-Alchemy-Wars-Ian-Tregillis/dp/0316248002',1,'2018-08-29T17:16:26.915Z','2018-08-29T17:16:26.916Z',0,'SQyuo81DHH',0); |  | ||||||
| INSERT INTO attributes VALUES('E2ol5oG7vwq8','TlGCAdcfxkOT','label-definition','link','{"isPromoted":true,"labelType":"url","multiplicityType":"singlevalue"}',1,'2018-08-29T17:12:47.600Z','2018-08-29T17:12:47.600Z',0,'ZMGjd3nm/p',1); |  | ||||||
| INSERT INTO attributes VALUES('awToFhC7v0UV','TlGCAdcfxkOT','label-definition','readingStart','{"isPromoted":true,"labelType":"date","multiplicityType":"singlevalue"}',2,'2018-08-29T17:12:47.610Z','2018-08-29T17:12:47.610Z',0,'VabLEj737Q',1); |  | ||||||
| INSERT INTO attributes VALUES('pLJ9r6lnPOYs','TlGCAdcfxkOT','label-definition','readingEnd','{"isPromoted":true,"labelType":"date","multiplicityType":"singlevalue"}',3,'2018-08-29T17:12:47.618Z','2018-08-29T17:12:47.618Z',0,'UHB3bE1/yM',1); |  | ||||||
| INSERT INTO attributes VALUES('rmg7IQRkazsZ','TlGCAdcfxkOT','label-definition','author','{"isPromoted":true,"labelType":"text","multiplicityType":"singlevalue"}',0,'2018-08-29T17:13:11.393Z','2018-08-29T17:13:11.393Z',0,'AriDq8D/S+',1); |  | ||||||
| INSERT INTO attributes VALUES('FaiTpHt7VXzC','8nRNDJGyGs2Z','label','author','Ian Tregillis',2,'2018-08-29T17:17:00.159Z','2018-08-29T17:17:00.160Z',0,'GjzmTQcGwE',0); |  | ||||||
| INSERT INTO attributes VALUES('oINm9qaejyqS','8nRNDJGyGs2Z','label','readingStart','2018-05-05',3,'2018-08-29T17:17:11.560Z','2018-08-29T17:17:11.561Z',0,'LG7/XyjXMx',0); |  | ||||||
| INSERT INTO attributes VALUES('ss4NVSjoxcv4','8nRNDJGyGs2Z','label','readingEnd','2018-05-23',4,'2018-08-29T17:17:18.653Z','2018-08-29T17:17:18.653Z',0,'UuAazixGy6',0); |  | ||||||
| INSERT INTO attributes VALUES('yw88iR3gN1NW','u5t1EvWa3CMO','relation','template','TlGCAdcfxkOT',0,'2018-08-29T17:17:49.060Z','2018-08-29T17:17:49.061Z',0,'ejixmQdU6q',0); |  | ||||||
| INSERT INTO attributes VALUES('eTIoe4Ab7ocY','u5t1EvWa3CMO','label','author','Viktor Frankl',1,'2018-08-29T17:18:59.006Z','2018-08-29T17:18:59.006Z',0,'OZhmBfoQOo',0); |  | ||||||
| INSERT INTO attributes VALUES('VBiqEJ6mnFgT','u5t1EvWa3CMO','label','link','https://en.wikipedia.org/wiki/Man%27s_Search_for_Meaning',2,'2018-08-29T17:19:10.420Z','2018-08-29T17:19:10.421Z',0,'esBqX0UAL1',0); |  | ||||||
| INSERT INTO attributes VALUES('hAKixYWrKL4f','u5t1EvWa3CMO','label','readingStart','2018-08-01',3,'2018-08-29T17:19:14.550Z','2018-08-29T17:19:14.550Z',0,'HoGROsXwVQ',0); |  | ||||||
| INSERT INTO attributes VALUES('n3OTUTkuWRYM','u5t1EvWa3CMO','label','readingEnd','2018-08-10',4,'2018-08-29T17:19:17.741Z','2018-08-29T17:19:17.742Z',0,'65QfoguWMa',0); |  | ||||||
| INSERT INTO attributes VALUES('82OrS7QREaBM','3RkyK9LI18dO','label','calendarRoot','',0,'2018-08-28T21:18:18.512Z','2018-08-28T21:18:18.512Z',0,'1Mw7vhXyk1',0); |  | ||||||
| INSERT INTO attributes VALUES('eZeOn45UgWa6','3RkyK9LI18dO','label','sorted','',1,'2018-08-29T10:51:55.212Z','2018-08-29T10:51:55.212Z',0,'GeXw6I7toO',0); |  | ||||||
| INSERT INTO attributes VALUES('J4vAdbL9o5M2','3RkyK9LI18dO','label','child:sorted','',2,'2018-08-29T10:51:55.205Z','2018-08-29T10:51:55.205Z',0,'6iLHLIFy96',0); |  | ||||||
| INSERT INTO attributes VALUES('GTGfj3qmMoSC','3RkyK9LI18dO','label','child:sorted:sorted','',3,'2018-08-29T10:51:55.220Z','2018-08-29T10:51:55.220Z',0,'8gxZmnY60b',0); |  | ||||||
| INSERT INTO attributes VALUES('L6vT9du3WHzI','3RkyK9LI18dO','relation','child:child:child:template','Lt8IUldw7d7H',4,'2018-08-29T17:24:45.182Z','2018-08-29T17:24:45.182Z',0,'+PS2Pj1tU+',0); |  | ||||||
| INSERT INTO attributes VALUES('kPk6wY2as8Il','HJusZTbBU494','label','sorted','',0,'2018-08-29T10:52:08.238Z','2018-08-29T10:52:08.238Z',0,'m+y/Oxpq6f',0); |  | ||||||
| INSERT INTO attributes VALUES('ysCNVMnBf3s1','HJusZTbBU494','label','child:sorted','',1,'2018-08-29T10:52:08.249Z','2018-08-29T10:52:08.250Z',0,'ItprIuiTlZ',0); |  | ||||||
| INSERT INTO attributes VALUES('oTeqKnzwZURH','HJusZTbBU494','label','yearNote','2017',2,'2018-08-29T10:53:09.515Z','2018-08-29T10:53:16.513Z',0,'YrrW7ywzCK',0); |  | ||||||
| INSERT INTO attributes VALUES('8oreGYcHHVTA','HJusZTbBU494','relation','child:child:template','Lt8IUldw7d7H',3,'2018-08-29T17:25:04.693Z','2018-08-29T17:25:04.694Z',0,'ABVdTeSYoK',0); |  | ||||||
| INSERT INTO attributes VALUES('KOTvzLMSuse5','6ZuXjCSWgjB4','label','sorted','',0,'2018-08-29T10:52:15.655Z','2018-08-29T10:52:15.658Z',0,'veo8Kp5mE0',0); |  | ||||||
| INSERT INTO attributes VALUES('aCBsrwvzvqjE','6ZuXjCSWgjB4','label','monthNote','2017-11',1,'2018-08-29T10:53:37.887Z','2018-08-29T10:53:37.887Z',0,'tF8CYyko+S',0); |  | ||||||
| INSERT INTO attributes VALUES('Q9q3JLWvglVK','6ZuXjCSWgjB4','relation','child:template','Lt8IUldw7d7H',2,'2018-08-29T17:25:31.601Z','2018-08-29T17:25:31.601Z',0,'14xS6esi1y',0); |  | ||||||
| INSERT INTO attributes VALUES('dGdwWsGNqPOD','GpGnjmcAPeWG','label','dateNote','2017-11-28',0,'2018-08-29T10:55:14.883Z','2018-08-29T10:55:14.884Z',0,'dBEaBZnqWC',0); |  | ||||||
| INSERT INTO attributes VALUES('6VedgpljPNFf','GpGnjmcAPeWG','relation','template','Lt8IUldw7d7H',1,'2018-08-29T17:25:57.641Z','2018-08-29T17:25:57.641Z',0,'IzqZVWA336',0); |  | ||||||
| INSERT INTO attributes VALUES('CJJjUCdpdD3K','Lt8IUldw7d7H','label-definition','weight','{"isPromoted":true,"labelType":"number","multiplicityType":"singlevalue"}',0,'2018-08-29T17:24:15.719Z','2018-08-29T17:26:16.917Z',0,'iedV7CtrF8',1); |  | ||||||
| INSERT INTO attributes VALUES('7twUQrUK7XcT','3oldoiMUPOlr','label','sorted','',0,'2018-08-29T10:52:19.809Z','2018-08-29T10:52:19.809Z',0,'sm1omFTQsu',0); |  | ||||||
| INSERT INTO attributes VALUES('OJYkhC8lC8ZC','3oldoiMUPOlr','label','monthNote','2017-12',1,'2018-08-29T10:53:53.206Z','2018-08-29T10:53:55.686Z',0,'dec3sb4XOC',0); |  | ||||||
| INSERT INTO attributes VALUES('0xu9SmGcAeFA','3oldoiMUPOlr','relation','child:template','Lt8IUldw7d7H',2,'2018-08-29T17:26:48.714Z','2018-08-29T17:26:48.714Z',0,'x7h9ty9Ba2',0); |  | ||||||
| INSERT INTO attributes VALUES('fpbatIuJE1a5','Iha4YwchR413','label','dateNote','2017-12-21',0,'2018-08-29T10:54:11.560Z','2018-08-29T10:55:02.740Z',0,'+XTEkYlpvF',0); |  | ||||||
| INSERT INTO attributes VALUES('ZgqCVhuTO3C6','Iha4YwchR413','relation','template','Lt8IUldw7d7H',1,'2018-08-29T17:27:04.139Z','2018-08-29T17:27:04.139Z',0,'2BaPFmr3ug',0); |  | ||||||
| INSERT INTO attributes VALUES('tWMT7ukJwwQy','MG0wntwILQW6','label','dateNote','2017-12-22',0,'2018-08-29T10:54:54.959Z','2018-08-29T10:54:54.959Z',0,'ApbCv7exkj',0); |  | ||||||
| INSERT INTO attributes VALUES('XHzaztChYyx4','MG0wntwILQW6','relation','template','Lt8IUldw7d7H',1,'2018-08-29T17:27:21.763Z','2018-08-29T17:27:21.763Z',0,'v0KSL22+Eo',0); |  | ||||||
| INSERT INTO attributes VALUES('5cvnf0PsN3id','tX80udgxnW5n','relation','template','Lt8IUldw7d7H',0,'2018-08-29T17:29:24.575Z','2018-08-29T17:29:24.575Z',0,'6L62Rt1ejL',0); |  | ||||||
| INSERT INTO attributes VALUES('7UPbae4hkikm','tX80udgxnW5n','label','dateNote','2017-12-18',1,'2018-08-29T17:30:19.926Z','2018-08-29T17:30:19.926Z',0,'KtRpvYjniC',0); |  | ||||||
| INSERT INTO attributes VALUES('epyMNWR2avA9','cwPuYRAGKtUi','relation','template','Lt8IUldw7d7H',0,'2018-08-29T17:29:16.650Z','2018-08-29T17:29:16.650Z',0,'NLYu4DPer2',0); |  | ||||||
| INSERT INTO attributes VALUES('93zAKNkRBxjN','cwPuYRAGKtUi','label','dateNote','2017-12-19',1,'2018-08-29T17:30:28.732Z','2018-08-29T17:30:28.732Z',0,'7wIkRCgM05',0); |  | ||||||
| INSERT INTO attributes VALUES('L2F19EaI9bOZ','1Fi3MpUkZkLk','relation','template','Lt8IUldw7d7H',0,'2018-08-29T17:29:02.051Z','2018-08-29T17:29:02.051Z',0,'Nu8wfSkKSt',0); |  | ||||||
| INSERT INTO attributes VALUES('id69I9N34M1O','1Fi3MpUkZkLk','label','dateNote','2017-12-20',1,'2018-08-29T17:30:54.265Z','2018-08-29T17:30:54.265Z',0,'hQ9mpr1Rd5',0); |  | ||||||
| INSERT INTO attributes VALUES('h0git26ZEGDy','rUsGgtpohm7T','relation','template','Lt8IUldw7d7H',0,'2018-08-29T17:29:32.966Z','2018-08-29T17:29:32.966Z',0,'CNQTOtg9ZJ',0); |  | ||||||
| INSERT INTO attributes VALUES('mcqG8yBYNxTo','rUsGgtpohm7T','label','dateNote','2017-12-23',1,'2018-08-29T17:31:06.444Z','2018-08-29T17:31:06.444Z',0,'BdarwYoBuQ',0); |  | ||||||
| INSERT INTO attributes VALUES('KtkikXf0X9nc','sXti7HgialF2','relation','template','Lt8IUldw7d7H',0,'2018-08-29T17:29:43.173Z','2018-08-29T17:29:43.173Z',0,'iFuRC25cyS',0); |  | ||||||
| INSERT INTO attributes VALUES('3LO087cn7L37','sXti7HgialF2','label','dateNote','2017-12-24',1,'2018-08-29T17:31:14.645Z','2018-08-29T17:31:14.645Z',0,'U2d5WjCqq4',0); |  | ||||||
| INSERT INTO attributes VALUES('tgeFjZXxRCVr','cwPuYRAGKtUi','label','weight','75.4',2,'2018-08-29T17:32:04.330Z','2018-08-29T17:32:04.330Z',0,'1qYNDu4uln',0); |  | ||||||
| INSERT INTO attributes VALUES('QkQATsOfaiZ2','1Fi3MpUkZkLk','label','weight','75.2',2,'2018-08-29T17:32:08.910Z','2018-08-29T17:32:08.910Z',0,'ildTmrBJED',0); |  | ||||||
| INSERT INTO attributes VALUES('cjrMaMByU8d7','Iha4YwchR413','label','weight','76',2,'2018-08-29T17:32:13.915Z','2018-08-29T17:32:13.915Z',0,'PSxYyr9giQ',0); |  | ||||||
| INSERT INTO attributes VALUES('06pEZahjSI3k','sXti7HgialF2','label','weight','76.1',2,'2018-08-29T17:32:36.358Z','2018-08-29T17:32:36.358Z',0,'d2oQY/Lj1b',0); |  | ||||||
| INSERT INTO attributes VALUES('VdwPmuaTpT0T','MG0wntwILQW6','label','weight','75.9',2,'2018-08-29T17:32:18.592Z','2018-08-29T17:42:14.520Z',0,'tjceaSy8hu',0); |  | ||||||
| INSERT INTO attributes VALUES('bPDbyj7wXvma','rUsGgtpohm7T','label','weight','75.6',2,'2018-08-29T17:32:24.677Z','2018-08-29T17:46:17.548Z',0,'uicNUs05DG',0); |  | ||||||
| INSERT INTO attributes VALUES('T9S7wfp2FvFV','uP3V8BqwXC05','label','task','',1,'2018-08-29T19:42:32.724Z','2018-08-29T19:42:32.724Z',0,'1I/LdG1tOp',0); |  | ||||||
| INSERT INTO attributes VALUES('Rlvwcmprsvq5','uP3V8BqwXC05','relation','template','HbtlYiMvmm4V',2,'2018-08-29T19:42:32.731Z','2018-08-29T19:42:32.731Z',0,'OzTsnqPj78',0); |  | ||||||
| INSERT INTO attributes VALUES('K6edZDy1VBTi','uP3V8BqwXC05','label','location','tesco',3,'2018-08-29T19:42:47.815Z','2018-08-29T19:42:47.815Z',0,'kevp3B5qMM',0); |  | ||||||
| INSERT INTO attributes VALUES('LTGKKLNRYSM6','Z4CC9azzMNhg','label','taskLocationNote','tesco',1,'2018-08-29T19:42:47.863Z','2018-08-29T19:42:47.863Z',0,'VXA4YOEPpK',0); |  | ||||||
| INSERT INTO attributes VALUES('J0g9ODCjbAOD','uP3V8BqwXC05','label','cssClass','todo',4,'2018-08-29T19:42:47.875Z','2018-08-29T19:42:47.875Z',0,'0mfYyV3m0Y',0); |  | ||||||
| INSERT INTO attributes VALUES('OmZAhWAt2bIe','uP3V8BqwXC05','label','tag','groceries',5,'2018-08-29T19:42:51.115Z','2018-08-29T19:42:51.115Z',0,'9CP3TeprnT',0); |  | ||||||
| INSERT INTO attributes VALUES('n2RHZ8Sl0lQF','q6A62bZE2R1r','label','taskTagNote','groceries',1,'2018-08-29T19:42:51.152Z','2018-08-29T19:42:51.152Z',0,'ke/5NXvA5v',0); |  | ||||||
| INSERT INTO attributes VALUES('ch6YD8XTrUr5','XoLNnnlwdjBi','label','task','',1,'2018-08-29T19:43:06.412Z','2018-08-29T19:43:06.412Z',0,'jQHXfhklXB',0); |  | ||||||
| INSERT INTO attributes VALUES('TZkneA5u23Kw','XoLNnnlwdjBi','relation','template','HbtlYiMvmm4V',2,'2018-08-29T19:43:06.432Z','2018-08-29T19:43:06.432Z',0,'0ePfOmtYfE',0); |  | ||||||
| INSERT INTO attributes VALUES('4TPlivzsoHPv','XoLNnnlwdjBi','label','location','mall',3,'2018-08-29T19:43:40.276Z','2018-08-29T19:43:40.276Z',0,'vh+2pYyK3U',0); |  | ||||||
| INSERT INTO attributes VALUES('FMUuvj9EqQaH','tQmqkQOMHgQJ','label','taskLocationNote','mall',1,'2018-08-29T19:43:40.327Z','2018-08-29T19:43:40.327Z',0,'BN9MF6o9qm',0); |  | ||||||
| INSERT INTO attributes VALUES('axCS9DyjSRmo','XoLNnnlwdjBi','label','cssClass','todo',4,'2018-08-29T19:43:40.339Z','2018-08-29T19:43:40.339Z',0,'HLfCqLKAbE',0); |  | ||||||
| INSERT INTO attributes VALUES('FPm7iK5b179Z','XoLNnnlwdjBi','label','tag','christmas',5,'2018-08-29T19:43:43.973Z','2018-08-29T19:43:43.973Z',0,'LSaUBtMo8z',0); |  | ||||||
| INSERT INTO attributes VALUES('Li7MCkVJwtoe','Lom0LEnCes1l','label','taskTagNote','christmas',1,'2018-08-29T19:43:44.030Z','2018-08-29T19:43:44.030Z',0,'3yDGaK13Ey',0); |  | ||||||
| INSERT INTO attributes VALUES('7hNexvifrZ9F','XoLNnnlwdjBi','label','todoDate','2017-12-20',6,'2018-08-29T19:43:50.837Z','2018-08-29T19:43:50.837Z',0,'+nJtkDbMMG',0); |  | ||||||
| INSERT INTO attributes VALUES('OllsfdAN2wCw','prjUbW6QtsL4','label','task','',1,'2018-08-29T19:46:42.152Z','2018-08-29T19:46:42.152Z',0,'TCfgA6DVBv',0); |  | ||||||
| INSERT INTO attributes VALUES('VjUlZR2yv2Vs','prjUbW6QtsL4','relation','template','HbtlYiMvmm4V',2,'2018-08-29T19:46:42.158Z','2018-08-29T19:46:42.158Z',0,'eFW+ARGCQN',0); |  | ||||||
| INSERT INTO attributes VALUES('PwkDmazJTPAM','prjUbW6QtsL4','label','cssClass','done',6,'2018-08-29T19:48:00.986Z','2018-08-29T19:48:00.986Z',0,'JQ5wGmAqdM',0); |  | ||||||
| INSERT INTO attributes VALUES('Q3u9O4u2utP3','prjUbW6QtsL4','label','location','mall',7,'2018-08-29T19:49:13.815Z','2018-08-29T19:49:13.816Z',0,'JkBPyNcdpA',0); |  | ||||||
| INSERT INTO attributes VALUES('SMyP8V9L8vBj','prjUbW6QtsL4','label','tag','christmas',8,'2018-08-29T19:49:35.716Z','2018-08-29T19:49:35.717Z',0,'polIDXvbFh',0); |  | ||||||
| INSERT INTO attributes VALUES('T2HBEaDedUkK','EluAg7EiealE','label','task','',1,'2018-08-29T19:53:44.535Z','2018-08-29T19:53:44.535Z',0,'qLcD7/Sxu/',0); |  | ||||||
| INSERT INTO attributes VALUES('uXxiBvaawSxB','EluAg7EiealE','relation','template','HbtlYiMvmm4V',2,'2018-08-29T19:53:44.545Z','2018-08-29T19:53:44.546Z',0,'LYDxqtQ0oj',0); |  | ||||||
| INSERT INTO attributes VALUES('rPKq1auqgjne','EluAg7EiealE','label','location','gym',3,'2018-08-29T19:54:19.526Z','2018-08-29T19:54:19.527Z',0,'3D6MY7txSx',0); |  | ||||||
| INSERT INTO attributes VALUES('OlQapDHmPsvE','vkoNZlNO5TO4','label','taskLocationNote','gym',1,'2018-08-29T19:54:19.623Z','2018-08-29T19:54:19.624Z',0,'JjIloRX8Lj',0); |  | ||||||
| INSERT INTO attributes VALUES('isgI18Da7raL','EluAg7EiealE','label','cssClass','todo',4,'2018-08-29T19:54:19.645Z','2018-08-29T19:54:19.645Z',0,'oSAy7WDTd/',0); |  | ||||||
| INSERT INTO attributes VALUES('bueAaBOZaPR1','EluAg7EiealE','label','todoDate','2017-12-28',5,'2018-08-29T19:54:38.485Z','2018-08-29T19:55:04.592Z',0,'h8K/66xrrB',0); |  | ||||||
| INSERT INTO attributes VALUES('o9VzDlKJm2Wv','cUWgYJfpp8G8','relation','template','Lt8IUldw7d7H',2,'2018-08-29T19:55:04.668Z','2018-08-29T19:55:04.668Z',0,'mU4NSX5SfY',0); |  | ||||||
| INSERT INTO attributes VALUES('aAAKUP8Xzk84','cUWgYJfpp8G8','label','dateNote','2017-12-28',3,'2018-08-29T19:55:04.681Z','2018-08-29T19:55:04.681Z',0,'KkDCxAsM5x',0); |  | ||||||
| INSERT INTO attributes VALUES('Ts6QDZqcbOWK','cmYy3Z22F4MY','label','task','',1,'2018-08-29T19:56:35.634Z','2018-08-29T19:56:35.634Z',0,'9XyxVqr+mR',0); |  | ||||||
| INSERT INTO attributes VALUES('mi8JlZzzDMvf','cmYy3Z22F4MY','relation','template','HbtlYiMvmm4V',2,'2018-08-29T19:56:35.640Z','2018-08-29T19:56:35.640Z',0,'l8tpnd26SZ',0); |  | ||||||
| INSERT INTO attributes VALUES('xCrm8cWEAERo','cmYy3Z22F4MY','label','tag','health',3,'2018-08-29T19:57:02.217Z','2018-08-29T19:57:02.218Z',0,'gkz91AYO7M',0); |  | ||||||
| INSERT INTO attributes VALUES('EQgv8jgBGDeO','2V9Zg9CXdNvn','label','taskTagNote','health',1,'2018-08-29T19:57:02.276Z','2018-08-29T19:57:02.276Z',0,'T1LboUFYwM',0); |  | ||||||
| INSERT INTO attributes VALUES('2CLl7F07nrUX','cmYy3Z22F4MY','label','cssClass','done',7,'2018-08-29T19:57:11.866Z','2018-08-29T19:57:11.866Z',0,'U+xrckPbD4',0); |  | ||||||
| INSERT INTO attributes VALUES('L8QbHBtuWocN','cmYy3Z22F4MY','label','todoDate','2017-12-19',5,'2018-08-29T19:57:09.347Z','2018-08-29T19:57:33.998Z',0,'P+niQLnqtT',0); |  | ||||||
| INSERT INTO attributes VALUES('HWw4Q01cb9Re','cmYy3Z22F4MY','label','doneDate','2017-12-19',6,'2018-08-29T19:57:11.798Z','2018-08-29T19:57:39.255Z',0,'jGSCX/QklX',0); |  | ||||||
| INSERT INTO attributes VALUES('qwtBFzh0wmpe','XoLNnnlwdjBi','label','tag','shopping',7,'2018-08-29T19:58:59.083Z','2018-08-29T19:58:59.084Z',0,'Hw2zrl2NtD',0); |  | ||||||
| INSERT INTO attributes VALUES('AX3w15mAFRoB','d04CnuZxPXj2','label','taskTagNote','shopping',1,'2018-08-29T19:58:59.142Z','2018-08-29T19:58:59.142Z',0,'e0BBJ30IQ1',0); |  | ||||||
| INSERT INTO attributes VALUES('1cermfHB24bp','ve3Ib30x9nGf','label','task','',1,'2018-08-29T19:59:04.352Z','2018-08-29T19:59:04.352Z',0,'vFv8J/h5qJ',0); |  | ||||||
| INSERT INTO attributes VALUES('QlSQJcHlt3ZQ','ve3Ib30x9nGf','relation','template','HbtlYiMvmm4V',2,'2018-08-29T19:59:04.359Z','2018-08-29T19:59:04.360Z',0,'263XZD0Xpd',0); |  | ||||||
| INSERT INTO attributes VALUES('UPvlXSBXxRJv','ve3Ib30x9nGf','label','location','work',3,'2018-08-29T19:59:38.832Z','2018-08-29T19:59:38.832Z',0,'GufZy7QNVn',0); |  | ||||||
| INSERT INTO attributes VALUES('YngESU7G6T62','TTl2nD4CqzC9','label','taskLocationNote','work',1,'2018-08-29T19:59:38.890Z','2018-08-29T19:59:38.890Z',0,'FTH7CxVaB1',0); |  | ||||||
| INSERT INTO attributes VALUES('PEbrAcRaFOXE','ve3Ib30x9nGf','label','cssClass','todo',4,'2018-08-29T19:59:38.915Z','2018-08-29T19:59:38.915Z',0,'Xepyx9jFGP',0); |  | ||||||
| INSERT INTO attributes VALUES('cdSIp3FJ50vX','ve3Ib30x9nGf','label','todoDate','2017-12-18',5,'2018-08-29T19:59:46.829Z','2018-08-29T20:00:18.351Z',0,'TWZfKhjpe3',0); |  | ||||||
| INSERT INTO attributes VALUES('TZa1McDCnNHj','uP3V8BqwXC05','label','tag','shopping',7,'2018-08-29T20:01:47.691Z','2018-08-29T20:01:47.691Z',0,'kH6CGtIT/r',0); |  | ||||||
| INSERT INTO attributes VALUES('kNp0J9uXoC8U','tX80udgxnW5n','label','weight','74.9',2,'2018-08-29T17:31:58.692Z','2018-08-29T21:30:23.669Z',0,'xagvtLz48G',0); |  | ||||||
| INSERT INTO attributes VALUES('0F9G0OQujXVO','prjUbW6QtsL4','label','tag','shopping',9,'2018-08-30T07:54:40.727Z','2018-08-30T07:54:40.728Z',0,'XyCvk4htB5',0); |  | ||||||
| INSERT INTO attributes VALUES('yc58HTwoM3b0','prjUbW6QtsL4','label','todoDate','2017-12-20',3,'2018-08-29T19:47:53.123Z','2018-08-30T07:56:53.874Z',0,'UnKvGyVk7X',0); |  | ||||||
| INSERT INTO attributes VALUES('JVlFEQPYUiCR','prjUbW6QtsL4','label','doneDate','2017-12-24',5,'2018-08-29T19:48:00.928Z','2018-08-30T07:57:00.569Z',0,'nbXCZOrqq6',0); |  | ||||||
| INSERT INTO attributes VALUES('01UuzuSR78Kj','uP3V8BqwXC05','label','todoDate','2017-12-24',6,'2018-08-29T19:43:01.973Z','2018-08-30T08:04:55.301Z',0,'tDEAzDOKYn',0); |  | ||||||
| INSERT INTO attributes VALUES('cyujybJzh4It','HbtlYiMvmm4V','relation','runOnAttributeChange','gYVdjKAJeImD',0,'2018-08-28T20:50:48.640Z','2018-08-28T20:50:48.640Z',0,'6ziRrHJAhQ',1); |  | ||||||
| INSERT INTO attributes VALUES('MEr8Y48B5fuA','HbtlYiMvmm4V','label-definition','location','{"isPromoted":true,"labelType":"text","multiplicityType":"singlevalue"}',1,'2018-08-28T20:50:48.652Z','2018-08-28T20:50:48.652Z',0,'SHKsaKOZDy',1); |  | ||||||
| INSERT INTO attributes VALUES('0zEib333MHaK','HbtlYiMvmm4V','label-definition','tag','{"isPromoted":true,"labelType":"text","multiplicityType":"multivalue"}',2,'2018-08-28T20:50:48.661Z','2018-08-28T20:50:48.661Z',0,'qGaGNt4Il4',1); |  | ||||||
| INSERT INTO attributes VALUES('XsQlrpkI26vx','HbtlYiMvmm4V','label-definition','todoDate','{"isPromoted":true,"labelType":"date","multiplicityType":"singlevalue"}',3,'2018-08-28T20:50:48.707Z','2018-08-28T20:50:48.708Z',0,'K1zIHbXWjg',1); |  | ||||||
| INSERT INTO attributes VALUES('jbVAxy9rOvw7','HbtlYiMvmm4V','label-definition','doneDate','{"isPromoted":true,"labelType":"date","multiplicityType":"singlevalue"}',4,'2018-08-28T20:50:48.716Z','2018-08-28T20:50:48.717Z',0,'ibiT2W04+I',1); |  | ||||||
| INSERT INTO attributes VALUES('0p8vtV5LoH0e','L9qettZi0csz','label','taskTodoRoot','',0,'2018-08-28T20:50:48.596Z','2018-08-28T20:50:48.596Z',0,'mKdjsJRSwv',0); |  | ||||||
| INSERT INTO attributes VALUES('lCyxJnXmNy5x','L9qettZi0csz','label','child:task','',1,'2018-08-28T21:11:09.138Z','2018-08-28T21:11:09.138Z',0,'EarSd1tApi',0); |  | ||||||
| INSERT INTO attributes VALUES('ifqAReEYdFh6','L9qettZi0csz','relation','child:template','HbtlYiMvmm4V',2,'2018-08-28T21:11:09.143Z','2018-08-28T21:11:09.143Z',0,'JXcAyc3in4',0); |  | ||||||
| INSERT INTO attributes VALUES('1hmYf4fJQmBk','L9qettZi0csz','label','child:cssClass','todo',3,'2018-09-01T11:20:29.168Z','2018-09-01T11:20:29.168Z',0,'toS3GWHG/9',0); |  | ||||||
| @@ -1,128 +0,0 @@ | |||||||
| INSERT INTO branches VALUES('root','root','none',0,NULL,1,0,'2018-01-01T00:00:00.000Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('dLgtLUFn3GoN','1Heh2acXfPNt','root',21,NULL,1,0,'2017-12-23T00:46:39.304Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('QLfS835GSfIh','3RkyK9LI18dO','1Heh2acXfPNt',5,NULL,1,0,'2017-12-23T01:20:04.181Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('wLTa2l3lYi83','HJusZTbBU494','3RkyK9LI18dO',1,NULL,1,0,'2017-12-23T01:20:50.709Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('jvhKcwz4pYTr','ZC78NlmdXeC6','WdWZFuWNVDZk',0,NULL,1,0,'2017-12-23T04:06:21.579Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('CarTrwkGVcPz','NncfGH8dyNjJ','WdWZFuWNVDZk',1,NULL,1,0,'2017-12-23T04:06:24.012Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('6M7qPlr7at6N','eouCLkjbruai','NncfGH8dyNjJ',0,NULL,0,0,'2017-12-23T01:23:28.291Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('tQgognnAH9WI','C44aq4mkaX67','NncfGH8dyNjJ',1,NULL,0,0,'2017-12-23T01:23:31.879Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('xyAi7MmgvAgR','C44aq4mkaX67','ZC78NlmdXeC6',1,NULL,1,0,'2017-12-23T01:23:47.756Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('xQ3fjRp9yaPq','I6Cw88AirBBl','C44aq4mkaX67',0,NULL,0,0,'2017-12-23T01:24:04.681Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('2GOsNT5LsvTP','mcEwFMSjhlvL','C44aq4mkaX67',1,NULL,0,0,'2017-12-23T01:29:35.974Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('RxUiraiR655R','CF2lUIJAr6Ey','NncfGH8dyNjJ',2,NULL,0,0,'2017-12-23T01:34:37.658Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('mZuSrZ18Zmv0','xkXwueRoDNeN','MG0wntwILQW6',0,NULL,0,0,'2017-12-23T01:35:40.306Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('hbcWTnEnXPwF','eXHZAKsMYgur','1Heh2acXfPNt',9,NULL,0,0,'2017-12-23T03:32:42.868Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('8a3aNxjG0nu7','2WU27ekfy07E','eXHZAKsMYgur',0,NULL,0,0,'2017-12-23T03:32:49.379Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('4Tu6vaPdCxCM','TjWEndYCCg7g','eXHZAKsMYgur',1,NULL,1,0,'2017-12-23T03:33:23.584Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('lBPOmhP12egP','8nRNDJGyGs2Z','TjWEndYCCg7g',0,NULL,1,0,'2017-12-23T03:33:37.327Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('C5ipVqeDWySp','9zSwD89vgzNO','8nRNDJGyGs2Z',0,NULL,0,0,'2017-12-23T03:37:04.912Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('uSitzbGcSATJ','u5t1EvWa3CMO','TjWEndYCCg7g',1,NULL,0,0,'2017-12-23T03:39:21.918Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('GZ6aRI8rdSJt','8nRNDJGyGs2Z','MG0wntwILQW6',1,'',1,0,'2017-12-23T03:42:28.310Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('uipfvAfwWRgx','6ZuXjCSWgjB4','HJusZTbBU494',0,NULL,0,0,'2017-12-23T03:44:54.096Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('nMRpPWWH8WRk','GpGnjmcAPeWG','6ZuXjCSWgjB4',1,NULL,0,0,'2017-12-23T03:44:57.036Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('c4wt27WNjepw','21K84UqGhqlt','GpGnjmcAPeWG',0,NULL,0,0,'2017-12-23T03:45:10.933Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('d8L8zYlLTbym','R6pheWjdwmNU','rz5t0r9Qr2WC',0,NULL,0,0,'2017-12-23T03:45:28.002Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('T4USGzfllu5t','5v5Dx6LMHXIO','Iha4YwchR413',0,NULL,0,0,'2017-12-23T03:45:44.184Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('c4JgFNIobvQW','MLQjmREtcnJ3','R6pheWjdwmNU',0,NULL,0,0,'2017-12-23T03:47:48.208Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('nfWjptAU2ZDg','pTTjrxgnvURB','R6pheWjdwmNU',1,NULL,0,0,'2017-12-23T03:47:55.932Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('T2ToYBfyPy0g','cFK9sGYZaMWs','rz5t0r9Qr2WC',1,NULL,0,0,'2017-12-23T03:49:32.210Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('NG4gbKOnsM3v','21K84UqGhqlt','MLQjmREtcnJ3',0,'28. 11. 2017',0,0,'2017-12-23T03:53:38.110Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('Fstg4tkccO4N','5v5Dx6LMHXIO','MLQjmREtcnJ3',1,'21. 12. 2017',0,0,'2017-12-23T03:53:49.737Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('MN8B7qXDUViO','xkXwueRoDNeN','MLQjmREtcnJ3',2,'22. 12. 2017',0,0,'2017-12-23T03:53:57.486Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('gSRkHpB7Bu3D','pOFVzbXLmzhX','R6pheWjdwmNU',2,NULL,0,0,'2017-12-23T03:54:46.138Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('6brdjeWDOB6w','0xtvjqrcGiRB','ZC78NlmdXeC6',0,NULL,0,0,'2017-12-23T04:02:06.650Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('AqKUM2zUVFUF','Zl69uXBSen0w','ZC78NlmdXeC6',2,NULL,1,0,'2017-12-23T04:02:16.685Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('Ez7NN2WVzRc4','62BKAQMVP2KW','Zl69uXBSen0w',1,NULL,0,0,'2017-12-23T04:02:39.164Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('t3vVElqMIQVa','h4OfLEAYspud','WdWZFuWNVDZk',2,NULL,1,0,'2017-12-23T04:06:25.769Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('O983DHtLpgmr','1hASbLRDL7oo','h4OfLEAYspud',0,NULL,0,0,'2017-12-23T16:42:26.347Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('RsvL795Mk1bp','1hASbLRDL7oo','GpGnjmcAPeWG',1,'',0,0,'2017-12-23T04:04:56.830Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('79e4hrHLFmx6','jyqG9GucsMdn','Iha4YwchR413',1,NULL,0,0,'2017-12-23T04:05:16.439Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('oWO8rctUjf7d','WdWZFuWNVDZk','1Heh2acXfPNt',13,NULL,0,0,'2017-12-23T04:06:16.179Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('GOxcrZrxalFN','yK4SBJfwD3tY','1Heh2acXfPNt',18,NULL,0,0,'2017-12-23T04:06:32.833Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('bSPmEvjLzQKU','r4BnsmSQeVr1','yK4SBJfwD3tY',0,NULL,0,0,'2017-12-23T04:06:37.427Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('bMtxCD6cwNR9','QbL3pTvhgzM8','yK4SBJfwD3tY',2,NULL,0,0,'2017-12-23T04:06:43.841Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('o4ycR7xIi4oI','moMbTKwN15Ps','yK4SBJfwD3tY',3,NULL,1,0,'2017-12-23T04:06:49.331Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('abTEhnOsAsSg','PEGQGg0In3Ar','GpGnjmcAPeWG',2,NULL,0,0,'2017-12-23T16:44:35.900Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('ccslPJf3wQV3','vBv6ovBupfTj','IlULcDiOTI4K',0,NULL,0,0,'2017-12-23T18:04:50.904Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('5Dt9YCMn59sY','mw4f2xB4J5fV','IlULcDiOTI4K',1,NULL,0,0,'2017-12-23T18:05:24.868Z','','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('Qwj5gpLainnP','N029F9ANGn8b','Dk5RGYzufXg3',0,NULL,0,0,'2018-08-28T20:50:22.011Z','gziRGab1sT','2018-08-28T20:50:22.011Z'); |  | ||||||
| INSERT INTO branches VALUES('gslGsoDESZjG','bFTtwsnNgw9T','Dk5RGYzufXg3',1,NULL,0,0,'2018-08-28T20:50:22.110Z','ZcNPsaKsw8','2018-08-28T20:50:22.110Z'); |  | ||||||
| INSERT INTO branches VALUES('aP3f70xCJWGs','N029F9ANGn8b','bFTtwsnNgw9T',0,NULL,NULL,0,'2018-08-28T20:50:22.117Z','ZvcZgDrutn','2018-08-28T20:50:22.117Z'); |  | ||||||
| INSERT INTO branches VALUES('WlpZMMsXlQJw','wHb2YBwhjxiD','YULCKCrWJJZ6',0,NULL,0,0,'2018-08-28T20:50:22.181Z','cBicKleFbl','2018-08-28T20:50:22.181Z'); |  | ||||||
| INSERT INTO branches VALUES('jyFk0k855gf1','cUYFEvsdY6N6','YULCKCrWJJZ6',1,NULL,0,0,'2018-08-28T20:50:22.187Z','BC+PIh5h25','2018-08-28T20:50:22.186Z'); |  | ||||||
| INSERT INTO branches VALUES('O7hcbDc4taan','8APXN4n4Hnb8','YULCKCrWJJZ6',2,NULL,0,0,'2018-08-28T20:50:22.192Z','ubas1i1Xzz','2018-08-28T20:50:22.192Z'); |  | ||||||
| INSERT INTO branches VALUES('hmtcxz6dMz9S','s0Hhsl0nb1bg','YULCKCrWJJZ6',3,NULL,0,0,'2018-08-28T20:50:22.197Z','sRmlG1Gqe3','2018-08-28T20:50:22.197Z'); |  | ||||||
| INSERT INTO branches VALUES('W0tZAcTC0dGY','baafKkgNGYLm','YULCKCrWJJZ6',4,NULL,0,0,'2018-08-28T20:50:22.204Z','/Y9ycmu78F','2018-08-28T20:50:22.204Z'); |  | ||||||
| INSERT INTO branches VALUES('t0PqYe7oEZQg','Ab7WuV47mQOf','YULCKCrWJJZ6',5,NULL,0,0,'2018-08-28T20:50:22.210Z','NznnppTEIe','2018-08-28T20:50:22.210Z'); |  | ||||||
| INSERT INTO branches VALUES('7cOKBWmaN1kw','w7t110kWsK8e','YULCKCrWJJZ6',6,NULL,0,0,'2018-08-28T20:50:22.215Z','VxtbCyFURt','2018-08-28T20:50:22.215Z'); |  | ||||||
| INSERT INTO branches VALUES('3bIvCk23JeXJ','at7bZyjJfIrM','YULCKCrWJJZ6',7,NULL,0,0,'2018-08-28T20:50:22.220Z','lH/8HHwLB1','2018-08-28T20:50:22.220Z'); |  | ||||||
| INSERT INTO branches VALUES('vWch9vHEIsKw','OZKicr536m7U','YULCKCrWJJZ6',8,NULL,0,0,'2018-08-28T20:50:22.225Z','FldZuyxiDN','2018-08-28T20:50:22.225Z'); |  | ||||||
| INSERT INTO branches VALUES('p07f522OT9FP','oato1D7kuNU2','YULCKCrWJJZ6',9,NULL,0,0,'2018-08-28T20:50:22.231Z','LQlWJmL3RR','2018-08-28T20:50:22.231Z'); |  | ||||||
| INSERT INTO branches VALUES('03YszmiIfe8B','C1I7GPA8ORO4','YULCKCrWJJZ6',10,NULL,0,0,'2018-08-28T20:50:22.236Z','uNgEmMMv59','2018-08-28T20:50:22.236Z'); |  | ||||||
| INSERT INTO branches VALUES('iZJMJE9v4caq','gQNQaMBzRYdb','YULCKCrWJJZ6',11,NULL,0,0,'2018-08-28T20:50:22.242Z','OIMswfv8u0','2018-08-28T20:50:22.242Z'); |  | ||||||
| INSERT INTO branches VALUES('BgakZWX2NSoa','8LOr7xUMuWD4','1Heh2acXfPNt',24,NULL,0,0,'2018-08-28T20:50:36.080Z','l6e868XpLw','2018-08-28T20:50:36.079Z'); |  | ||||||
| INSERT INTO branches VALUES('6yEXb5xSww7E','qEi5St9PBPCP','8LOr7xUMuWD4',3,NULL,0,0,'2018-08-28T20:50:36.154Z','wiqkXVJhDQ','2018-08-28T20:50:36.154Z'); |  | ||||||
| INSERT INTO branches VALUES('WFBrWWGubT8N','IYKhW6LTUpwP','1Heh2acXfPNt',28,NULL,0,0,'2018-08-28T20:50:48.458Z','KaPAe+LyvC','2018-08-28T20:50:48.458Z'); |  | ||||||
| INSERT INTO branches VALUES('VEq36SudFqDe','L9qettZi0csz','IYKhW6LTUpwP',0,NULL,1,0,'2018-08-28T20:50:48.471Z','74RNaEVH/C','2018-08-28T20:50:48.470Z'); |  | ||||||
| INSERT INTO branches VALUES('cnL65jQZPFng','Dyahpf7LroQY','IYKhW6LTUpwP',2,NULL,1,0,'2018-08-28T20:50:48.481Z','uY3Jzm+34n','2018-08-28T20:50:48.480Z'); |  | ||||||
| INSERT INTO branches VALUES('jj5QAGAl31lB','nUgD4SYx2gt7','IYKhW6LTUpwP',4,NULL,1,0,'2018-08-28T20:50:48.507Z','sxhKcIO0Fo','2018-08-28T20:50:48.507Z'); |  | ||||||
| INSERT INTO branches VALUES('H4uX5U8UA3Fb','hL4rychNFWZs','IYKhW6LTUpwP',6,NULL,1,0,'2018-08-28T20:50:48.539Z','8/KA289XO5','2018-08-28T20:50:48.539Z'); |  | ||||||
| INSERT INTO branches VALUES('r6XUe41mCgPY','gYVdjKAJeImD','hL4rychNFWZs',0,NULL,0,0,'2018-08-28T20:50:48.546Z','B8Zx5cyTRW','2018-08-28T20:50:48.546Z'); |  | ||||||
| INSERT INTO branches VALUES('UPdB517CCSC6','vVhlPtM5YgWe','gYVdjKAJeImD',0,NULL,0,0,'2018-08-28T20:50:48.556Z','Ydd3hXIn5h','2018-08-28T20:50:48.556Z'); |  | ||||||
| INSERT INTO branches VALUES('2lLNmlPp32DT','XVlWndK4Oh6A','hL4rychNFWZs',2,NULL,0,0,'2018-08-28T20:50:48.575Z','7KpHQIqICP','2018-08-28T20:50:48.575Z'); |  | ||||||
| INSERT INTO branches VALUES('8A8Hj2KELLZe','gYNJtGEPGW95','hL4rychNFWZs',3,NULL,0,0,'2018-08-28T20:50:48.583Z','akAZK6+pYC','2018-08-28T20:50:48.583Z'); |  | ||||||
| INSERT INTO branches VALUES('feP0uJpIPOz3','HbtlYiMvmm4V','hL4rychNFWZs',4,NULL,0,0,'2018-08-28T20:50:48.592Z','2hPRviPOvY','2018-08-28T20:50:48.592Z'); |  | ||||||
| INSERT INTO branches VALUES('VgaH4I1fLW0p','Dk5RGYzufXg3','Z5yhGE5g0UB5',0,NULL,1,0,'2018-08-28T20:51:30.388Z','A5p7MjKIdD','2018-08-28T20:50:21.941Z'); |  | ||||||
| INSERT INTO branches VALUES('sOGDHPGhnMoM','YBAcWV8TjYEp','8LOr7xUMuWD4',0,NULL,1,0,'2018-08-28T20:56:04.336Z','e84wqxU8y+','2018-08-28T20:55:00.064Z'); |  | ||||||
| INSERT INTO branches VALUES('Hoq9xTZg8sCK','kV2NwNNvepGF','YBAcWV8TjYEp',0,NULL,1,0,'2018-08-28T20:56:05.910Z','0rORbULibz','2018-08-28T20:50:36.095Z'); |  | ||||||
| INSERT INTO branches VALUES('A56xlTT6rczp','YULCKCrWJJZ6','gDrEI7LFWqrP',0,NULL,1,0,'2018-08-29T16:03:23.987Z','7YCK6Cf3vr','2018-08-28T20:50:22.175Z'); |  | ||||||
| INSERT INTO branches VALUES('5cJwU0VlCJA7','WkdQrYTnsgxP','gDrEI7LFWqrP',1,NULL,0,0,'2018-08-29T16:03:24.889Z','RaGS8TUyuV','2018-08-28T20:50:22.250Z'); |  | ||||||
| INSERT INTO branches VALUES('U4XC6g7oB4ME','Z5yhGE5g0UB5','gDrEI7LFWqrP',2,NULL,1,0,'2018-08-29T16:03:25.779Z','fAkVtlU455','2018-08-28T20:51:10.194Z'); |  | ||||||
| INSERT INTO branches VALUES('bFGrKoCcHTD0','ucC6Zabv3Uml','gDrEI7LFWqrP',3,NULL,0,0,'2018-08-29T16:03:30.624Z','KWGpDGiWrq','2018-08-28T20:50:22.122Z'); |  | ||||||
| INSERT INTO branches VALUES('FIurtaYkU3mn','gDrEI7LFWqrP','1Heh2acXfPNt',26,NULL,0,0,'2018-08-29T16:03:27.894Z','+Jd+Zzgx2u','2018-08-28T20:50:21.931Z'); |  | ||||||
| INSERT INTO branches VALUES('bryQseMhyzaI','IlULcDiOTI4K','1Heh2acXfPNt',2,NULL,0,0,'2018-08-29T17:10:47.987Z','wX6dY3pq/D','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('u84s3tBBB92g','TlGCAdcfxkOT','eXHZAKsMYgur',2,NULL,0,0,'2018-08-29T17:11:16.550Z','Ei4ozqDMWi','2018-08-29T17:11:16.550Z'); |  | ||||||
| INSERT INTO branches VALUES('yMhwsE7uvEij','3oldoiMUPOlr','HJusZTbBU494',1,NULL,1,0,'2018-08-29T17:20:59.012Z','7U4pIRsbwO','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('NTlSXCbgt5Va','Lt8IUldw7d7H','3RkyK9LI18dO',3,NULL,0,0,'2018-08-29T17:23:45.198Z','QjebjIeHUj','2018-08-29T17:23:45.198Z'); |  | ||||||
| INSERT INTO branches VALUES('0fpnraUGs9Kl','rz5t0r9Qr2WC','HJusZTbBU494',2,NULL,1,0,'2018-08-29T17:26:27.928Z','rw9k0n9SUb','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('uMt25KxpV45Y','tX80udgxnW5n','3oldoiMUPOlr',1,NULL,1,0,'2018-08-29T17:29:24.554Z','XlDqz7PX7X','2018-08-29T17:29:24.554Z'); |  | ||||||
| INSERT INTO branches VALUES('IsCUFfM1QzHl','rUsGgtpohm7T','3oldoiMUPOlr',21,NULL,0,0,'2018-08-29T17:29:32.942Z','o8ZNDOfGSB','2018-08-29T17:29:32.942Z'); |  | ||||||
| INSERT INTO branches VALUES('UozNcoXYDovC','sXti7HgialF2','3oldoiMUPOlr',23,NULL,1,0,'2018-08-29T17:29:43.138Z','mDyppB0lkz','2018-08-29T17:29:43.138Z'); |  | ||||||
| INSERT INTO branches VALUES('3B2q1J0jymcC','uP3V8BqwXC05','L9qettZi0csz',0,NULL,0,0,'2018-08-29T19:42:32.718Z','fgHfgNl00Y','2018-08-29T19:42:32.718Z'); |  | ||||||
| INSERT INTO branches VALUES('tznJp79kaw59','Z4CC9azzMNhg','Dyahpf7LroQY',0,NULL,1,0,'2018-08-29T19:42:47.857Z','GPgoswIB8x','2018-08-29T19:42:47.856Z'); |  | ||||||
| INSERT INTO branches VALUES('akqrs7gHmh5t','uP3V8BqwXC05','Z4CC9azzMNhg',0,NULL,0,0,'2018-08-29T19:42:47.872Z','aoLg0gFrd/','2018-08-29T19:42:47.872Z'); |  | ||||||
| INSERT INTO branches VALUES('acVSG5Mau4XN','q6A62bZE2R1r','nUgD4SYx2gt7',2,NULL,0,0,'2018-08-29T19:42:51.139Z','V1TNeMyqD5','2018-08-29T19:42:51.139Z'); |  | ||||||
| INSERT INTO branches VALUES('Gd1QxgTLiOQx','uP3V8BqwXC05','q6A62bZE2R1r',0,NULL,0,0,'2018-08-29T19:42:51.161Z','FC79qQkyC3','2018-08-29T19:42:51.161Z'); |  | ||||||
| INSERT INTO branches VALUES('aCAgcqpOKx7z','XoLNnnlwdjBi','L9qettZi0csz',1,NULL,0,0,'2018-08-29T19:43:06.394Z','5tETh0Khcc','2018-08-29T19:43:06.394Z'); |  | ||||||
| INSERT INTO branches VALUES('ofME2yjEstZT','tQmqkQOMHgQJ','Dyahpf7LroQY',1,NULL,0,0,'2018-08-29T19:43:40.323Z','bRdu27+7TZ','2018-08-29T19:43:40.323Z'); |  | ||||||
| INSERT INTO branches VALUES('LfV9Vuv2KOYi','XoLNnnlwdjBi','tQmqkQOMHgQJ',0,NULL,0,0,'2018-08-29T19:43:40.335Z','blImjibA2C','2018-08-29T19:43:40.334Z'); |  | ||||||
| INSERT INTO branches VALUES('mSyNlVSA6WRX','XoLNnnlwdjBi','Lom0LEnCes1l',0,NULL,0,0,'2018-08-29T19:43:44.040Z','kQy9lC8qmF','2018-08-29T19:43:44.039Z'); |  | ||||||
| INSERT INTO branches VALUES('q735AeBxPj1T','ydix6JqjXiUm','XoLNnnlwdjBi',0,NULL,0,0,'2018-08-29T19:46:03.357Z','5eoW9KyskY','2018-08-29T19:46:03.356Z'); |  | ||||||
| INSERT INTO branches VALUES('fmm6YcEBxv8T','prjUbW6QtsL4','9HHqPxJkLAkl',0,NULL,0,0,'2018-08-29T19:48:00.972Z','JMdLMCDy2J','2018-08-29T19:48:00.972Z'); |  | ||||||
| INSERT INTO branches VALUES('NnybbW5xPPHO','9HHqPxJkLAkl','IYKhW6LTUpwP',1,NULL,1,0,'2018-08-29T19:48:05.277Z','FirAueCkjs','2018-08-28T20:50:48.529Z'); |  | ||||||
| INSERT INTO branches VALUES('Fq4TqKTo93aK','EluAg7EiealE','L9qettZi0csz',2,NULL,0,0,'2018-08-29T19:53:44.530Z','mJCxaZ1mlW','2018-08-29T19:53:44.530Z'); |  | ||||||
| INSERT INTO branches VALUES('2dac99oNkdH3','vkoNZlNO5TO4','Dyahpf7LroQY',2,NULL,0,0,'2018-08-29T19:54:19.618Z','fN3DqnjcUb','2018-08-29T19:54:19.618Z'); |  | ||||||
| INSERT INTO branches VALUES('8aSc0sibmCZm','EluAg7EiealE','vkoNZlNO5TO4',0,NULL,0,0,'2018-08-29T19:54:19.637Z','RpUFzJs2RD','2018-08-29T19:54:19.637Z'); |  | ||||||
| INSERT INTO branches VALUES('uMnwVhwtdXZg','cUWgYJfpp8G8','3oldoiMUPOlr',24,NULL,1,0,'2018-08-29T19:55:04.661Z','ZMEYWKhIhB','2018-08-29T19:55:04.661Z'); |  | ||||||
| INSERT INTO branches VALUES('kS7GsSvztE1J','EluAg7EiealE','cUWgYJfpp8G8',0,'TODO',NULL,0,'2018-08-29T19:55:04.691Z','72zbNyyFRw','2018-08-29T19:54:38.626Z'); |  | ||||||
| INSERT INTO branches VALUES('EjQTcVVHFmmZ','MG0wntwILQW6','3oldoiMUPOlr',19,NULL,0,0,'2018-08-29T19:55:53.824Z','bx2z9074Vi','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('HsN4600rQoL9','Iha4YwchR413','3oldoiMUPOlr',17,NULL,1,0,'2018-08-29T17:26:52.528Z','GBlVZxHhto','1970-01-01T00:00:00.000Z'); |  | ||||||
| INSERT INTO branches VALUES('fQ2BsgDWdqoE','1Fi3MpUkZkLk','3oldoiMUPOlr',16,NULL,1,0,'2018-08-29T19:56:00.793Z','tk6763xjRL','2018-08-29T17:29:02.035Z'); |  | ||||||
| INSERT INTO branches VALUES('Sv77hHzVZvdw','cwPuYRAGKtUi','3oldoiMUPOlr',2,NULL,1,0,'2018-08-29T19:56:04.404Z','Uwn3W1Q8py','2018-08-29T17:29:16.635Z'); |  | ||||||
| INSERT INTO branches VALUES('kPZLi2VKVjQ1','2V9Zg9CXdNvn','nUgD4SYx2gt7',6,NULL,0,0,'2018-08-29T19:57:02.270Z','v0dB+4MnXy','2018-08-29T19:57:02.270Z'); |  | ||||||
| INSERT INTO branches VALUES('9nEK1jBKqdL7','cmYy3Z22F4MY','9HHqPxJkLAkl',1,NULL,0,0,'2018-08-29T19:57:11.828Z','P7AvZh6VlN','2018-08-29T19:57:11.828Z'); |  | ||||||
| INSERT INTO branches VALUES('HVvl5lR3Db7p','cmYy3Z22F4MY','cwPuYRAGKtUi',1,'DONE',NULL,0,'2018-08-29T19:57:39.314Z','dZK0rWy9IN','2018-08-29T19:57:11.876Z'); |  | ||||||
| INSERT INTO branches VALUES('bPQksNkJmvLR','XoLNnnlwdjBi','d04CnuZxPXj2',0,NULL,0,0,'2018-08-29T19:58:59.150Z','bMHPa6tOOV','2018-08-29T19:58:59.150Z'); |  | ||||||
| INSERT INTO branches VALUES('eoWt4fWm0sW3','XoLNnnlwdjBi','1Fi3MpUkZkLk',0,'TODO',NULL,0,'2018-08-29T19:43:50.887Z','Dq9p08n0+S','2018-08-29T19:43:50.887Z'); |  | ||||||
| INSERT INTO branches VALUES('lMn7U8E3HcM8','ve3Ib30x9nGf','L9qettZi0csz',3,NULL,0,0,'2018-08-29T19:59:04.336Z','9uxcfSBqQm','2018-08-29T19:59:04.336Z'); |  | ||||||
| INSERT INTO branches VALUES('No0w47P6V5NU','TTl2nD4CqzC9','Dyahpf7LroQY',3,NULL,0,0,'2018-08-29T19:59:38.884Z','Po5wJqpzvR','2018-08-29T19:59:38.884Z'); |  | ||||||
| INSERT INTO branches VALUES('0TOuqT1KIYRZ','ve3Ib30x9nGf','TTl2nD4CqzC9',0,NULL,0,0,'2018-08-29T19:59:38.901Z','jjfsd5sCg4','2018-08-29T19:59:38.901Z'); |  | ||||||
| INSERT INTO branches VALUES('5dNoZxDbyGLR','ve3Ib30x9nGf','tX80udgxnW5n',0,'TODO',NULL,0,'2018-08-29T20:00:18.428Z','YrUH6cdlZO','2018-08-29T19:59:47.032Z'); |  | ||||||
| INSERT INTO branches VALUES('mTe83gvO9fsQ','uP3V8BqwXC05','d04CnuZxPXj2',1,NULL,0,0,'2018-08-29T20:01:47.773Z','2uPfZok3xo','2018-08-29T20:01:47.772Z'); |  | ||||||
| INSERT INTO branches VALUES('DzI3pH06LRAK','7H3OrcgB8Io6','tX80udgxnW5n',1,NULL,0,0,'2018-08-29T21:26:55.817Z','TQATDSthxP','2018-08-29T21:26:55.817Z'); |  | ||||||
| INSERT INTO branches VALUES('9zW6GNyUrSwj','HgaAwBX5zVcP','kV2NwNNvepGF',0,NULL,0,0,'2018-08-29T22:13:25.436Z','n7SHMc8Do/','2018-08-28T20:50:36.139Z'); |  | ||||||
| INSERT INTO branches VALUES('KgPU7QD19kBk','prjUbW6QtsL4','sXti7HgialF2',0,'DONE',NULL,0,'2018-08-30T07:57:00.605Z','55wpz4Yj6h','2018-08-29T19:48:00.995Z'); |  | ||||||
| INSERT INTO branches VALUES('iTtVoNfVBdex','d04CnuZxPXj2','nUgD4SYx2gt7',0,NULL,1,0,'2018-08-30T07:57:39.090Z','YuZ73fj3vz','2018-08-29T19:58:59.136Z'); |  | ||||||
| INSERT INTO branches VALUES('7XqFyRCCbbFR','Lom0LEnCes1l','nUgD4SYx2gt7',1,NULL,0,0,'2018-08-30T08:04:45.853Z','xPKVn25yMG','2018-08-29T19:43:44.024Z'); |  | ||||||
| INSERT INTO branches VALUES('5OwmqXXREhwW','uP3V8BqwXC05','sXti7HgialF2',2,'TODO',NULL,0,'2018-08-30T08:04:55.389Z','SBwS31n2Cp','2018-08-29T19:43:02.012Z'); |  | ||||||
| INSERT INTO branches VALUES('Bu2TmxdlNlTi','i3cLVxiO6GlW','1Heh2acXfPNt',3,NULL,0,0,'2018-09-01T11:47:59.762Z','imw6rHOkkw','2018-09-01T11:47:52.505Z'); |  | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -1,2 +0,0 @@ | |||||||
| INSERT INTO note_images VALUES('2EtgRRPfk4Fi','1Heh2acXfPNt','ed64aET6i379',0,'2018-01-08T04:41:30.663Z','2018-01-08T04:41:30.663Z',''); |  | ||||||
| INSERT INTO note_images VALUES('T7qQAw9BVi0E','prjUbW6QtsL4','0mLHhGv61RDM',0,'2018-08-30T07:53:53.165Z','2018-08-30T07:53:53.164Z','lSz2qni/Rx'); |  | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										5
									
								
								db/migrations/0113__left_pane_size_options.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								db/migrations/0113__left_pane_size_options.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | INSERT INTO options (name, value, dateCreated, dateModified, isSynced) | ||||||
|  | VALUES ('leftPaneMinWidth', '350', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
|  |  | ||||||
|  | INSERT INTO options (name, value, dateCreated, dateModified, isSynced) | ||||||
|  | VALUES ('leftPaneWidthPercent', '20', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
							
								
								
									
										1
									
								
								db/migrations/0114__fix_root_note_cycle.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								db/migrations/0114__fix_root_note_cycle.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | update branches set parentNoteId = 'none' where branchId = 'root' | ||||||
							
								
								
									
										75
									
								
								db/migrations/0115__images_in_notes.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								db/migrations/0115__images_in_notes.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,75 @@ | |||||||
|  | -- first fix deleted status of existing images | ||||||
|  | UPDATE note_images SET isDeleted = 1 WHERE noteId IN (SELECT noteId FROM notes WHERE isDeleted = 1); | ||||||
|  |  | ||||||
|  | -- we don't need set data to null because table is going to be dropped anyway and we want image size into attribute | ||||||
|  | UPDATE images SET isDeleted = 1 WHERE imageId NOT IN (SELECT imageId FROM note_images WHERE isDeleted = 0); | ||||||
|  |  | ||||||
|  | -- allow null for note content (for deleted notes) | ||||||
|  | CREATE TABLE IF NOT EXISTS "notes_mig" ( | ||||||
|  |   `noteId`	TEXT NOT NULL, | ||||||
|  |   `title`	TEXT NOT NULL DEFAULT "note", | ||||||
|  |   `content`	TEXT NULL DEFAULT NULL, | ||||||
|  |   `isProtected`	INT NOT NULL DEFAULT 0, | ||||||
|  |   `type` TEXT NOT NULL DEFAULT 'text', | ||||||
|  |   `mime` TEXT NOT NULL DEFAULT 'text/html', | ||||||
|  |   `hash` TEXT DEFAULT "" NOT NULL, | ||||||
|  |   `isDeleted`	INT NOT NULL DEFAULT 0, | ||||||
|  |   `dateCreated`	TEXT NOT NULL, | ||||||
|  |   `dateModified`	TEXT NOT NULL, | ||||||
|  |   PRIMARY KEY(`noteId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | INSERT INTO notes_mig (noteId, title, content, isProtected, isDeleted, dateCreated, dateModified, type, mime, hash) | ||||||
|  | SELECT noteId, title, content, isProtected, isDeleted, dateCreated, dateModified, type, mime, hash FROM notes; | ||||||
|  |  | ||||||
|  | DROP TABLE notes; | ||||||
|  |  | ||||||
|  | ALTER TABLE notes_mig RENAME TO notes; | ||||||
|  |  | ||||||
|  | CREATE TABLE "links" ( | ||||||
|  |   `linkId`	TEXT NOT NULL, | ||||||
|  |   `noteId`	TEXT NOT NULL, | ||||||
|  |   `targetNoteId`	TEXT NOT NULL, | ||||||
|  |   `type` TEXT NOT NULL, | ||||||
|  |   `hash` TEXT DEFAULT "" NOT NULL, | ||||||
|  |   `isDeleted`	INTEGER NOT NULL DEFAULT 0, | ||||||
|  |   `dateCreated`	TEXT NOT NULL, | ||||||
|  |   `dateModified`	TEXT NOT NULL, | ||||||
|  |   PRIMARY KEY(`linkId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | INSERT INTO links (linkId, noteId, targetNoteId, type, isDeleted, dateCreated, dateModified) | ||||||
|  |   SELECT 'L' || SUBSTR(noteImageId, 2), noteId, imageId, 'image', isDeleted, dateCreated, dateModified FROM note_images; | ||||||
|  |  | ||||||
|  | INSERT INTO branches (branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, dateModified, hash, dateCreated) | ||||||
|  |   SELECT 'B' || SUBSTR(noteImageId, 2), imageId, noteId, 100, '', 0, isDeleted, dateModified, hash, dateCreated FROM note_images; | ||||||
|  |  | ||||||
|  | DROP TABLE note_images; | ||||||
|  |  | ||||||
|  | INSERT INTO notes (noteId, title, content, isProtected, isDeleted, dateCreated, dateModified, type, mime, hash) | ||||||
|  |   SELECT imageId, name, data, 0, isDeleted, dateCreated, dateModified, 'image', 'image/' || format, hash FROM images; | ||||||
|  |  | ||||||
|  | INSERT INTO attributes (attributeId, noteId, type, name, value, position, dateCreated, dateModified, isDeleted, hash, isInheritable) | ||||||
|  |   SELECT 'O' || SUBSTR(imageId, 2), imageId, 'label', 'originalFileName', name, 0, dateCreated, dateModified, isDeleted, '', 0 FROM images; | ||||||
|  |  | ||||||
|  | INSERT INTO attributes (attributeId, noteId, type, name, value, position, dateCreated, dateModified, isDeleted, hash, isInheritable) | ||||||
|  | SELECT 'F' || SUBSTR(imageId, 2), imageId, 'label', 'fileSize', LENGTH(data), 0, dateCreated, dateModified, isDeleted, '', 0 FROM images; | ||||||
|  |  | ||||||
|  | DROP TABLE images; | ||||||
|  |  | ||||||
|  | INSERT INTO sync (entityName, entityId, sourceId, syncDate) | ||||||
|  | SELECT 'attributes', 'O' || SUBSTR(entityId, 2), sourceId, syncDate FROM sync WHERE entityName = 'images'; | ||||||
|  |  | ||||||
|  | INSERT INTO sync (entityName, entityId, sourceId, syncDate) | ||||||
|  | SELECT 'attributes', 'F' || SUBSTR(entityId, 2), sourceId, syncDate FROM sync WHERE entityName = 'images'; | ||||||
|  |  | ||||||
|  | UPDATE sync SET entityName = 'notes' WHERE entityName = 'images'; | ||||||
|  |  | ||||||
|  | INSERT INTO sync (entityName, entityId, sourceId, syncDate) | ||||||
|  | SELECT 'links', 'L' || SUBSTR(entityId, 2), sourceId, syncDate FROM sync WHERE entityName = 'note_images'; | ||||||
|  |  | ||||||
|  | INSERT INTO sync (entityName, entityId, sourceId, syncDate) | ||||||
|  |   SELECT 'branches', 'B' || SUBSTR(entityId, 2), sourceId, syncDate FROM sync WHERE entityName = 'note_images'; | ||||||
|  |  | ||||||
|  | DELETE FROM sync WHERE entityName = 'note_images'; | ||||||
|  | DELETE FROM sync WHERE entityName = 'images'; | ||||||
							
								
								
									
										14
									
								
								db/migrations/0116__add_indexes.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								db/migrations/0116__add_indexes.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | create index IDX_links_noteId_index | ||||||
|  |   on links (noteId); | ||||||
|  |  | ||||||
|  | create index IDX_links_targetNoteId_index | ||||||
|  |   on links (targetNoteId); | ||||||
|  |  | ||||||
|  | create index IDX_attributes_name_index | ||||||
|  |   on attributes (name); | ||||||
|  |  | ||||||
|  | create index IDX_attributes_noteId_index | ||||||
|  |   on attributes (noteId); | ||||||
|  |  | ||||||
|  | create index IDX_attributes_value_index | ||||||
|  |   on attributes (value); | ||||||
							
								
								
									
										1
									
								
								db/migrations/0117__fix_attributes_of_deleted_notes.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								db/migrations/0117__fix_attributes_of_deleted_notes.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | UPDATE attributes SET isDeleted = 1 WHERE noteId IN (SELECT noteId FROM notes WHERE isDeleted = 1); | ||||||
							
								
								
									
										1
									
								
								db/migrations/0118__fix_broken_relations.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								db/migrations/0118__fix_broken_relations.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | UPDATE attributes SET isDeleted = 1 WHERE type = 'relation' AND value NOT IN (SELECT noteId FROM notes WHERE notes.isDeleted = 0); | ||||||
							
								
								
									
										1
									
								
								db/migrations/0119__rename_mirror_to_inverse.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								db/migrations/0119__rename_mirror_to_inverse.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | UPDATE attributes SET value = replace(value, 'mirrorRelation', 'inverseRelation') WHERE type = 'relation-definition'; | ||||||
| @@ -0,0 +1 @@ | |||||||
|  | UPDATE attributes SET name = 'archived' where name = 'hideInAutocomplete'; | ||||||
							
								
								
									
										2
									
								
								db/migrations/0121__add_hoisting_option.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								db/migrations/0121__add_hoisting_option.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | INSERT INTO options (name, value, dateCreated, dateModified, isSynced) | ||||||
|  | VALUES ('hoistedNoteId', 'root', '2018-12-11T18:31:00.874Z', '2018-12-11T18:31:00.874Z', 0); | ||||||
							
								
								
									
										62
									
								
								db/migrations/0122__add_iv_to_columns.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								db/migrations/0122__add_iv_to_columns.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | |||||||
|  | const sql = require('../../src/services/sql'); | ||||||
|  |  | ||||||
|  | function prependIv(cipherText, ivText) { | ||||||
|  |     const arr = ivText.split("").map(c => parseInt(c) || 0); | ||||||
|  |     const iv = Buffer.from(arr); | ||||||
|  |     const payload = Buffer.from(cipherText, 'base64'); | ||||||
|  |     const complete = Buffer.concat([iv, payload]); | ||||||
|  |  | ||||||
|  |     return complete.toString('base64'); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | async function updateEncryptedDataKey() { | ||||||
|  |     const encryptedDataKey = await sql.getValue("SELECT value FROM options WHERE name = 'encryptedDataKey'"); | ||||||
|  |     const encryptedDataKeyIv = await sql.getValue("SELECT value FROM options WHERE name = 'encryptedDataKeyIv'"); | ||||||
|  |  | ||||||
|  |     const newEncryptedDataKey = prependIv(encryptedDataKey, encryptedDataKeyIv); | ||||||
|  |  | ||||||
|  |     await sql.execute("UPDATE options SET value = ? WHERE name = 'encryptedDataKey'", [newEncryptedDataKey]); | ||||||
|  |  | ||||||
|  |     await sql.execute("DELETE FROM options WHERE name = 'encryptedDataKeyIv'"); | ||||||
|  |     await sql.execute("DELETE FROM sync WHERE entityName = 'options' AND entityId = 'encryptedDataKeyIv'"); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | async function updateNotes() { | ||||||
|  |     const protectedNotes = await sql.getRows("SELECT noteId, title, content FROM notes WHERE isProtected = 1"); | ||||||
|  |  | ||||||
|  |     for (const note of protectedNotes) { | ||||||
|  |         if (note.title !== null) { | ||||||
|  |             note.title = prependIv(note.title, "0" + note.noteId); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (note.content !== null) { | ||||||
|  |             note.content = prependIv(note.content, "1" + note.noteId); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         await sql.execute("UPDATE notes SET title = ?, content = ? WHERE noteId = ?", [note.title, note.content, note.noteId]); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | async function updateNoteRevisions() { | ||||||
|  |     const protectedNoteRevisions = await sql.getRows("SELECT noteRevisionId, title, content FROM note_revisions WHERE isProtected = 1"); | ||||||
|  |  | ||||||
|  |     for (const noteRevision of protectedNoteRevisions) { | ||||||
|  |         if (noteRevision.title !== null) { | ||||||
|  |             noteRevision.title = prependIv(noteRevision.title, "0" + noteRevision.noteRevisionId); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         if (noteRevision.content !== null) { | ||||||
|  |             noteRevision.content = prependIv(noteRevision.content, "1" + noteRevision.noteRevisionId); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         await sql.execute("UPDATE note_revisions SET title = ?, content = ? WHERE noteRevisionId = ?", [noteRevision.title, noteRevision.content, noteRevision.noteRevisionId]); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | module.exports = async () => { | ||||||
|  |     await updateEncryptedDataKey(); | ||||||
|  |  | ||||||
|  |     await updateNotes(); | ||||||
|  |  | ||||||
|  |     await updateNoteRevisions(); | ||||||
|  | }; | ||||||
							
								
								
									
										8
									
								
								db/migrations/0123__add_options_for_font_sizes.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								db/migrations/0123__add_options_for_font_sizes.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | INSERT INTO options (name, value, dateCreated, dateModified, isSynced) | ||||||
|  | VALUES ('mainFontSize', '100', '2019-01-13T18:31:00.874Z', '2019-01-13T18:31:00.874Z', 0); | ||||||
|  |  | ||||||
|  | INSERT INTO options (name, value, dateCreated, dateModified, isSynced) | ||||||
|  | VALUES ('treeFontSize', '100', '2019-01-13T18:31:00.874Z', '2019-01-13T18:31:00.874Z', 0); | ||||||
|  |  | ||||||
|  | INSERT INTO options (name, value, dateCreated, dateModified, isSynced) | ||||||
|  | VALUES ('detailFontSize', '110', '2019-01-13T18:31:00.874Z', '2019-01-13T18:31:00.874Z', 0); | ||||||
							
								
								
									
										11
									
								
								db/migrations/0124__readd_font_sizes.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								db/migrations/0124__readd_font_sizes.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | INSERT INTO options (name, value, dateCreated, dateModified, isSynced) | ||||||
|  |   SELECT 'mainFontSize', '100', '2019-01-13T18:31:00.874Z', '2019-01-13T18:31:00.874Z', 0 | ||||||
|  |     WHERE NOT EXISTS (SELECT 1 FROM options WHERE name = 'mainFontSize'); | ||||||
|  |  | ||||||
|  | INSERT INTO options (name, value, dateCreated, dateModified, isSynced) | ||||||
|  |   SELECT 'treeFontSize', '100', '2019-01-13T18:31:00.874Z', '2019-01-13T18:31:00.874Z', 0 | ||||||
|  |     WHERE NOT EXISTS (SELECT 1 FROM options WHERE name = 'treeFontSize'); | ||||||
|  |  | ||||||
|  | INSERT INTO options (name, value, dateCreated, dateModified, isSynced) | ||||||
|  |   SELECT 'detailFontSize', '110', '2019-01-13T18:31:00.874Z', '2019-01-13T18:31:00.874Z', 0 | ||||||
|  |     WHERE NOT EXISTS (SELECT 1 FROM options WHERE name = 'detailFontSize'); | ||||||
							
								
								
									
										35
									
								
								db/migrations/0125__create_note_content_table.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								db/migrations/0125__create_note_content_table.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS "note_contents" ( | ||||||
|  |   `noteContentId`	TEXT NOT NULL, | ||||||
|  |   `noteId`	TEXT NOT NULL, | ||||||
|  |   `isProtected`	INT NOT NULL DEFAULT 0, | ||||||
|  |   `content`	TEXT NULL DEFAULT NULL, | ||||||
|  |   `hash` TEXT DEFAULT "" NOT NULL, | ||||||
|  |   `dateCreated`	TEXT NOT NULL, | ||||||
|  |   `dateModified` TEXT NOT NULL, | ||||||
|  |   PRIMARY KEY(`noteContentId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | CREATE UNIQUE INDEX `IDX_note_contents_noteId` ON `note_contents` (`noteId`); | ||||||
|  |  | ||||||
|  | INSERT INTO note_contents (noteContentId, noteId, isProtected, content, dateCreated, dateModified) | ||||||
|  |   SELECT 'C' || SUBSTR(noteId, 2), noteId, isProtected, content, dateCreated, dateModified FROM notes; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS "notes_mig" ( | ||||||
|  |   `noteId`	TEXT NOT NULL, | ||||||
|  |   `title`	TEXT NOT NULL DEFAULT "note", | ||||||
|  |   `isProtected`	INT NOT NULL DEFAULT 0, | ||||||
|  |   `type` TEXT NOT NULL DEFAULT 'text', | ||||||
|  |   `mime` TEXT NOT NULL DEFAULT 'text/html', | ||||||
|  |   `hash` TEXT DEFAULT "" NOT NULL, | ||||||
|  |   `isDeleted`	INT NOT NULL DEFAULT 0, | ||||||
|  |   `dateCreated`	TEXT NOT NULL, | ||||||
|  |   `dateModified`	TEXT NOT NULL, | ||||||
|  |   PRIMARY KEY(`noteId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | INSERT INTO notes_mig (noteId, title, isProtected, isDeleted, dateCreated, dateModified, type, mime, hash) | ||||||
|  | SELECT noteId, title, isProtected, isDeleted, dateCreated, dateModified, type, mime, hash FROM notes; | ||||||
|  |  | ||||||
|  | DROP TABLE notes; | ||||||
|  |  | ||||||
|  | ALTER TABLE notes_mig RENAME TO notes; | ||||||
							
								
								
									
										2
									
								
								db/migrations/0126__fill_sync_for_note_contents.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								db/migrations/0126__fill_sync_for_note_contents.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | INSERT OR REPLACE INTO sync (entityName, entityId, sourceId, syncDate) | ||||||
|  | SELECT 'note_contents', noteContentId, '', '2019-03-02T18:07:29.182Z' FROM note_contents; | ||||||
							
								
								
									
										6
									
								
								db/migrations/0127__fix_inconsistent_isProtected.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								db/migrations/0127__fix_inconsistent_isProtected.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | UPDATE notes SET title = 'Recovered protected note', isProtected = 0 WHERE noteId IN ( | ||||||
|  |     SELECT noteId FROM notes JOIN note_contents USING(noteId) | ||||||
|  |     WHERE notes.isProtected = 1 | ||||||
|  |       AND note_contents.isProtected = 0 | ||||||
|  |       AND notes.isDeleted = 0 | ||||||
|  | ) | ||||||
							
								
								
									
										0
									
								
								db/migrations/0128__add_note_fulltext.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								db/migrations/0128__add_note_fulltext.sql
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										1
									
								
								db/migrations/0129__fill_note_fulltext.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								db/migrations/0129__fill_note_fulltext.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | module.exports = async () => {}; | ||||||
							
								
								
									
										236
									
								
								db/migrations/0130__rename_dates_to_utc.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										236
									
								
								db/migrations/0130__rename_dates_to_utc.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,236 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS "sync_mig" ( | ||||||
|  |                                     `id`	INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, | ||||||
|  |                                     `entityName`	TEXT NOT NULL, | ||||||
|  |                                     `entityId`	TEXT NOT NULL, | ||||||
|  |                                     `sourceId` TEXT NOT NULL, | ||||||
|  |                                     `utcSyncDate`	TEXT NOT NULL); | ||||||
|  |  | ||||||
|  | INSERT INTO sync_mig (id, entityName, entityId, sourceId, utcSyncDate) | ||||||
|  |   SELECT id, entityName, entityId, sourceId, REPLACE(syncDate, 'T', ' ') FROM sync; | ||||||
|  |  | ||||||
|  | DROP TABLE sync; | ||||||
|  | ALTER TABLE sync_mig RENAME TO sync; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS "source_ids_mig" ( | ||||||
|  |                                           `sourceId`	TEXT NOT NULL, | ||||||
|  |                                           `utcDateCreated`	TEXT NOT NULL, | ||||||
|  |                                           PRIMARY KEY(`sourceId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | INSERT INTO source_ids_mig (sourceId, utcDateCreated) | ||||||
|  |   SELECT sourceId, REPLACE(dateCreated, 'T', ' ') FROM source_ids; | ||||||
|  |  | ||||||
|  | DROP TABLE source_ids; | ||||||
|  | ALTER TABLE source_ids_mig RENAME TO source_ids; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS "note_revisions_mig" ( | ||||||
|  |                                               `noteRevisionId`	TEXT NOT NULL PRIMARY KEY, | ||||||
|  |                                               `noteId`	TEXT NOT NULL, | ||||||
|  |                                               `title`	TEXT, | ||||||
|  |                                               `content`	TEXT, | ||||||
|  |                                               `isProtected`	INT NOT NULL DEFAULT 0, | ||||||
|  |                                               `utcDateModifiedFrom` TEXT NOT NULL, | ||||||
|  |                                               `utcDateModifiedTo` TEXT NOT NULL, | ||||||
|  |                                               `dateModifiedFrom` TEXT NOT NULL, | ||||||
|  |                                               `dateModifiedTo` TEXT NOT NULL, | ||||||
|  |                                               type TEXT DEFAULT '' NOT NULL, | ||||||
|  |                                               mime TEXT DEFAULT '' NOT NULL, | ||||||
|  |                                               hash TEXT DEFAULT "" NOT NULL); | ||||||
|  |  | ||||||
|  | INSERT INTO note_revisions_mig (noteRevisionId, noteId, title, content, isProtected, utcDateModifiedFrom, utcDateModifiedTo, dateModifiedFrom, dateModifiedTo, type, mime, hash) | ||||||
|  | SELECT noteRevisionId, noteId, title, content, isProtected, REPLACE(dateModifiedFrom, 'T', ' '), REPLACE(dateModifiedTo, 'T', ' '), REPLACE(REPLACE(dateModifiedFrom, 'T', ' '), 'Z', '+0000'), REPLACE(REPLACE(dateModifiedTo, 'T', ' '), 'Z', '+0000'), type, mime, hash FROM note_revisions; | ||||||
|  |  | ||||||
|  | DROP TABLE note_revisions; | ||||||
|  | ALTER TABLE note_revisions_mig RENAME TO note_revisions; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS "api_tokens_mig" | ||||||
|  | ( | ||||||
|  |   apiTokenId TEXT PRIMARY KEY NOT NULL, | ||||||
|  |   token TEXT NOT NULL, | ||||||
|  |   utcDateCreated TEXT NOT NULL, | ||||||
|  |   isDeleted INT NOT NULL DEFAULT 0, | ||||||
|  |   hash TEXT DEFAULT "" NOT NULL); | ||||||
|  |  | ||||||
|  | INSERT INTO api_tokens_mig (apiTokenId, token, utcDateCreated, isDeleted, hash) | ||||||
|  |   SELECT apiTokenId, token, REPLACE(dateCreated, 'T', ' '), isDeleted, hash FROM api_tokens; | ||||||
|  |  | ||||||
|  | DROP TABLE api_tokens; | ||||||
|  | ALTER TABLE api_tokens_mig RENAME TO api_tokens; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS "branches_mig" ( | ||||||
|  |                                         `branchId`	TEXT NOT NULL, | ||||||
|  |                                         `noteId`	TEXT NOT NULL, | ||||||
|  |                                         `parentNoteId`	TEXT NOT NULL, | ||||||
|  |                                         `notePosition`	INTEGER NOT NULL, | ||||||
|  |                                         `prefix`	TEXT, | ||||||
|  |                                         `isExpanded`	BOOLEAN, | ||||||
|  |                                         `isDeleted`	INTEGER NOT NULL DEFAULT 0, | ||||||
|  |                                         `utcDateModified`	TEXT NOT NULL, | ||||||
|  |                                         utcDateCreated TEXT NOT NULL, | ||||||
|  |                                         hash TEXT DEFAULT "" NOT NULL, | ||||||
|  |                                         PRIMARY KEY(`branchId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | INSERT INTO branches_mig (branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, utcDateModified, utcDateCreated, hash) | ||||||
|  |   SELECT branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, REPLACE(dateModified, 'T', ' '), REPLACE(dateCreated, 'T', ' '), hash FROM branches; | ||||||
|  |  | ||||||
|  | DROP TABLE branches; | ||||||
|  | ALTER TABLE branches_mig RENAME TO branches; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS "recent_notes_mig" ( | ||||||
|  |                                             `branchId` TEXT NOT NULL PRIMARY KEY, | ||||||
|  |                                             `notePath` TEXT NOT NULL, | ||||||
|  |                                             hash TEXT DEFAULT "" NOT NULL, | ||||||
|  |                                             `utcDateCreated` TEXT NOT NULL, | ||||||
|  |                                             isDeleted INT | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | INSERT INTO recent_notes_mig (branchId, notePath, hash, utcDateCreated, isDeleted) | ||||||
|  |   SELECT branchId, notePath, hash, REPLACE(dateCreated, 'T', ' '), isDeleted FROM recent_notes; | ||||||
|  |  | ||||||
|  | DROP TABLE recent_notes; | ||||||
|  | ALTER TABLE recent_notes_mig RENAME TO recent_notes; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS "event_log_mig" ( | ||||||
|  |                                          `eventId`	TEXT NOT NULL PRIMARY KEY, | ||||||
|  |                                          `noteId`	TEXT, | ||||||
|  |                                          `comment`	TEXT, | ||||||
|  |                                          `utcDateCreated`	TEXT NOT NULL | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | INSERT INTO event_log_mig (eventId, noteId, comment, utcDateCreated) | ||||||
|  |   SELECT eventId, noteId, comment, REPLACE(dateCreated, 'T', ' ') FROM event_log; | ||||||
|  |  | ||||||
|  | DROP TABLE event_log; | ||||||
|  | ALTER TABLE event_log_mig RENAME TO event_log; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS "options_mig" | ||||||
|  | ( | ||||||
|  |   name TEXT not null PRIMARY KEY, | ||||||
|  |   value TEXT, | ||||||
|  |   isSynced INTEGER default 0 not null, | ||||||
|  |   hash TEXT default "" not null, | ||||||
|  |   utcDateCreated TEXT not null, | ||||||
|  |   utcDateModified TEXT NOT NULL | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | INSERT INTO options_mig (name, value, isSynced, hash, utcDateCreated, utcDateModified) | ||||||
|  |   SELECT name, value, isSynced, hash, REPLACE(dateCreated, 'T', ' '), REPLACE(dateModified, 'T', ' ') FROM options; | ||||||
|  |  | ||||||
|  | DROP TABLE options; | ||||||
|  | ALTER TABLE options_mig RENAME TO options; | ||||||
|  |  | ||||||
|  | CREATE TABLE attributes_mig | ||||||
|  | ( | ||||||
|  |   attributeId      TEXT not null primary key, | ||||||
|  |   noteId       TEXT not null, | ||||||
|  |   type         TEXT not null, | ||||||
|  |   name         TEXT not null, | ||||||
|  |   value        TEXT default '' not null, | ||||||
|  |   position     INT  default 0 not null, | ||||||
|  |   utcDateCreated  TEXT not null, | ||||||
|  |   utcDateModified TEXT not null, | ||||||
|  |   isDeleted    INT  not null, | ||||||
|  |   hash         TEXT default "" not null, | ||||||
|  |   isInheritable int DEFAULT 0 NULL); | ||||||
|  |  | ||||||
|  | INSERT INTO attributes_mig (attributeId, noteId, type, name, value, position, utcDateCreated, utcDateModified, isDeleted, hash, isInheritable) | ||||||
|  |   SELECT attributeId, noteId, type, name, value, position, REPLACE(dateCreated, 'T', ' '), REPLACE(dateModified, 'T', ' '), isDeleted, hash, isInheritable FROM attributes; | ||||||
|  |  | ||||||
|  | DROP TABLE attributes; | ||||||
|  | ALTER TABLE attributes_mig RENAME TO attributes; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS "links_mig" ( | ||||||
|  |                                      `linkId`	TEXT NOT NULL, | ||||||
|  |                                      `noteId`	TEXT NOT NULL, | ||||||
|  |                                      `targetNoteId`	TEXT NOT NULL, | ||||||
|  |                                      `type` TEXT NOT NULL, | ||||||
|  |                                      `hash` TEXT DEFAULT "" NOT NULL, | ||||||
|  |                                      `isDeleted`	INTEGER NOT NULL DEFAULT 0, | ||||||
|  |                                      `utcDateCreated`	TEXT NOT NULL, | ||||||
|  |                                      `utcDateModified`	TEXT NOT NULL, | ||||||
|  |                                      PRIMARY KEY(`linkId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | INSERT INTO links_mig (linkId, noteId, targetNoteId, type, hash, isDeleted, utcDateCreated, utcDateModified) | ||||||
|  |   SELECT linkId, noteId, targetNoteId, type, hash, isDeleted, REPLACE(dateCreated, 'T', ' '), REPLACE(dateModified, 'T', ' ') FROM links; | ||||||
|  |  | ||||||
|  | DROP TABLE links; | ||||||
|  | ALTER TABLE links_mig RENAME TO links; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS "note_contents_mig" ( | ||||||
|  |                                              `noteContentId`	TEXT NOT NULL, | ||||||
|  |                                              `noteId`	TEXT NOT NULL, | ||||||
|  |                                              `isProtected`	INT NOT NULL DEFAULT 0, | ||||||
|  |                                              `content`	TEXT NULL DEFAULT NULL, | ||||||
|  |                                              `hash` TEXT DEFAULT "" NOT NULL, | ||||||
|  |                                              `utcDateCreated`	TEXT NOT NULL, | ||||||
|  |                                              `utcDateModified` TEXT NOT NULL, | ||||||
|  |                                              PRIMARY KEY(`noteContentId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | INSERT INTO note_contents_mig (noteContentId, noteId, isProtected, content, hash, utcDateCreated, utcDateModified) | ||||||
|  |   SELECT noteContentId, noteId, isProtected, content, hash, REPLACE(dateCreated, 'T', ' '), REPLACE(dateModified, 'T', ' ') FROM note_contents; | ||||||
|  |  | ||||||
|  | DROP TABLE note_contents; | ||||||
|  | ALTER TABLE note_contents_mig RENAME TO note_contents; | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS "notes_mig" ( | ||||||
|  |                                      `noteId`	TEXT NOT NULL, | ||||||
|  |                                      `title`	TEXT NOT NULL DEFAULT "note", | ||||||
|  |                                      `isProtected`	INT NOT NULL DEFAULT 0, | ||||||
|  |                                      `type` TEXT NOT NULL DEFAULT 'text', | ||||||
|  |                                      `mime` TEXT NOT NULL DEFAULT 'text/html', | ||||||
|  |                                      `hash` TEXT DEFAULT "" NOT NULL, | ||||||
|  |                                      `isDeleted`	INT NOT NULL DEFAULT 0, | ||||||
|  |                                      `dateCreated`	TEXT NOT NULL, | ||||||
|  |                                      `dateModified`	TEXT NOT NULL, | ||||||
|  |                                      `utcDateCreated`	TEXT NOT NULL, | ||||||
|  |                                      `utcDateModified`	TEXT NOT NULL, | ||||||
|  |                                      PRIMARY KEY(`noteId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | INSERT INTO notes_mig (noteId, title, isProtected, type, mime, hash, isDeleted, dateCreated, dateModified, utcDateCreated, utcDateModified) | ||||||
|  |   SELECT noteId, title, isProtected, type, mime, hash, isDeleted, REPLACE(REPLACE(dateCreated, 'T', ' '), 'Z', '+0000'), REPLACE(REPLACE(dateModified, 'T', ' '), 'Z', '+0000'), REPLACE(dateCreated, 'T', ' '), REPLACE(dateModified, 'T', ' ') FROM notes; | ||||||
|  |  | ||||||
|  | DROP TABLE notes; | ||||||
|  | ALTER TABLE notes_mig RENAME TO notes; | ||||||
|  |  | ||||||
|  | CREATE UNIQUE INDEX `IDX_sync_entityName_entityId` ON `sync` ( | ||||||
|  |                                                               `entityName`, | ||||||
|  |                                                               `entityId` | ||||||
|  |   ); | ||||||
|  | CREATE INDEX `IDX_sync_utcSyncDate` ON `sync` ( | ||||||
|  |                                             `utcSyncDate` | ||||||
|  |   ); | ||||||
|  | CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` ( | ||||||
|  |                                                               `noteId` | ||||||
|  |   ); | ||||||
|  | CREATE INDEX `IDX_note_revisions_dateModifiedFrom` ON `note_revisions` ( | ||||||
|  |                                                                         `utcDateModifiedFrom` | ||||||
|  |   ); | ||||||
|  | CREATE INDEX `IDX_note_revisions_dateModifiedTo` ON `note_revisions` ( | ||||||
|  |                                                                       `utcDateModifiedTo` | ||||||
|  |   ); | ||||||
|  | CREATE INDEX `IDX_branches_noteId` ON `branches` ( | ||||||
|  |                                                   `noteId` | ||||||
|  |   ); | ||||||
|  | CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` ( | ||||||
|  |                                                                `noteId`, | ||||||
|  |                                                                `parentNoteId` | ||||||
|  |   ); | ||||||
|  | CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId); | ||||||
|  | CREATE INDEX IDX_attributes_name_value | ||||||
|  |   on attributes (name, value); | ||||||
|  | CREATE INDEX IDX_links_noteId_index | ||||||
|  |   on links (noteId); | ||||||
|  | CREATE INDEX IDX_links_targetNoteId_index | ||||||
|  |   on links (targetNoteId); | ||||||
|  | CREATE INDEX IDX_attributes_name_index | ||||||
|  |   on attributes (name); | ||||||
|  | CREATE INDEX IDX_attributes_noteId_index | ||||||
|  |   on attributes (noteId); | ||||||
|  | CREATE INDEX IDX_attributes_value_index | ||||||
|  |   on attributes (value); | ||||||
|  | CREATE UNIQUE INDEX `IDX_note_contents_noteId` ON `note_contents` (`noteId`); | ||||||
							
								
								
									
										13
									
								
								db/migrations/0131__cleanup_note_contents.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								db/migrations/0131__cleanup_note_contents.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS "note_contents_mig" ( | ||||||
|  |                                                    `noteId`	TEXT NOT NULL, | ||||||
|  |                                                    `content`	TEXT NULL DEFAULT NULL, | ||||||
|  |                                                    `hash` TEXT DEFAULT "" NOT NULL, | ||||||
|  |                                                    `utcDateModified` TEXT NOT NULL, | ||||||
|  |                                                    PRIMARY KEY(`noteId`) | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | INSERT INTO note_contents_mig (noteId, content, hash, utcDateModified) | ||||||
|  | SELECT noteId, content, hash, utcDateModified FROM note_contents; | ||||||
|  |  | ||||||
|  | DROP TABLE note_contents; | ||||||
|  | ALTER TABLE note_contents_mig RENAME TO note_contents; | ||||||
							
								
								
									
										5
									
								
								db/migrations/0132__fill_sync.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								db/migrations/0132__fill_sync.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | const syncTableService = require('../../src/services/sync_table'); | ||||||
|  |  | ||||||
|  | module.exports = async () => { | ||||||
|  |     await syncTableService.fillAllSyncRows(); | ||||||
|  | }; | ||||||
							
								
								
									
										1
									
								
								db/migrations/0133__drop_note_fulltext.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								db/migrations/0133__drop_note_fulltext.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | DROP TABLE IF EXISTS note_fulltext; | ||||||
							
								
								
									
										4
									
								
								db/migrations/0134__create_openTabs_option.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								db/migrations/0134__create_openTabs_option.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  |     SELECT 'openTabs', '[{"notePath":"' || value || '","active": true,"tabId":"1111"}]', '2019-05-01T18:31:00.874Z', '2019-05-01T18:31:00.874Z', 0 FROM options WHERE name = 'startNotePath'; | ||||||
|  |  | ||||||
|  | DELETE FROM options WHERE name = 'startNotePath'; | ||||||
							
								
								
									
										2
									
								
								db/migrations/0135__add_hideTabRowForOneTab_option.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								db/migrations/0135__add_hideTabRowForOneTab_option.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  |     VALUES ('hideTabRowForOneTab', 'false', '2019-05-01T18:31:00.874Z', '2019-05-01T18:31:00.874Z', 0); | ||||||
							
								
								
									
										12
									
								
								db/migrations/0136__update_recent_notes.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								db/migrations/0136__update_recent_notes.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | drop table recent_notes; | ||||||
|  |  | ||||||
|  | create table recent_notes | ||||||
|  | ( | ||||||
|  |     noteId TEXT not null primary key, | ||||||
|  |     notePath TEXT not null, | ||||||
|  |     hash TEXT default "" not null, | ||||||
|  |     utcDateCreated TEXT not null, | ||||||
|  |     isDeleted INT | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | delete from sync where entityName = 'recent_notes'; | ||||||
							
								
								
									
										10
									
								
								db/migrations/0137__links_to_attributes.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								db/migrations/0137__links_to_attributes.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | UPDATE links SET type = 'internal-link' WHERE type = 'hyper'; | ||||||
|  | UPDATE links SET type = 'image-link' WHERE type = 'image'; | ||||||
|  | UPDATE links SET type = 'relation-map-link' WHERE type = 'relation-map'; | ||||||
|  |  | ||||||
|  | INSERT INTO attributes (attributeId, noteId, type, name, value, position, utcDateCreated, utcDateModified, isDeleted, hash, isInheritable) | ||||||
|  | SELECT linkId, noteId, 'relation', type, targetNoteId, 0, utcDateCreated, utcDateModified, isDeleted, hash, 0 FROM links; | ||||||
|  |  | ||||||
|  | UPDATE sync SET entityName = 'attributes' WHERE entityName = 'links'; | ||||||
|  |  | ||||||
|  | DROP TABLE links; | ||||||
							
								
								
									
										5
									
								
								db/migrations/0138__sidebar_sizing.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								db/migrations/0138__sidebar_sizing.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | VALUES ('sidebarMinWidth', '350', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
|  |  | ||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | VALUES ('sidebarWidthPercent', '25', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
							
								
								
									
										2
									
								
								db/migrations/0139__show_sidebar_in_new_tab.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								db/migrations/0139__show_sidebar_in_new_tab.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | VALUES ('showSidebarInNewTab', 'true', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
							
								
								
									
										14
									
								
								db/migrations/0140__widget_config.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								db/migrations/0140__widget_config.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | VALUES ('noteInfoWidget', '{"enabled":true,"expanded":true,"position":100}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
|  |  | ||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | VALUES ('attributesWidget', '{"enabled":true,"expanded":true,"position":200}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
|  |  | ||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | VALUES ('linkMapWidget', '{"enabled":true,"expanded":true,"position":300}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
|  |  | ||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | VALUES ('noteRevisionsWidget', '{"enabled":true,"expanded":true,"position":400}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
|  |  | ||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | VALUES ('whatLinksHereWidget', '{"enabled":false,"expanded":true,"position":500}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
							
								
								
									
										5
									
								
								db/migrations/0141__add_code_note_mime_types.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								db/migrations/0141__add_code_note_mime_types.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | VALUES ('codeNotesMimeTypes', '["text/x-csrc","text/x-c++src","text/x-csharp","text/css","text/x-go","text/x-groovy","text/x-haskell","text/html","message/http","text/x-java","application/javascript;env=frontend","application/javascript;env=backend","application/json","text/x-kotlin","text/x-markdown","text/x-perl","text/x-php","text/x-python","text/x-ruby",null,"text/x-sql","text/x-swift","text/xml","text/x-yaml"]', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 1); | ||||||
|  |  | ||||||
|  | INSERT INTO sync (entityName, entityId, sourceId, utcSyncDate) | ||||||
|  | VALUES ('options' ,'codeNotesMimeTypes', 'SYNC_FILL', '2018-01-01T00:00:00.000Z'); | ||||||
							
								
								
									
										2
									
								
								db/migrations/0142__similar_notes_widget.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								db/migrations/0142__similar_notes_widget.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | VALUES ('similarNotesWidget', '{"enabled":true,"expanded":true,"position":600}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
							
								
								
									
										1
									
								
								db/migrations/0143__drop_event_log.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								db/migrations/0143__drop_event_log.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | DROP TABLE event_log; | ||||||
							
								
								
									
										2
									
								
								db/migrations/0144__edited_notes_widget.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								db/migrations/0144__edited_notes_widget.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | VALUES ('editedNotesWidget', '{"enabled":true,"expanded":true,"position":50}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
							
								
								
									
										2
									
								
								db/migrations/0145__calendar_widget.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								db/migrations/0145__calendar_widget.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | VALUES ('calendarWidget', '{"enabled":true,"expanded":true,"position":20}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
							
								
								
									
										5
									
								
								db/migrations/0146__add_spell_check_options.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								db/migrations/0146__add_spell_check_options.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | VALUES ('spellCheckEnabled', 'true', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
|  |  | ||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | VALUES ('spellCheckLanguageCode', 'en-US', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||||
| @@ -0,0 +1,3 @@ | |||||||
|  | INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||||
|  | SELECT 'hideTabRowForOneTab', 'false', '2019-05-01T18:31:00.874Z', '2019-05-01T18:31:00.874Z', 0 | ||||||
|  | WHERE NOT EXISTS(SELECT 1 FROM options WHERE name = 'hideTabRowForOneTab'); | ||||||
							
								
								
									
										22
									
								
								db/migrations/0148__make_isExpanded_not_null.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								db/migrations/0148__make_isExpanded_not_null.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS "mig_branches" ( | ||||||
|  |                                           `branchId`	TEXT NOT NULL, | ||||||
|  |                                           `noteId`	TEXT NOT NULL, | ||||||
|  |                                           `parentNoteId`	TEXT NOT NULL, | ||||||
|  |                                           `notePosition`	INTEGER NOT NULL, | ||||||
|  |                                           `prefix`	TEXT, | ||||||
|  |                                           `isExpanded`	INTEGER NOT NULL DEFAULT 0, | ||||||
|  |                                           `isDeleted`	INTEGER NOT NULL DEFAULT 0, | ||||||
|  |                                           `utcDateModified`	TEXT NOT NULL, | ||||||
|  |                                           utcDateCreated TEXT NOT NULL, | ||||||
|  |                                           hash TEXT DEFAULT "" NOT NULL, | ||||||
|  |                                           PRIMARY KEY(`branchId`)); | ||||||
|  |  | ||||||
|  | INSERT INTO mig_branches (branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, utcDateModified, utcDateCreated, hash) | ||||||
|  | SELECT branchId, noteId, parentNoteId, notePosition, prefix, COALESCE(isExpanded, 0), isDeleted, utcDateModified, utcDateCreated, hash FROM branches; | ||||||
|  |  | ||||||
|  | DROP TABLE branches; | ||||||
|  | ALTER TABLE mig_branches RENAME TO branches; | ||||||
|  |  | ||||||
|  | CREATE INDEX `IDX_branches_noteId` ON `branches` (`noteId`); | ||||||
|  | CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` (`noteId`,`parentNoteId`); | ||||||
|  | CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId); | ||||||
							
								
								
									
										2
									
								
								db/migrations/0149__space_out_positions.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								db/migrations/0149__space_out_positions.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | UPDATE branches SET notePosition = notePosition * 10; | ||||||
|  | UPDATE attributes SET position = position * 10; | ||||||
							
								
								
									
										36
									
								
								db/migrations/0150__note_revision_contents.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								db/migrations/0150__note_revision_contents.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS "note_revisions_mig" (`noteRevisionId`	TEXT NOT NULL PRIMARY KEY, | ||||||
|  |                                                 `noteId`	TEXT NOT NULL, | ||||||
|  |                                                 `title`	TEXT, | ||||||
|  |                                                 `contentLength`	INT NOT NULL, | ||||||
|  |                                                 `isProtected`	INT NOT NULL DEFAULT 0, | ||||||
|  |                                                 `utcDateLastEdited` TEXT NOT NULL, | ||||||
|  |                                                 `utcDateCreated` TEXT NOT NULL, | ||||||
|  |                                                 `utcDateModified` TEXT NOT NULL, | ||||||
|  |                                                 `dateLastEdited` TEXT NOT NULL, | ||||||
|  |                                                 `dateCreated` TEXT NOT NULL, | ||||||
|  |                                                 type TEXT DEFAULT '' NOT NULL, | ||||||
|  |                                                 mime TEXT DEFAULT '' NOT NULL, | ||||||
|  |                                                 hash TEXT DEFAULT '' NOT NULL); | ||||||
|  |  | ||||||
|  | CREATE TABLE IF NOT EXISTS "note_revision_contents" (`noteRevisionId`	TEXT NOT NULL PRIMARY KEY, | ||||||
|  |                                                  `content`	TEXT, | ||||||
|  |                                                  hash TEXT DEFAULT '' NOT NULL, | ||||||
|  |                                                  `utcDateModified` TEXT NOT NULL); | ||||||
|  |  | ||||||
|  | INSERT INTO note_revision_contents (noteRevisionId, content, hash, utcDateModified) | ||||||
|  | SELECT noteRevisionId, content, hash, utcDateModifiedTo FROM note_revisions; | ||||||
|  |  | ||||||
|  | INSERT INTO note_revisions_mig (noteRevisionId, noteId, title, contentLength, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated, type, mime, hash) | ||||||
|  | SELECT noteRevisionId, noteId, title, COALESCE(LENGTH(content), 0), isProtected, utcDateModifiedFrom, utcDateModifiedTo, utcDateModifiedTo, dateModifiedFrom, dateModifiedTo, type, mime, hash FROM note_revisions; | ||||||
|  |  | ||||||
|  | DROP TABLE note_revisions; | ||||||
|  | ALTER TABLE note_revisions_mig RENAME TO note_revisions; | ||||||
|  |  | ||||||
|  | CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (`noteId`); | ||||||
|  | CREATE INDEX `IDX_note_revisions_utcDateCreated` ON `note_revisions` (`utcDateCreated`); | ||||||
|  | CREATE INDEX `IDX_note_revisions_utcDateLastEdited` ON `note_revisions` (`utcDateLastEdited`); | ||||||
|  | CREATE INDEX `IDX_note_revisions_dateCreated` ON `note_revisions` (`dateCreated`); | ||||||
|  | CREATE INDEX `IDX_note_revisions_dateLastEdited` ON `note_revisions` (`dateLastEdited`); | ||||||
|  |  | ||||||
|  | INSERT INTO sync (entityName, entityId, sourceId, utcSyncDate) | ||||||
|  | SELECT 'note_revision_contents', entityId, sourceId, utcSyncDate FROM sync WHERE entityName = 'note_revisions'; | ||||||
							
								
								
									
										31
									
								
								db/migrations/0151__add_isErased_to_note.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								db/migrations/0151__add_isErased_to_note.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS "notes_mig" ( | ||||||
|  |                                        `noteId`	TEXT NOT NULL, | ||||||
|  |                                        `title`	TEXT NOT NULL DEFAULT "note", | ||||||
|  |                                        `isProtected`	INT NOT NULL DEFAULT 0, | ||||||
|  |                                        `type` TEXT NOT NULL DEFAULT 'text', | ||||||
|  |                                        `mime` TEXT NOT NULL DEFAULT 'text/html', | ||||||
|  |                                        `hash` TEXT DEFAULT "" NOT NULL, | ||||||
|  |                                        `isDeleted`	INT NOT NULL DEFAULT 0, | ||||||
|  |                                        `isErased`	INT NOT NULL DEFAULT 0, | ||||||
|  |                                        `dateCreated`	TEXT NOT NULL, | ||||||
|  |                                        `dateModified`	TEXT NOT NULL, | ||||||
|  |                                        `utcDateCreated`	TEXT NOT NULL, | ||||||
|  |                                        `utcDateModified`	TEXT NOT NULL, | ||||||
|  |                                        PRIMARY KEY(`noteId`)); | ||||||
|  |  | ||||||
|  | INSERT INTO notes_mig (noteId, title, isProtected, type, mime, hash, isDeleted, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified) | ||||||
|  | SELECT noteId, title, isProtected, type, mime, hash, isDeleted, 0, dateCreated, dateModified, utcDateCreated, utcDateModified FROM notes; | ||||||
|  |  | ||||||
|  | DROP TABLE notes; | ||||||
|  | ALTER TABLE notes_mig RENAME TO notes; | ||||||
|  |  | ||||||
|  | UPDATE notes SET isErased = 1 WHERE isDeleted = 1 | ||||||
|  | AND 1=(SELECT CASE WHEN content IS NULL THEN 1 ELSE 0 END FROM note_contents WHERE note_contents.noteId = notes.noteId); | ||||||
|  |  | ||||||
|  | CREATE INDEX `IDX_notes_isDeleted` ON `notes` (`isDeleted`); | ||||||
|  | CREATE INDEX `IDX_notes_title` ON `notes` (`title`); | ||||||
|  | CREATE INDEX `IDX_notes_type` ON `notes` (`type`); | ||||||
|  | CREATE INDEX `IDX_notes_dateCreated` ON `notes` (`dateCreated`); | ||||||
|  | CREATE INDEX `IDX_notes_dateModified` ON `notes` (`dateModified`); | ||||||
|  | CREATE INDEX `IDX_notes_utcDateModified` ON `notes` (`utcDateModified`); | ||||||
|  | CREATE INDEX `IDX_notes_utcDateCreated` ON `notes` (`utcDateCreated`); | ||||||
							
								
								
									
										34
									
								
								db/migrations/0152__add_contentLength_to_note.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								db/migrations/0152__add_contentLength_to_note.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS "notes_mig" ( | ||||||
|  |                                            `noteId`	TEXT NOT NULL, | ||||||
|  |                                            `title`	TEXT NOT NULL DEFAULT "note", | ||||||
|  |                                            `contentLength`	INT NOT NULL, | ||||||
|  |                                            `isProtected`	INT NOT NULL DEFAULT 0, | ||||||
|  |                                            `type` TEXT NOT NULL DEFAULT 'text', | ||||||
|  |                                            `mime` TEXT NOT NULL DEFAULT 'text/html', | ||||||
|  |                                            `hash` TEXT DEFAULT "" NOT NULL, | ||||||
|  |                                            `isDeleted`	INT NOT NULL DEFAULT 0, | ||||||
|  |                                            `isErased`	INT NOT NULL DEFAULT 0, | ||||||
|  |                                            `dateCreated`	TEXT NOT NULL, | ||||||
|  |                                            `dateModified`	TEXT NOT NULL, | ||||||
|  |                                            `utcDateCreated`	TEXT NOT NULL, | ||||||
|  |                                            `utcDateModified`	TEXT NOT NULL, | ||||||
|  |                                            PRIMARY KEY(`noteId`)); | ||||||
|  |  | ||||||
|  | INSERT INTO notes_mig (noteId, title, contentLength, isProtected, type, mime, hash, isDeleted, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified) | ||||||
|  | SELECT noteId, title, -1, isProtected, type, mime, hash, isDeleted, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified FROM notes; | ||||||
|  |  | ||||||
|  | DROP TABLE notes; | ||||||
|  | ALTER TABLE notes_mig RENAME TO notes; | ||||||
|  |  | ||||||
|  | UPDATE notes SET contentLength = (SELECT COALESCE(LENGTH(content), 0) FROM note_contents WHERE note_contents.noteId = notes.noteId); | ||||||
|  |  | ||||||
|  | CREATE INDEX `IDX_notes_isDeleted` ON `notes` (`isDeleted`); | ||||||
|  | CREATE INDEX `IDX_notes_title` ON `notes` (`title`); | ||||||
|  | CREATE INDEX `IDX_notes_type` ON `notes` (`type`); | ||||||
|  | CREATE INDEX `IDX_notes_dateCreated` ON `notes` (`dateCreated`); | ||||||
|  | CREATE INDEX `IDX_notes_dateModified` ON `notes` (`dateModified`); | ||||||
|  | CREATE INDEX `IDX_notes_utcDateModified` ON `notes` (`utcDateModified`); | ||||||
|  | CREATE INDEX `IDX_notes_utcDateCreated` ON `notes` (`utcDateCreated`); | ||||||
|  |  | ||||||
|  | -- should be OK since sync protocol changes so all instances must upgrade | ||||||
|  | UPDATE attributes SET isDeleted = 1 WHERE name = 'fileSize'; | ||||||
							
								
								
									
										28
									
								
								db/migrations/0153__add_isErased_to_note_revision.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								db/migrations/0153__add_isErased_to_note_revision.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS "note_revisions_mig" (`noteRevisionId`	TEXT NOT NULL PRIMARY KEY, | ||||||
|  |                                                  `noteId`	TEXT NOT NULL, | ||||||
|  |                                                  `title`	TEXT, | ||||||
|  |                                                  `contentLength`	INT NOT NULL, | ||||||
|  |                                                  `isErased`	INT NOT NULL DEFAULT 0, | ||||||
|  |                                                  `isProtected`	INT NOT NULL DEFAULT 0, | ||||||
|  |                                                  `utcDateLastEdited` TEXT NOT NULL, | ||||||
|  |                                                  `utcDateCreated` TEXT NOT NULL, | ||||||
|  |                                                  `utcDateModified` TEXT NOT NULL, | ||||||
|  |                                                  `dateLastEdited` TEXT NOT NULL, | ||||||
|  |                                                  `dateCreated` TEXT NOT NULL, | ||||||
|  |                                                  type TEXT DEFAULT '' NOT NULL, | ||||||
|  |                                                  mime TEXT DEFAULT '' NOT NULL, | ||||||
|  |                                                  hash TEXT DEFAULT '' NOT NULL); | ||||||
|  |  | ||||||
|  | INSERT INTO note_revisions_mig (noteRevisionId, noteId, title, contentLength, isErased, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated, type, mime, hash) | ||||||
|  | SELECT noteRevisionId, noteId, title, contentLength, 0, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated, type, mime, hash FROM note_revisions; | ||||||
|  |  | ||||||
|  | DROP TABLE note_revisions; | ||||||
|  | ALTER TABLE note_revisions_mig RENAME TO note_revisions; | ||||||
|  |  | ||||||
|  | UPDATE note_revisions SET isErased = (SELECT isErased FROM notes WHERE notes.noteId = note_revisions.noteId); | ||||||
|  |  | ||||||
|  | CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (`noteId`); | ||||||
|  | CREATE INDEX `IDX_note_revisions_utcDateCreated` ON `note_revisions` (`utcDateCreated`); | ||||||
|  | CREATE INDEX `IDX_note_revisions_utcDateLastEdited` ON `note_revisions` (`utcDateLastEdited`); | ||||||
|  | CREATE INDEX `IDX_note_revisions_dateCreated` ON `note_revisions` (`dateCreated`); | ||||||
|  | CREATE INDEX `IDX_note_revisions_dateLastEdited` ON `note_revisions` (`dateLastEdited`); | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user