mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +01:00 
			
		
		
		
	Compare commits
	
		
			406 Commits
		
	
	
		
			v0.47.6
			...
			v0.48.6-do
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | ed5eb5c6db | ||
|  | acb50f44a1 | ||
|  | c946030106 | ||
|  | df0411197b | ||
|  | 600c16551a | ||
|  | 5710c9e997 | ||
|  | 550a9fa711 | ||
|  | 51348cfbad | ||
|  | 7400a6723e | ||
|  | e57dee2f14 | ||
|  | b02a5b872a | ||
|  | 4733de23ba | ||
|  | 57b7f6199e | ||
|  | a9df0c485f | ||
|  | 21dedff9bf | ||
|  | 6f60cf1a86 | ||
|  | 930d29d64a | ||
|  | c345e7031b | ||
|  | fc46398a3c | ||
|  | 7e41226549 | ||
|  | b0c0ed8512 | ||
|  | 5978447185 | ||
|  | ec4d445f97 | ||
|  | e378435fbe | ||
|  | e4dca4750f | ||
|  | 311b98ffcb | ||
|  | 126f41ae5e | ||
|  | 4b1678c416 | ||
|  | da74272f13 | ||
|  | 9ce224d4c5 | ||
|  | ce57a13002 | ||
|  | e42357f1f8 | ||
|  | ab7d121290 | ||
|  | 5209583a73 | ||
|  | 35fc4ba9a4 | ||
|  | 7f9019322b | ||
|  | 8a455e83f0 | ||
|  | 79b8d91025 | ||
|  | bcabe5786f | ||
|  | a7d3dafcf1 | ||
|  | e6af84df39 | ||
|  | 674172f0b8 | ||
|  | 7ec20f9384 | ||
|  | 6135de8507 | ||
|  | 63b0d30e74 | ||
|  | 9e29fba8da | ||
|  | 8910ae92c7 | ||
|  | 3413074235 | ||
|  | 33aa72eb97 | ||
|  | 6e0a65b59c | ||
|  | 56e49cfc19 | ||
|  | af40d73cee | ||
|  | 50b7063811 | ||
|  | ee1b377bc2 | ||
|  | 51dfe8bb14 | ||
|  | e426ee3e4f | ||
|  | a434aa113d | ||
|  | 3b551e3e4d | ||
|  | 3d98644bf6 | ||
|  | a22e4d60b6 | ||
|  | 069fbee3a6 | ||
|  | 8b21867c5c | ||
|  | 2cc4367b37 | ||
|  | 241d1b1035 | ||
|  | 449081807e | ||
|  | dc0d6d24bd | ||
|  | 4111a2f0e8 | ||
|  | 8ef4b2bf50 | ||
|  | 53875d26bc | ||
|  | f505f9d65a | ||
|  | 6434889cd6 | ||
|  | 21d2ca3c54 | ||
|  | 64a3a8b561 | ||
|  | 6738f2cd24 | ||
|  | 1cdd644b8f | ||
|  | f5dc05e79a | ||
|  | e2c37a6f8c | ||
|  | cfea2440fb | ||
|  | 23e34e8c02 | ||
|  | 8bd7b657f8 | ||
|  | 899d9e65fd | ||
|  | ec732c0a98 | ||
|  | 66797f34c4 | ||
|  | 1ad25b063d | ||
|  | e09b2902fa | ||
|  | f6776df645 | ||
|  | f0c672445d | ||
|  | a033ddfcb7 | ||
|  | d02d846024 | ||
|  | a8b6538c4e | ||
|  | 4eb4a44331 | ||
|  | c1e1f3df24 | ||
|  | 11e9f8403e | ||
|  | ba676587df | ||
|  | 20696aa0ab | ||
|  | a08690b123 | ||
|  | 79f54b4e97 | ||
|  | 973fe52275 | ||
|  | 5938e033d4 | ||
|  | eecba725b0 | ||
|  | fa40a5f496 | ||
|  | abbba6501d | ||
|  | 824f5dbaac | ||
|  | 24a45b03f5 | ||
|  | e10e18e63a | ||
|  | 7152c5e51d | ||
|  | 711af02928 | ||
|  | df8706026e | ||
|  | 17fe9a6a1b | ||
|  | 2d08eb7366 | ||
|  | 8d42ffca6d | ||
|  | 0654dc855f | ||
|  | 0571f02830 | ||
|  | b2b1c9ebb7 | ||
|  | 1f75b9c92f | ||
|  | e2c4f32b5e | ||
|  | 18ffcf7880 | ||
|  | 6ae8508413 | ||
|  | ec3b844026 | ||
|  | a1ca538106 | ||
|  | 75fc9e2048 | ||
|  | a1c1c7c830 | ||
|  | e4a483aefe | ||
|  | 8c2a5d19f2 | ||
|  | 2c450fc72d | ||
|  | 831de3ffed | ||
|  | 291b434d70 | ||
|  | a68fd5ab83 | ||
|  | 8a8bdaf80e | ||
|  | 26b89fc801 | ||
|  | af3fd61974 | ||
|  | f4dde84f06 | ||
|  | bc920dc5dc | ||
|  | 896c9cec04 | ||
|  | b37bcd294c | ||
|  | 14f24c646a | ||
|  | fea46bb150 | ||
|  | 37c30bf88a | ||
|  | d975acc99a | ||
|  | c2d35dac4d | ||
|  | 5358b58191 | ||
|  | 0264e847ef | ||
|  | c5917bfc78 | ||
|  | 533fcd06e4 | ||
|  | 192a2fe9f9 | ||
|  | e6bc8ed3b5 | ||
|  | 8ff563ba40 | ||
|  | d5bd9875f9 | ||
|  | 113bebed3b | ||
|  | 2fcb0c05c0 | ||
|  | fdb7b7721d | ||
|  | 3d9260c974 | ||
|  | 8769fd71cb | ||
|  | a2baa9bdb3 | ||
|  | 88714cce94 | ||
|  | bc1d438075 | ||
|  | fd00f6bd97 | ||
|  | b041d081db | ||
|  | fabf24a065 | ||
|  | e3fc0968ba | ||
|  | a766374bf4 | ||
|  | 0f693dae5e | ||
|  | 208492bee1 | ||
|  | b0d767df69 | ||
|  | 476b8250c9 | ||
|  | e4ba7d65e8 | ||
|  | 9c9a3fc030 | ||
|  | b85cf07a28 | ||
|  | bdde52f004 | ||
|  | dd37f09309 | ||
|  | a0caa21458 | ||
|  | 43e829ca99 | ||
|  | ed26e32ccb | ||
|  | 5866004e23 | ||
|  | 06bcfe1aee | ||
|  | 2d82da32d4 | ||
|  | 2b017a956e | ||
|  | 0448883782 | ||
|  | 9b9be5d155 | ||
|  | 3f2ee4aefd | ||
|  | b90ae8eb79 | ||
|  | 266807179c | ||
|  | 4023c28f5e | ||
|  | 010f075ac5 | ||
|  | 151687cd9b | ||
|  | f24ea8137b | ||
|  | b8d8e01908 | ||
|  | 79d492d0f0 | ||
|  | f0af26a57b | ||
|  | 2b8c6e3dd0 | ||
|  | 061f8acf11 | ||
|  | 5cfd1c030d | ||
|  | 6e300c7cf5 | ||
|  | 167d4816fd | ||
|  | 3e5db71652 | ||
|  | 1bc50ed976 | ||
|  | 08c638c2fa | ||
|  | 5f22864a93 | ||
|  | cfcc34fa8e | ||
|  | 635f5fdc5b | ||
|  | d0747b125c | ||
|  | 66374bf95f | ||
|  | d27fcaf317 | ||
|  | 0ee093f038 | ||
|  | 06eb0ce910 | ||
|  | c59b3a0c5c | ||
|  | 08eda83700 | ||
|  | d23bb5fd17 | ||
|  | 8cb07525cf | ||
|  | dc4c922edb | ||
|  | ad8f374276 | ||
|  | b99d83af50 | ||
|  | e050e380b9 | ||
|  | 68d599ed19 | ||
|  | 9d9bc31d91 | ||
|  | b619a6515b | ||
|  | 13a16e8251 | ||
|  | 86a53ceebb | ||
|  | 669eaa7509 | ||
|  | f50084dc1b | ||
|  | 3a78a75afc | ||
|  | 6e7b722bf2 | ||
|  | 4ca0f4b06b | ||
|  | a33661d050 | ||
|  | f1338bb643 | ||
|  | b6b6d11ef7 | ||
|  | 17a6c94f66 | ||
|  | e74979ccc1 | ||
|  | e003341dff | ||
|  | 5c4369206a | ||
|  | 507a0e2e1d | ||
|  | b381331029 | ||
|  | af703445e1 | ||
|  | c508217604 | ||
|  | 6a1287a3de | ||
|  | 7261ab69bc | ||
|  | f9cfd134b7 | ||
|  | 89d28ef27c | ||
|  | 9da8d466b8 | ||
|  | 74d0626dc9 | ||
|  | 830a357b9a | ||
|  | 7b129c7c34 | ||
|  | adc98d4515 | ||
|  | f3959cf2aa | ||
|  | 6fdabbc73b | ||
|  | de6ff09bb9 | ||
|  | c82308489b | ||
|  | 98ee3b029a | ||
|  | 05d077ce28 | ||
|  | 9adf4d7e8e | ||
|  | e2819109e9 | ||
|  | 3c8e267aad | ||
|  | da0670188b | ||
|  | 7ea72632b8 | ||
|  | 9ca225b40f | ||
|  | b68bdc5005 | ||
|  | 9e77a424a4 | ||
|  | e25b965cb3 | ||
|  | 8d3a3d4873 | ||
|  | c115628f1f | ||
|  | 703fbd30df | ||
|  | 4cc02ffb31 | ||
|  | 1e767482b4 | ||
|  | 2035304b63 | ||
|  | 5be7f003ca | ||
|  | b660238a40 | ||
|  | b9ff481eb7 | ||
|  | eebbf74517 | ||
|  | 0351d7eff1 | ||
|  | 9e1c9782ff | ||
|  | b2148f4a18 | ||
|  | 16cc84be99 | ||
|  | 0265c190db | ||
|  | 32c88219c3 | ||
|  | 962d5a5674 | ||
|  | 1b9c3b0759 | ||
|  | f1a36f6cea | ||
|  | d9ec8bba80 | ||
|  | 02da5b598c | ||
|  | 2220c4491b | ||
|  | fb31acc8e0 | ||
|  | 92cf2c18fa | ||
|  | c5182b8757 | ||
|  | e054a1694e | ||
|  | 3a7da1d561 | ||
|  | 3893f663d0 | ||
|  | a0de3c97a5 | ||
|  | c886583396 | ||
|  | e48609aa68 | ||
|  | 882912826f | ||
|  | 6d51593b7d | ||
|  | faab6be48d | ||
|  | 8debf18984 | ||
|  | 4bf1c25721 | ||
|  | a1d7737551 | ||
|  | 2bfd7b844c | ||
|  | ac04be4433 | ||
|  | 5e5df72020 | ||
|  | f1344e3b95 | ||
|  | 9216e430db | ||
|  | 855b876d50 | ||
|  | c04bbd4973 | ||
|  | 7ed816f1b2 | ||
|  | f8dd8ebf1a | ||
|  | 4c64bd852e | ||
|  | af62b07d5b | ||
|  | 4338f65e01 | ||
|  | 9a147365f5 | ||
|  | e48bbe5b19 | ||
|  | bdff1c1246 | ||
|  | d4a955a3f5 | ||
|  | 07e214c564 | ||
|  | b351157a6a | ||
|  | f5573fcad4 | ||
|  | 60f88574b0 | ||
|  | 65c3bcb565 | ||
|  | ef4bc13dd1 | ||
|  | aa901b67ed | ||
|  | 7a389baf08 | ||
|  | 57b6271c0b | ||
|  | 9532a5662f | ||
|  | 520db931ae | ||
|  | 5e19a37df7 | ||
|  | 4b6b8b1678 | ||
|  | a3d44fbdef | ||
|  | 7fcf90437a | ||
|  | 614b1bdbaf | ||
|  | 4d213300ac | ||
|  | b7ca3dec54 | ||
|  | c4987c4fd1 | ||
|  | f176191efb | ||
|  | 205f9953f9 | ||
|  | 58d61800f3 | ||
|  | 5707b7e29a | ||
|  | 2f5d3729de | ||
|  | bae8551652 | ||
|  | 1f5e4530c3 | ||
|  | 7d94202460 | ||
|  | 30cc566518 | ||
|  | 85933771f8 | ||
|  | e924662a29 | ||
|  | 2985100801 | ||
|  | d68ea201a3 | ||
|  | 7528181ca2 | ||
|  | 1302765478 | ||
|  | 5b220adc31 | ||
|  | 98dfc77195 | ||
|  | 1a0aaf4a30 | ||
|  | 79a85a0aa7 | ||
|  | 274cf7312c | ||
|  | 29e4e2afbb | ||
|  | 39f0f26f28 | ||
|  | 1a13132a69 | ||
|  | a3847842cb | ||
|  | b7bd5396d1 | ||
|  | 8c1c9b00e2 | ||
|  | 845f5d15c4 | ||
|  | d18b95d87c | ||
|  | 731051154b | ||
|  | a093508fbe | ||
|  | 2451596e8c | ||
|  | a5d702b143 | ||
|  | 439ef4a8cb | ||
|  | 8bd3e17a3b | ||
|  | 7a7c890946 | ||
|  | 04f249e800 | ||
|  | a65eda5e4a | ||
|  | 9645a07f2f | ||
|  | 8a9bd4deb4 | ||
|  | 8417d4a4ea | ||
|  | 5d58520949 | ||
|  | d8d15b528e | ||
|  | 1d008cad13 | ||
|  | ef0941479c | ||
|  | 9afea492db | ||
|  | 84246fd197 | ||
|  | 9441cb177f | ||
|  | bcfe097dd6 | ||
|  | 2edc7dbf58 | ||
|  | 051b9dff21 | ||
|  | e257634ccf | ||
|  | 3091119893 | ||
|  | c035627f0a | ||
|  | 273d4e0052 | ||
|  | 77eac8f764 | ||
|  | 1af10d48a2 | ||
|  | d13c8771ca | ||
|  | 6626f100ad | ||
|  | ccadff5015 | ||
|  | e41be520a8 | ||
|  | 43eb248450 | ||
|  | 219098ab53 | ||
|  | e466c393eb | ||
|  | d8f1c39282 | ||
|  | cb3a5bba61 | ||
|  | 93cae44ba0 | ||
|  | a5ee590544 | ||
|  | 6c5b1420d2 | ||
|  | 8d8d654fe8 | ||
|  | 7494491560 | ||
|  | 79bb249f3b | ||
|  | 1fdf889ccf | ||
|  | 42510fda5c | ||
|  | f7e86c5be0 | ||
|  | af5b1021c7 | ||
|  | 4311834d75 | 
							
								
								
									
										63
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | ||||
| name: Bug Report | ||||
| description: Report a bug | ||||
| title: "(Bug report) " | ||||
| labels: "Type: Bug" | ||||
| body: | ||||
| - type: checkboxes | ||||
|   attributes: | ||||
|     label: Preflight Checklist | ||||
|     description: Please ensure you've completed all of the following. | ||||
|     options: | ||||
|       - label: I have searched the [issue tracker](https://www.github.com/zadam/trilium/issues) for a bug report that matches the one I want to file, without success. | ||||
|         required: true | ||||
| - type: input | ||||
|   attributes: | ||||
|     label: Trilium Version | ||||
|     description: What version of Trilium are you using? | ||||
|     placeholder: 0.48.0-beta | ||||
|   validations: | ||||
|     required: true | ||||
| - type: dropdown | ||||
|   attributes: | ||||
|     label: What operating system are you using? | ||||
|     options: | ||||
|       - Windows | ||||
|       - macOS | ||||
|       - Ubuntu | ||||
|       - Other Linux | ||||
|       - Other (specify below) | ||||
|   validations: | ||||
|     required: true | ||||
| - type: dropdown | ||||
|   attributes: | ||||
|     label: What is your setup?  | ||||
|     description: https://github.com/zadam/trilium/wiki#choose-the-setup | ||||
|     options: | ||||
|       - Local (no sync) | ||||
|       - Local + server sync | ||||
|       - Server access only | ||||
|   validations: | ||||
|     required: true | ||||
| - type: input | ||||
|   attributes: | ||||
|     label: Operating System Version | ||||
|     description: What operating system version are you using? On Windows, click Start button > Settings > System > About. On macOS, click the Apple Menu > About This Mac. On Linux, use lsb_release or uname -a. | ||||
|     placeholder: "e.g. Windows 10 version 1909, macOS Catalina 10.15.7, or Ubuntu 20.04" | ||||
|   validations: | ||||
|     required: true | ||||
| - type: textarea | ||||
|   attributes: | ||||
|     label: Expected Behavior | ||||
|     description: A clear and concise description of what you expected to happen. | ||||
|   validations: | ||||
|     required: true | ||||
| - type: textarea | ||||
|   attributes: | ||||
|     label: Actual Behavior | ||||
|     description: A clear description of what actually happens. | ||||
|   validations: | ||||
|     required: true | ||||
| - type: textarea | ||||
|   attributes: | ||||
|     label: Additional Information | ||||
|     description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here. | ||||
							
								
								
									
										22
									
								
								.github/ISSUE_TEMPLATE/feature_request.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								.github/ISSUE_TEMPLATE/feature_request.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| name: Feature Request | ||||
| description: Report a bug | ||||
| title: "(Feature request) " | ||||
| labels: "Type: Enhancement" | ||||
| body: | ||||
| - type: checkboxes | ||||
|   attributes: | ||||
|     label: Preflight Checklist | ||||
|     description: Please ensure you've completed all of the following. | ||||
|     options: | ||||
|       - label: I have searched the [issue tracker](https://www.github.com/zadam/trilium/issues) for a feature request that matches the one I want to file, without success. | ||||
|         required: true | ||||
| - type: textarea | ||||
|   attributes: | ||||
|     label: Describe feature | ||||
|     description: A clear and concise description of what you want to be added.. | ||||
|   validations: | ||||
|     required: true | ||||
| - type: textarea | ||||
|   attributes: | ||||
|     label: Additional Information | ||||
|     description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here. | ||||
							
								
								
									
										71
									
								
								.github/workflows/codeql-analysis.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								.github/workflows/codeql-analysis.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | ||||
| # For most projects, this workflow file will not need changing; you simply need | ||||
| # to commit it to your repository. | ||||
| # | ||||
| # You may wish to alter this file to override the set of languages analyzed, | ||||
| # or to provide custom queries or build logic. | ||||
| # | ||||
| # ******** NOTE ******** | ||||
| # We have attempted to detect the languages in your repository. Please check | ||||
| # the `language` matrix defined below to confirm you have the correct set of | ||||
| # supported CodeQL languages. | ||||
| # | ||||
| name: "CodeQL" | ||||
|  | ||||
| on: | ||||
|   push: | ||||
|     branches: [ master ] | ||||
|   pull_request: | ||||
|     # The branches below must be a subset of the branches above | ||||
|     branches: [ master ] | ||||
|   schedule: | ||||
|     - cron: '37 4 * * 1' | ||||
|  | ||||
| jobs: | ||||
|   analyze: | ||||
|     name: Analyze | ||||
|     runs-on: ubuntu-latest | ||||
|     permissions: | ||||
|       actions: read | ||||
|       contents: read | ||||
|       security-events: write | ||||
|  | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         language: [ 'javascript' ] | ||||
|         # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] | ||||
|         # Learn more: | ||||
|         # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed | ||||
|  | ||||
|     steps: | ||||
|     - name: Checkout repository | ||||
|       uses: actions/checkout@v2 | ||||
|  | ||||
|     # Initializes the CodeQL tools for scanning. | ||||
|     - name: Initialize CodeQL | ||||
|       uses: github/codeql-action/init@v1 | ||||
|       with: | ||||
|         languages: ${{ matrix.language }} | ||||
|         # If you wish to specify custom queries, you can do so here or in a config file. | ||||
|         # By default, queries listed here will override any specified in a config file. | ||||
|         # Prefix the list here with "+" to use these queries and those in the config file. | ||||
|         # queries: ./path/to/local/query, your-org/your-repo/queries@main | ||||
|  | ||||
|     # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java). | ||||
|     # If this step fails, then you should remove it and run the build manually (see below) | ||||
|     - name: Autobuild | ||||
|       uses: github/codeql-action/autobuild@v1 | ||||
|  | ||||
|     # ℹ️ Command-line programs to run using the OS shell. | ||||
|     # 📚 https://git.io/JvXDl | ||||
|  | ||||
|     # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines | ||||
|     #    and modify them (or add more) to build your code if your project | ||||
|     #    uses a compiled language | ||||
|  | ||||
|     #- run: | | ||||
|     #   make bootstrap | ||||
|     #   make release | ||||
|  | ||||
|     - name: Perform CodeQL Analysis | ||||
|       uses: github/codeql-action/analyze@v1 | ||||
							
								
								
									
										53
									
								
								.github/workflows/docker.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								.github/workflows/docker.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| name: Publish Docker image | ||||
| on: | ||||
|   push: | ||||
|     tags: [v*] | ||||
| jobs: | ||||
|   push_to_registries: | ||||
|     name: Push Docker image to multiple registries | ||||
|     runs-on: ubuntu-latest | ||||
|     permissions: | ||||
|       packages: write | ||||
|       contents: read | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v2 | ||||
|       - name: Set up QEMU | ||||
|         uses: docker/setup-qemu-action@v1 | ||||
|       - name: Docker meta | ||||
|         id: meta | ||||
|         uses: docker/metadata-action@v3 | ||||
|         with: | ||||
|           images: | | ||||
|             zadam/trilium | ||||
|             ghcr.io/zadam/trilium | ||||
|           tags: | | ||||
|             type=semver,pattern={{version}} | ||||
|             type=semver,pattern={{major}}.{{minor}}-latest | ||||
|             type=match,pattern=(\d+.\d+).\d+\-beta,enable=${{ endsWith(github.ref, 'beta') }},group=1,suffix=-latest | ||||
|       - name: Set up Docker Buildx | ||||
|         uses: docker/setup-buildx-action@v1 | ||||
|         with: | ||||
|           install: true | ||||
|       - name: Log in to Docker Hub | ||||
|         uses: docker/login-action@v1 | ||||
|         with: | ||||
|           username: ${{ secrets.DOCKER_USERNAME }} | ||||
|           password: ${{ secrets.DOCKER_PASSWORD }} | ||||
|       - name: Log in to GitHub Docker Registry | ||||
|         uses: docker/login-action@v1 | ||||
|         with: | ||||
|           registry: ghcr.io | ||||
|           username: ${{ github.repository_owner }} | ||||
|           password: ${{ secrets.GITHUB_TOKEN }} | ||||
|       - name: Create server-package.json | ||||
|         run: cat package.json | grep -v electron > server-package.json | ||||
|       - name: Build and Push | ||||
|         uses: docker/build-push-action@v2.7.0 | ||||
|         with: | ||||
|           context: . | ||||
|           platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 | ||||
|           push: true | ||||
|           cache-from: type=registry,ref=zadam/trilium:buildcache | ||||
|           cache-to: type=registry,ref=zadam/trilium:buildcache,mode=max | ||||
|           tags: ${{ steps.meta.outputs.tags }} | ||||
| @@ -2,10 +2,10 @@ image: | ||||
|   file: .gitpod.dockerfile | ||||
|  | ||||
| tasks: | ||||
|     - before: nvm install 10 && nvm use 10 | ||||
|     - before: nvm install 14.18.1 && nvm use 14.18.1 | ||||
|       init: npm install | ||||
|       command: npm run start-server | ||||
|  | ||||
| ports: | ||||
|     - port: 8080 | ||||
|       onOpen: open-preview | ||||
|       onOpen: open-preview | ||||
|   | ||||
							
								
								
									
										5
									
								
								.idea/dataSources.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										5
									
								
								.idea/dataSources.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,11 +1,12 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="DataSourceManagerImpl" format="xml" multifile-model="true"> | ||||
|     <data-source source="LOCAL" name="document.db" uuid="4e69c96a-8a2b-43f5-9b40-d1608f75f7a4"> | ||||
|     <data-source source="LOCAL" name="SQLite - document.db" uuid="30cef30d-e704-484d-a4ca-5d3bfc2ece63"> | ||||
|       <driver-ref>sqlite.xerial</driver-ref> | ||||
|       <synchronize>true</synchronize> | ||||
|       <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> | ||||
|       <working-dir>$ProjectFileDir$</working-dir> | ||||
|     </data-source> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										10
									
								
								.idea/runConfigurations.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.idea/runConfigurations.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="RunConfigurationProducerService"> | ||||
|     <option name="ignoredProducers"> | ||||
|       <set> | ||||
|         <option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" /> | ||||
|       </set> | ||||
|     </option> | ||||
|   </component> | ||||
| </project> | ||||
| @@ -1,4 +1,4 @@ | ||||
| FROM node:14.17.0-alpine | ||||
| FROM node:14.18.1-alpine | ||||
|  | ||||
| # Create app directory | ||||
| WORKDIR /usr/src/app | ||||
| @@ -16,7 +16,7 @@ RUN set -x \ | ||||
|         make \ | ||||
|         nasm \ | ||||
|         libpng-dev \ | ||||
|         python \ | ||||
|         python3 \ | ||||
|     && npm install --production \ | ||||
|     && apk del .build-dependencies | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| # Trilium注意事项 | ||||
| # Trilium笔记 | ||||
|  | ||||
| [English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | ||||
|  | ||||
| @@ -37,6 +37,8 @@ Trilium是作为桌面应用程序(Linux和Windows)或服务器上托管的W | ||||
|  | ||||
| [有关文档页面的完整列表,请参见Wiki。](https://github.com/zadam/trilium/wiki/) | ||||
|  | ||||
| [中文Wiki在这里](https://github.com/baddate/trilium/wiki/) | ||||
|  | ||||
| 您还可以阅读[个人知识库模式](https://github.com/zadam/trilium/wiki/Patterns-of-personal-knowledge-base),以获取有关如何使用Trilium的灵感。 | ||||
|  | ||||
| ## 贡献 | ||||
| @@ -57,4 +59,4 @@ npm run start-server | ||||
| * [CKEditor 5](https://github.com/ckeditor/ckeditor5) - 市场上最好的所见即所得编辑器,互动性强且聆听能力强的团队 | ||||
| * [FancyTree](https://github.com/mar10/fancytree) - 一个非常丰富的关于树的库,强大的没有对手。没有它,Trilium Notes将不会如此。 | ||||
| * [CodeMirror](https://github.com/codemirror/CodeMirror) - 支持大量语言的代码编辑器 | ||||
| * [jsPlumb](https://github.com/jsplumb/jsplumb)强大的可视化连接库。- 用于[关系图](https://github.com/zadam/trilium/wiki/Relation-map)和[链接图](https://github.com/zadam/trilium/wiki/Link-map) | ||||
| * [jsPlumb](https://github.com/jsplumb/jsplumb)强大的可视化连接库。- 用于[关系图](https://github.com/zadam/trilium/wiki/Relation-map)和[链接图](https://github.com/zadam/trilium/wiki/Link-map) | ||||
|   | ||||
							
								
								
									
										3
									
								
								TODO
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								TODO
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| - new icon | ||||
| - polish becca entities API | ||||
| - separate private and public APIs in becca entities | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -4,4 +4,19 @@ 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 | ||||
| ./node_modules/.bin/electron-installer-debian --config bin/deb-options.json --options.version=${VERSION} --arch amd64 | ||||
|  | ||||
|  | ||||
| # hacky stop-gag measure to produce debian compatible XZ compressed debs until this is fixed: https://github.com/electron-userland/electron-installer-debian/issues/272 | ||||
| cd dist | ||||
| ar x trilium_${VERSION}_amd64.deb | ||||
| rm trilium_${VERSION}_amd64.deb | ||||
| # recompress | ||||
| < control.tar.zst zstd -d | xz > control.tar.xz | ||||
| < data.tar.zst zstd -d | xz > data.tar.xz | ||||
| # create deb archive (I really do not know, what argument "sdsd" is for but something is required for ar to create the archive as desired) | ||||
| ar -m -c -a sdsd trilium_${VERSION}_amd64.deb debian-binary control.tar.xz data.tar.xz | ||||
|  | ||||
| rm control* data* debian-binary | ||||
|  | ||||
| echo "Converted to XZ deb" | ||||
|   | ||||
| @@ -30,6 +30,9 @@ rm -r $BUILD_DIR/swiftshader | ||||
| cp bin/tpl/trilium-portable.sh $BUILD_DIR/ | ||||
| chmod 755 $BUILD_DIR/trilium-portable.sh | ||||
|  | ||||
| cp bin/tpl/trilium-safe-mode.sh $BUILD_DIR/ | ||||
| chmod 755 $BUILD_DIR/trilium-safe-mode.sh | ||||
|  | ||||
| cp bin/tpl/trilium-no-cert-check.sh $BUILD_DIR/ | ||||
| chmod 755 $BUILD_DIR/trilium-no-cert-check.sh | ||||
|  | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| PKG_DIR=dist/trilium-linux-x64-server | ||||
| NODE_VERSION=14.16.1 | ||||
| NODE_VERSION=14.18.1 | ||||
|  | ||||
| if [ "$1" != "DONTCOPY" ] | ||||
| then | ||||
|   | ||||
| @@ -27,6 +27,7 @@ rm -r $BUILD_DIR/swiftshader | ||||
|  | ||||
| cp bin/tpl/trilium-portable.bat $BUILD_DIR/ | ||||
| cp bin/tpl/trilium-no-cert-check.bat $BUILD_DIR/ | ||||
| cp bin/tpl/trilium-safe-mode.bat $BUILD_DIR/ | ||||
|  | ||||
| echo "Zipping windows x64 electron distribution..." | ||||
| VERSION=`jq -r ".version" package.json` | ||||
|   | ||||
| @@ -5,7 +5,7 @@ if [[ $# -eq 0 ]] ; then | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| n exec 12 npm run webpack | ||||
| n exec 14.18.1 npm run webpack | ||||
|  | ||||
| DIR=$1 | ||||
|  | ||||
| @@ -27,7 +27,7 @@ cp -r electron.js $DIR/ | ||||
| cp webpack-* $DIR/ | ||||
|  | ||||
| # run in subshell (so we return to original dir) | ||||
| (cd $DIR && n exec 12 npm install --only=prod) | ||||
| (cd $DIR && n exec 14.18.1 npm install --only=prod) | ||||
|  | ||||
| # cleanup of useless files in dependencies | ||||
| rm -r $DIR/node_modules/image-q/demo | ||||
|   | ||||
| @@ -69,13 +69,3 @@ gh release create "$TAG" \ | ||||
|     "dist/$WINDOWS_X64_BUILD" \ | ||||
|     "dist/$MAC_X64_BUILD" \ | ||||
|     "dist/$SERVER_BUILD" | ||||
|  | ||||
| echo "Building docker image" | ||||
|  | ||||
| bin/build-docker.sh $VERSION | ||||
|  | ||||
| echo "Pushing docker image to dockerhub" | ||||
|  | ||||
| bin/push-docker-image.sh $VERSION | ||||
|  | ||||
| echo "Release finished!" | ||||
|   | ||||
							
								
								
									
										4
									
								
								bin/tpl/trilium-safe-mode.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								bin/tpl/trilium-safe-mode.bat
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| SET DIR=%~dp0 | ||||
| SET TRILIUM_SAFE_MODE=1 | ||||
| cd %DIR% | ||||
| start trilium.exe | ||||
							
								
								
									
										7
									
								
								bin/tpl/trilium-safe-mode.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								bin/tpl/trilium-safe-mode.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| #!/usr/bin/env sh | ||||
|  | ||||
| DIR=`dirname "$0"` | ||||
| export TRILIUM_SAFE_MODE=1 | ||||
|  | ||||
| "$DIR/trilium" | ||||
|  | ||||
							
								
								
									
										11
									
								
								db/TODO.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								db/TODO.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| - drop branches.utcDateCreated - not used for anything | ||||
| - drop options.utcDateCreated - not used for anything | ||||
| - isDeleted = 0 by default | ||||
| - rename openTabs to openNoteContexts | ||||
| - migrate black theme to dark theme | ||||
| - unify readOnly handling to a single attribute: | ||||
|   * readOnly - like now | ||||
|   * readOnly=auto - like without readOnly (used to override inherited readOnly) | ||||
|   * readOnly=never - like autoReadOnlyDisabled | ||||
| - remove focusOnAttributesKeyboardShortcut | ||||
| - rename white theme to "light" theme (it's not completely white and matches well to dark theme) | ||||
							
								
								
									
										
											BIN
										
									
								
								db/demo.zip
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								db/demo.zip
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,5 +0,0 @@ | ||||
| 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 +0,0 @@ | ||||
| update branches set parentNoteId = 'none' where branchId = 'root' | ||||
| @@ -1,75 +0,0 @@ | ||||
| -- 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'; | ||||
| @@ -1,14 +0,0 @@ | ||||
| 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 +0,0 @@ | ||||
| UPDATE attributes SET isDeleted = 1 WHERE noteId IN (SELECT noteId FROM notes WHERE isDeleted = 1); | ||||
| @@ -1 +0,0 @@ | ||||
| UPDATE attributes SET isDeleted = 1 WHERE type = 'relation' AND value NOT IN (SELECT noteId FROM notes WHERE notes.isDeleted = 0); | ||||
| @@ -1 +0,0 @@ | ||||
| UPDATE attributes SET value = replace(value, 'mirrorRelation', 'inverseRelation') WHERE type = 'relation-definition'; | ||||
| @@ -1 +0,0 @@ | ||||
| UPDATE attributes SET name = 'archived' where name = 'hideInAutocomplete'; | ||||
| @@ -1,2 +0,0 @@ | ||||
| INSERT INTO options (name, value, dateCreated, dateModified, isSynced) | ||||
| VALUES ('hoistedNoteId', 'root', '2018-12-11T18:31:00.874Z', '2018-12-11T18:31:00.874Z', 0); | ||||
| @@ -1,62 +0,0 @@ | ||||
| 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(); | ||||
| }; | ||||
| @@ -1,8 +0,0 @@ | ||||
| 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); | ||||
| @@ -1,11 +0,0 @@ | ||||
| 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'); | ||||
| @@ -1,35 +0,0 @@ | ||||
| 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; | ||||
| @@ -1,2 +0,0 @@ | ||||
| INSERT OR REPLACE INTO sync (entityName, entityId, sourceId, syncDate) | ||||
| SELECT 'note_contents', noteContentId, '', '2019-03-02T18:07:29.182Z' FROM note_contents; | ||||
| @@ -1,6 +0,0 @@ | ||||
| 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 | ||||
| ) | ||||
| @@ -1 +0,0 @@ | ||||
| module.exports = async () => {}; | ||||
| @@ -1,236 +0,0 @@ | ||||
| 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`); | ||||
| @@ -1,13 +0,0 @@ | ||||
| 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; | ||||
| @@ -1,5 +0,0 @@ | ||||
| const syncTableService = require('../../src/services/entity_changes.js'); | ||||
|  | ||||
| module.exports = async () => { | ||||
|     await syncTableService.fillAllSyncRows(); | ||||
| }; | ||||
| @@ -1 +0,0 @@ | ||||
| DROP TABLE IF EXISTS note_fulltext; | ||||
| @@ -1,4 +0,0 @@ | ||||
| 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'; | ||||
| @@ -1,2 +0,0 @@ | ||||
| INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||
|     VALUES ('hideTabRowForOneTab', 'false', '2019-05-01T18:31:00.874Z', '2019-05-01T18:31:00.874Z', 0); | ||||
| @@ -1,12 +0,0 @@ | ||||
| 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'; | ||||
| @@ -1,10 +0,0 @@ | ||||
| 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; | ||||
| @@ -1,5 +0,0 @@ | ||||
| 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); | ||||
| @@ -1,2 +0,0 @@ | ||||
| INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced) | ||||
| VALUES ('showSidebarInNewTab', 'true', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0); | ||||
| @@ -1,14 +0,0 @@ | ||||
| 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); | ||||
| @@ -1,5 +0,0 @@ | ||||
| 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'); | ||||
| @@ -1,2 +0,0 @@ | ||||
| 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 +0,0 @@ | ||||
| DROP TABLE event_log; | ||||
| @@ -1,2 +0,0 @@ | ||||
| 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); | ||||
| @@ -1,2 +0,0 @@ | ||||
| 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); | ||||
| @@ -1,5 +0,0 @@ | ||||
| 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); | ||||
| @@ -1,3 +0,0 @@ | ||||
| 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'); | ||||
| @@ -1,22 +0,0 @@ | ||||
| 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); | ||||
| @@ -1,2 +0,0 @@ | ||||
| UPDATE branches SET notePosition = notePosition * 10; | ||||
| UPDATE attributes SET position = position * 10; | ||||
| @@ -1,36 +0,0 @@ | ||||
| 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'; | ||||
| @@ -1,31 +0,0 @@ | ||||
| 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`); | ||||
| @@ -1,34 +0,0 @@ | ||||
| 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 = COALESCE((SELECT COALESCE(LENGTH(content), 0) FROM note_contents WHERE note_contents.noteId = notes.noteId), -1); | ||||
|  | ||||
| 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'; | ||||
| @@ -1,28 +0,0 @@ | ||||
| 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`); | ||||
| @@ -1,3 +0,0 @@ | ||||
| UPDATE attributes SET name = 'internalLink' WHERE name = 'internal-link'; | ||||
| UPDATE attributes SET name = 'imageLink' WHERE name = 'image-link'; | ||||
| UPDATE attributes SET name = 'relationMapLink' WHERE name = 'relation-map-link'; | ||||
| @@ -1,5 +0,0 @@ | ||||
| DROP INDEX IF EXISTS IDX_attributes_name_index; | ||||
| DROP INDEX IF EXISTS IDX_branches_noteId; | ||||
|  | ||||
| CREATE INDEX IDX_source_ids_utcDateCreated | ||||
|     on source_ids (utcDateCreated); | ||||
| @@ -1,81 +0,0 @@ | ||||
| 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, | ||||
|                                            `deleteId`   TEXT DEFAULT NULL, | ||||
|                                            `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; | ||||
|  | ||||
| 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`); | ||||
|  | ||||
| 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`	INTEGER NOT NULL DEFAULT 0, | ||||
|                                           `isDeleted`	INTEGER NOT NULL DEFAULT 0, | ||||
|                                           `deleteId`    TEXT DEFAULT NULL, | ||||
|                                           `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, utcDateModified, utcDateCreated, hash FROM branches; | ||||
|  | ||||
| DROP TABLE branches; | ||||
| ALTER TABLE branches_mig RENAME TO branches; | ||||
|  | ||||
| CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` (`noteId`,`parentNoteId`); | ||||
| CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId); | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "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, | ||||
|     `deleteId`    TEXT DEFAULT 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, utcDateCreated, utcDateModified, isDeleted, hash, isInheritable FROM attributes; | ||||
|  | ||||
| DROP TABLE attributes; | ||||
| ALTER TABLE attributes_mig RENAME TO attributes; | ||||
|  | ||||
| CREATE INDEX IDX_attributes_name_value | ||||
|     on attributes (name, value); | ||||
| CREATE INDEX IDX_attributes_noteId_index | ||||
|     on attributes (noteId); | ||||
| CREATE INDEX IDX_attributes_value_index | ||||
|     on attributes (value); | ||||
| @@ -1 +0,0 @@ | ||||
| UPDATE notes SET contentLength = COALESCE((SELECT COALESCE(LENGTH(content), 0) FROM note_contents WHERE note_contents.noteId = notes.noteId), -1); | ||||
| @@ -1,22 +0,0 @@ | ||||
| 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, | ||||
|                                           `isSynced` INTEGER default 0 not null, | ||||
|                                           `utcSyncDate`	TEXT NOT NULL); | ||||
|  | ||||
| INSERT INTO sync_mig (id, entityName, entityId, sourceId, isSynced, utcSyncDate) | ||||
| SELECT id, entityName, entityId, sourceId, 1, utcSyncDate FROM sync; | ||||
|  | ||||
| DROP TABLE sync; | ||||
|  | ||||
| ALTER TABLE sync_mig RENAME TO sync; | ||||
|  | ||||
| CREATE UNIQUE INDEX `IDX_sync_entityName_entityId` ON `sync` ( | ||||
|                                                               `entityName`, | ||||
|                                                               `entityId` | ||||
|     ); | ||||
| CREATE INDEX `IDX_sync_utcSyncDate` ON `sync` ( | ||||
|                                                `utcSyncDate` | ||||
|     ); | ||||
| @@ -1,4 +0,0 @@ | ||||
| UPDATE sync SET isSynced = 1 WHERE entityName != 'options' OR ( | ||||
|         entityName = 'options' | ||||
|         AND 1 = (SELECT isSynced FROM options WHERE name = sync.entityId) | ||||
|     ) | ||||
| @@ -1,2 +0,0 @@ | ||||
| UPDATE attributes SET type = 'label', name = 'label:' || name WHERE type = 'label-definition'; | ||||
| UPDATE attributes SET type = 'label', name = 'relation:' || name WHERE type = 'relation-definition'; | ||||
| @@ -1,79 +0,0 @@ | ||||
| const sql = require('../../src/services/sql'); | ||||
|  | ||||
| module.exports = () => { | ||||
|     for (const attr of sql.getRows("SELECT * FROM attributes WHERE name LIKE 'label:%'")) { | ||||
|         let obj; | ||||
|  | ||||
|         try { | ||||
|             obj = JSON.parse(attr.value); | ||||
|         } | ||||
|         catch (e) { | ||||
|             console.log(`Parsing attribute definition "${attr.value}" of ${attr.attributeId} failed with error "${e.message}", setting to default value.`); | ||||
|  | ||||
|             sql.execute('UPDATE attributes SET value = ? WHERE attributeId = ?', | ||||
|                 ["multi,text", attr.attributeId]); | ||||
|  | ||||
|             continue; | ||||
|         } | ||||
|  | ||||
|         const tokens = []; | ||||
|  | ||||
|         if (obj.isPromoted) { | ||||
|             tokens.push('promoted'); | ||||
|         } | ||||
|  | ||||
|         if (obj.multiplicityType === 'singlevalue') { | ||||
|             tokens.push('single'); | ||||
|         } else if (obj.multiplicityType === 'multivalue') { | ||||
|             tokens.push('multi'); | ||||
|         } | ||||
|  | ||||
|         if (obj.labelType) { | ||||
|             tokens.push(obj.labelType); | ||||
|         } | ||||
|  | ||||
|         if (obj.numberPrecision) { | ||||
|             tokens.push('precision='+obj.numberPrecision); | ||||
|         } | ||||
|  | ||||
|         const newValue = tokens.join(','); | ||||
|  | ||||
|         sql.execute('UPDATE attributes SET value = ? WHERE attributeId = ?', [newValue, attr.attributeId]); | ||||
|     } | ||||
|  | ||||
|     for (const attr of sql.getRows("SELECT * FROM attributes WHERE name LIKE 'relation:%'")) { | ||||
|         let obj; | ||||
|  | ||||
|         try { | ||||
|             obj = JSON.parse(attr.value); | ||||
|         } | ||||
|         catch (e) { | ||||
|             console.log(`Parsing attribute definition "${attr.value}" of ${attr.attributeId} failed with error "${e.message}", setting to default value.`); | ||||
|  | ||||
|             sql.execute('UPDATE attributes SET value = ? WHERE attributeId = ?', | ||||
|                 ["multi", attr.attributeId]); | ||||
|  | ||||
|             continue; | ||||
|         } | ||||
|  | ||||
|         const tokens = []; | ||||
|  | ||||
|         if (obj.isPromoted) { | ||||
|             tokens.push('promoted'); | ||||
|         } | ||||
|  | ||||
|         if (obj.multiplicityType === 'singlevalue') { | ||||
|             tokens.push('single'); | ||||
|         } else if (obj.multiplicityType === 'multivalue') { | ||||
|             tokens.push('multi'); | ||||
|         } | ||||
|  | ||||
|         if (obj.inverseRelation) { | ||||
|             tokens.push('inverse=' + obj.inverseRelation); | ||||
|         } | ||||
|  | ||||
|         const newValue = tokens.join(','); | ||||
|  | ||||
|         sql.execute('UPDATE attributes SET value = ? WHERE attributeId = ?', [newValue, attr.attributeId]); | ||||
|     } | ||||
| }; | ||||
| @@ -1 +0,0 @@ | ||||
| DROP TABLE source_ids; | ||||
| @@ -1 +0,0 @@ | ||||
| ALTER TABLE sync RENAME TO entity_changes; | ||||
| @@ -1,22 +0,0 @@ | ||||
| CREATE TABLE IF NOT EXISTS "mig_entity_changes" ( | ||||
|                                                 `id`	INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, | ||||
|                                                 `entityName`	TEXT NOT NULL, | ||||
|                                                 `entityId`	TEXT NOT NULL, | ||||
|                                                 `sourceId` TEXT NOT NULL, | ||||
|                                                 `isSynced` INTEGER default 0 not null, | ||||
|                                                 `utcChangedDate`	TEXT NOT NULL); | ||||
|  | ||||
| INSERT INTO mig_entity_changes (id, entityName, entityId, sourceId, isSynced, utcChangedDate) | ||||
|     SELECT id, entityName, entityId, sourceId, isSynced, utcSyncDate FROM entity_changes; | ||||
|  | ||||
| DROP TABLE entity_changes; | ||||
|  | ||||
| ALTER TABLE mig_entity_changes RENAME TO entity_changes; | ||||
|  | ||||
| CREATE UNIQUE INDEX `IDX_entityChanges_entityName_entityId` ON "entity_changes" ( | ||||
|                                                                                  `entityName`, | ||||
|                                                                                  `entityId` | ||||
|     ); | ||||
| CREATE INDEX `IDX_entityChanges_utcChangedDate` ON "entity_changes" ( | ||||
|                                                                   `utcChangedDate` | ||||
|     ); | ||||
| @@ -1,55 +0,0 @@ | ||||
| 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, | ||||
|                                        `deleteId`   TEXT DEFAULT NULL, | ||||
|                                        `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, deleteId, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified) | ||||
|     SELECT noteId, title, isProtected, type, mime, hash, isDeleted, deleteId, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified FROM notes; | ||||
|  | ||||
| DROP TABLE notes; | ||||
| ALTER TABLE notes_mig RENAME TO notes; | ||||
|  | ||||
| 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`); | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "note_revisions_mig" (`noteRevisionId`	TEXT NOT NULL PRIMARY KEY, | ||||
|                                              `noteId`	TEXT NOT NULL, | ||||
|                                              `title`	TEXT, | ||||
|                                              `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, isErased, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated, type, mime, hash) | ||||
| SELECT noteRevisionId, noteId, title, isErased, 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; | ||||
|  | ||||
| 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`); | ||||
| @@ -1,20 +0,0 @@ | ||||
| CREATE TABLE IF NOT EXISTS "note_contents_mig" ( | ||||
|                                                `noteId`	TEXT NOT NULL, | ||||
|                                                `content`	TEXT NULL DEFAULT NULL, | ||||
|                                                `hash` TEXT DEFAULT "" NOT NULL, | ||||
|                                                `dateModified` TEXT NOT NULL, | ||||
|                                                `utcDateModified` TEXT NOT NULL, | ||||
|                                                PRIMARY KEY(`noteId`) | ||||
| ); | ||||
|  | ||||
| INSERT INTO note_contents_mig (noteId, content, hash, dateModified, utcDateModified) | ||||
|     SELECT noteId, | ||||
|            content, | ||||
|            hash, | ||||
|            COALESCE((SELECT dateModified FROM notes WHERE noteId = note_contents.noteId), utcDateModified), | ||||
|            utcDateModified | ||||
|     FROM note_contents; | ||||
|  | ||||
| DROP TABLE note_contents; | ||||
|  | ||||
| ALTER TABLE note_contents_mig RENAME TO note_contents; | ||||
| @@ -1 +0,0 @@ | ||||
| DELETE FROM options WHERE name = 'keyboardShortcutsActivateParentNote'; | ||||
| @@ -1 +0,0 @@ | ||||
| UPDATE attributes SET name = 'archived' WHERE name = 'hideInAutocomplete'; | ||||
| @@ -1,20 +0,0 @@ | ||||
| const repository = require('../../src/services/repository'); | ||||
|  | ||||
| module.exports = () => { | ||||
|     for (const note of repository.getEntities("SELECT * FROM notes WHERE type = 'text' AND isProtected = 0")) { | ||||
|         try { | ||||
|             let origContent = note.getContent(); | ||||
|  | ||||
|             const newContent = origContent | ||||
|                 .replace(/<h1/ig, "<h2") | ||||
|                 .replace(/<\/h1/ig, "</h2"); | ||||
|  | ||||
|             if (newContent !== origContent) { | ||||
|                 note.setContent(newContent); | ||||
|             } | ||||
|         } | ||||
|         catch (e) { | ||||
|             console.log(`Changing note content for note ${note.noteId} failed with: ${e.message} ${e.stack}`); | ||||
|         } | ||||
|     } | ||||
| }; | ||||
| @@ -1,14 +0,0 @@ | ||||
| const repository = require('../../src/services/repository'); | ||||
| const sql = require('../../src/services/sql'); | ||||
|  | ||||
| module.exports = () => { | ||||
|     for (const note of repository.getEntities("SELECT * FROM notes")) { | ||||
|         let position = 0; | ||||
|  | ||||
|         for (const branch of note.getChildBranches()) { | ||||
|             sql.execute(`UPDATE branches SET notePosition = ? WHERE branchId = ?`, [position, branch.branchId]); | ||||
|  | ||||
|             position += 10; | ||||
|         } | ||||
|     } | ||||
| }; | ||||
| @@ -1,15 +0,0 @@ | ||||
| DELETE FROM options WHERE name IN ( | ||||
|     'noteInfoWidget', | ||||
|     'attributesWidget', | ||||
|     'linkMapWidget', | ||||
|     'noteRevisionsWidget', | ||||
|     'whatLinksHereWidget', | ||||
|     'codeNotesMimeTypes', | ||||
|     'similarNotesWidget', | ||||
|     'editedNotesWidget', | ||||
|     'calendarWidget', | ||||
|     'sidebarMinWidth', | ||||
|     'sidebarWidthPercent', | ||||
|     'showSidebarInNewTab', | ||||
|     'hoistedNoteId' | ||||
| ); | ||||
| @@ -1,69 +0,0 @@ | ||||
| CREATE TABLE IF NOT EXISTS "mig_entity_changes" ( | ||||
|                                                     `id`	INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, | ||||
|                                                     `entityName`	TEXT NOT NULL, | ||||
|                                                     `entityId`	TEXT NOT NULL, | ||||
|                                                     `hash`	TEXT NOT NULL, | ||||
|                                                     `sourceId` TEXT NOT NULL, | ||||
|                                                     `isErased` INT NOT NULL, | ||||
|                                                     `utcDateChanged` TEXT NOT NULL, | ||||
|                                                     `isSynced` INTEGER NOT NULL); | ||||
|  | ||||
| INSERT INTO mig_entity_changes (id, entityName, entityId, hash, sourceId, isSynced, utcDateChanged, isErased) | ||||
| SELECT id, entityName, entityId, '', sourceId, isSynced, utcChangedDate, 0 FROM entity_changes; | ||||
|  | ||||
| UPDATE mig_entity_changes SET isErased = COALESCE((SELECT isErased FROM notes WHERE noteId = entityId), 0) WHERE entityName = 'notes'; | ||||
| UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateModified FROM notes WHERE noteId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'notes'; | ||||
|  | ||||
| UPDATE mig_entity_changes SET isErased = COALESCE((SELECT isErased FROM notes WHERE noteId = entityId), 0) WHERE entityName = 'note_contents'; | ||||
|  | ||||
| UPDATE mig_entity_changes SET isErased = COALESCE(( | ||||
|     SELECT isErased | ||||
|     FROM attributes | ||||
|          JOIN notes USING(noteId) | ||||
|     WHERE attributeId = entityId | ||||
| ), 0) WHERE entityName = 'attributes'; | ||||
| UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateModified FROM attributes WHERE attributeId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'attributes'; | ||||
|  | ||||
| UPDATE mig_entity_changes SET isErased = COALESCE(( | ||||
|     SELECT isErased | ||||
|     FROM branches | ||||
|     JOIN notes USING(noteId) | ||||
|     WHERE branchId = entityId | ||||
| ), 0) WHERE entityName = 'branches'; | ||||
| UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateModified FROM branches WHERE branchId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'branches'; | ||||
|  | ||||
| UPDATE mig_entity_changes SET isErased = COALESCE(( | ||||
|     SELECT isErased | ||||
|     FROM note_revisions | ||||
|     WHERE noteRevisionId = entityId | ||||
| ), 0) WHERE entityName = 'note_revisions'; | ||||
| UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateModified FROM note_revisions WHERE noteRevisionId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'note_revisions'; | ||||
|  | ||||
| UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateCreated FROM api_tokens WHERE apiTokenId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'api_tokens'; | ||||
|  | ||||
| UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateModified FROM note_contents WHERE noteId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'note_contents'; | ||||
|  | ||||
| UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateModified FROM note_revision_contents WHERE noteRevisionId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'note_revision_contents'; | ||||
|  | ||||
| UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateModified FROM options WHERE name = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'options'; | ||||
|  | ||||
| UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateCreated FROM recent_notes WHERE noteId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'options'; | ||||
|  | ||||
| DROP TABLE entity_changes; | ||||
| ALTER TABLE mig_entity_changes RENAME TO entity_changes; | ||||
|  | ||||
| CREATE UNIQUE INDEX `IDX_entityChanges_entityName_entityId` ON "entity_changes" ( | ||||
|                                                                                  `entityName`, | ||||
|                                                                                  `entityId` | ||||
|     ); | ||||
|  | ||||
| DELETE FROM attributes WHERE noteId IN (SELECT noteId FROM notes WHERE isErased = 1); | ||||
| DELETE FROM branches WHERE noteId IN (SELECT noteId FROM notes WHERE isErased = 1); | ||||
| DELETE FROM note_contents WHERE noteId IN (SELECT noteId FROM notes WHERE isErased = 1); | ||||
| DELETE FROM note_revision_contents WHERE noteRevisionId IN ( | ||||
|     SELECT noteRevisionId FROM note_revisions WHERE isErased = 1 | ||||
| ); | ||||
| DELETE FROM note_revisions WHERE isErased = 1; | ||||
| DELETE FROM notes WHERE isErased = 1; | ||||
|  | ||||
| UPDATE entity_changes SET isErased = COALESCE((SELECT isErased FROM entity_changes AS sub WHERE sub.entityId = entity_changes.entityId AND sub.entityName = 'note_revisions'), 0) WHERE entityName = 'note_revision_contents'; | ||||
| @@ -1,198 +0,0 @@ | ||||
| CREATE TABLE IF NOT EXISTS "mig_entity_changes" ( | ||||
|                                                 `id`	INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, | ||||
|                                                 `entityName`	TEXT NOT NULL, | ||||
|                                                 `entityId`	TEXT NOT NULL, | ||||
|                                                 `hash`	TEXT NOT NULL, | ||||
|                                                 `isErased` INT NOT NULL, | ||||
|                                                 `sourceId` TEXT NOT NULL, | ||||
|                                                 `isSynced` INTEGER NOT NULL, | ||||
|                                                 `utcDateChanged` TEXT NOT NULL | ||||
|                                                 ); | ||||
|  | ||||
| INSERT INTO mig_entity_changes (id, entityName, entityId, hash, sourceId, isSynced, isErased, utcDateChanged) | ||||
|     SELECT id, entityName, entityId, '', sourceId, isSynced, isErased, utcDateChanged FROM entity_changes; | ||||
|  | ||||
| UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM api_tokens WHERE apiTokenId = entityId), '') WHERE entityName = 'api_tokens'; | ||||
| UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM attributes WHERE attributeId = entityId), '') WHERE entityName = 'attributes'; | ||||
| UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM branches WHERE branchId = entityId), '') WHERE entityName = 'branches'; | ||||
| UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM notes WHERE noteId = entityId), '') WHERE entityName = 'notes'; | ||||
| UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM note_contents WHERE noteId = entityId), '') WHERE entityName = 'note_contents'; | ||||
| UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM note_revisions WHERE noteRevisionId = entityId), '') WHERE entityName = 'note_revisions'; | ||||
| UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM note_revision_contents WHERE noteRevisionId = entityId), '') WHERE entityName = 'note_revision_contents'; | ||||
| UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM options WHERE name = entityId), '') WHERE entityName = 'options'; | ||||
| UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM recent_notes WHERE noteId = entityId), '') WHERE entityName = 'recent_notes'; | ||||
|  | ||||
| DROP TABLE entity_changes; | ||||
| ALTER TABLE mig_entity_changes RENAME TO entity_changes; | ||||
|  | ||||
| CREATE UNIQUE INDEX `IDX_entityChanges_entityName_entityId` ON "entity_changes" ( | ||||
|                                                                                  `entityName`, | ||||
|                                                                                  `entityId` | ||||
|     ); | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "mig_api_tokens" | ||||
| ( | ||||
|     apiTokenId TEXT PRIMARY KEY NOT NULL, | ||||
|     token TEXT NOT NULL, | ||||
|     utcDateCreated TEXT NOT NULL, | ||||
|     isDeleted INT NOT NULL DEFAULT 0); | ||||
|  | ||||
| INSERT INTO mig_api_tokens (apiTokenId, token, utcDateCreated, isDeleted) | ||||
| SELECT apiTokenId, token, utcDateCreated, isDeleted FROM api_tokens; | ||||
|  | ||||
| DROP TABLE api_tokens; | ||||
| ALTER TABLE mig_api_tokens RENAME TO api_tokens; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "mig_attributes" | ||||
| ( | ||||
|     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, | ||||
|     `deleteId`    TEXT DEFAULT NULL, | ||||
|     isInheritable int DEFAULT 0 NULL); | ||||
|  | ||||
| INSERT INTO mig_attributes (attributeId, noteId, type, name, value, position, utcDateCreated, utcDateModified, isDeleted, deleteId, isInheritable) | ||||
| SELECT attributeId, noteId, type, name, value, position, utcDateCreated, utcDateModified, isDeleted, deleteId, isInheritable FROM attributes; | ||||
|  | ||||
| DROP TABLE attributes; | ||||
| ALTER TABLE mig_attributes RENAME TO attributes; | ||||
|  | ||||
| CREATE INDEX IDX_attributes_name_value | ||||
|     on attributes (name, value); | ||||
| CREATE INDEX IDX_attributes_noteId_index | ||||
|     on attributes (noteId); | ||||
| CREATE INDEX IDX_attributes_value_index | ||||
|     on attributes (value); | ||||
|  | ||||
| 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, | ||||
|                                           `deleteId`    TEXT DEFAULT NULL, | ||||
|                                           `utcDateModified`	TEXT NOT NULL, | ||||
|                                           utcDateCreated TEXT NOT NULL, | ||||
|                                           PRIMARY KEY(`branchId`)); | ||||
|  | ||||
| INSERT INTO mig_branches (branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, deleteId, utcDateModified, utcDateCreated) | ||||
| SELECT branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, deleteId, utcDateModified, utcDateCreated FROM branches; | ||||
|  | ||||
| DROP TABLE branches; | ||||
| ALTER TABLE mig_branches RENAME TO branches; | ||||
|  | ||||
| CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` (`noteId`,`parentNoteId`); | ||||
| CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId); | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "mig_notes" ( | ||||
|                                        `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', | ||||
|                                        `isDeleted`	INT NOT NULL DEFAULT 0, | ||||
|                                        `deleteId`   TEXT DEFAULT NULL, | ||||
|                                        `dateCreated`	TEXT NOT NULL, | ||||
|                                        `dateModified`	TEXT NOT NULL, | ||||
|                                        `utcDateCreated`	TEXT NOT NULL, | ||||
|                                        `utcDateModified`	TEXT NOT NULL, | ||||
|                                        PRIMARY KEY(`noteId`)); | ||||
|  | ||||
| INSERT INTO mig_notes (noteId, title, isProtected, type, mime, isDeleted, deleteId, dateCreated, dateModified, utcDateCreated, utcDateModified) | ||||
| SELECT noteId, title, isProtected, type, mime, isDeleted, deleteId, dateCreated, dateModified, utcDateCreated, utcDateModified FROM notes; | ||||
|  | ||||
| DROP TABLE notes; | ||||
| ALTER TABLE mig_notes RENAME TO notes; | ||||
|  | ||||
| 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`); | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "mig_note_contents" ( | ||||
|                                                `noteId`	TEXT NOT NULL, | ||||
|                                                `content`	TEXT NULL DEFAULT NULL, | ||||
|                                                `dateModified` TEXT NOT NULL, | ||||
|                                                `utcDateModified` TEXT NOT NULL, | ||||
|                                                PRIMARY KEY(`noteId`) | ||||
| ); | ||||
|  | ||||
| INSERT INTO mig_note_contents (noteId, content, dateModified, utcDateModified) | ||||
| SELECT noteId, content, dateModified, utcDateModified FROM note_contents; | ||||
|  | ||||
| DROP TABLE note_contents; | ||||
| ALTER TABLE mig_note_contents RENAME TO note_contents; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "mig_note_revisions" (`noteRevisionId`	TEXT NOT NULL PRIMARY KEY, | ||||
|                                              `noteId`	TEXT NOT NULL, | ||||
|                                              type TEXT DEFAULT '' NOT NULL, | ||||
|                                              mime TEXT DEFAULT '' NOT NULL, | ||||
|                                              `title`	TEXT, | ||||
|                                              `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); | ||||
|  | ||||
| INSERT INTO mig_note_revisions (noteRevisionId, noteId, type, mime, title, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated) | ||||
| SELECT noteRevisionId, noteId, type, mime, title, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated FROM note_revisions; | ||||
|  | ||||
| DROP TABLE note_revisions; | ||||
| ALTER TABLE mig_note_revisions 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`); | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "mig_note_revision_contents" (`noteRevisionId`	TEXT NOT NULL PRIMARY KEY, | ||||
|                                                      `content`	TEXT, | ||||
|                                                      `utcDateModified` TEXT NOT NULL); | ||||
|  | ||||
| INSERT INTO mig_note_revision_contents (noteRevisionId, content, utcDateModified) | ||||
| SELECT noteRevisionId, content, utcDateModified FROM note_revision_contents; | ||||
|  | ||||
| DROP TABLE note_revision_contents; | ||||
| ALTER TABLE mig_note_revision_contents RENAME TO note_revision_contents; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "mig_options" | ||||
| ( | ||||
|     name TEXT not null PRIMARY KEY, | ||||
|     value TEXT, | ||||
|     isSynced INTEGER default 0 not null, | ||||
|     utcDateCreated TEXT not null, | ||||
|     utcDateModified TEXT NOT NULL | ||||
| ); | ||||
|  | ||||
| INSERT INTO mig_options (name, value, isSynced, utcDateCreated, utcDateModified) | ||||
| SELECT name, value, isSynced, utcDateCreated, utcDateModified FROM options; | ||||
|  | ||||
| DROP TABLE options; | ||||
| ALTER TABLE mig_options RENAME TO options; | ||||
|  | ||||
| CREATE TABLE mig_recent_notes | ||||
| ( | ||||
|     noteId TEXT not null primary key, | ||||
|     notePath TEXT not null, | ||||
|     utcDateCreated TEXT not null, | ||||
|     isDeleted INT NOT NULL DEFAULT 0 | ||||
| ); | ||||
|  | ||||
| INSERT INTO mig_recent_notes (noteId, notePath, utcDateCreated, isDeleted) | ||||
| SELECT noteId, notePath, utcDateCreated, isDeleted FROM recent_notes; | ||||
|  | ||||
| DROP TABLE recent_notes; | ||||
| ALTER TABLE mig_recent_notes RENAME TO recent_notes; | ||||
| @@ -1,2 +0,0 @@ | ||||
| UPDATE options SET name = 'eraseEntitiesAfterTimeInSeconds' WHERE name = 'eraseNotesAfterTimeInSeconds'; | ||||
| UPDATE entity_changes SET entityId = 'eraseEntitiesAfterTimeInSeconds' WHERE entityName = 'options' AND entityId = 'eraseNotesAfterTimeInSeconds'; | ||||
| @@ -1,25 +0,0 @@ | ||||
| CREATE TABLE IF NOT EXISTS "mig_attributes" | ||||
| ( | ||||
|     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, | ||||
|     utcDateModified TEXT not null, | ||||
|     isDeleted    INT  not null, | ||||
|     `deleteId`    TEXT DEFAULT NULL, | ||||
|     isInheritable int DEFAULT 0 NULL); | ||||
|  | ||||
| INSERT INTO mig_attributes (attributeId, noteId, type, name, value, position, utcDateModified, isDeleted, deleteId, isInheritable) | ||||
| SELECT attributeId, noteId, type, name, value, position, utcDateModified, isDeleted, deleteId, isInheritable FROM attributes; | ||||
|  | ||||
| DROP TABLE attributes; | ||||
| ALTER TABLE mig_attributes RENAME TO attributes; | ||||
|  | ||||
| CREATE INDEX IDX_attributes_name_value | ||||
|     on attributes (name, value); | ||||
| CREATE INDEX IDX_attributes_noteId_index | ||||
|     on attributes (noteId); | ||||
| CREATE INDEX IDX_attributes_value_index | ||||
|     on attributes (value); | ||||
| @@ -1,5 +0,0 @@ | ||||
| DELETE FROM options WHERE name = 'keyboardShortcutsCreateNoteIntoInbox'; -- in case there is already one which shouldn't (except for in-dev documents) | ||||
| UPDATE options SET name = 'keyboardShortcutsCreateNoteIntoInbox' WHERE name = 'keyboardShortcutsCreateNoteIntoDayNote'; | ||||
|  | ||||
| DELETE FROM options WHERE name = 'keyboardShortcutsShowAttributes'; | ||||
| DELETE FROM entity_changes WHERE entityName = 'options' AND entityId = 'keyboardShortcutsShowAttributes'; | ||||
| @@ -1 +0,0 @@ | ||||
| DROP INDEX IDX_notes_isDeleted; | ||||
| @@ -1 +0,0 @@ | ||||
| VACUUM | ||||
| @@ -1,2 +0,0 @@ | ||||
| UPDATE options SET name = 'keyboardShortcutsQuickSearch' WHERE name = 'keyboardShortcutsSearchNotes'; | ||||
| UPDATE entity_changes SET entityId = 'keyboardShortcutsQuickSearch' WHERE entityId = 'keyboardShortcutsSearchNotes' AND entityName = 'options'; | ||||
| @@ -1,5 +0,0 @@ | ||||
| UPDATE entity_changes SET isSynced = COALESCE(( | ||||
|     SELECT options.isSynced | ||||
|     FROM options | ||||
|     WHERE options.name = entity_changes.entityId | ||||
| ), 0) WHERE entityName = 'options'; | ||||
| @@ -1,14 +0,0 @@ | ||||
| DELETE FROM entity_changes WHERE entityName = 'recent_notes'; | ||||
|  | ||||
| CREATE TABLE IF NOT EXISTS "mig_recent_notes" | ||||
| ( | ||||
|     noteId TEXT not null primary key, | ||||
|     notePath TEXT not null, | ||||
|     utcDateCreated TEXT not null | ||||
| ); | ||||
|  | ||||
| INSERT INTO mig_recent_notes (noteId, notePath, utcDateCreated) | ||||
|     SELECT noteId, notePath, utcDateCreated FROM recent_notes; | ||||
|  | ||||
| DROP TABLE recent_notes; | ||||
| ALTER TABLE mig_recent_notes RENAME TO recent_notes; | ||||
| @@ -1,25 +0,0 @@ | ||||
| const repository = require('../../src/services/repository'); | ||||
|  | ||||
| module.exports = () => { | ||||
|     for (const note of repository.getEntities("SELECT * FROM notes WHERE type = 'search' AND isProtected = 0 AND isDeleted = 0")) { | ||||
|         try { | ||||
|             let origContent = note.getJsonContent(); | ||||
|  | ||||
|             if (!origContent) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             note.addLabel('searchString', origContent.searchString); | ||||
|  | ||||
|             note.setContent(''); | ||||
|  | ||||
|             note.mime = 'text/plain'; | ||||
|             note.save(); | ||||
|  | ||||
|             console.log(`Migrated search note ${note.noteId}`); | ||||
|         } | ||||
|         catch (e) { | ||||
|             console.log(`Changing note content for note ${note.noteId} failed with: ${e.message} ${e.stack}`); | ||||
|         } | ||||
|     } | ||||
| }; | ||||
							
								
								
									
										15
									
								
								db/migrations/0184__add_excludeFromNoteMap_to_journal.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								db/migrations/0184__add_excludeFromNoteMap_to_journal.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| const becca = require('../../src/becca/becca'); | ||||
| const beccaLoader = require('../../src/becca/becca_loader'); | ||||
| const cls = require('../../src/services/cls'); | ||||
|  | ||||
| module.exports = () => { | ||||
|     cls.init(() => { | ||||
|         beccaLoader.load(); | ||||
|  | ||||
|         for (const note of Object.values(becca.notes)) { | ||||
|             if (note.hasLabel('calendarRoot')) { | ||||
|                 note.addLabel('excludeFromNoteMap', "", true); | ||||
|             } | ||||
|         } | ||||
|     }); | ||||
| }; | ||||
							
								
								
									
										4
									
								
								db/migrations/0185__migrate_black_theme_to_dark.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								db/migrations/0185__migrate_black_theme_to_dark.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| -- black theme has been removed, dark is closest replacement | ||||
| UPDATE options SET value = 'dark' WHERE name = 'theme' AND value = 'black'; | ||||
|  | ||||
| UPDATE options SET value = 'light' WHERE name = 'theme' AND value = 'white'; | ||||
| @@ -64,127 +64,6 @@ | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5 class="subsection-title">Properties:</h5> | ||||
|  | ||||
|      | ||||
|  | ||||
| <table class="props"> | ||||
|     <thead> | ||||
|     <tr> | ||||
|          | ||||
|         <th>Name</th> | ||||
|          | ||||
|  | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
|         <th class="last">Description</th> | ||||
|     </tr> | ||||
|     </thead> | ||||
|  | ||||
|     <tbody> | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>apiTokenId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">primary key</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>token</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>isDeleted</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">true if API token is deleted</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>utcDateCreated</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|     </tbody> | ||||
| </table> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
| @@ -214,7 +93,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_api_token.js.html">entities/api_token.js</a>, <a href="entities_api_token.js.html#line16">line 16</a> | ||||
|         <a href="becca_entities_api_token.js.html">becca/entities/api_token.js</a>, <a href="becca_entities_api_token.js.html#line9">line 9</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -248,16 +127,55 @@ | ||||
|     </div> | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Extends</h3> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Members</h3> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="apiTokenId"><span class="type-signature"></span>apiTokenId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li><a href="Entity.html">Entity</a></li> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| @@ -270,6 +188,164 @@ | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_api_token.js.html">becca/entities/api_token.js</a>, <a href="becca_entities_api_token.js.html#line18">line 18</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="token"><span class="type-signature"></span>token<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_api_token.js.html">becca/entities/api_token.js</a>, <a href="becca_entities_api_token.js.html#line20">line 20</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateCreated"><span class="type-signature"></span>utcDateCreated<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_api_token.js.html">becca/entities/api_token.js</a>, <a href="becca_entities_api_token.js.html#line22">line 22</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|      | ||||
|  | ||||
|      | ||||
| @@ -287,13 +363,13 @@ | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="Entity.html">Entity</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|  | ||||
| <footer> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
|   | ||||
| @@ -30,7 +30,8 @@ | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>Attribute<span class="signature">()</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|             <div class="class-description">Attribute is key value pair owned by a note.</div> | ||||
|             <div class="class-description">Attribute is an abstract concept which has two real uses - label (key - value pair) | ||||
| and relation (representing named relationship between source and target note)</div> | ||||
|          | ||||
|      | ||||
| </header> | ||||
| @@ -64,268 +65,6 @@ | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5 class="subsection-title">Properties:</h5> | ||||
|  | ||||
|      | ||||
|  | ||||
| <table class="props"> | ||||
|     <thead> | ||||
|     <tr> | ||||
|          | ||||
|         <th>Name</th> | ||||
|          | ||||
|  | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
|         <th class="last">Description</th> | ||||
|     </tr> | ||||
|     </thead> | ||||
|  | ||||
|     <tbody> | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>attributeId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>noteId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>type</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>name</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>value</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>position</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">int</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>isInheritable</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>isDeleted</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>deleteId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
| | | ||||
|  | ||||
| <span class="param-type">null</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">ID identifying delete transaction</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>utcDateModified</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|     </tbody> | ||||
| </table> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
| @@ -355,7 +94,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line25">line 25</a> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line13">line 13</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -389,16 +128,55 @@ | ||||
|     </div> | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Extends</h3> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Members</h3> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="attributeId"><span class="type-signature"></span>attributeId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li><a href="Entity.html">Entity</a></li> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| @@ -411,6 +189,504 @@ | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line44">line 44</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="isInheritable"><span class="type-signature"></span>isInheritable<span class="type-signature"> :boolean</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line56">line 56</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="name"><span class="type-signature"></span>name<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line50">line 50</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="noteId"><span class="type-signature"></span>noteId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line46">line 46</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="position"><span class="type-signature"></span>position<span class="type-signature"> :int</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">int</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line52">line 52</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="type"><span class="type-signature"></span>type<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line48">line 48</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateModified"><span class="type-signature"></span>utcDateModified<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line58">line 58</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="value"><span class="type-signature"></span>value<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line54">line 54</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|      | ||||
|  | ||||
|      | ||||
| @@ -470,7 +746,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line43">line 43</a> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line112">line 112</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -575,7 +851,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line50">line 50</a> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line119">line 119</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -680,7 +956,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line65">line 65</a> | ||||
|         <a href="becca_entities_attribute.js.html">becca/entities/attribute.js</a>, <a href="becca_entities_attribute.js.html#line134">line 134</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -744,13 +1020,13 @@ | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="Entity.html">Entity</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|  | ||||
| <footer> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
|   | ||||
| @@ -504,7 +504,7 @@ | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type"><a href="Entity.html">Entity</a></span> | ||||
| <span class="param-type">Entity</span> | ||||
|  | ||||
|  | ||||
|              | ||||
| @@ -663,7 +663,7 @@ | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line424">line 424</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line407">line 407</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1059,7 +1059,7 @@ JSON MIME type. See also createNewNote() for more options. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line217">line 217</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line200">line 200</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1226,7 +1226,7 @@ JSON MIME type. See also createNewNote() for more options. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line244">line 244</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line227">line 227</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1512,7 +1512,7 @@ JSON MIME type. See also createNewNote() for more options. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line272">line 272</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line255">line 255</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1717,7 +1717,7 @@ JSON MIME type. See also createNewNote() for more options. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line201">line 201</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line184">line 184</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -1899,7 +1899,7 @@ JSON MIME type. See also createNewNote() for more options. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line172">line 172</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line155">line 155</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -2100,7 +2100,7 @@ JSON MIME type. See also createNewNote() for more options. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line162">line 162</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line145">line 145</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -2251,7 +2251,7 @@ JSON MIME type. See also createNewNote() for more options. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line412">line 412</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line395">line 395</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -2357,7 +2357,7 @@ JSON MIME type. See also createNewNote() for more options. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line435">line 435</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line418">line 418</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -2827,7 +2827,7 @@ JSON MIME type. See also createNewNote() for more options. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line330">line 330</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line313">line 313</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -2884,361 +2884,6 @@ JSON MIME type. See also createNewNote() for more options. | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="getEntities"><span class="type-signature"></span>getEntities<span class="signature">(SQL, array)</span><span class="type-signature"> → {Array.<<a href="Entity.html">Entity</a>>}</span></h4> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Parameters:</h5> | ||||
|      | ||||
|  | ||||
| <table class="params"> | ||||
|     <thead> | ||||
|     <tr> | ||||
|          | ||||
|         <th>Name</th> | ||||
|          | ||||
|  | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
|         <th class="last">Description</th> | ||||
|     </tr> | ||||
|     </thead> | ||||
|  | ||||
|     <tbody> | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>SQL</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">query</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>array</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">Array.<?></span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">of params</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|     </tbody> | ||||
| </table> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line93">line 93</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <h5>Returns:</h5> | ||||
|  | ||||
|          | ||||
|  | ||||
|  | ||||
| <dl> | ||||
|     <dt> | ||||
|         Type | ||||
|     </dt> | ||||
|     <dd> | ||||
|          | ||||
| <span class="param-type">Array.<<a href="Entity.html">Entity</a>></span> | ||||
|  | ||||
|  | ||||
|     </dd> | ||||
| </dl> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="getEntity"><span class="type-signature"></span>getEntity<span class="signature">(SQL, array)</span><span class="type-signature"> → {<a href="Entity.html">Entity</a>|null}</span></h4> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
| <div class="description"> | ||||
|     Retrieves first entity from the SQL's result set. | ||||
| </div> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Parameters:</h5> | ||||
|      | ||||
|  | ||||
| <table class="params"> | ||||
|     <thead> | ||||
|     <tr> | ||||
|          | ||||
|         <th>Name</th> | ||||
|          | ||||
|  | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
|         <th class="last">Description</th> | ||||
|     </tr> | ||||
|     </thead> | ||||
|  | ||||
|     <tbody> | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>SQL</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">query</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>array</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">Array.<?></span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">of params</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|     </tbody> | ||||
| </table> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line85">line 85</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <h5>Returns:</h5> | ||||
|  | ||||
|          | ||||
|  | ||||
|  | ||||
| <dl> | ||||
|     <dt> | ||||
|         Type | ||||
|     </dt> | ||||
|     <dd> | ||||
|          | ||||
| <span class="param-type"><a href="Entity.html">Entity</a></span> | ||||
| | | ||||
|  | ||||
| <span class="param-type">null</span> | ||||
|  | ||||
|  | ||||
|     </dd> | ||||
| </dl> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="getInstanceName"><span class="type-signature"></span>getInstanceName<span class="signature">()</span><span class="type-signature"> → {string|null}</span></h4> | ||||
|      | ||||
|  | ||||
| @@ -3450,7 +3095,7 @@ if some action needs to happen on only one specific instance. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line357">line 357</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line340">line 340</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -3805,7 +3450,7 @@ if some action needs to happen on only one specific instance. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line141">line 141</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line124">line 124</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4003,7 +3648,7 @@ if some action needs to happen on only one specific instance. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line151">line 151</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line134">line 134</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4112,7 +3757,7 @@ if some action needs to happen on only one specific instance. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line321">line 321</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line304">line 304</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4221,7 +3866,7 @@ if some action needs to happen on only one specific instance. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line338">line 338</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line321">line 321</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4402,7 +4047,7 @@ if some action needs to happen on only one specific instance. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line348">line 348</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line331">line 331</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4560,7 +4205,7 @@ if some action needs to happen on only one specific instance. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line366">line 366</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line349">line 349</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4713,7 +4358,7 @@ if some action needs to happen on only one specific instance. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line313">line 313</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line296">line 296</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4850,7 +4495,7 @@ if some action needs to happen on only one specific instance. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line405">line 405</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line388">line 388</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4958,7 +4603,7 @@ if some action needs to happen on only one specific instance. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line430">line 430</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line413">line 413</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -4994,7 +4639,7 @@ if some action needs to happen on only one specific instance. | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="searchForNote"><span class="type-signature"></span>searchForNote<span class="signature">(searchString)</span><span class="type-signature"> → {<a href="Note.html">Note</a>|null}</span></h4> | ||||
|     <h4 class="name" id="searchForNote"><span class="type-signature"></span>searchForNote<span class="signature">(query, searchParams<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {<a href="Note.html">Note</a>|null}</span></h4> | ||||
|      | ||||
|  | ||||
|      | ||||
| @@ -5027,6 +4672,8 @@ if some action needs to happen on only one specific instance. | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|         <th>Attributes</th> | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
| @@ -5039,7 +4686,7 @@ if some action needs to happen on only one specific instance. | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>searchString</code></td> | ||||
|                 <td class="name"><code>query</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
| @@ -5052,6 +4699,47 @@ if some action needs to happen on only one specific instance. | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|                 <td class="attributes"> | ||||
|                  | ||||
|  | ||||
|                  | ||||
|  | ||||
|                  | ||||
|                 </td> | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>searchParams</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">Object</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|                 <td class="attributes"> | ||||
|                  | ||||
|                     <optional><br> | ||||
|                  | ||||
|  | ||||
|                  | ||||
|  | ||||
|                  | ||||
|                 </td> | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
| @@ -5096,7 +4784,7 @@ if some action needs to happen on only one specific instance. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line127">line 127</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line110">line 110</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -5298,7 +4986,7 @@ if some action needs to happen on only one specific instance. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line104">line 104</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line86">line 86</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -5507,7 +5195,7 @@ This method looks similar to toggleNoteInParent() but differs because we're look | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line386">line 386</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line369">line 369</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -5640,7 +5328,7 @@ This method looks similar to toggleNoteInParent() but differs because we're look | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line372">line 372</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line355">line 355</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -5846,7 +5534,7 @@ This method looks similar to toggleNoteInParent() but differs because we're look | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line184">line 184</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line167">line 167</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -6002,7 +5690,7 @@ exists, then we'll use that transaction. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line396">line 396</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line379">line 379</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -6157,7 +5845,7 @@ exists, then we'll use that transaction. | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line419">line 419</a> | ||||
|         <a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line402">line 402</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -6225,13 +5913,13 @@ exists, then we'll use that transaction. | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="Entity.html">Entity</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|  | ||||
| <footer> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
|   | ||||
| @@ -30,8 +30,8 @@ | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>Branch<span class="signature">()</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|             <div class="class-description">Branch represents note's placement in the tree - it's essentially pair of noteId and parentNoteId. | ||||
| Each note can have multiple (at least one) branches, meaning it can be placed into multiple places in the tree.</div> | ||||
|             <div class="class-description">Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple | ||||
| parents.</div> | ||||
|          | ||||
|      | ||||
| </header> | ||||
| @@ -65,268 +65,6 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5 class="subsection-title">Properties:</h5> | ||||
|  | ||||
|      | ||||
|  | ||||
| <table class="props"> | ||||
|     <thead> | ||||
|     <tr> | ||||
|          | ||||
|         <th>Name</th> | ||||
|          | ||||
|  | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
|         <th class="last">Description</th> | ||||
|     </tr> | ||||
|     </thead> | ||||
|  | ||||
|     <tbody> | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>branchId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">primary key, immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>noteId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>parentNoteId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">immutable</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>notePosition</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">int</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>prefix</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>isExpanded</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>isDeleted</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>deleteId</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
| | | ||||
|  | ||||
| <span class="param-type">null</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">ID identifying delete transaction</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>utcDateModified</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>utcDateCreated</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last"></td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|     </tbody> | ||||
| </table> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
| @@ -356,7 +94,7 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line24">line 24</a> | ||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line12">line 12</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -390,16 +128,45 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|     </div> | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Extends</h3> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Members</h3> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="branchId"><span class="type-signature"></span>branchId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li><a href="Entity.html">Entity</a></li> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| @@ -415,23 +182,37 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|      | ||||
|  | ||||
|      | ||||
|         <h3 class="subsection-title">Methods</h3> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line43">line 43</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="getNote"><span class="type-signature"></span>getNote<span class="signature">()</span><span class="type-signature"> → {<a href="Note.html">Note</a>|null}</span></h4> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <h4 class="name" id="childNote"><span class="type-signature"></span>childNote<span class="type-signature"></span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -471,7 +252,7 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line31">line 31</a> | ||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line85">line 85</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -487,58 +268,215 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <h5>Returns:</h5> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="isExpanded"><span class="type-signature"></span>isExpanded<span class="type-signature"> :boolean</span></h4> | ||||
|  | ||||
|  | ||||
| <dl> | ||||
|     <dt> | ||||
|         Type | ||||
|     </dt> | ||||
|     <dd> | ||||
|          | ||||
| <span class="param-type"><a href="Note.html">Note</a></span> | ||||
| | | ||||
|  | ||||
| <span class="param-type">null</span> | ||||
|  | ||||
|  | ||||
|     </dd> | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">boolean</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line53">line 53</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="noteId"><span class="type-signature"></span>noteId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="getParentNote"><span class="type-signature"></span>getParentNote<span class="signature">()</span><span class="type-signature"> → {<a href="Note.html">Note</a>|null}</span></h4> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line45">line 45</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="notePosition"><span class="type-signature"></span>notePosition<span class="type-signature"> :int</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">int</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line51">line 51</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="parentNote"><span class="type-signature"></span>parentNote<span class="type-signature"></span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -576,7 +514,7 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line36">line 36</a> | ||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line99">line 99</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
| @@ -592,42 +530,213 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <h5>Returns:</h5> | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="parentNoteId"><span class="type-signature"></span>parentNoteId<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
| <dl> | ||||
|     <dt> | ||||
|         Type | ||||
|     </dt> | ||||
|     <dd> | ||||
|          | ||||
| <span class="param-type"><a href="Note.html">Note</a></span> | ||||
| | | ||||
|  | ||||
| <span class="param-type">null</span> | ||||
|  | ||||
|  | ||||
|     </dd> | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line47">line 47</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="prefix"><span class="type-signature"></span>prefix<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line49">line 49</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|              | ||||
| <h4 class="name" id="utcDateModified"><span class="type-signature"></span>utcDateModified<span class="type-signature"> :string</span></h4> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Type:</h5> | ||||
|     <ul> | ||||
|         <li> | ||||
|              | ||||
| <span class="param-type">string</span> | ||||
|  | ||||
|  | ||||
|         </li> | ||||
|     </ul> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="becca_entities_branch.js.html">becca/entities/branch.js</a>, <a href="becca_entities_branch.js.html#line55">line 55</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|          | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| @@ -643,13 +752,13 @@ Each note can have multiple (at least one) branches, meaning it can be placed in | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="Entity.html">Entity</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|  | ||||
| <footer> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.7</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
|   | ||||
| @@ -1,227 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|     <meta charset="utf-8"> | ||||
|     <title>JSDoc: Class: Entity</title> | ||||
|  | ||||
|     <script src="scripts/prettify/prettify.js"> </script> | ||||
|     <script src="scripts/prettify/lang-css.js"> </script> | ||||
|     <!--[if lt IE 9]> | ||||
|       <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> | ||||
|     <![endif]--> | ||||
|     <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> | ||||
|     <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> | ||||
| </head> | ||||
|  | ||||
| <body> | ||||
|  | ||||
| <div id="main"> | ||||
|  | ||||
|     <h1 class="page-title">Class: Entity</h1> | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <section> | ||||
|  | ||||
| <header> | ||||
|      | ||||
|         <h2><span class="attribs"><span class="type-signature"></span></span>Entity<span class="signature">(row<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2> | ||||
|          | ||||
|      | ||||
| </header> | ||||
|  | ||||
| <article> | ||||
|     <div class="container-overview"> | ||||
|      | ||||
|          | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <h4 class="name" id="Entity"><span class="type-signature"></span>new Entity<span class="signature">(row<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|     <h5>Parameters:</h5> | ||||
|      | ||||
|  | ||||
| <table class="params"> | ||||
|     <thead> | ||||
|     <tr> | ||||
|          | ||||
|         <th>Name</th> | ||||
|          | ||||
|  | ||||
|         <th>Type</th> | ||||
|  | ||||
|          | ||||
|         <th>Attributes</th> | ||||
|          | ||||
|  | ||||
|          | ||||
|  | ||||
|         <th class="last">Description</th> | ||||
|     </tr> | ||||
|     </thead> | ||||
|  | ||||
|     <tbody> | ||||
|      | ||||
|  | ||||
|         <tr> | ||||
|              | ||||
|                 <td class="name"><code>row</code></td> | ||||
|              | ||||
|  | ||||
|             <td class="type"> | ||||
|              | ||||
|                  | ||||
| <span class="param-type">object</span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             </td> | ||||
|  | ||||
|              | ||||
|                 <td class="attributes"> | ||||
|                  | ||||
|                     <optional><br> | ||||
|                  | ||||
|  | ||||
|                  | ||||
|  | ||||
|                  | ||||
|                 </td> | ||||
|              | ||||
|  | ||||
|              | ||||
|  | ||||
|             <td class="description last">database row representing given entity</td> | ||||
|         </tr> | ||||
|  | ||||
|      | ||||
|     </tbody> | ||||
| </table> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| <dl class="details"> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|     <dt class="tag-source">Source:</dt> | ||||
|     <dd class="tag-source"><ul class="dummy"><li> | ||||
|         <a href="entities_entity.js.html">entities/entity.js</a>, <a href="entities_entity.js.html#line10">line 10</a> | ||||
|     </li></ul></dd> | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </dl> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|      | ||||
|     </div> | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
|  | ||||
|      | ||||
| </article> | ||||
|  | ||||
| </section> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <nav> | ||||
|     <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-sql.html">sql</a></li></ul><h3>Classes</h3><ul><li><a href="ApiToken.html">ApiToken</a></li><li><a href="Attribute.html">Attribute</a></li><li><a href="BackendScriptApi.html">BackendScriptApi</a></li><li><a href="Branch.html">Branch</a></li><li><a href="Entity.html">Entity</a></li><li><a href="Note.html">Note</a></li><li><a href="NoteRevision.html">NoteRevision</a></li><li><a href="Option.html">Option</a></li><li><a href="RecentNote.html">RecentNote</a></li></ul><h3><a href="global.html">Global</a></h3> | ||||
| </nav> | ||||
|  | ||||
| <br class="clear"> | ||||
|  | ||||
| <footer> | ||||
|     Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> | ||||
| </footer> | ||||
|  | ||||
| <script> prettyPrint(); </script> | ||||
| <script src="scripts/linenumber.js"> </script> | ||||
| </body> | ||||
| </html> | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user