inkdrop-model 2.7.1 → 2.7.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/note.ts","../src/book.ts","../src/tag.ts","../node_modules/tslib/tslib.es6.js","../src/file.ts","../src/validator.ts"],"sourcesContent":["import type { ValidateFunction } from 'ajv'\nimport NoteSchema from '../json-schema/note.json'\nimport validator from '../validators/note'\nimport type { EncryptedData } from './crypto'\nexport type TrashBookId = 'trash'\nexport type NoteStatus = 'none' | 'active' | 'onHold' | 'completed' | 'dropped'\nexport type NoteVisibility = 'private' | 'public'\nexport type NoteMetadata = {\n _id: string\n _rev?: string\n bookId: string\n doctype: string\n updatedAt: number\n createdAt: number\n tags?: string[]\n numOfTasks?: number\n numOfCheckedTasks?: number\n migratedBy?: string\n status?: NoteStatus\n share?: NoteVisibility\n pinned?: boolean\n _conflicts?: string[]\n}\nexport type Note = NoteMetadata & {\n title: string\n body: string\n}\nexport type EncryptedNote = NoteMetadata & {\n encryptedData: EncryptedData\n}\nexport const TRASH_BOOK_ID = 'trash'\n\nexport const NOTE_STATUS: {\n NONE: 'none'\n ACTIVE: 'active'\n ON_HOLD: 'onHold'\n COMPLETED: 'completed'\n DROPPED: 'dropped'\n} = {\n NONE: 'none',\n ACTIVE: 'active',\n ON_HOLD: 'onHold',\n COMPLETED: 'completed',\n DROPPED: 'dropped'\n}\nexport const NOTE_VISIBILITY: {\n PRIVATE: 'private'\n PUBLIC: 'public'\n} = {\n PRIVATE: 'private',\n PUBLIC: 'public'\n}\nconst validateNote: ValidateFunction<Note> = validator\nexport { NoteSchema, validateNote }\n","import type { ValidateFunction } from 'ajv'\nimport BookSchema from '../json-schema/book.json'\nimport validator from '../validators/book'\n\nimport type { EncryptedData } from './crypto'\nexport type BookMetadata = {\n _id: string\n _rev?: string\n updatedAt: number\n createdAt: number\n count?: number\n parentBookId?: null | string\n migratedBy?: string\n}\nexport type Book = BookMetadata & {\n name: string\n}\nexport type EncryptedBook = BookMetadata & {\n encryptedData: EncryptedData\n}\n\nconst validateBook: ValidateFunction<Book> = validator\nexport { BookSchema, validateBook }\n","import type { ValidateFunction } from 'ajv'\nimport TagSchema from '../json-schema/tag.json'\nimport validator from '../validators/tag'\nimport type { EncryptedData } from './crypto'\nexport type TagColor =\n | 'default'\n | 'red'\n | 'orange'\n | 'yellow'\n | 'olive'\n | 'green'\n | 'teal'\n | 'blue'\n | 'violet'\n | 'purple'\n | 'pink'\n | 'brown'\n | 'grey'\n | 'black'\nexport const TAG_COLOR: {\n DEFAULT: 'default'\n RED: 'red'\n ORANGE: 'orange'\n YELLOW: 'yellow'\n OLIVE: 'olive'\n GREEN: 'green'\n TEAL: 'teal'\n BLUE: 'blue'\n VIOLET: 'violet'\n PURPLE: 'purple'\n PINK: 'pink'\n BROWN: 'brown'\n GREY: 'grey'\n BLACK: 'black'\n} = {\n DEFAULT: 'default',\n RED: 'red',\n ORANGE: 'orange',\n YELLOW: 'yellow',\n OLIVE: 'olive',\n GREEN: 'green',\n TEAL: 'teal',\n BLUE: 'blue',\n VIOLET: 'violet',\n PURPLE: 'purple',\n PINK: 'pink',\n BROWN: 'brown',\n GREY: 'grey',\n BLACK: 'black'\n}\nexport type TagMetadata = {\n _id: string\n _rev?: string\n count?: number\n color: TagColor\n updatedAt: number\n createdAt: number\n}\nexport type Tag = TagMetadata & {\n name: string\n}\nexport type EncryptedTag = TagMetadata & {\n encryptedData: EncryptedData\n}\nconst validateTag: ValidateFunction<Tag> = validator\nexport { TagSchema, validateTag }\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import type { ValidateFunction } from 'ajv'\nimport FileSchema from '../json-schema/file.json'\nimport validator from '../validators/file'\nimport type { EncryptionMetadata } from './crypto'\nexport type ImageFileType =\n | 'image/png'\n | 'image/jpeg'\n | 'image/jpg'\n | 'image/svg+xml'\n | 'image/gif'\n | 'image/heic'\n | 'image/heif'\nexport const supportedImageFileTypes: ReadonlyArray<ImageFileType> = [\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/svg+xml',\n 'image/gif',\n 'image/heic',\n 'image/heif'\n]\nexport const SUPPORTED_IMAGE_MIME_TYPES: {\n readonly [mime: string]: ImageFileType\n} = {\n ...supportedImageFileTypes.reduce(\n (hash, ft) => ({ ...hash, [ft.split('/')[1]]: ft }),\n {} as Record<string, ImageFileType>\n ),\n jpg: 'image/jpeg'\n}\nexport const maxAttachmentFileSize: number = 10 * 1024 * 1024\nexport type FileAttachmentItem = {\n digest?: string\n content_type: ImageFileType\n data: Buffer | string\n length?: number\n}\nexport type File = {\n _id: string\n _rev?: string\n name: string\n createdAt: number\n contentType: ImageFileType\n contentLength: number\n publicIn: string[]\n _attachments: {\n index: FileAttachmentItem\n }\n md5digest?: string\n}\nexport type EncryptedFile = File & {\n encryptionData: EncryptionMetadata\n}\nconst validateFile: ValidateFunction<File> = validator\nexport { FileSchema, validateFile }\n","import type { ErrorObject } from 'ajv'\n\nexport function validationErrorsToMessage(errors: ErrorObject[]): string {\n if (errors instanceof Array) {\n return errors\n .map(e => {\n if (typeof e === 'object') {\n return `\"${e.instancePath}\" ${e.message}`\n } else {\n return e\n }\n })\n .join(', ')\n } else {\n return errors\n }\n}\nexport class InvalidDataError extends Error {\n name = 'InvalidDataError'\n errors: ErrorObject[]\n\n constructor(message: string, errors: ErrorObject[]) {\n super(message + ' ' + validationErrorsToMessage(errors))\n this.errors = errors\n }\n}\n"],"names":["validator"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/note.ts","../src/book.ts","../src/tag.ts","../src/file.ts","../src/validator.ts"],"sourcesContent":["import type { ValidateFunction } from 'ajv'\nimport NoteSchema from '../json-schema/note.json'\nimport validator from '../validators/note'\nimport type { EncryptedData } from './crypto'\nexport type TrashBookId = 'trash'\nexport type NoteStatus = 'none' | 'active' | 'onHold' | 'completed' | 'dropped'\nexport type NoteVisibility = 'private' | 'public'\nexport type NoteMetadata = {\n _id: string\n _rev?: string\n bookId: string\n doctype: string\n updatedAt: number\n createdAt: number\n tags?: string[]\n numOfTasks?: number\n numOfCheckedTasks?: number\n migratedBy?: string\n status?: NoteStatus\n share?: NoteVisibility\n pinned?: boolean\n _conflicts?: string[]\n}\nexport type Note = NoteMetadata & {\n title: string\n body: string\n}\nexport type EncryptedNote = NoteMetadata & {\n encryptedData: EncryptedData\n}\nexport const TRASH_BOOK_ID = 'trash'\n\nexport const NOTE_STATUS: Readonly<{\n NONE: 'none'\n ACTIVE: 'active'\n ON_HOLD: 'onHold'\n COMPLETED: 'completed'\n DROPPED: 'dropped'\n}> = {\n NONE: 'none',\n ACTIVE: 'active',\n ON_HOLD: 'onHold',\n COMPLETED: 'completed',\n DROPPED: 'dropped'\n}\nexport const NOTE_VISIBILITY: Readonly<{\n PRIVATE: 'private'\n PUBLIC: 'public'\n}> = {\n PRIVATE: 'private',\n PUBLIC: 'public'\n}\nconst validateNote: ValidateFunction<Note> = validator as any\nexport { NoteSchema, validateNote }\n","import type { ValidateFunction } from 'ajv'\nimport BookSchema from '../json-schema/book.json'\nimport validator from '../validators/book'\n\nimport type { EncryptedData } from './crypto'\nexport type BookMetadata = {\n _id: string\n _rev?: string\n updatedAt: number\n createdAt: number\n count?: number\n parentBookId?: null | string\n migratedBy?: string\n}\nexport type Book = BookMetadata & {\n name: string\n}\nexport type EncryptedBook = BookMetadata & {\n encryptedData: EncryptedData\n}\n\nconst validateBook: ValidateFunction<Book> = validator as any\nexport { BookSchema, validateBook }\n","import type { ValidateFunction } from 'ajv'\nimport TagSchema from '../json-schema/tag.json'\nimport validator from '../validators/tag'\nimport type { EncryptedData } from './crypto'\nexport type TagColor =\n | 'default'\n | 'red'\n | 'orange'\n | 'yellow'\n | 'olive'\n | 'green'\n | 'teal'\n | 'blue'\n | 'violet'\n | 'purple'\n | 'pink'\n | 'brown'\n | 'grey'\n | 'black'\nexport const TAG_COLOR: Readonly<{\n DEFAULT: 'default'\n RED: 'red'\n ORANGE: 'orange'\n YELLOW: 'yellow'\n OLIVE: 'olive'\n GREEN: 'green'\n TEAL: 'teal'\n BLUE: 'blue'\n VIOLET: 'violet'\n PURPLE: 'purple'\n PINK: 'pink'\n BROWN: 'brown'\n GREY: 'grey'\n BLACK: 'black'\n}> = {\n DEFAULT: 'default',\n RED: 'red',\n ORANGE: 'orange',\n YELLOW: 'yellow',\n OLIVE: 'olive',\n GREEN: 'green',\n TEAL: 'teal',\n BLUE: 'blue',\n VIOLET: 'violet',\n PURPLE: 'purple',\n PINK: 'pink',\n BROWN: 'brown',\n GREY: 'grey',\n BLACK: 'black'\n}\nexport type TagMetadata = {\n _id: string\n _rev?: string\n count?: number\n color: TagColor\n updatedAt: number\n createdAt: number\n}\nexport type Tag = TagMetadata & {\n name: string\n}\nexport type EncryptedTag = TagMetadata & {\n encryptedData: EncryptedData\n}\nconst validateTag: ValidateFunction<Tag> = validator as any\nexport { TagSchema, validateTag }\n","import type { ValidateFunction } from 'ajv'\nimport FileSchema from '../json-schema/file.json'\nimport validator from '../validators/file'\nimport type { EncryptionMetadata } from './crypto'\nexport type ImageFileType =\n | 'image/png'\n | 'image/jpeg'\n | 'image/jpg'\n | 'image/svg+xml'\n | 'image/gif'\n | 'image/heic'\n | 'image/heif'\nexport const supportedImageFileTypes: ReadonlyArray<ImageFileType> = [\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/svg+xml',\n 'image/gif',\n 'image/heic',\n 'image/heif'\n]\nexport const SUPPORTED_IMAGE_MIME_TYPES: {\n readonly [mime: string]: ImageFileType\n} = {\n ...supportedImageFileTypes.reduce(\n (hash, ft) => ({ ...hash, [ft.split('/')[1]]: ft }),\n {} as Record<string, ImageFileType>\n ),\n jpg: 'image/jpeg'\n}\nexport const maxAttachmentFileSize: number = 10 * 1024 * 1024\nexport type FileAttachmentItem = {\n digest?: string\n content_type: ImageFileType\n data: Buffer | string\n length?: number\n}\nexport type File = {\n _id: string\n _rev?: string\n name: string\n createdAt: number\n contentType: ImageFileType\n contentLength: number\n publicIn: string[]\n _attachments: {\n index: FileAttachmentItem\n }\n md5digest?: string\n}\nexport type EncryptedFile = File & {\n encryptionData: EncryptionMetadata\n}\nconst validateFile: ValidateFunction<File> = validator as any\nexport { FileSchema, validateFile }\n","import type { ErrorObject } from 'ajv'\n\nexport function validationErrorsToMessage(errors: ErrorObject[]): string {\n if (errors instanceof Array) {\n return errors\n .map(e => {\n if (typeof e === 'object') {\n return `\"${e.instancePath}\" ${e.message}`\n } else {\n return e\n }\n })\n .join(', ')\n } else {\n return errors\n }\n}\nexport class InvalidDataError extends Error {\n name = 'InvalidDataError'\n errors: ErrorObject[]\n\n constructor(message: string, errors: ErrorObject[]) {\n super(message + ' ' + validationErrorsToMessage(errors))\n this.errors = errors\n }\n}\n"],"names":["validator"],"mappings":"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"}
package/lib/index.js CHANGED
@@ -1,62 +1,297 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var note_json = require('../json-schema/note.json');
6
3
  var validator = require('../validators/note');
