tiro-notes 0.27.37 → 0.27.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +74 -69
- package/client/appicons/tiro_icon.icns +0 -0
- package/client/appicons/tiro_icon.ico +0 -0
- package/client/appicons/tiro_icon.png +0 -0
- package/client/asset-manifest.json +5 -5
- package/client/index.html +1 -1
- package/client/static/js/{4.de802939.chunk.js → 4.8778fc23.chunk.js} +2 -2
- package/client/static/js/{4.de802939.chunk.js.LICENSE.txt → 4.8778fc23.chunk.js.LICENSE.txt} +0 -0
- package/client/static/js/main.4ed9feab.chunk.js +1 -0
- package/package.json +1 -1
- package/server/server.js +1 -1
- package/client/static/js/main.3ac3574a.chunk.js +0 -1
package/README.md
CHANGED
|
@@ -1,100 +1,105 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Tiro Notes
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Open-source, fast and supercharged markdown editor to be used anywhere
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+

|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## WHY
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Tiro Notes is designed to be a viable open source alternative to proprietary software like Evernote, OneNote etc.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Tiro Notes focus points are :
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
- Web-based (can be installed on a server, accessed on any device with a browser)
|
|
16
|
-
- Windows/Mac/Linux standalone applications
|
|
17
|
-
- Can be installed on Android with termux
|
|
13
|
+
- 👼 **Open source & free**: Code is open source, free forever. Optimistically reaching a GNU GPLv3 license in the future.
|
|
14
|
+
- 👑 **Own your data**: No database, no hidden ties. Markdown files only. You can edit and sync your files with external software as you need.
|
|
18
15
|
|
|
19
|
-
## INSTALLATION
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
- you need ripgrep installed (https://github.com/BurntSushi/ripgrep)
|
|
17
|
+
- 🚅 **Fast**: Search is really fast (using ripgrep). You can scroll list of several thousands of items without slowdown.
|
|
18
|
+
- 💅 **Nice**: Usability & nice user experience is key aspect of Tiro.
|
|
24
19
|
|
|
25
|
-
```
|
|
26
|
-
npx tiro-notes (-p, --port 3023)
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
- Go to localhost:3023
|
|
30
20
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
Mac/Linux/Windows Electron Apps coming soon...
|
|
21
|
+
- 📟 **Use it anywhere** : Apps for Windows, Mac, Linux. You can install and start Tiro within seconds with npx. You can install it on Android and iOS. You can use it as web server and use it with any device with a browser.
|
|
22
|
+
- 🏋 **Extensible** : custom and extensible markdown tags like [[latex]] or [[script]] or with third party plugins (planned).
|
|
34
23
|
|
|
24
|
+
## FUNCTIONALITIES
|
|
25
|
+
<details>
|
|
26
|
+
<summary>Expand all functionalities</summary>
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
**Note Edition**
|
|
30
|
+
- 🖊️ Mardown notes edition
|
|
31
|
+
- 🌄 Drag and Drop images & files upload (stored in a relative .resources folder)
|
|
32
|
+
- 🔗 Notes linking
|
|
33
|
+
- 🔑 End to end (E2E) note encryption (RSA 2048)
|
|
34
|
+
- 🏛 Note changes history
|
|
35
|
+
- 📄 Export to PDF
|
|
36
|
+
- 🏋 Embed videos and other web content (with iframe)
|
|
37
|
+
- 🏋 create javascript applications within your note with [[script]]
|
|
38
|
+
- 💱 display math formulas with [[latex]]
|
|
39
|
+
- (🔧) 💬 Text to Speech (beta)
|
|
40
|
+
- (🔧) 🧬 display UML and other diagrams with [[diagram]] (planned...)
|
|
41
|
+
- (🔧) 📡 Server Collaborative edition (planned...)
|
|
35
42
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
43
|
+
**Search**
|
|
44
|
+
- 🔍 Fast search (~2s for 30k notes)
|
|
45
|
+
- 🔬 Search filters (intitle: etc...)
|
|
39
46
|
|
|
40
|
-
|
|
47
|
+
**Folders Tree & Notes List**
|
|
48
|
+
- 🗂️ Folders management (create/rename/move/delete)
|
|
49
|
+
- 🏎️ Fast Notes List (can display 10k files without slowdown)
|
|
50
|
+
- 🧮 Notes List sorting (date creation/date modification/name)
|
|
51
|
+
- 👁️ Note preview in Notes List (with image and text)
|
|
52
|
+
- 📤 Last notes edited
|
|
53
|
+
- 🌄 Images list view
|
|
41
54
|
|
|
42
|
-
|
|
55
|
+
**Security**
|
|
56
|
+
- 🔒 Application login (user/password)
|
|
57
|
+
- 🔒 HTTPS support (with self signed certificate)
|
|
43
58
|
|
|
44
|
-
|
|
59
|
+
**Platforms**
|
|
60
|
+
- 💻 Windows/Mac/Linux applications
|
|
61
|
+
- 🥷 10 seconds install & start with command line NPX
|
|
62
|
+
- 📱 Install on Android with Termux and NPX
|
|
63
|
+
- ☁️ Use it as a local application, as a local or cloud server.
|
|
64
|
+
- 📟 Use it on any device with a browser (Mobile, tablet and Desktop interface)
|
|
65
|
+
- (🔧)📱 Install on iOS with iSH and NPX (to be tested...)
|
|
66
|
+
</details>
|
|
45
67
|
|
|
46
|
-
##
|
|
68
|
+
## USAGE
|
|
69
|
+
### 1) COMMAND LINE
|
|
70
|
+
- Requirements : [NodeJs](https://nodejs.org/en/download/) and [RipGrep](https://github.com/BurntSushi/ripgrep)
|
|
47
71
|
|
|
48
72
|
```
|
|
49
|
-
|
|
50
|
-
|---------------------+-----------------------------------+---------|
|
|
51
|
-
| TYPE | FUNCTION | STATUS |
|
|
52
|
-
|---------------------+-----------------------------------+---------|
|
|
53
|
-
| Note Edition | markdown dual editor | OK |
|
|
54
|
-
| | note id, note tags, note link | OK |
|
|
55
|
-
| | attach image/document | OK |
|
|
56
|
-
| | drag and drop | OK |
|
|
57
|
-
| | note encryption | OK |
|
|
58
|
-
| | note images as slideshow | OK |
|
|
59
|
-
| | [[latex]] support | OK |
|
|
60
|
-
| | [[script]] support | OK |
|
|
61
|
-
| | note history | OK |
|
|
62
|
-
| | note download (pdf via print) | Beta |
|
|
63
|
-
| | text to speech | Beta |
|
|
64
|
-
| | collaborative edition | Planned |
|
|
65
|
-
|---------------------+-----------------------------------+---------|
|
|
66
|
-
| Notes list | Notes Infinite scroll list | OK |
|
|
67
|
-
| | Image gallery view | OK |
|
|
68
|
-
| | Sort List | OK |
|
|
69
|
-
| | Last Notes edited (per device) | OK |
|
|
70
|
-
| | Notes Management (CRUD) | OK |
|
|
71
|
-
| | Folder management (CRUD) | OK |
|
|
72
|
-
|---------------------+-----------------------------------+---------|
|
|
73
|
-
| Note Search | Searching note from content | OK |
|
|
74
|
-
| | Searching note from title | OK |
|
|
75
|
-
|---------------------+-----------------------------------+---------|
|
|
76
|
-
| Desktop Application | Nodejs application | OK |
|
|
77
|
-
| | Windows/Mac/linux | ... |
|
|
78
|
-
| | Cli via NPX | ... |
|
|
79
|
-
|---------------------+-----------------------------------+---------|
|
|
80
|
-
| Mobile Applications | Android (via termux) | OK |
|
|
81
|
-
| | Mobile/tablet interface | OK |
|
|
82
|
-
|---------------------+-----------------------------------+---------|
|
|
83
|
-
| Other | Application login (user/password) | OK |
|
|
84
|
-
| | | |
|
|
85
|
-
|---------------------+-----------------------------------+---------|
|
|
73
|
+
npx tiro-notes
|
|
86
74
|
```
|
|
87
75
|
|
|
76
|
+
<img src="https://user-images.githubusercontent.com/2981891/159723396-b5e81dcd-a4aa-4581-9b7f-e3b62bcdef65.gif" width="600"/>
|
|
77
|
+
|
|
78
|
+
This works with any platform/device, including unrooted Android with [Termux](https://termux.com) and possibly iOS with iSH (untested)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
### 2) APPS (Coming...)
|
|
82
|
+
Mac/Linux/Windows Electron Apps coming soon...
|
|
83
|
+
|
|
88
84
|
# FAQ
|
|
89
85
|
|
|
90
86
|
## How can I sync my notes folder on other devices?
|
|
91
87
|
You can use any sync solution like dropbox, google drive, resilio sync, syncthings etc...
|
|
92
88
|
|
|
93
89
|
## Can I edit my notes on another application?
|
|
94
|
-
Yes, all the datas Tiro uses is coming from markdown notes
|
|
90
|
+
Yes, all the datas Tiro uses is coming from markdown notes. So you can edit your notes in other applications without any problem.
|
|
95
91
|
|
|
96
92
|
## How can I access to Tiro on my device
|
|
97
93
|
1) Device where tiro is installed : http://localhost:3023
|
|
98
94
|
2) If on same local network: http://192.168.xx.xx:3023 where that ip is the ip of the device where tiro is installed
|
|
99
|
-
3) Not on same network : Tiro works great using SSH tunneling, AutoSSH or similar (free ssh tunnels solutions exists like https://opentunnel.net/)
|
|
95
|
+
3) Not on same network : Tiro works great using SSH tunneling, AutoSSH or similar (free ssh tunnels solutions exists like https://opentunnel.net/). Npx tiro-notes also includes a --tunnel option for easy tunneling.
|
|
96
|
+
|
|
97
|
+
## What is the current status of Tiro Notes?
|
|
98
|
+
I have been developing it for over a year and using it as my daily note app for over 6 months now, its core functionalities seems stable enough for my use so far.
|
|
99
|
+
I haven't been loosing any data so far, and there is always the history note functionality in that case.
|
|
100
100
|
|
|
101
|
+
However, I consider that application still in alpha phase, it still needs a lot of testing to be considered robust.
|
|
102
|
+
|
|
103
|
+
So use it at your own risk, and always with data you can afford to lose.
|
|
104
|
+
|
|
105
|
+
I am not responsible of any data loss!
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"files": {
|
|
3
3
|
"static/js/0.40037241.chunk.js": "/static/js/0.40037241.chunk.js",
|
|
4
4
|
"static/js/1.38ac7bc7.chunk.js": "/static/js/1.38ac7bc7.chunk.js",
|
|
5
|
-
"main.js": "/static/js/main.
|
|
5
|
+
"main.js": "/static/js/main.4ed9feab.chunk.js",
|
|
6
6
|
"runtime-main.js": "/static/js/runtime-main.22f9cc81.js",
|
|
7
7
|
"static/css/4.f758ca10.chunk.css": "/static/css/4.f758ca10.chunk.css",
|
|
8
|
-
"static/js/4.
|
|
8
|
+
"static/js/4.8778fc23.chunk.js": "/static/js/4.8778fc23.chunk.js",
|
|
9
9
|
"static/js/5.50de1ade.chunk.js": "/static/js/5.50de1ade.chunk.js",
|
|
10
10
|
"static/js/6.45fa190b.chunk.js": "/static/js/6.45fa190b.chunk.js",
|
|
11
11
|
"static/js/7.26d043b6.chunk.js": "/static/js/7.26d043b6.chunk.js",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"static/js/76.bdaad737.chunk.js": "/static/js/76.bdaad737.chunk.js",
|
|
81
81
|
"static/js/77.46998b3c.chunk.js": "/static/js/77.46998b3c.chunk.js",
|
|
82
82
|
"index.html": "/index.html",
|
|
83
|
-
"static/js/4.
|
|
83
|
+
"static/js/4.8778fc23.chunk.js.LICENSE.txt": "/static/js/4.8778fc23.chunk.js.LICENSE.txt",
|
|
84
84
|
"static/js/70.0c986255.chunk.js.LICENSE.txt": "/static/js/70.0c986255.chunk.js.LICENSE.txt",
|
|
85
85
|
"static/media/codicon.css": "/static/media/codicon.0e0f4555.ttf",
|
|
86
86
|
"static/media/compact-disc-solid.55b6e50c.svg": "/static/media/compact-disc-solid.55b6e50c.svg",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"entrypoints": [
|
|
104
104
|
"static/js/runtime-main.22f9cc81.js",
|
|
105
105
|
"static/css/4.f758ca10.chunk.css",
|
|
106
|
-
"static/js/4.
|
|
107
|
-
"static/js/main.
|
|
106
|
+
"static/js/4.8778fc23.chunk.js",
|
|
107
|
+
"static/js/main.4ed9feab.chunk.js"
|
|
108
108
|
]
|
|
109
109
|
}
|
package/client/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><title>Tiro</title><link href="/static/css/4.f758ca10.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function t(t){for(var n,o,f=t[0],d=t[1],b=t[2],i=0,l=[];i<f.length;i++)o=f[i],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&l.push(a[o][0]),a[o]=0;for(n in d)Object.prototype.hasOwnProperty.call(d,n)&&(e[n]=d[n]);for(u&&u(t);l.length;)l.shift()();return c.push.apply(c,b||[]),r()}function r(){for(var e,t=0;t<c.length;t++){for(var r=c[t],n=!0,f=1;f<r.length;f++){var d=r[f];0!==a[d]&&(n=!1)}n&&(c.splice(t--,1),e=o(o.s=r[0]))}return e}var n={},a={3:0},c=[];function o(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,o),r.l=!0,r.exports}o.e=function(e){var t=[],r=a[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=a[e]=[t,n]}));t.push(r[2]=n);var c,f=document.createElement("script");f.charset="utf-8",f.timeout=120,o.nc&&f.setAttribute("nonce",o.nc),f.src=function(e){return o.p+"static/js/"+({}[e]||e)+"."+{0:"40037241",1:"38ac7bc7",5:"50de1ade",6:"45fa190b",7:"26d043b6",8:"1dbff36b",9:"31e31d33",10:"c848e026",11:"660cc979",12:"7aded118",13:"a80d8e33",14:"f2d8ffae",15:"fbf2a8f7",16:"960345fd",17:"5c9c9b1f",18:"dbde1501",19:"1029cf37",20:"32bdbb62",21:"375c5cf1",22:"f10fbc1b",23:"810dbe72",24:"3b01dde7",25:"410d995e",26:"cb89acda",27:"47d45a66",28:"76b97580",29:"b82ef713",30:"cf5da418",31:"18a57c2f",32:"50db76e6",33:"27731945",34:"31414215",35:"db6b604e",36:"39a5380e",37:"8230c448",38:"bd36e3c2",39:"a31499d6",40:"e2b07aca",41:"4aee5b37",42:"8e99f687",43:"4bf4b241",44:"2d850d0b",45:"7532c4e4",46:"9820f7e4",47:"1bc9b4bc",48:"c07bda49",49:"f9bdaed2",50:"7e7891fe",51:"cfcb97d5",52:"4878cb2a",53:"ebe84207",54:"687e0d9d",55:"8a2e699e",56:"dfdbe6e5",57:"96c3f7a8",58:"a4bc3531",59:"a09faea0",60:"da4455c4",61:"fe1a22fd",62:"ccd5662c",63:"5c3752a8",64:"682a1b2c",65:"c3849163",66:"70c573a9",67:"79c606aa",68:"d3c72da9",69:"873139bf",70:"0c986255",71:"0e2b96ff",72:"b2416b54",73:"0bda3749",74:"a0f5182f",75:"8ac1b164",76:"bdaad737",77:"46998b3c"}[e]+".chunk.js"}(e);var d=new Error;c=function(t){f.onerror=f.onload=null,clearTimeout(b);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;d.message="Loading chunk "+e+" failed.\n("+n+": "+c+")",d.name="ChunkLoadError",d.type=n,d.request=c,r[1](d)}a[e]=void 0}};var b=setTimeout((function(){c({type:"timeout",target:f})}),12e4);f.onerror=f.onload=c,document.head.appendChild(f)}return Promise.all(t)},o.m=e,o.c=n,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)o.d(r,n,function(t){return e[t]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="/",o.oe=function(e){throw console.error(e),e};var f=this["webpackJsonptiro-notes-client"]=this["webpackJsonptiro-notes-client"]||[],d=f.push.bind(f);f.push=t,f=f.slice();for(var b=0;b<f.length;b++)t(f[b]);var u=d;r()}([])</script><script src="/static/js/4.
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><title>Tiro</title><link href="/static/css/4.f758ca10.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function t(t){for(var n,o,f=t[0],d=t[1],b=t[2],i=0,l=[];i<f.length;i++)o=f[i],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&l.push(a[o][0]),a[o]=0;for(n in d)Object.prototype.hasOwnProperty.call(d,n)&&(e[n]=d[n]);for(u&&u(t);l.length;)l.shift()();return c.push.apply(c,b||[]),r()}function r(){for(var e,t=0;t<c.length;t++){for(var r=c[t],n=!0,f=1;f<r.length;f++){var d=r[f];0!==a[d]&&(n=!1)}n&&(c.splice(t--,1),e=o(o.s=r[0]))}return e}var n={},a={3:0},c=[];function o(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,o),r.l=!0,r.exports}o.e=function(e){var t=[],r=a[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=a[e]=[t,n]}));t.push(r[2]=n);var c,f=document.createElement("script");f.charset="utf-8",f.timeout=120,o.nc&&f.setAttribute("nonce",o.nc),f.src=function(e){return o.p+"static/js/"+({}[e]||e)+"."+{0:"40037241",1:"38ac7bc7",5:"50de1ade",6:"45fa190b",7:"26d043b6",8:"1dbff36b",9:"31e31d33",10:"c848e026",11:"660cc979",12:"7aded118",13:"a80d8e33",14:"f2d8ffae",15:"fbf2a8f7",16:"960345fd",17:"5c9c9b1f",18:"dbde1501",19:"1029cf37",20:"32bdbb62",21:"375c5cf1",22:"f10fbc1b",23:"810dbe72",24:"3b01dde7",25:"410d995e",26:"cb89acda",27:"47d45a66",28:"76b97580",29:"b82ef713",30:"cf5da418",31:"18a57c2f",32:"50db76e6",33:"27731945",34:"31414215",35:"db6b604e",36:"39a5380e",37:"8230c448",38:"bd36e3c2",39:"a31499d6",40:"e2b07aca",41:"4aee5b37",42:"8e99f687",43:"4bf4b241",44:"2d850d0b",45:"7532c4e4",46:"9820f7e4",47:"1bc9b4bc",48:"c07bda49",49:"f9bdaed2",50:"7e7891fe",51:"cfcb97d5",52:"4878cb2a",53:"ebe84207",54:"687e0d9d",55:"8a2e699e",56:"dfdbe6e5",57:"96c3f7a8",58:"a4bc3531",59:"a09faea0",60:"da4455c4",61:"fe1a22fd",62:"ccd5662c",63:"5c3752a8",64:"682a1b2c",65:"c3849163",66:"70c573a9",67:"79c606aa",68:"d3c72da9",69:"873139bf",70:"0c986255",71:"0e2b96ff",72:"b2416b54",73:"0bda3749",74:"a0f5182f",75:"8ac1b164",76:"bdaad737",77:"46998b3c"}[e]+".chunk.js"}(e);var d=new Error;c=function(t){f.onerror=f.onload=null,clearTimeout(b);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;d.message="Loading chunk "+e+" failed.\n("+n+": "+c+")",d.name="ChunkLoadError",d.type=n,d.request=c,r[1](d)}a[e]=void 0}};var b=setTimeout((function(){c({type:"timeout",target:f})}),12e4);f.onerror=f.onload=c,document.head.appendChild(f)}return Promise.all(t)},o.m=e,o.c=n,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)o.d(r,n,function(t){return e[t]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="/",o.oe=function(e){throw console.error(e),e};var f=this["webpackJsonptiro-notes-client"]=this["webpackJsonptiro-notes-client"]||[],d=f.push.bind(f);f.push=t,f=f.slice();for(var b=0;b<f.length;b++)t(f[b]);var u=d;r()}([])</script><script src="/static/js/4.8778fc23.chunk.js"></script><script src="/static/js/main.4ed9feab.chunk.js"></script></body></html>
|