importer: initialize package

This commit is contained in:
ammarahm-ed
2021-08-26 12:38:47 +05:00
parent aa96181609
commit ca90a4c5c0
32 changed files with 5087 additions and 0 deletions

BIN
.DS_Store vendored

Binary file not shown.

3
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"git.ignoreLimitWarning": true
}

BIN
packages/.DS_Store vendored Normal file

Binary file not shown.

1
packages/importer/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
node_modules/

View File

@@ -0,0 +1,382 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`convert evernote note enex file: evernote-note 1`] = `
Array [
Object {
"content": Object {
"data": "en-note&gt;<div><span style=\\"font-family: &quot;Helvetica Neue&quot;;\\"><span style=\\"font-size: 16px;\\"><i><span style=\\"color:rgb(0, 0, 0);\\">Most analytical, interpretive, or persuasive essays tend to follow the same basic pattern. This structure should help you formulate effective outlines for most essays.</span></i></span></span></div><div><br></div><hr><div><b><span style=\\"font-size: 18px;\\">Introduction</span></b></div><ol><li><div><span style=\\"font-family: &quot;Helvetica Neue&quot;;\\"><span style=\\"font-size: 14px;\\">Sentence to get the attention of your readers:</span></span></div></li><li><div>One-sentence thesis statement:</div></li></ol><div><br></div><div><b><span style=\\"font-size: 18px;\\">Body</span></b></div><ol><li><div><i>First Main Idea</i></div></li><ol><li><div>Supporting evidence #1</div></li><li><div>Supporting evidence #2</div></li><li><div>Supporting evidence #3</div></li></ol><li><div><i>Second Main Idea: </i></div><img src=\\"
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
6Ndm9YIoofWbqXMRfWkchX8A/kdLJNIm9+oh+zX5fdPkewM/nvumjvFXgbcgUc8a1H5vHQX4POC8OAqnATsD+wH7opuWnGQWktJ4HnBB0Gqr1GQbxYDGSCjY
35EQz9WQEMtNkJYZvdviA+TMQRa3jyDtvv6OKOSXAA9Wc+lOTgUWUZQ3bspXjCgTmtEXLmU8RnecfWaYhXZ7ZDHSdMbtt1CW24HPd7alEUPmFj3b6mR7Rz+L
GCmv7Gx/Ryy4o1Qg8vAT9CJxJu2ZqZOL0Hsnj1o5BzEsa13/qCNQdkRnDqgzcgYkikczVzXLc3Q3et+7b46Du2juvYHk6x5e8zX8Br0x9ma+ClrtOXEUbobe
Wt6rSM+g1Z4DnA2cHUdhBKwBbIronpt2ttUZ/j6ag+ic3e2hnv+/E1HIb6/gFrxb9C/OfGV9UUQZ727PUP/kYhiGMSoCJKVmqZ5tMcQb/lhnexzpYW4YhmEY
hmFkoFN5fjFgJrBk578zkVpBXSX8ibyh6YZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZh
GIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZh
GIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZh
GIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZh
GIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZh
GIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIaToO4LMAzDMNRYGVgm8dnNwGzHvqsAS2fc1zAMIysrdLYudwJP1HQt48a6wCI9/54D3FTTtdTJi4DlEp/d
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
YII=
\\" width=\\"1000\\" height=\\"186\\"></li><li><div><br></div></li><ol><li><div>Supporting evidence #1 </div></li><li><div>Supporting evidence #2</div></li><li><div>Supporting evidence #3</div></li></ol><li><div><i>Third Main Idea:</i></div></li><ol><li><div>Supporting evidence #1</div></li><li><div>Supporting evidence #2</div></li><li><div>Supporting evidence #3</div></li></ol></ol><div><br></div><div><b><span style=\\"font-family: &quot;Helvetica Neue&quot;;\\"><span style=\\"font-size: 18px;\\"><span style=\\"color:rgb(0, 0, 0);\\">Conclusion:</span></span></span></b></div><ol><li><div><span style=\\"font-family: &quot;Helvetica Neue&quot;;\\">Restate of your thesis:</span></div></li><li><div><span style=\\"font-family: &quot;Helvetica Neue&quot;;\\">Insightful sentence to end your essay:</span></div></li></ol><div><br></div><div><br></div>",
"type": "html",
},
"dateCreated": 1621209742000,
"dateEdited": 1621651154000,
"tags": Array [
"hello",
"world",
"one",
"go",
],
"title": "Essay Outline",
},
]
`;
exports[`convert evernote notebook enex file: evernote-notebook 1`] = `
Array [
Object {
"content": Object {
"data": "en-note&gt;<div>grgffggnm ffg s</div>",
"type": "html",
},
"dateCreated": 1621209197000,
"dateEdited": 1621209208000,
"notebooks": Array [
Object {
"notebook": "First Notebook",
"topic": "All notes",
},
],
"title": "dsfdsfsf",
},
Object {
"content": Object {
"data": "en-note&gt;<div>grgffggnm ffg s</div>",
"type": "html",
},
"dateCreated": 1621209742000,
"dateEdited": 1621209742000,
"notebooks": Array [
Object {
"notebook": "First Notebook",
"topic": "All notes",
},
],
"title": "Essay Outline",
},
Object {
"content": Object {
"data": "en-note&gt;<div>grgffggnm ffg s</div>",
"type": "html",
},
"dateCreated": 1621209120000,
"dateEdited": 1621209722000,
"notebooks": Array [
Object {
"notebook": "First Notebook",
"topic": "All notes",
},
],
"title": "kbjbdserwr",
},
]
`;