7
- var book_json = require('../json-schema/book.json');
8
4
  var validator$1 = require('../validators/book');
9
- var tag_json = require('../json-schema/tag.json');
10
5
  var validator$2 = require('../validators/tag');
11
- var file_json = require('../json-schema/file.json');
12
6
  var validator$3 = require('../validators/file');
13
7
 
14
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+ var $schema$3 = "http://json-schema.org/draft-07/schema#";
9
+ var $id$3 = "note";
10
+ var title$3 = "Note";
11
+ var description$3 = "A note data";
12
+ var type$3 = "object";
13
+ var properties$3 = {
14
+ _id: {
15
+ description: "The unique document ID which should start with `note:` and the remains are randomly generated string",
16
+ type: "string",
17
+ minLength: 6,
18
+ maxLength: 128,
19
+ pattern: "^note:"
20
+ },
21
+ _rev: {
22
+ description: "This is a CouchDB specific field. The current MVCC-token/revision of this document (mandatory and immutable).",
23
+ type: "string"
24
+ },
25
+ bookId: {
26
+ description: "The notebook ID",
27
+ type: "string",
28
+ minLength: 5,
29
+ maxLength: 128,
30
+ pattern: "^(book:|trash$)"
31
+ },
32
+ title: {
33
+ description: "The note title",
34
+ type: "string",
35
+ maxLength: 128
36
+ },
37
+ doctype: {
38
+ description: "The format type of the body field. It currently can take markdown only, reserved for the future",
39
+ type: "string",
40
+ "enum": [
41
+ "markdown"
42
+ ]
43
+ },
44
+ body: {
45
+ description: "The content of the note represented with Markdown",
46
+ type: "string",
47
+ maxLength: 1048576
48
+ },
49
+ updatedAt: {
50
+ description: "The date time when the note was last updated, represented with Unix timestamps in milliseconds",
51
+ type: "number"
52
+ },
53
+ createdAt: {
54
+ description: "The date time when the note was created, represented with Unix timestamps in milliseconds",
55
+ type: "number"
56
+ },
57
+ tags: {
58
+ description: "The list of tag IDs",
59
+ type: "array",
60
+ items: {
61
+ type: "string"
62
+ },
63
+ uniqueItems: true
64
+ },
65
+ numOfTasks: {
66
+ description: "The number of tasks, extracted from body",
67
+ type: "number"
68
+ },
69
+ numOfCheckedTasks: {
70
+ description: "The number of checked tasks, extracted from body",
71
+ type: "number"
72
+ },
73
+ migratedBy: {
74
+ description: "The type of the data migration",
75
+ type: "string",
76
+ maxLength: 128
77
+ },
78
+ status: {
79
+ description: "The status of the note",
80
+ type: "string",
81
+ "enum": [
82
+ "none",
83
+ "active",
84
+ "onHold",
85
+ "completed",
86
+ "dropped"
87
+ ]
88
+ },
89
+ share: {
90
+ description: "The sharing mode of the note",
91
+ type: "string",
92
+ "enum": [
93
+ "private",
94
+ "public"
95
+ ]
96
+ },
97
+ pinned: {
98
+ description: "Whether the note is pinned to top",
99
+ type: "boolean"
100
+ },
101
+ _conflicts: {
102
+ description: "Conflicted revisions",
103
+ type: "array",
104
+ items: {
105
+ type: "string"
106
+ },
107
+ uniqueItems: true
108
+ }
109
+ };
110
+ var required$3 = [
111
+ "_id",
112
+ "bookId",
113
+ "title",
114
+ "doctype",
115
+ "body",
116
+ "updatedAt",
117
+ "createdAt"
118
+ ];
119
+ var note = {
120
+ $schema: $schema$3,
121
+ $id: $id$3,
122
+ title: title$3,
123
+ description: description$3,
124
+ type: type$3,
125
+ properties: properties$3,
126
+ required: required$3
127
+ };
15
128
 