View File

@@ -0,0 +1,15 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`convert evernote note enex file: html-file 1`] = `
Array [
Object {
"content": Object {
"data": "<p>Hello world</p>",
"type": "html",
},
"dateCreated": 0,
"dateEdited": 0,
"title": "world",
},
]
`;

View File

@@ -0,0 +1,17 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`convert evernote note enex file: markdown-file 1`] = `
Array [
Object {
"content": Object {
"data": "<h1 id=\\"helloworld\\">Hello world</h1>
<pre><code> This is a note
</code></pre>",
"type": "html",
},
"dateCreated": 0,
"dateEdited": 0,
"title": "world",
},
]
`;

View File

@@ -0,0 +1,51 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`convert simplenote backup zip file: simplenote-backup 1`] = `
Array [
Object {
"content": Object {
"data": "<ol>
<li>We Create</li>
<li>We Contribute</li>
<li>We Blog</li>
<li>We Help</li>
<li>We Love Coding</li>
<li>Work with us</li>
<li>Our Team</li>
<li>What we can do</li>
<li>Careers</li>
<li>Blog Page</li>
</ol>",
"type": "html",
},
"dateCreated": "2019-09-25T19:12:04.794Z",
"dateEdited": undefined,
"pinned": true,
"title": "KEYWORDS LIST OF MINT PLAYER",
},
Object {
"content": Object {
"data": "<ol>
<li>We Create</li>
<li>We Contribute</li>
<li>We Blog</li>
<li>We Help</li>
<li>We Love Coding</li>
<li>Work with us</li>
<li>Our Team</li>
<li>What we can do</li>
<li>Careers</li>
<li>Blog Page</li>
</ol>",
"type": "html",
},
"dateCreated": "2019-09-21T17:43:30.648Z",
"dateEdited": undefined,
"tags": Array [
"cow",
"hello",
],
"title": "List of Pages",
},
]
`;

View File

@@ -0,0 +1,15 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`convert evernote note enex file: text-file 1`] = `
Array [
Object {
"content": Object {
"data": "<p>Hello world</p>",
"type": "text",
},
"dateCreated": 0,
"dateEdited": 0,
"title": "world",
},
]
`;

View File

@@ -0,0 +1,14 @@
const evernote = require("../providers/evernote");
const utils = require("./utils");
test("convert evernote note enex file", () => {
let file = utils.getFile("Essay Outline.enex");
expect(evernote.convert([file])).toMatchSnapshot("evernote-note");
});
test("convert evernote notebook enex file", () => {
let file = utils.getFile("First Notebook.enex");
expect(evernote.convert([file])).toMatchSnapshot("evernote-notebook");
});

View File

@@ -0,0 +1,343 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-export SYSTEM "http://xml.evernote.com/pub/evernote-export4.dtd">
<en-export export-date="20210622T074022Z" application="Evernote" version="10.13.4">
<note>
<title>Essay Outline</title>
<created>20210517T050222Z</created>
<updated>20210522T073914Z</updated>
<tag>hello</tag>
<tag>world</tag>
<tag>one</tag>
<tag>go</tag>
<note-attributes>
<author>Ammar Ahmed</author>
</note-attributes>
<content>
<![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"><en-note><div><span style="font-family: &quot;Helvetica Neue&quot;;"><span style="font-size: 16px;"><i><span style="color:rgb(0, 0, 0);">Most analytical, interpretive, or persuasive essays tend to follow the same basic pattern. This structure should help you formulate effective outlines for most essays.</span></i></span></span></div><div><br /></div><hr /><div><b><span style="font-size: 18px;">Introduction</span></b></div><ol><li><div><span style="font-family: &quot;Helvetica Neue&quot;;"><span style="font-size: 14px;">Sentence to get the attention of your readers:</span></span></div></li><li><div>One-sentence thesis statement:</div></li></ol><div><br /></div><div><b><span style="font-size: 18px;">Body</span></b></div><ol><li><div><i>First Main Idea</i></div></li><ol><li><div>Supporting evidence #1</div></li><li><div>Supporting evidence #2</div></li><li><div>Supporting evidence #3</div></li></ol><li><div><i>Second Main Idea: </i></div><en-media style="--en-naturalWidth:1000; --en-naturalHeight:186;" width="nullpx" hash="50eb3fde4afbf9251f064e364d419143" type="image/png" /></li><li><div><br /></div></li><ol><li><div>Supporting evidence #1 </div></li><li><div>Supporting evidence #2</div></li><li><div>Supporting evidence #3</div></li></ol><li><div><i>Third Main Idea:</i></div></li><ol><li><div>Supporting evidence #1</div></li><li><div>Supporting evidence #2</div></li><li><div>Supporting evidence #3</div></li></ol></ol><div><br /></div><div><b><span style="font-family: &quot;Helvetica Neue&quot;;"><span style="font-size: 18px;"><span style="color:rgb(0, 0, 0);">Conclusion:</span></span></span></b></div><ol><li><div><span style="font-family: &quot;Helvetica Neue&quot;;">Restate of your thesis:</span></div></li><li><div><span style="font-family: &quot;Helvetica Neue&quot;;">Insightful sentence to end your essay:</span></div></li></ol><div><br /></div><div><br /></div></en-note> ]]>
</content>
<resource>
<data encoding="base64">
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
6Ndm9YIoofWbqXMRfWkchX8A/kdLJNIm9+oh+zX5fdPkewM/nvumjvFXgbcgUc8a1H5vHQX4POC8OAqnATsD+wH7opuWnGQWktJ4HnBB0Gqr1GQbxYDGSCjY
35EQz9WQEMtNkJYZvdviA+TMQRa3jyDtvv6OKOSXAA9Wc+lOTgUWUZQ3bspXjCgTmtEXLmU8RnecfWaYhXZ7ZDHSdMbtt1CW24HPd7alEUPmFj3b6mR7Rz+L
GCmv7Gx/Ryy4o1Qg8vAT9CJxJu2ZqZOL0Hsnj1o5BzEsa13/qCNQdkRnDqgzcgYkikczVzXLc3Q3et+7b46Du2juvYHk6x5e8zX8Br0x9ma+ClrtOXEUbobe
Wt6rSM+g1Z4DnA2cHUdhBKwBbIronpt2ttUZ/j6ag+ic3e2hnv+/E1HIb6/gFrxb9C/OfGV9UUQZ727PUP/kYhiGMSoCJKVmqZ5tMcQb/lhnexzpYW4YhmEY
hmFkoFN5fjFgJrBk578zkVpBXSX8ibyh6YZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZh
GIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZh
GIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZh
GIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZh
GIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZh
GIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIaToO4LMAzDMNRYGVgm8dnNwGzHvqsAS2fc1zAMIysrdLYudwJP1HQt48a6wCI9/54D3FTTtdTJi4DlEp/d
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
YII=
</data>
<mime>image/png</mime>
<width>1000</width>
<height>186</height>
<resource-attributes>
<file-name>callofwritinglogo.png</file-name>
<source-url>
en-cache://tokenKey%3D%22AuthToken%3AUser%3A226524259%22+d26e9471-6d39-a8af-c5ff-f9879f4c01ee+50eb3fde4afbf9251f064e364d419143+https://www.evernote.com/shard/s644/res/7b133e27-d142-0456-fea2-1df3b0a18b14
</source-url>
</resource-attributes>
</resource>
</note>
</en-export>

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-export SYSTEM "http://xml.evernote.com/pub/evernote-export4.dtd">
<en-export export-date="20210622T072917Z" application="Evernote" version="10.13.4">
<note>
<title>dsfdsfsf</title>
<created>20210517T045317Z</created>
<updated>20210517T045328Z</updated>
<note-attributes>
<author>Ammar Ahmed</author>
</note-attributes>
<content>
<![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"><en-note><div>dsfdfsfdssdfsdf dsfdsfds sdfsf. sdfsf.  sfsfsd</div></en-note> ]]>
</content>
</note>
<note>
<title>Essay Outline</title>
<created>20210517T050222Z</created>
<updated>20210517T050222Z</updated>
<note-attributes>
<author>Ammar Ahmed</author>
</note-attributes>
<content>
<![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"><en-note><div><span style="font-size: medium; color: rgb(0, 0, 0); font-family: &quot;Helvetica Neue&quot;; font-style: italic; font-variant-caps: normal; font-variant-ligatures: normal;-en-paragraph:true;">Most analytical, interpretive, or persuasive essays tend to follow the same basic pattern. This structure should help you formulate effective outlines for most essays.</span></div><div><br /></div><hr /><div> </div><div><span style="font-size: 18px; font-weight: bold;">Introduction</span></div><ol><li><div><span style="letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; font-size: 14px; font-family: &quot;Helvetica Neue&quot;; font-variant-caps: normal; font-variant-ligatures: normal;">Sentence to get the attention of your readers:</span></div></li><li><div>One-sentence thesis statement:</div></li></ol><div><br /></div><div><span style="font-size: 18px; font-weight: bold;">Body</span></div><ol><li><div><span style="font-style: italic;">First Main Idea</span></div></li><ol><li><div>Supporting evidence #1</div></li><li><div>Supporting evidence #2</div></li><li><div>Supporting evidence #3</div></li></ol><li><div><span style="font-style: italic;">Second Main Idea: </span></div></li><ol><li><div>Supporting evidence #1 </div></li><li><div>Supporting evidence #2</div></li><li><div>Supporting evidence #3</div></li></ol><li><div><span style="font-style: italic;">Third Main Idea:</span></div></li><ol><li><div>Supporting evidence #1</div></li><li><div>Supporting evidence #2</div></li><li><div>Supporting evidence #3</div></li></ol></ol><div><br /></div><div><span style="font-size: 18px; color: rgb(0, 0, 0); font-family: &quot;Helvetica Neue&quot;; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold;-en-paragraph:true;">Conclusion:</span></div><ol><li><div><span style="font-family: &quot;Helvetica Neue&quot;;">Restate of your thesis:</span></div></li><li><div><span style="font-family: &quot;Helvetica Neue&quot;;">Insightful sentence to end your essay:</span></div></li></ol><div><br /></div><div><br /></div></en-note> ]]>
</content>
</note>
<note>
<title>kbjbdserwr</title>
<created>20210517T045200Z</created>
<updated>20210517T050202Z</updated>
<note-attributes>
<author>Ammar Ahmed</author>
</note-attributes>
<content>
<![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"><en-note><div>grgffggnm ffg s</div></en-note> ]]>
</content>
</note>
</en-export>

Binary file not shown.

View File

@@ -0,0 +1,12 @@
const html = require("../providers/html");
test("convert evernote note enex file", () => {
let file = {
data:"<p>Hello world</p>",
fileName:"world.html",
createdAt:0,
modifiedAt:0
}
expect(html.convert([file])).toMatchSnapshot("html-file");
});

View File

@@ -0,0 +1,13 @@
const markdown = require("../providers/markdown");
test("convert evernote note enex file", () => {
let file = {
data:`# Hello world
This is a note`,
fileName:"world.md",
createdAt:0,
modifiedAt:0
}
expect(markdown.convert([file])).toMatchSnapshot("markdown-file");
});

View File

@@ -0,0 +1,8 @@
const simplenote = require("../providers/simplenote");
const utils = require("./utils");
test("convert simplenote backup zip file", () => {
let file = utils.getFile("simplenote.zip");
expect(simplenote.convert([file])).toMatchSnapshot("simplenote-backup");
});

View File

@@ -0,0 +1,12 @@
const text = require("../providers/plaintext");
test("convert evernote note enex file", () => {
let file = {
data:"Hello world",
fileName:"world.txt",
createdAt:0,
modifiedAt:0
}
expect(text.convert([file])).toMatchSnapshot("text-file");
});

View File

@@ -0,0 +1,15 @@
const fs = require("fs");
const path = require("path");
function getFile(fileName) {
let data = fs.readFileSync(path.join(__dirname, `fixtures/${fileName}`));
return {
data: data,
fileName: fileName
};
}
module.exports = {
getFile
};

View File

@@ -0,0 +1,17 @@
const dom = require("jsdom");
global.window = new dom.JSDOM("", {}).window;
const text = require("./providers/plaintext");
const html = require("./providers/html");
const markdown = require("./providers/markdown");
const evernote = require("./providers/evernote");
const simplenote = require("./providers/simplenote");
module.exports = {
text,
html,
markdown,
evernote,
simplenote
};

View File

@@ -0,0 +1,183 @@
// For a detailed explanation regarding each configuration property, visit:
// https://jestjs.io/docs/en/configuration.html
module.exports = {
// All imported modules in your tests should be mocked automatically
// automock: false,
// Stop running tests after `n` failures
// bail: 0,
// Respect "browser" field in package.json when resolving modules
// browser: false,
// The directory where Jest should store its cached dependency information
// cacheDirectory: "/tmp/jest_rs",
// Automatically clear mock calls and instances between every test
// clearMocks: false,
// Indicates whether the coverage information should be collected while executing the test
// collectCoverage: false,
// An array of glob patterns indicating a set of files for which coverage information should be collected
// collectCoverageFrom: null,
// The directory where Jest should output its coverage files
//coverageDirectory: "coverage",
// An array of regexp pattern strings used to skip coverage collection
// coveragePathIgnorePatterns: [
// "/node_modules/"
// ],
// A list of reporter names that Jest uses when writing coverage reports
// coverageReporters: [
// "json",
// "text",
// "lcov",
// "clover"
// ],
// An object that configures minimum threshold enforcement for coverage results
// coverageThreshold: null,
// A path to a custom dependency extractor
// dependencyExtractor: null,
// Make calling deprecated APIs throw helpful error messages
// errorOnDeprecated: false,
// Force coverage collection from ignored files using an array of glob patterns
// forceCoverageMatch: [],
// A path to a module which exports an async function that is triggered once before all test suites
// globalSetup: null,
// A path to a module which exports an async function that is triggered once after all test suites
// globalTeardown: null,
// A set of global variables that need to be available in all test environments
// globals: {},
// The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers.
// maxWorkers: "50%",
// An array of directory names to be searched recursively up from the requiring module's location
// moduleDirectories: [
// "node_modules"
// ],
// An array of file extensions your modules use
// moduleFileExtensions: [
// "js",
// "json",
// "jsx",
// "ts",
// "tsx",
// "node"
// ],
// A map from regular expressions to module names that allow to stub out resources with a single module
// moduleNameMapper: {},
// An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
// modulePathIgnorePatterns: [],
// Activates notifications for test results
// notify: false,
// An enum that specifies notification mode. Requires { notify: true }
// notifyMode: "failure-change",
// A preset that is used as a base for Jest's configuration
// preset: null,
// Run tests from one or more projects
// projects: null,
// Use this configuration option to add custom reporters to Jest
// reporters: undefined,
// Automatically reset mock state between every test
// resetMocks: false,
// Reset the module registry before running each individual test
// resetModules: false,
// A path to a custom resolver
// resolver: null,
// Automatically restore mock state between every test
// restoreMocks: false,
// The root directory that Jest should scan for tests and modules within
// rootDir: null,
// A list of paths to directories that Jest should use to search for files in
//roots: ["__tests__"],
// Allows you to use a custom runner instead of Jest's default test runner
// runner: "jest-runner",
// The paths to modules that run some code to configure or set up the testing environment before each test
setupFiles: ["./jest.setup.js"],
// A list of paths to modules that run some code to configure or set up the testing framework before each test
// setupFilesAfterEnv: [],
// A list of paths to snapshot serializer modules Jest should use for snapshot testing
// snapshotSerializers: [],
// The test environment that will be used for testing
// testEnvironment: "jest-environment-jsdom",
// Options that will be passed to the testEnvironment
// testEnvironmentOptions: {},
// Adds a location field to test results
// testLocationInResults: false,
// The glob patterns Jest uses to detect test files
testMatch: ["**/**/**/*.test.[jt]s?(x)"],
// An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
// testPathIgnorePatterns: [
// "/node_modules/"
// ],
// The regexp pattern or array of patterns that Jest uses to detect test files
// testRegex: [],
// This option allows the use of a custom results processor
// testResultsProcessor: null,
// This option allows use of a custom test runner
// testRunner: "jasmine2",
// This option sets the URL for the jsdom environment. It is reflected in properties such as location.href
// testURL: "http://localhost",
// Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout"
// timers: "real",
// A map from regular expressions to paths to transformers
// transform: null,
// An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
// transformIgnorePatterns: [
// "/node_modules/"
// ],
// An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
// unmockedModulePathPatterns: undefined,
// Indicates whether each individual test should be reported during the run
// verbose: null,
// An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
// watchPathIgnorePatterns: [],
// Whether to use watchman for file crawling
// watchman: true,
};

View File

@@ -0,0 +1,5 @@
var jsdom = require("jsdom");
const dom = new jsdom.JSDOM("", {});
global.window = dom.window;
global.document = dom.window.document;

View File

@@ -0,0 +1,29 @@
{
"name": "notesnook-importer",
"version": "1.0.0",
"private": "true",
"main": "index.js",
"scripts": {
"test": "jest",
"start": "index.js"
},
"dependencies": {
"dayjs": "^1.10.6",
"jsdom": "^17.0.0",
"showdown": "https://github.com/thecodrr/showdown",
"uzip": "^0.20201231.0"
},
"devDependencies": {
"@babel/core": "^7.15.0",
"@babel/preset-env": "^7.15.0",
"@types/jest": "^27.0.1",
"@types/node": "^12.12.67",
"babel-jest": "^27.0.6",
"jest": "^27.0.6"
},
"author": "",
"license": "MIT",
"engines": {
"node": "14.x"
}
}

View File

@@ -0,0 +1,154 @@
const templates = require("../utils/template");
const extension = require("../utils/extension");
const dayjs = require("dayjs");
const parser = new window.DOMParser();
/**
*
* @param {Array<{data:string | Buffer,createdAt:number,modifiedAt:number,fileName:string}>} files
* @returns array of notes
*/
function convert(files) {
let notes = [];
for (var file of files) {
if (typeof file.data !== "string") {
file.data = file.data.toString()
}
if (extension.get(file.fileName) === "enex") {
let document = parser.parseFromString(file.data, "text/xml");
let nodes = document.getElementsByTagName("note");
let notebook = isNotebook(nodes, file.fileName);
for (var node of nodes) {
let note = templates.note();
if (notebook) {
note.notebooks = getNotebooks(file.fileName);
}
note.title = node.querySelector("title").textContent;
getTags(node, note);
note.dateCreated = getUnixTime(node, "created");
note.dateEdited = getUnixTime(node, "updated");
let content = node.querySelector("content").textContent;
content = content.substring(
content.lastIndexOf("<en-note>") + 1,
content.lastIndexOf("</en-note>")
);
note.content.data = getHtmlContent(content, node);
notes.push(note);
}
} else {
console.warn(`${file.fileName} is not a .enex file, skipping.`);
}
}
return notes;
}
/**
*
* @param {string} fileName
* @returns file name without extension
*/
function getName(fileName) {
let parts = fileName.split(".");
let ext = parts.pop();
return fileName.replace(`.${ext}`, "");
}
/**
*
* @param {HTMLCollection} notes
* @param {string} fileName
* @returns if this is a notebook
*/
function isNotebook(notes, fileName) {
if (notes.length > 1) return true;
let note = notes[0];
if (note.querySelector("title").textContent !== getName(fileName)) {
return true;
}
return false;
}
/**
*
* @param {string} fileName
* @returns the created notebook using file name
*/
function getNotebooks(fileName) {
return [{ notebook: getName(fileName), topic: "All notes" }];
}
/**
*
* @param {HTMLElement} node
* @param {import("../utils/template").NoteType} note
* @returns
*/
function getTags(node, note) {
let tagNodes = node.querySelectorAll("tag");
if (tagNodes.length > 0) {
note.tags = [];
node.querySelectorAll("tag").forEach((tag) => {
note.tags.push(tag.textContent);
});
}
return note;
}
/**
*
* @param {HTMLElement} node
* @param {string} selector
* @returns unix time in milliseconds
*/
function getUnixTime(node, selector) {
return (
dayjs(
node.querySelector(selector).textContent.replace("Z", ""),
"YYYYMMDDThhmmss"
).unix() * 1000
);
}
/**
*
* @param {HTMLDocument} content
* @param {HTMLElement} node
* @returns html content with image attachements embeded
*/
function getHtmlContent(content, node) {
let html = parser.parseFromString(content, "text/html");
let mediaTags = html.querySelectorAll("en-media");
let resources = node.querySelectorAll("resource");
for (var media of mediaTags) {
if (media.getAttribute("type").includes("image")) {
let hash = media.getAttribute("hash");
for (var res of resources) {
if (res.querySelector("mime").textContent.includes("image")) {
let url = res.querySelector("source-url").textContent;
url = url.split("+")[url.split("+").length - 2];
if (hash === url) {
let img = html.createElement("img");
img.src = res.querySelector("data").textContent;
img.width = res.querySelector("width").textContent;
img.height = res.querySelector("height").textContent;
media.parentNode.replaceChild(img, media);
}
}
}
} else {
media.parentNode.removeChild(media);
}
}
return html.body.innerHTML;
}
module.exports = {
convert
};

View File

@@ -0,0 +1,31 @@
const templates = require("../utils/template");
const extension = require("../utils/extension");
/**
*
* @param {Array<{data:string | Buffer,createdAt:number,modifiedAt:number,fileName:string}>} files
* @returns array of notes
*/
function convert(files) {
let notes = [];
for (var file of files) {
if (typeof file.data !== "string") {
file.data = file.data.toString()
}
if (extension.get(file.fileName) === "html") {
let note = templates.note();
note.content.data = file.data
note.dateCreated = file.createdAt;
note.dateEdited = file.modifiedAt;
note.title = file.fileName.split(".")[0] || file.data.slice(0, 40);
notes.push(note);
} else {
console.warn(`${file.fileName} is not a html file, skipping.`);
}
}
return notes;
}
module.exports = {
convert
};

View File

@@ -0,0 +1,35 @@
const templates = require("../utils/template");
const extension = require("../utils/extension");
const showdown = require("showdown");
/**
*
* @param {Array<{data:string | Buffer,createdAt:number,modifiedAt:number,fileName:string}>} files
* @returns array of notes
*/
function convert(files) {
let notes = [];
let converter = new showdown.Converter();
for (var file of files) {
if (typeof file.data !== "string") {
file.data = file.data.toString()
}
if (extension.get(file.fileName) === "md") {
let note = templates.note();
note.content.data = converter.makeHtml(file.data)
note.dateCreated = file.createdAt;
note.dateEdited = file.modifiedAt;
note.title = file.fileName.split(".")[0] || file.data.slice(0, 40);
notes.push(note);
} else {
console.warn(`${file.fileName} is not a markdown file, skipping.`);
}
}
return notes;
}
module.exports = {
convert
};

View File

@@ -0,0 +1,32 @@
const templates = require("../utils/template");
const textToHtml = require("../utils/texttohtml");
const extension = require("../utils/extension");
/**
*
* @param {Array<{data:string | Buffer,createdAt:number,modifiedAt:number,fileName:string}>} files
* @returns array of notes
*/
function convert(files) {
let notes = [];
for (var file of files) {
if (typeof file.data !== "string") {
file.data = file.data.toString()
}
if (extension.get(file.fileName) === "txt") {
let note = templates.note();
note.content.data = textToHtml.convert(file.data);
note.dateCreated = file.createdAt;
note.dateEdited = file.modifiedAt;
note.content.type = "text";
note.title = file.fileName.split(".")[0] || file.data.slice(0, 40);
notes.push(note);
} else {
console.warn(`${file.fileName} is not a text file, skipping.`);
}
}
return notes;
}
module.exports = {
convert
};

View File

@@ -0,0 +1,62 @@
const templates = require("../utils/template");
const uzip = require("uzip");
const showdown = require("showdown");
let converter = new showdown.Converter();
function makeNote(item, isTrash) {
let note = templates.note();
note.title = item.content.split("\r\n")[0];
note.content.data = converter.makeHtml(
item.content.replace(note.title + "\r\n", "")
);
note.dateCreated = item.creationDate;
note.dateEdited = item.modifiedDate;
if (item.pinned) {
note.pinned = true;
}
if (item.tags) {
note.tags = item.tags;
}
if (isTrash) {
note.deleted = true;
}
return note;
}
/**
*
* @param {Array<{data:string | Buffer,createdAt:number,modifiedAt:number,fileName:string}>} files
* @returns array of notes
*/
function convert(files) {
let notes = [];
for (var file of files) {
let unzip = uzip.parse(file.data);
if (unzip["source/notes.json"]) {
let simplenote = JSON.parse(
Buffer.from(unzip["source/notes.json"].buffer).toString()
);
let activeNotes = simplenote.activeNotes;
let trashNotes = simplenote.trashNotes;
for (var item of activeNotes) {
notes.push(makeNote(item));
}
for (var item in trashNotes) {
notes.push(makeNote(item, true));
}
} else {
console.log(
`${file.fileName} is not a simplenote backup zip file, skipping`
);
}
}
return notes;
}
module.exports = {
convert
};

View File

@@ -0,0 +1,14 @@
/**
*
* @param {string} filename
* @returns file extension
*/
function get(filename)
{
var ext = /^.+\.([^.]+)$/.exec(filename);
return ext == null ? "" : ext[1];
}
module.exports = {
get
}

View File

@@ -0,0 +1,37 @@
/**
*
* @typedef NoteType
* @property {{data:string,type:"html" | "text"}} content
* @property {string} title
* @property {Array<any>} attachments
* @property {Array<string>} tags
* @property {boolean} favorite
* @property {boolean} pinned
* @property {Array<{notebook:string,topic:string}>} notebooks
* @property {string} color
* @property {number} dateCreated
* @property {number} dateEdited
* @property {boolean} deleted
*/
const note_template = {
content: {
data: "",
type: "html"
},
title: "",
};
/**
*
* @returns {NoteType} A general note template
*/
function note() {
return { ...note_template };
}
module.exports = {
note
};

View File

@@ -0,0 +1,61 @@
/**
*
* @param {string} text
* @returns an html string
*/
function convert(text) {
if (!text || typeof text !== "string") throw new Error("textohtml: The provided value is not a string");
var text_input; //store input after beging trim()med
var output_html = ""; //store output
var counter;
text_input = text.trim(); //trim() input
if (text_input.length > 0) {
output_html += "<p>"; //begin by creating paragraph
for (counter = 0; counter < text_input.length; counter++) {
switch (text_input[counter]) {
case "\n":
if (text_input[counter + 1] === "\n") {
output_html += "</p>\n<p>";
counter++;
} else output_html += "<br>";
break;
case " ":
if (text_input[counter - 1] != " " && text_input[counter - 1] != "\t")
output_html += " ";
break;
case "\t":
if (text_input[counter - 1] != "\t") output_html += " ";
break;
case "&":
output_html += "&amp;";
break;
case '"':
output_html += "&quot;";
break;
case ">":
output_html += "&gt;";
break;
case "<":
output_html += "&lt;";
break;
default:
output_html += text_input[counter];
}
}
output_html += "</p>"; //finally close paragraph
}
return output_html;
}
module.exports = {
convert
};

3486
packages/importer/yarn.lock Normal file

File diff suppressed because it is too large Load Diff