16
- var note_json__default = /*#__PURE__*/_interopDefaultLegacy(note_json);
17
- var validator__default = /*#__PURE__*/_interopDefaultLegacy(validator);
18
- var book_json__default = /*#__PURE__*/_interopDefaultLegacy(book_json);
19
- var validator__default$1 = /*#__PURE__*/_interopDefaultLegacy(validator$1);
20
- var tag_json__default = /*#__PURE__*/_interopDefaultLegacy(tag_json);
21
- var validator__default$2 = /*#__PURE__*/_interopDefaultLegacy(validator$2);
22
- var file_json__default = /*#__PURE__*/_interopDefaultLegacy(file_json);
23
- var validator__default$3 = /*#__PURE__*/_interopDefaultLegacy(validator$3);
129
+ var TRASH_BOOK_ID = 'trash';
130
+ var NOTE_STATUS = {
131
+ NONE: 'none',
132
+ ACTIVE: 'active',
133
+ ON_HOLD: 'onHold',
134
+ COMPLETED: 'completed',
135
+ DROPPED: 'dropped'
136
+ };
137
+ var NOTE_VISIBILITY = {
138
+ PRIVATE: 'private',
139
+ PUBLIC: 'public'
140
+ };
141
+ var validateNote = validator;
24
142
 
25
- var TRASH_BOOK_ID = 'trash';
26
- var NOTE_STATUS = {
27
- NONE: 'none',
28
- ACTIVE: 'active',
29
- ON_HOLD: 'onHold',
30
- COMPLETED: 'completed',
31
- DROPPED: 'dropped'
32
- };
33
- var NOTE_VISIBILITY = {
34
- PRIVATE: 'private',
35
- PUBLIC: 'public'
36
- };
37
- var validateNote = validator__default["default"];
143
+ var $schema$2 = "http://json-schema.org/draft-07/schema#";
144
+ var $id$2 = "book";
145
+ var title$2 = "Book";
146
+ var description$2 = "A notebook data";
147
+ var type$2 = "object";
148
+ var properties$2 = {
149
+ _id: {
150
+ description: "The unique notebook ID which should start with `book:` and the remains are randomly generated string",
151
+ type: "string",
152
+ minLength: 6,
153
+ maxLength: 128,
154
+ pattern: "^book:"
155
+ },
156
+ _rev: {
157
+ description: "This is a CouchDB specific field. The current MVCC-token/revision of this document (mandatory and immutable)",
158
+ type: "string"
159
+ },
160
+ name: {
161
+ description: "The notebook name",
162
+ type: "string",
163
+ minLength: 1,
164
+ maxLength: 64
165
+ },
166
+ updatedAt: {
167
+ description: "The date time when the notebook was last updated, represented with Unix timestamps in milliseconds",
168
+ type: "number"
169
+ },
170
+ createdAt: {
171
+ description: "The date time when the notebook was created, represented with Unix timestamps in milliseconds",
172
+ type: "number"
173
+ },
174
+ count: {
175
+ description: "It indicates the number of notes in the notebook",
176
+ type: "number"
177
+ },
178
+ parentBookId: {
179
+ description: "The ID of the parent notebook",
180
+ type: [
181
+ "string",
182
+ "null"
183
+ ]
184
+ }
185
+ };
186
+ var required$2 = [
187
+ "_id",
188
+ "name",
189
+ "updatedAt",
190
+ "createdAt"
191
+ ];
192
+ var book = {
193
+ $schema: $schema$2,
194
+ $id: $id$2,
195
+ title: title$2,
196
+ description: description$2,
197
+ type: type$2,
198
+ properties: properties$2,
199
+ required: required$2
200
+ };
38
201
 
39
- var validateBook = validator__default$1["default"];
202
+ var validateBook = validator$1;
40
203
 
41
- var TAG_COLOR = {
42
- DEFAULT: 'default',
43
- RED: 'red',
44
- ORANGE: 'orange',
45
- YELLOW: 'yellow',
46
- OLIVE: 'olive',
47
- GREEN: 'green',
48
- TEAL: 'teal',
49
- BLUE: 'blue',
50
- VIOLET: 'violet',
51
- PURPLE: 'purple',
52
- PINK: 'pink',
53
- BROWN: 'brown',
54
- GREY: 'grey',
55
- BLACK: 'black'
56
- };
57
- var validateTag = validator__default$2["default"];
204
+ var $schema$1 = "http://json-schema.org/draft-07/schema#";
205
+ var $id$1 = "tag";
206
+ var title$1 = "Tag";
207
+ var description$1 = "A note tag";
208
+ var type$1 = "object";
209
+ var properties$1 = {
210
+ _id: {
211
+ description: "The unique tag ID which should start with `tag:` and the remains are randomly generated string",
212
+ type: "string",
213
+ minLength: 6,
214
+ maxLength: 128,
215
+ pattern: "^tag:"
216
+ },
217
+ _rev: {
218
+ description: "This is a CouchDB specific field. The current MVCC-token/revision of this document (mandatory and immutable)",
219
+ type: "string"
220
+ },
221
+ name: {
222
+ description: "The name of the tag",
223
+ type: "string",
224
+ maxLength: 64
225
+ },
226
+ count: {
227
+ description: "It indicates the number of notes with the tag",
228
+ type: "number"
229
+ },
230
+ color: {
231
+ description: "The color type of the tag",
232
+ type: "string",
233
+ "enum": [
234
+ "default",
235
+ "red",
236
+ "orange",
237
+ "yellow",
238
+ "olive",
239
+ "green",
240
+ "teal",
241
+ "blue",
242
+ "violet",
243
+ "purple",
244
+ "pink",
245
+ "brown",
246
+ "grey",
247
+ "black"
248
+ ]
249
+ },
250
+ updatedAt: {
251
+ description: "The date time when the tag was last updated, represented with Unix timestamps in milliseconds",
252
+ type: "number"
253
+ },
254
+ createdAt: {
255
+ description: "The date time when the tag was created, represented with Unix timestamps in milliseconds",
256
+ type: "number"
257
+ }
258
+ };
259
+ var required$1 = [
260
+ "_id",
261
+ "name",
262
+ "count",
263
+ "updatedAt",
264
+ "createdAt"
265
+ ];
266
+ var tag = {
267
+ $schema: $schema$1,
268
+ $id: $id$1,
269
+ title: title$1,
270
+ description: description$1,
271
+ type: type$1,
272
+ properties: properties$1,
273
+ required: required$1
274
+ };
275
+
276
+ var TAG_COLOR = {
277
+ DEFAULT: 'default',
278
+ RED: 'red',
279
+ ORANGE: 'orange',
280
+ YELLOW: 'yellow',
281
+ OLIVE: 'olive',
282
+ GREEN: 'green',
283
+ TEAL: 'teal',
284
+ BLUE: 'blue',
285
+ VIOLET: 'violet',
286
+ PURPLE: 'purple',
287
+ PINK: 'pink',
288
+ BROWN: 'brown',
289
+ GREY: 'grey',
290
+ BLACK: 'black'
291
+ };
292
+ var validateTag = validator$2;
58
293
 
59
- /*! *****************************************************************************
294
+ /******************************************************************************
60
295
  Copyright (c) Microsoft Corporation.
61
296
 
62
297
  Permission to use, copy, modify, and/or distribute this software for any
@@ -98,72 +333,173 @@ var __assign = function() {
98
333
  return __assign.apply(this, arguments);
99
334
  };
100
335
 
101
- var supportedImageFileTypes = [
102
- 'image/png',
103
- 'image/jpeg',
104
- 'image/jpg',
105
- 'image/svg+xml',
106
- 'image/gif',
107
- 'image/heic',
108
- 'image/heif'
109
- ];
110
- var SUPPORTED_IMAGE_MIME_TYPES = __assign(__assign({}, supportedImageFileTypes.reduce(function (hash, ft) {
111
- var _a;
112
- return (__assign(__assign({}, hash), (_a = {}, _a[ft.split('/')[1]] = ft, _a)));
113
- }, {})), { jpg: 'image/jpeg' });
114
- var maxAttachmentFileSize = 10 * 1024 * 1024;
115
- var validateFile = validator__default$3["default"];
336
+ var $schema = "http://json-schema.org/draft-07/schema#";
337
+ var $id = "file";
338
+ var title = "File";
339
+ var description = "An attachment file";
340
+ var type = "object";
341
+ var properties = {
342
+ _id: {
343
+ description: "The unique document ID which should start with `file:` and the remains are randomly generated string",
344
+ type: "string",
345
+ minLength: 6,
346
+ maxLength: 128,
347
+ pattern: "^file:"
348
+ },
349
+ _rev: {
350
+ description: "This is a CouchDB specific field. The current MVCC-token/revision of this document (mandatory and immutable).",
351
+ type: "string"
352
+ },
353
+ name: {
354
+ description: "The file name",
355
+ type: "string",
356
+ minLength: 1,
357
+ maxLength: 128
358
+ },
359
+ createdAt: {
360
+ description: "The date time when the note was created, represented with Unix timestamps in milliseconds",
361
+ type: "number"
362
+ },
363
+ contentType: {
364
+ description: "The MIME type of the content",
365
+ type: "string",
366
+ "enum": [
367
+ "image/png",
368
+ "image/jpeg",
369
+ "image/jpg",
370
+ "image/svg+xml",
371
+ "image/gif",
372
+ "image/heic",
373
+ "image/heif"
374
+ ],
375
+ maxLength: 128
376
+ },
377
+ contentLength: {
378
+ description: "The content length of the file",
379
+ type: "number",
380
+ maximum: 10485760
381
+ },
382
+ publicIn: {
383
+ description: "An array of the note IDs where the file is included",
384
+ type: "array",
385
+ items: {
386
+ type: "string"
387
+ },
388
+ uniqueItems: true
389
+ },
390
+ _attachments: {
391
+ description: "The attachment file",
392
+ type: "object",
393
+ properties: {
394
+ index: {
395
+ description: "The attachment file",
396
+ type: "object",
397
+ properties: {
398
+ content_type: {
399
+ description: "The content type of the file",
400
+ type: "string",
401
+ "enum": [
402
+ "image/png",
403
+ "image/jpeg",
404
+ "image/jpg",
405
+ "image/svg+xml",
406
+ "image/gif",
407
+ "image/heic",
408
+ "image/heif"
409
+ ]
410
+ },
411
+ data: {
412
+ description: "The file data",
413
+ type: [
414
+ "string",
415
+ "object"
416
+ ]
417
+ }
418
+ },
419
+ required: [
420
+ "content_type",
421
+ "data"
422
+ ]
423
+ }
424
+ },
425
+ required: [
426
+ "index"
427
+ ]
428
+ }
429
+ };
430
+ var required = [
431
+ "_id",
432
+ "name",
433
+ "createdAt",
434
+ "contentType",
435
+ "contentLength",
436
+ "publicIn",
437
+ "_attachments"
438
+ ];
439
+ var file = {
440
+ $schema: $schema,
441
+ $id: $id,
442
+ title: title,
443
+ description: description,
444
+ type: type,
445
+ properties: properties,
446
+ required: required
447
+ };
116
448
 
117
- function validationErrorsToMessage(errors) {
118
- if (errors instanceof Array) {
119
- return errors
120
- .map(function (e) {
121
- if (typeof e === 'object') {
122
- return "\"".concat(e.instancePath, "\" ").concat(e.message);
123
- }
124
- else {
125
- return e;
126
- }
127
- })
128
- .join(', ');
129
- }
130
- else {
131
- return errors;
132
- }
133
- }
134
- var InvalidDataError = /** @class */ (function (_super) {
135
- __extends(InvalidDataError, _super);
136
- function InvalidDataError(message, errors) {
137
- var _this = _super.call(this, message + ' ' + validationErrorsToMessage(errors)) || this;
138
- _this.name = 'InvalidDataError';
139
- _this.errors = errors;
140
- return _this;
141
- }
142
- return InvalidDataError;
449
+ var supportedImageFileTypes = [
450
+ 'image/png',
451
+ 'image/jpeg',
452
+ 'image/jpg',
453
+ 'image/svg+xml',
454
+ 'image/gif',
455
+ 'image/heic',
456
+ 'image/heif'
457
+ ];
458
+ var SUPPORTED_IMAGE_MIME_TYPES = __assign(__assign({}, supportedImageFileTypes.reduce(function (hash, ft) {
459
+ var _a;
460
+ return (__assign(__assign({}, hash), (_a = {}, _a[ft.split('/')[1]] = ft, _a)));
461
+ }, {})), { jpg: 'image/jpeg' });
462
+ var maxAttachmentFileSize = 10 * 1024 * 1024;
463
+ var validateFile = validator$3;
464
+
465
+ function validationErrorsToMessage(errors) {
466
+ if (errors instanceof Array) {
467
+ return errors
468
+ .map(function (e) {
469
+ if (typeof e === 'object') {
470
+ return "\"".concat(e.instancePath, "\" ").concat(e.message);
471
+ }
472
+ else {
473
+ return e;
474
+ }
475
+ })
476
+ .join(', ');
477
+ }
478
+ else {
479
+ return errors;
480
+ }
481
+ }
482
+ var InvalidDataError = /** @class */ (function (_super) {
483
+ __extends(InvalidDataError, _super);
484
+ function InvalidDataError(message, errors) {
485
+ var _this = _super.call(this, message + ' ' + validationErrorsToMessage(errors)) || this;
486
+ _this.name = 'InvalidDataError';
487
+ _this.errors = errors;
488
+ return _this;
489
+ }
490
+ return InvalidDataError;
143
491
  }(Error));
144
492
 
145
- Object.defineProperty(exports, 'NoteSchema', {
146
- enumerable: true,
147
- get: function () { return note_json__default["default"]; }
148
- });
149
- Object.defineProperty(exports, 'BookSchema', {
150
- enumerable: true,
151
- get: function () { return book_json__default["default"]; }
152
- });
153
- Object.defineProperty(exports, 'TagSchema', {
154
- enumerable: true,
155
- get: function () { return tag_json__default["default"]; }
156
- });
157
- Object.defineProperty(exports, 'FileSchema', {
158
- enumerable: true,
159
- get: function () { return file_json__default["default"]; }
160
- });
493
+ exports.BookSchema = book;
494
+ exports.FileSchema = file;
161
495
  exports.InvalidDataError = InvalidDataError;
162
496
  exports.NOTE_STATUS = NOTE_STATUS;
163
497
  exports.NOTE_VISIBILITY = NOTE_VISIBILITY;
498
+ exports.NoteSchema = note;
164
499
  exports.SUPPORTED_IMAGE_MIME_TYPES = SUPPORTED_IMAGE_MIME_TYPES;
165
500
  exports.TAG_COLOR = TAG_COLOR;
166
501
  exports.TRASH_BOOK_ID = TRASH_BOOK_ID;
502
+ exports.TagSchema = tag;
167
503
  exports.maxAttachmentFileSize = maxAttachmentFileSize;
168
504
  exports.supportedImageFileTypes = supportedImageFileTypes;
169
505
  exports.validateBook = validateBook;