rmapi-js 1.0.0 → 2.0.0
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/CHANGELOG.md +22 -0
- package/README.md +34 -9
- package/bundle/rmapi-js.cjs.min.js +4 -4
- package/bundle/rmapi-js.esm.min.js +4 -4
- package/bundle/rmapi-js.iife.min.js +4 -4
- package/dist/index.d.ts +143 -29
- package/dist/index.js +200 -73
- package/package.json +35 -32
- package/bundle/rmapi.cjs.min.js +0 -4
- package/bundle/rmapi.esm.min.js +0 -4
- package/bundle/rmapi.iife.min.js +0 -4
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Changelog
|
|
2
|
+
=========
|
|
3
|
+
|
|
4
|
+
All notable changes to this project will be documented in this file.
|
|
5
|
+
|
|
6
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
7
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
8
|
+
|
|
9
|
+
## [Unreleased]
|
|
10
|
+
|
|
11
|
+
## [1.1.0] - 2022-10-07
|
|
12
|
+
|
|
13
|
+
### Removed
|
|
14
|
+
|
|
15
|
+
- `syncComplete` api was removed as it seems to be no longer supported by
|
|
16
|
+
reMarkable, in favor of auto syncing.
|
|
17
|
+
|
|
18
|
+
## [1.0.0] - 2022-08-07
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- Initial release
|
package/README.md
CHANGED
|
@@ -7,8 +7,10 @@ rmapi-js
|
|
|
7
7
|
|
|
8
8
|
JavaScript implementation of the reMarkable 1.5 api. This implementation is
|
|
9
9
|
built around web standards for fetch and crypto, but can easily be patched to
|
|
10
|
-
work for node.
|
|
11
|
-
|
|
10
|
+
work for node. It should also be pretty easy to customize to work with
|
|
11
|
+
[rmfakecloud](https://github.com/ddvk/rmfakecloud), although that might take a
|
|
12
|
+
little bit of extra plumbing. At the current time it's only partially complete,
|
|
13
|
+
but has the backbone to be flushed out more.
|
|
12
14
|
|
|
13
15
|
This implementation is based off of [`rmapi`](https://github.com/juruen/rmapi),
|
|
14
16
|
but aims to be a little simpler. Currently this does no direct handling of the
|
|
@@ -19,8 +21,8 @@ helpful to supply a custom cache.
|
|
|
19
21
|
API
|
|
20
22
|
---
|
|
21
23
|
|
|
22
|
-
Before using this API it's necessary to have some rudimentary
|
|
23
|
-
the API works.
|
|
24
|
+
Before using this API it's necessary to have some rudimentary understanding of
|
|
25
|
+
how the API works.
|
|
24
26
|
|
|
25
27
|
All data is stored via its sha256 hash. This includes raw files and
|
|
26
28
|
"collections", which have a special format listing all of their `Entry`s by
|
|
@@ -64,6 +66,9 @@ const api = await remarkable(...);
|
|
|
64
66
|
await api.putEpub("document name", epubBuffer);
|
|
65
67
|
```
|
|
66
68
|
|
|
69
|
+
Note that to actually update the reMarkable to display it, the root hash will
|
|
70
|
+
also need to be updated, see method documentation for more info.
|
|
71
|
+
|
|
67
72
|
### Node
|
|
68
73
|
|
|
69
74
|
This uses web standards by default, so using within node takes a little more effort.
|
|
@@ -95,16 +100,36 @@ import fetch from "node-fetch";
|
|
|
95
100
|
const api = await remarkable(token, { fetch });
|
|
96
101
|
```
|
|
97
102
|
|
|
103
|
+
### Newer API
|
|
104
|
+
|
|
105
|
+
Recently I discovered the API the the Read on Remarkable extension uses, which
|
|
106
|
+
bypasses the syncing and fetching of the root hash. These APIs are pretty
|
|
107
|
+
limited but can be an easy first step.
|
|
108
|
+
|
|
109
|
+
```js
|
|
110
|
+
import { remarkable } from "rmapi-js";
|
|
111
|
+
|
|
112
|
+
const api = await remarkable(...);
|
|
113
|
+
// all the files and folders stored on the reMarkable, no roothash necessary
|
|
114
|
+
const entries = await api.getEntriesMetadata();
|
|
115
|
+
// upload epubs and pdfs without root hash
|
|
116
|
+
// NOTE pdfs aren't currently working as expected
|
|
117
|
+
// NOTE epub options aren't supported
|
|
118
|
+
await api.uploadEpub("name", buffer);
|
|
119
|
+
await api.uploadPdf("name", buffer);
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
|
|
98
123
|
Design
|
|
99
124
|
------
|
|
100
125
|
|
|
101
126
|
Building a full syncing version of the remarkable filesystem from the cloud API
|
|
102
|
-
is a project in
|
|
103
|
-
should still be possible to
|
|
127
|
+
is a project in and of itself, so I opted to only implement the primative calls
|
|
128
|
+
which should still be possible to compose into advanced functionality.
|
|
104
129
|
|
|
105
130
|
In order to make this as easily cross platform as possible, web standards were
|
|
106
131
|
chosen as the basis since they enjoy relative adoption in node. However, node
|
|
107
132
|
has middling support of webstreams and since none of the reading or writing is
|
|
108
|
-
that intensive or doesn't already
|
|
109
|
-
|
|
110
|
-
|
|
133
|
+
that intensive or doesn't already require the whole file in memory, we opted to
|
|
134
|
+
process strings or ArrayBuffers ignoring Readable and WriteableStreams for the
|
|
135
|
+
time being.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var lt=Object.create;var N=Object.defineProperty;var dt=Object.getOwnPropertyDescriptor;var ct=Object.getOwnPropertyNames;var pt=Object.getPrototypeOf,gt=Object.prototype.hasOwnProperty;var d=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),yt=(e,t)=>{for(var r in t)N(e,r,{get:t[r],enumerable:!0})},be=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ct(t))!gt.call(e,n)&&n!==r&&N(e,n,{get:()=>t[n],enumerable:!(i=dt(t,n))||i.enumerable});return e};var xe=(e,t,r)=>(r=e!=null?lt(pt(e)):{},be(t||!e||!e.__esModule?N(r,"default",{value:e,enumerable:!0}):r,e)),mt=e=>be(N({},"__esModule",{value:!0}),e);var ae=d(se=>{"use strict";Object.defineProperty(se,"__esModule",{value:!0});se.default=bt;var ht=vt(require("crypto"));function vt(e){return e&&e.__esModule?e:{default:e}}var $=new Uint8Array(256),C=$.length;function bt(){return C>$.length-16&&(ht.default.randomFillSync($),C=0),$.slice(C,C+=16)}});var _e=d(H=>{"use strict";Object.defineProperty(H,"__esModule",{value:!0});H.default=void 0;var xt=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;H.default=xt});var B=d(j=>{"use strict";Object.defineProperty(j,"__esModule",{value:!0});j.default=void 0;var _t=Pt(_e());function Pt(e){return e&&e.__esModule?e:{default:e}}function wt(e){return typeof e=="string"&&_t.default.test(e)}var Tt=wt;j.default=Tt});var L=d(J=>{"use strict";Object.defineProperty(J,"__esModule",{value:!0});J.default=void 0;var Ot=Et(B());function Et(e){return e&&e.__esModule?e:{default:e}}var g=[];for(let e=0;e<256;++e)g.push((e+256).toString(16).substr(1));function kt(e,t=0){let r=(g[e[t+0]]+g[e[t+1]]+g[e[t+2]]+g[e[t+3]]+"-"+g[e[t+4]]+g[e[t+5]]+"-"+g[e[t+6]]+g[e[t+7]]+"-"+g[e[t+8]]+g[e[t+9]]+"-"+g[e[t+10]]+g[e[t+11]]+g[e[t+12]]+g[e[t+13]]+g[e[t+14]]+g[e[t+15]]).toLowerCase();if(!(0,Ot.default)(r))throw TypeError("Stringified UUID is invalid");return r}var At=kt;J.default=At});var Te=d(z=>{"use strict";Object.defineProperty(z,"__esModule",{value:!0});z.default=void 0;var St=we(ae()),Mt=we(L());function we(e){return e&&e.__esModule?e:{default:e}}var Pe,oe,fe=0,ue=0;function Rt(e,t,r){let i=t&&r||0,n=t||new Array(16);e=e||{};let s=e.node||Pe,a=e.clockseq!==void 0?e.clockseq:oe;if(s==null||a==null){let l=e.random||(e.rng||St.default)();s==null&&(s=Pe=[l[0]|1,l[1],l[2],l[3],l[4],l[5]]),a==null&&(a=oe=(l[6]<<8|l[7])&16383)}let o=e.msecs!==void 0?e.msecs:Date.now(),f=e.nsecs!==void 0?e.nsecs:ue+1,c=o-fe+(f-ue)/1e4;if(c<0&&e.clockseq===void 0&&(a=a+1&16383),(c<0||o>fe)&&e.nsecs===void 0&&(f=0),f>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");fe=o,ue=f,oe=a,o+=122192928e5;let p=((o&268435455)*1e4+f)%4294967296;n[i++]=p>>>24&255,n[i++]=p>>>16&255,n[i++]=p>>>8&255,n[i++]=p&255;let v=o/4294967296*1e4&268435455;n[i++]=v>>>8&255,n[i++]=v&255,n[i++]=v>>>24&15|16,n[i++]=v>>>16&255,n[i++]=a>>>8|128,n[i++]=a&255;for(let l=0;l<6;++l)n[i+l]=s[l];return t||(0,Mt.default)(n)}var Ft=Rt;z.default=Ft});var le=d(V=>{"use strict";Object.defineProperty(V,"__esModule",{value:!0});V.default=void 0;var qt=It(B());function It(e){return e&&e.__esModule?e:{default:e}}function Dt(e){if(!(0,qt.default)(e))throw TypeError("Invalid UUID");let t,r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=t&255,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=t&255,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=t&255,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=t&255,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=t&255,r}var Ut=Dt;V.default=Ut});var de=d(E=>{"use strict";Object.defineProperty(E,"__esModule",{value:!0});E.default=Ct;E.URL=E.DNS=void 0;var Bt=Oe(L()),Lt=Oe(le());function Oe(e){return e&&e.__esModule?e:{default:e}}function Nt(e){e=unescape(encodeURIComponent(e));let t=[];for(let r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t}var Ee="6ba7b810-9dad-11d1-80b4-00c04fd430c8";E.DNS=Ee;var ke="6ba7b811-9dad-11d1-80b4-00c04fd430c8";E.URL=ke;function Ct(e,t,r){function i(n,s,a,o){if(typeof n=="string"&&(n=Nt(n)),typeof s=="string"&&(s=(0,Lt.default)(s)),s.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let f=new Uint8Array(16+n.length);if(f.set(s),f.set(n,s.length),f=r(f),f[6]=f[6]&15|t,f[8]=f[8]&63|128,a){o=o||0;for(let c=0;c<16;++c)a[o+c]=f[c];return a}return(0,Bt.default)(f)}try{i.name=e}catch{}return i.DNS=Ee,i.URL=ke,i}});var Ae=d(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});G.default=void 0;var $t=Ht(require("crypto"));function Ht(e){return e&&e.__esModule?e:{default:e}}function jt(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),$t.default.createHash("md5").update(e).digest()}var Jt=jt;G.default=Jt});var Me=d(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.default=void 0;var zt=Se(de()),Vt=Se(Ae());function Se(e){return e&&e.__esModule?e:{default:e}}var Gt=(0,zt.default)("v3",48,Vt.default),Yt=Gt;Y.default=Yt});var Fe=d(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.default=void 0;var Zt=Re(ae()),Wt=Re(L());function Re(e){return e&&e.__esModule?e:{default:e}}function Kt(e,t,r){e=e||{};let i=e.random||(e.rng||Zt.default)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){r=r||0;for(let n=0;n<16;++n)t[r+n]=i[n];return t}return(0,Wt.default)(i)}var Qt=Kt;Z.default=Qt});var qe=d(W=>{"use strict";Object.defineProperty(W,"__esModule",{value:!0});W.default=void 0;var Xt=er(require("crypto"));function er(e){return e&&e.__esModule?e:{default:e}}function tr(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),Xt.default.createHash("sha1").update(e).digest()}var rr=tr;W.default=rr});var De=d(K=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});K.default=void 0;var nr=Ie(de()),ir=Ie(qe());function Ie(e){return e&&e.__esModule?e:{default:e}}var sr=(0,nr.default)("v5",80,ir.default),ar=sr;K.default=ar});var Ue=d(Q=>{"use strict";Object.defineProperty(Q,"__esModule",{value:!0});Q.default=void 0;var or="00000000-0000-0000-0000-000000000000";Q.default=or});var Be=d(X=>{"use strict";Object.defineProperty(X,"__esModule",{value:!0});X.default=void 0;var fr=ur(B());function ur(e){return e&&e.__esModule?e:{default:e}}function lr(e){if(!(0,fr.default)(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}var dr=lr;X.default=dr});var Le=d(_=>{"use strict";Object.defineProperty(_,"__esModule",{value:!0});Object.defineProperty(_,"v1",{enumerable:!0,get:function(){return cr.default}});Object.defineProperty(_,"v3",{enumerable:!0,get:function(){return pr.default}});Object.defineProperty(_,"v4",{enumerable:!0,get:function(){return gr.default}});Object.defineProperty(_,"v5",{enumerable:!0,get:function(){return yr.default}});Object.defineProperty(_,"NIL",{enumerable:!0,get:function(){return mr.default}});Object.defineProperty(_,"version",{enumerable:!0,get:function(){return hr.default}});Object.defineProperty(_,"validate",{enumerable:!0,get:function(){return vr.default}});Object.defineProperty(_,"stringify",{enumerable:!0,get:function(){return br.default}});Object.defineProperty(_,"parse",{enumerable:!0,get:function(){return xr.default}});var cr=w(Te()),pr=w(Me()),gr=w(Fe()),yr=w(De()),mr=w(Ue()),hr=w(Be()),vr=w(B()),br=w(L()),xr=w(le());function w(e){return e&&e.__esModule?e:{default:e}}});var ye=d(u=>{"use strict";var $e=u&&u.__rest||function(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(r[i[n]]=e[i[n]]);return r};Object.defineProperty(u,"__esModule",{value:!0});u.isSchema=u.isValidSchema=u.isDiscriminatorForm=u.isValuesForm=u.isPropertiesForm=u.isElementsForm=u.isEnumForm=u.isTypeForm=u.isRefForm=u.isEmptyForm=void 0;function _r(e){let{definitions:t,nullable:r,metadata:i}=e,n=$e(e,["definitions","nullable","metadata"]);return Object.keys(n).length===0}u.isEmptyForm=_r;function He(e){return"ref"in e}u.isRefForm=He;function Pr(e){return"type"in e}u.isTypeForm=Pr;function je(e){return"enum"in e}u.isEnumForm=je;function Je(e){return"elements"in e}u.isElementsForm=Je;function ge(e){return"properties"in e||"optionalProperties"in e}u.isPropertiesForm=ge;function ze(e){return"values"in e}u.isValuesForm=ze;function Ve(e){return"discriminator"in e}u.isDiscriminatorForm=Ve;function k(e,t){if(t===void 0&&(t=e),e.definitions!==void 0){if(t!==e)return!1;for(let r of Object.values(e.definitions))if(!k(r,t))return!1}if(He(e)&&!(e.ref in(t.definitions||{}))||je(e)&&(e.enum.length===0||e.enum.length!==new Set(e.enum).size))return!1;if(Je(e))return k(e.elements,t);if(ge(e)){for(let r of Object.values(e.properties||{}))if(!k(r,t))return!1;for(let r of Object.values(e.optionalProperties||{}))if(!k(r,t))return!1;for(let r of Object.keys(e.properties||{}))if(r in(e.optionalProperties||{}))return!1}if(ze(e))return k(e.values,t);if(Ve(e)){for(let r of Object.values(e.mapping))if(!k(r,t)||!ge(r)||r.nullable||e.discriminator in(r.properties||{})||e.discriminator in(r.optionalProperties||{}))return!1}return!0}u.isValidSchema=k;var wr=[[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1],[!0,!1,!1,!1,!1,!1,!1,!1,!1,!1],[!1,!0,!1,!1,!1,!1,!1,!1,!1,!1],[!1,!1,!0,!1,!1,!1,!1,!1,!1,!1],[!1,!1,!1,!0,!1,!1,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!1,!1,!1,!1,!1],[!1,!1,!1,!1,!1,!0,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!0,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!1,!0,!1,!1,!1],[!1,!1,!1,!1,!1,!0,!0,!1,!1,!1],[!1,!1,!1,!1,!0,!0,!0,!1,!1,!1],[!1,!1,!1,!1,!1,!1,!1,!0,!1,!1],[!1,!1,!1,!1,!1,!1,!1,!1,!0,!0]],Tr=["boolean","float32","float64","int8","uint8","int16","uint16","int32","uint32","string","timestamp"];function A(e){if(typeof e!="object"||Array.isArray(e)||e===null)return!1;let t=e,{definitions:r=void 0,nullable:i=void 0,metadata:n=void 0,ref:s=void 0,type:a=void 0,enum:o=void 0,elements:f=void 0,properties:c=void 0,optionalProperties:p=void 0,additionalProperties:v=void 0,values:l=void 0,discriminator:D=void 0,mapping:b=void 0}=t,ne=$e(t,["definitions","nullable","metadata","ref","type","enum","elements","properties","optionalProperties","additionalProperties","values","discriminator","mapping"]),ie=[s!==void 0,a!==void 0,o!==void 0,f!==void 0,c!==void 0,p!==void 0,v!==void 0,l!==void 0,D!==void 0,b!==void 0],U=!1;for(let x of wr)U=U||x.every((ft,ut)=>ft===ie[ut]);if(!U)return!1;if(r!==void 0){if(typeof r!="object"||Array.isArray(r)||r===null)return!1;for(let x of Object.values(r))if(!A(x))return!1}if(i!==void 0&&typeof i!="boolean"||n!==void 0&&(typeof n!="object"||Array.isArray(n)||n===null)||s!==void 0&&typeof s!="string"||a!==void 0&&(typeof a!="string"||!Tr.includes(a))||o!==void 0&&(!Array.isArray(o)||!o.every(x=>typeof x=="string"))||f!==void 0&&!A(f))return!1;if(c!==void 0){if(typeof c!="object"||Array.isArray(c)||c===null)return!1;for(let x of Object.values(c))if(!A(x))return!1}if(p!==void 0){if(typeof p!="object"||Array.isArray(p)||p===null)return!1;for(let x of Object.values(p))if(!A(x))return!1}if(v!==void 0&&typeof v!="boolean"||l!==void 0&&!A(l)||D!==void 0&&typeof D!="string")return!1;if(b!==void 0){if(typeof b!="object"||Array.isArray(b)||b===null)return!1;for(let x of Object.values(b))if(!A(x))return!1}return Object.keys(ne).length===0}u.isSchema=A});var Ge=d(me=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});var Or=/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(\.\d+)?([zZ]|((\+|-)(\d{2}):(\d{2})))$/;function Er(e){let t=e.match(Or);if(t===null)return!1;let r=parseInt(t[1],10),i=parseInt(t[2],10),n=parseInt(t[3],10),s=parseInt(t[4],10),a=parseInt(t[5],10),o=parseInt(t[6],10);return!(i>12||n>kr(r,i)||s>23||a>59||o>60)}me.default=Er;function kr(e,t){return t===2?Ar(e)?29:28:Sr[t]}function Ar(e){return e%4===0&&(e%100!==0||e%400===0)}var Sr=[0,31,0,31,30,31,30,31,31,30,31,30,31]});var Ye=d(T=>{"use strict";var Mr=T&&T.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(T,"__esModule",{value:!0});T.validate=T.MaxDepthExceededError=void 0;var Rr=Mr(Ge()),S=ye(),ee=class extends Error{};T.MaxDepthExceededError=ee;var te=class extends Error{};function Fr(e,t,r){let i={errors:[],instanceTokens:[],schemaTokens:[[]],root:e,config:r||{maxDepth:0,maxErrors:0}};try{F(i,e,t)}catch(n){if(!(n instanceof te))throw n}return i.errors}T.validate=Fr;function F(e,t,r,i){if(!(t.nullable&&r===null)){if(S.isRefForm(t)){if(e.schemaTokens.length===e.config.maxDepth)throw new ee;e.schemaTokens.push(["definitions",t.ref]),F(e,e.root.definitions[t.ref],r),e.schemaTokens.pop()}else if(S.isTypeForm(t)){switch(y(e,"type"),t.type){case"boolean":typeof r!="boolean"&&m(e);break;case"float32":case"float64":typeof r!="number"&&m(e);break;case"int8":I(e,r,-128,127);break;case"uint8":I(e,r,0,255);break;case"int16":I(e,r,-32768,32767);break;case"uint16":I(e,r,0,65535);break;case"int32":I(e,r,-2147483648,2147483647);break;case"uint32":I(e,r,0,4294967295);break;case"string":typeof r!="string"&&m(e);break;case"timestamp":typeof r!="string"?m(e):Rr.default(r)||m(e);break}h(e)}else if(S.isEnumForm(t))y(e,"enum"),(typeof r!="string"||!t.enum.includes(r))&&m(e),h(e);else if(S.isElementsForm(t)){if(y(e,"elements"),Array.isArray(r))for(let[n,s]of r.entries())M(e,n.toString()),F(e,t.elements,s),R(e);else m(e);h(e)}else if(S.isPropertiesForm(t))if(typeof r=="object"&&r!==null&&!Array.isArray(r)){if(t.properties!==void 0){y(e,"properties");for(let[n,s]of Object.entries(t.properties))y(e,n),r.hasOwnProperty(n)?(M(e,n),F(e,s,r[n]),R(e)):m(e),h(e);h(e)}if(t.optionalProperties!==void 0){y(e,"optionalProperties");for(let[n,s]of Object.entries(t.optionalProperties))y(e,n),r.hasOwnProperty(n)&&(M(e,n),F(e,s,r[n]),R(e)),h(e);h(e)}if(t.additionalProperties!==!0)for(let n of Object.keys(r)){let s=t.properties&&n in t.properties,a=t.optionalProperties&&n in t.optionalProperties;!s&&!a&&n!==i&&(M(e,n),m(e),R(e))}}else t.properties!==void 0?y(e,"properties"):y(e,"optionalProperties"),m(e),h(e);else if(S.isValuesForm(t)){if(y(e,"values"),typeof r=="object"&&r!==null&&!Array.isArray(r))for(let[n,s]of Object.entries(r))M(e,n),F(e,t.values,s),R(e);else m(e);h(e)}else if(S.isDiscriminatorForm(t))if(typeof r=="object"&&r!==null&&!Array.isArray(r))if(r.hasOwnProperty(t.discriminator)){let n=r[t.discriminator];typeof n=="string"?n in t.mapping?(y(e,"mapping"),y(e,n),F(e,t.mapping[n],r,t.discriminator),h(e),h(e)):(y(e,"mapping"),M(e,t.discriminator),m(e),R(e),h(e)):(y(e,"discriminator"),M(e,t.discriminator),m(e),R(e),h(e))}else y(e,"discriminator"),m(e),h(e);else y(e,"discriminator"),m(e),h(e)}}function I(e,t,r,i){(typeof t!="number"||!Number.isInteger(t)||t<r||t>i)&&m(e)}function M(e,t){e.instanceTokens.push(t)}function R(e){e.instanceTokens.pop()}function y(e,t){e.schemaTokens[e.schemaTokens.length-1].push(t)}function h(e){e.schemaTokens[e.schemaTokens.length-1].pop()}function m(e){if(e.errors.push({instancePath:[...e.instanceTokens],schemaPath:[...e.schemaTokens[e.schemaTokens.length-1]]}),e.errors.length===e.config.maxErrors)throw new te}});var We=d(O=>{"use strict";var qr=O&&O.__createBinding||(Object.create?function(e,t,r,i){i===void 0&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]}),Ze=O&&O.__exportStar||function(e,t){for(var r in e)r!=="default"&&!t.hasOwnProperty(r)&&qr(t,e,r)};Object.defineProperty(O,"__esModule",{value:!0});Ze(ye(),O);Ze(Ye(),O)});var Hr={};yt(Hr,{GenerationError:()=>re,ResponseError:()=>q,builtinFontNames:()=>Br,builtinLineHeights:()=>st,builtinMargins:()=>it,builtinTextScales:()=>nt,builtinTools:()=>Ur,formatEntry:()=>at,parseEntry:()=>ot,register:()=>Cr,remarkable:()=>$r});module.exports=mt(Hr);var P=xe(Le(),1),an=P.default.v1,on=P.default.v3,ce=P.default.v4,fn=P.default.v5,un=P.default.NIL,ln=P.default.version,dn=P.default.validate,cn=P.default.stringify,pn=P.default.parse;function pe(e){return[...new Uint8Array(e)].map(t=>t.toString(16).padStart(2,"0")).join("")}function Ne(e){return new Uint8Array((e.match(/../g)??[]).map(t=>parseInt(t,16)))}function Ce(e){let t=0;for(let n of e)t+=n.length;let r=new Uint8Array(t),i=0;for(let n of e)r.set(n,i),i+=n.length;return r}var Ke=xe(We());function he(e,t){if((0,Ke.validate)(e,t).length)throw new Error(`couldn't validate schema: ${JSON.stringify(t)} didn't match schema ${JSON.stringify(e)}`)}var Qe="3",rt="https://webapp-production-dot-remarkable-production.appspot.com",Ir="https://rm-blob-storage-prod.appspot.com",Xe="x-goog-generation",Dr="x-goog-if-generation-match",Ur=["Ballpoint","Ballpointv2","Brush","Calligraphy","ClearPage","EraseSection","Eraser","Fineliner","Finelinerv2","Highlighter","Highlighterv2","Marker","Markerv2","Paintbrush","Paintbrushv2","Pencilv2","SharpPencil","SharpPencilv2","SolidPen","ZoomTool"],Br=["Maison Neue","EB Garamond","Noto Sans","Noto Serif","Noto Mono","Noto Sans UI"],nt={xs:.7,sm:.8,md:1,lg:1.2,xl:1.5,xx:2},it={sm:50,md:125,rr:180,lg:200},st={df:-1,md:100,lg:150,xl:200},Lr={properties:{relative_path:{type:"string"},url:{type:"string"},expires:{type:"timestamp"},method:{enum:["POST","GET","PUT","DELETE"]}}},et={visibleName:{type:"string"},parent:{type:"string"},lastModified:{type:"string"},version:{type:"int32"},synced:{type:"boolean"}},tt={pinned:{type:"boolean"},modified:{type:"boolean"},deleted:{type:"boolean"},metadatamodified:{type:"boolean"}},Nr={discriminator:"type",mapping:{CollectionType:{properties:et,optionalProperties:tt},DocumentType:{properties:et,optionalProperties:{...tt,lastOpened:{type:"string"},lastOpenedPage:{type:"int32"}}}}},q=class extends Error{constructor(r,i,n){super(n);this.status=r,this.statusText=i}},re=class extends Error{constructor(){super("Generation preconditions failed. This means the current state is out of date with the cloud and needs to be re-synced.")}};async function Cr(e,{deviceDesc:t="desktop-linux",uuid:r=ce(),authUrl:i=rt,fetch:n=globalThis.fetch}={}){if(e.length!==8)throw new Error(`code should be length 8, but was ${e.length}`);let s=await n(`${i}/token/json/2/device/new`,{method:"POST",headers:{Authorization:"Bearer"},body:JSON.stringify({code:e,deviceDesc:t,deviceID:r})});if(s.ok)return await s.text();throw new q(s.status,s.statusText,"couldn't register api")}function at({hash:e,type:t,documentId:r,subfiles:i,size:n}){return`${e}:${t}:${r}:${i}:${n}
|
|
2
|
-
`}function
|
|
3
|
-
`);if(i!==
|
|
4
|
-
${
|
|
1
|
+
var Pt=Object.create;var H=Object.defineProperty;var wt=Object.getOwnPropertyDescriptor;var Et=Object.getOwnPropertyNames;var Tt=Object.getPrototypeOf,At=Object.prototype.hasOwnProperty;var c=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ot=(e,t)=>{for(var r in t)H(e,r,{get:t[r],enumerable:!0})},Ae=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Et(t))!At.call(e,n)&&n!==r&&H(e,n,{get:()=>t[n],enumerable:!(i=wt(t,n))||i.enumerable});return e};var de=(e,t,r)=>(r=e!=null?Pt(Tt(e)):{},Ae(t||!e||!e.__esModule?H(r,"default",{value:e,enumerable:!0}):r,e)),kt=e=>Ae(H({},"__esModule",{value:!0}),e);var Se=c(j=>{"use strict";j.byteLength=Mt;j.toByteArray=Rt;j.fromByteArray=Ut;var P=[],x=[],St=typeof Uint8Array<"u"?Uint8Array:Array,ce="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(O=0,Oe=ce.length;O<Oe;++O)P[O]=ce[O],x[ce.charCodeAt(O)]=O;var O,Oe;x["-".charCodeAt(0)]=62;x["_".charCodeAt(0)]=63;function ke(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");r===-1&&(r=t);var i=r===t?0:4-r%4;return[r,i]}function Mt(e){var t=ke(e),r=t[0],i=t[1];return(r+i)*3/4-i}function Ft(e,t,r){return(t+r)*3/4-r}function Rt(e){var t,r=ke(e),i=r[0],n=r[1],a=new St(Ft(e,i,n)),s=0,f=n>0?i-4:i,o;for(o=0;o<f;o+=4)t=x[e.charCodeAt(o)]<<18|x[e.charCodeAt(o+1)]<<12|x[e.charCodeAt(o+2)]<<6|x[e.charCodeAt(o+3)],a[s++]=t>>16&255,a[s++]=t>>8&255,a[s++]=t&255;return n===2&&(t=x[e.charCodeAt(o)]<<2|x[e.charCodeAt(o+1)]>>4,a[s++]=t&255),n===1&&(t=x[e.charCodeAt(o)]<<10|x[e.charCodeAt(o+1)]<<4|x[e.charCodeAt(o+2)]>>2,a[s++]=t>>8&255,a[s++]=t&255),a}function Ct(e){return P[e>>18&63]+P[e>>12&63]+P[e>>6&63]+P[e&63]}function Dt(e,t,r){for(var i,n=[],a=t;a<r;a+=3)i=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(e[a+2]&255),n.push(Ct(i));return n.join("")}function Ut(e){for(var t,r=e.length,i=r%3,n=[],a=16383,s=0,f=r-i;s<f;s+=a)n.push(Dt(e,s,s+a>f?f:s+a));return i===1?(t=e[r-1],n.push(P[t>>2]+P[t<<4&63]+"==")):i===2&&(t=(e[r-2]<<8)+e[r-1],n.push(P[t>>10]+P[t>>4&63]+P[t<<2&63]+"=")),n.join("")}});var ye=c(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.default=Lt;var It=qt(require("crypto"));function qt(e){return e&&e.__esModule?e:{default:e}}var z=new Uint8Array(256),J=z.length;function Lt(){return J>z.length-16&&(It.default.randomFillSync(z),J=0),z.slice(J,J+=16)}});var Me=c(V=>{"use strict";Object.defineProperty(V,"__esModule",{value:!0});V.default=void 0;var Bt=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;V.default=Bt});var L=c(G=>{"use strict";Object.defineProperty(G,"__esModule",{value:!0});G.default=void 0;var Nt=$t(Me());function $t(e){return e&&e.__esModule?e:{default:e}}function Ht(e){return typeof e=="string"&&Nt.default.test(e)}var jt=Ht;G.default=jt});var N=c(B=>{"use strict";Object.defineProperty(B,"__esModule",{value:!0});B.default=void 0;B.unsafeStringify=Fe;var Jt=zt(L());function zt(e){return e&&e.__esModule?e:{default:e}}var y=[];for(let e=0;e<256;++e)y.push((e+256).toString(16).slice(1));function Fe(e,t=0){return(y[e[t+0]]+y[e[t+1]]+y[e[t+2]]+y[e[t+3]]+"-"+y[e[t+4]]+y[e[t+5]]+"-"+y[e[t+6]]+y[e[t+7]]+"-"+y[e[t+8]]+y[e[t+9]]+"-"+y[e[t+10]]+y[e[t+11]]+y[e[t+12]]+y[e[t+13]]+y[e[t+14]]+y[e[t+15]]).toLowerCase()}function Vt(e,t=0){let r=Fe(e,t);if(!(0,Jt.default)(r))throw TypeError("Stringified UUID is invalid");return r}var Gt=Vt;B.default=Gt});var Ce=c(Y=>{"use strict";Object.defineProperty(Y,"__esModule",{value:!0});Y.default=void 0;var Yt=Wt(ye()),Zt=N();function Wt(e){return e&&e.__esModule?e:{default:e}}var Re,me,ge=0,he=0;function Kt(e,t,r){let i=t&&r||0,n=t||new Array(16);e=e||{};let a=e.node||Re,s=e.clockseq!==void 0?e.clockseq:me;if(a==null||s==null){let p=e.random||(e.rng||Yt.default)();a==null&&(a=Re=[p[0]|1,p[1],p[2],p[3],p[4],p[5]]),s==null&&(s=me=(p[6]<<8|p[7])&16383)}let f=e.msecs!==void 0?e.msecs:Date.now(),o=e.nsecs!==void 0?e.nsecs:he+1,u=f-ge+(o-he)/1e4;if(u<0&&e.clockseq===void 0&&(s=s+1&16383),(u<0||f>ge)&&e.nsecs===void 0&&(o=0),o>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");ge=f,he=o,me=s,f+=122192928e5;let l=((f&268435455)*1e4+o)%4294967296;n[i++]=l>>>24&255,n[i++]=l>>>16&255,n[i++]=l>>>8&255,n[i++]=l&255;let v=f/4294967296*1e4&268435455;n[i++]=v>>>8&255,n[i++]=v&255,n[i++]=v>>>24&15|16,n[i++]=v>>>16&255,n[i++]=s>>>8|128,n[i++]=s&255;for(let p=0;p<6;++p)n[i+p]=a[p];return t||(0,Zt.unsafeStringify)(n)}var Qt=Kt;Y.default=Qt});var ve=c(Z=>{"use strict";Object.defineProperty(Z,"__esModule",{value:!0});Z.default=void 0;var Xt=er(L());function er(e){return e&&e.__esModule?e:{default:e}}function tr(e){if(!(0,Xt.default)(e))throw TypeError("Invalid UUID");let t,r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=t&255,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=t&255,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=t&255,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=t&255,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=t&255,r}var rr=tr;Z.default=rr});var xe=c(k=>{"use strict";Object.defineProperty(k,"__esModule",{value:!0});k.URL=k.DNS=void 0;k.default=or;var nr=N(),ir=ar(ve());function ar(e){return e&&e.__esModule?e:{default:e}}function sr(e){e=unescape(encodeURIComponent(e));let t=[];for(let r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t}var De="6ba7b810-9dad-11d1-80b4-00c04fd430c8";k.DNS=De;var Ue="6ba7b811-9dad-11d1-80b4-00c04fd430c8";k.URL=Ue;function or(e,t,r){function i(n,a,s,f){var o;if(typeof n=="string"&&(n=sr(n)),typeof a=="string"&&(a=(0,ir.default)(a)),((o=a)===null||o===void 0?void 0:o.length)!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let u=new Uint8Array(16+n.length);if(u.set(a),u.set(n,a.length),u=r(u),u[6]=u[6]&15|t,u[8]=u[8]&63|128,s){f=f||0;for(let l=0;l<16;++l)s[f+l]=u[l];return s}return(0,nr.unsafeStringify)(u)}try{i.name=e}catch{}return i.DNS=De,i.URL=Ue,i}});var Ie=c(W=>{"use strict";Object.defineProperty(W,"__esModule",{value:!0});W.default=void 0;var fr=ur(require("crypto"));function ur(e){return e&&e.__esModule?e:{default:e}}function lr(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),fr.default.createHash("md5").update(e).digest()}var dr=lr;W.default=dr});var Le=c(K=>{"use strict";Object.defineProperty(K,"__esModule",{value:!0});K.default=void 0;var cr=qe(xe()),pr=qe(Ie());function qe(e){return e&&e.__esModule?e:{default:e}}var yr=(0,cr.default)("v3",48,pr.default),mr=yr;K.default=mr});var Be=c(Q=>{"use strict";Object.defineProperty(Q,"__esModule",{value:!0});Q.default=void 0;var gr=hr(require("crypto"));function hr(e){return e&&e.__esModule?e:{default:e}}var vr={randomUUID:gr.default.randomUUID};Q.default=vr});var He=c(X=>{"use strict";Object.defineProperty(X,"__esModule",{value:!0});X.default=void 0;var Ne=$e(Be()),xr=$e(ye()),br=N();function $e(e){return e&&e.__esModule?e:{default:e}}function _r(e,t,r){if(Ne.default.randomUUID&&!t&&!e)return Ne.default.randomUUID();e=e||{};let i=e.random||(e.rng||xr.default)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){r=r||0;for(let n=0;n<16;++n)t[r+n]=i[n];return t}return(0,br.unsafeStringify)(i)}var Pr=_r;X.default=Pr});var je=c(ee=>{"use strict";Object.defineProperty(ee,"__esModule",{value:!0});ee.default=void 0;var wr=Er(require("crypto"));function Er(e){return e&&e.__esModule?e:{default:e}}function Tr(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),wr.default.createHash("sha1").update(e).digest()}var Ar=Tr;ee.default=Ar});var ze=c(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.default=void 0;var Or=Je(xe()),kr=Je(je());function Je(e){return e&&e.__esModule?e:{default:e}}var Sr=(0,Or.default)("v5",80,kr.default),Mr=Sr;te.default=Mr});var Ve=c(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});re.default=void 0;var Fr="00000000-0000-0000-0000-000000000000";re.default=Fr});var Ge=c(ne=>{"use strict";Object.defineProperty(ne,"__esModule",{value:!0});ne.default=void 0;var Rr=Cr(L());function Cr(e){return e&&e.__esModule?e:{default:e}}function Dr(e){if(!(0,Rr.default)(e))throw TypeError("Invalid UUID");return parseInt(e.slice(14,15),16)}var Ur=Dr;ne.default=Ur});var Ye=c(_=>{"use strict";Object.defineProperty(_,"__esModule",{value:!0});Object.defineProperty(_,"NIL",{enumerable:!0,get:function(){return Nr.default}});Object.defineProperty(_,"parse",{enumerable:!0,get:function(){return Jr.default}});Object.defineProperty(_,"stringify",{enumerable:!0,get:function(){return jr.default}});Object.defineProperty(_,"v1",{enumerable:!0,get:function(){return Ir.default}});Object.defineProperty(_,"v3",{enumerable:!0,get:function(){return qr.default}});Object.defineProperty(_,"v4",{enumerable:!0,get:function(){return Lr.default}});Object.defineProperty(_,"v5",{enumerable:!0,get:function(){return Br.default}});Object.defineProperty(_,"validate",{enumerable:!0,get:function(){return Hr.default}});Object.defineProperty(_,"version",{enumerable:!0,get:function(){return $r.default}});var Ir=E(Ce()),qr=E(Le()),Lr=E(He()),Br=E(ze()),Nr=E(Ve()),$r=E(Ge()),Hr=E(L()),jr=E(N()),Jr=E(ve());function E(e){return e&&e.__esModule?e:{default:e}}});var we=c(d=>{"use strict";var Ke=d&&d.__rest||function(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(r[i[n]]=e[i[n]]);return r};Object.defineProperty(d,"__esModule",{value:!0});d.isSchema=d.isValidSchema=d.isDiscriminatorForm=d.isValuesForm=d.isPropertiesForm=d.isElementsForm=d.isEnumForm=d.isTypeForm=d.isRefForm=d.isEmptyForm=void 0;function zr(e){let{definitions:t,nullable:r,metadata:i}=e,n=Ke(e,["definitions","nullable","metadata"]);return Object.keys(n).length===0}d.isEmptyForm=zr;function Qe(e){return"ref"in e}d.isRefForm=Qe;function Vr(e){return"type"in e}d.isTypeForm=Vr;function Xe(e){return"enum"in e}d.isEnumForm=Xe;function et(e){return"elements"in e}d.isElementsForm=et;function Pe(e){return"properties"in e||"optionalProperties"in e}d.isPropertiesForm=Pe;function tt(e){return"values"in e}d.isValuesForm=tt;function rt(e){return"discriminator"in e}d.isDiscriminatorForm=rt;function S(e,t){if(t===void 0&&(t=e),e.definitions!==void 0){if(t!==e)return!1;for(let r of Object.values(e.definitions))if(!S(r,t))return!1}if(Qe(e)&&!(e.ref in(t.definitions||{}))||Xe(e)&&(e.enum.length===0||e.enum.length!==new Set(e.enum).size))return!1;if(et(e))return S(e.elements,t);if(Pe(e)){for(let r of Object.values(e.properties||{}))if(!S(r,t))return!1;for(let r of Object.values(e.optionalProperties||{}))if(!S(r,t))return!1;for(let r of Object.keys(e.properties||{}))if(r in(e.optionalProperties||{}))return!1}if(tt(e))return S(e.values,t);if(rt(e)){for(let r of Object.values(e.mapping))if(!S(r,t)||!Pe(r)||r.nullable||e.discriminator in(r.properties||{})||e.discriminator in(r.optionalProperties||{}))return!1}return!0}d.isValidSchema=S;var Gr=[[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1],[!0,!1,!1,!1,!1,!1,!1,!1,!1,!1],[!1,!0,!1,!1,!1,!1,!1,!1,!1,!1],[!1,!1,!0,!1,!1,!1,!1,!1,!1,!1],[!1,!1,!1,!0,!1,!1,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!1,!1,!1,!1,!1],[!1,!1,!1,!1,!1,!0,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!0,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!1,!0,!1,!1,!1],[!1,!1,!1,!1,!1,!0,!0,!1,!1,!1],[!1,!1,!1,!1,!0,!0,!0,!1,!1,!1],[!1,!1,!1,!1,!1,!1,!1,!0,!1,!1],[!1,!1,!1,!1,!1,!1,!1,!1,!0,!0]],Yr=["boolean","float32","float64","int8","uint8","int16","uint16","int32","uint32","string","timestamp"];function M(e){if(typeof e!="object"||Array.isArray(e)||e===null)return!1;let t=e,{definitions:r=void 0,nullable:i=void 0,metadata:n=void 0,ref:a=void 0,type:s=void 0,enum:f=void 0,elements:o=void 0,properties:u=void 0,optionalProperties:l=void 0,additionalProperties:v=void 0,values:p=void 0,discriminator:ue=void 0,mapping:I=void 0}=t,vt=Ke(t,["definitions","nullable","metadata","ref","type","enum","elements","properties","optionalProperties","additionalProperties","values","discriminator","mapping"]),xt=[a!==void 0,s!==void 0,f!==void 0,o!==void 0,u!==void 0,l!==void 0,v!==void 0,p!==void 0,ue!==void 0,I!==void 0],le=!1;for(let b of Gr)le=le||b.every((bt,_t)=>bt===xt[_t]);if(!le)return!1;if(r!==void 0){if(typeof r!="object"||Array.isArray(r)||r===null)return!1;for(let b of Object.values(r))if(!M(b))return!1}if(i!==void 0&&typeof i!="boolean"||n!==void 0&&(typeof n!="object"||Array.isArray(n)||n===null)||a!==void 0&&typeof a!="string"||s!==void 0&&(typeof s!="string"||!Yr.includes(s))||f!==void 0&&(!Array.isArray(f)||!f.every(b=>typeof b=="string"))||o!==void 0&&!M(o))return!1;if(u!==void 0){if(typeof u!="object"||Array.isArray(u)||u===null)return!1;for(let b of Object.values(u))if(!M(b))return!1}if(l!==void 0){if(typeof l!="object"||Array.isArray(l)||l===null)return!1;for(let b of Object.values(l))if(!M(b))return!1}if(v!==void 0&&typeof v!="boolean"||p!==void 0&&!M(p)||ue!==void 0&&typeof ue!="string")return!1;if(I!==void 0){if(typeof I!="object"||Array.isArray(I)||I===null)return!1;for(let b of Object.values(I))if(!M(b))return!1}return Object.keys(vt).length===0}d.isSchema=M});var nt=c(Ee=>{"use strict";Object.defineProperty(Ee,"__esModule",{value:!0});var Zr=/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(\.\d+)?([zZ]|((\+|-)(\d{2}):(\d{2})))$/;function Wr(e){let t=e.match(Zr);if(t===null)return!1;let r=parseInt(t[1],10),i=parseInt(t[2],10),n=parseInt(t[3],10),a=parseInt(t[4],10),s=parseInt(t[5],10),f=parseInt(t[6],10);return!(i>12||n>Kr(r,i)||a>23||s>59||f>60)}Ee.default=Wr;function Kr(e,t){return t===2?Qr(e)?29:28:Xr[t]}function Qr(e){return e%4===0&&(e%100!==0||e%400===0)}var Xr=[0,31,0,31,30,31,30,31,31,30,31,30,31]});var it=c(T=>{"use strict";var en=T&&T.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(T,"__esModule",{value:!0});T.validate=T.MaxDepthExceededError=void 0;var tn=en(nt()),F=we(),ie=class extends Error{};T.MaxDepthExceededError=ie;var ae=class extends Error{};function rn(e,t,r){let i={errors:[],instanceTokens:[],schemaTokens:[[]],root:e,config:r||{maxDepth:0,maxErrors:0}};try{D(i,e,t)}catch(n){if(!(n instanceof ae))throw n}return i.errors}T.validate=rn;function D(e,t,r,i){if(!(t.nullable&&r===null)){if(F.isRefForm(t)){if(e.schemaTokens.length===e.config.maxDepth)throw new ie;e.schemaTokens.push(["definitions",t.ref]),D(e,e.root.definitions[t.ref],r),e.schemaTokens.pop()}else if(F.isTypeForm(t)){switch(m(e,"type"),t.type){case"boolean":typeof r!="boolean"&&g(e);break;case"float32":case"float64":typeof r!="number"&&g(e);break;case"int8":q(e,r,-128,127);break;case"uint8":q(e,r,0,255);break;case"int16":q(e,r,-32768,32767);break;case"uint16":q(e,r,0,65535);break;case"int32":q(e,r,-2147483648,2147483647);break;case"uint32":q(e,r,0,4294967295);break;case"string":typeof r!="string"&&g(e);break;case"timestamp":typeof r!="string"?g(e):tn.default(r)||g(e);break}h(e)}else if(F.isEnumForm(t))m(e,"enum"),(typeof r!="string"||!t.enum.includes(r))&&g(e),h(e);else if(F.isElementsForm(t)){if(m(e,"elements"),Array.isArray(r))for(let[n,a]of r.entries())R(e,n.toString()),D(e,t.elements,a),C(e);else g(e);h(e)}else if(F.isPropertiesForm(t))if(typeof r=="object"&&r!==null&&!Array.isArray(r)){if(t.properties!==void 0){m(e,"properties");for(let[n,a]of Object.entries(t.properties))m(e,n),r.hasOwnProperty(n)?(R(e,n),D(e,a,r[n]),C(e)):g(e),h(e);h(e)}if(t.optionalProperties!==void 0){m(e,"optionalProperties");for(let[n,a]of Object.entries(t.optionalProperties))m(e,n),r.hasOwnProperty(n)&&(R(e,n),D(e,a,r[n]),C(e)),h(e);h(e)}if(t.additionalProperties!==!0)for(let n of Object.keys(r)){let a=t.properties&&n in t.properties,s=t.optionalProperties&&n in t.optionalProperties;!a&&!s&&n!==i&&(R(e,n),g(e),C(e))}}else t.properties!==void 0?m(e,"properties"):m(e,"optionalProperties"),g(e),h(e);else if(F.isValuesForm(t)){if(m(e,"values"),typeof r=="object"&&r!==null&&!Array.isArray(r))for(let[n,a]of Object.entries(r))R(e,n),D(e,t.values,a),C(e);else g(e);h(e)}else if(F.isDiscriminatorForm(t))if(typeof r=="object"&&r!==null&&!Array.isArray(r))if(r.hasOwnProperty(t.discriminator)){let n=r[t.discriminator];typeof n=="string"?n in t.mapping?(m(e,"mapping"),m(e,n),D(e,t.mapping[n],r,t.discriminator),h(e),h(e)):(m(e,"mapping"),R(e,t.discriminator),g(e),C(e),h(e)):(m(e,"discriminator"),R(e,t.discriminator),g(e),C(e),h(e))}else m(e,"discriminator"),g(e),h(e);else m(e,"discriminator"),g(e),h(e)}}function q(e,t,r,i){(typeof t!="number"||!Number.isInteger(t)||t<r||t>i)&&g(e)}function R(e,t){e.instanceTokens.push(t)}function C(e){e.instanceTokens.pop()}function m(e,t){e.schemaTokens[e.schemaTokens.length-1].push(t)}function h(e){e.schemaTokens[e.schemaTokens.length-1].pop()}function g(e){if(e.errors.push({instancePath:[...e.instanceTokens],schemaPath:[...e.schemaTokens[e.schemaTokens.length-1]]}),e.errors.length===e.config.maxErrors)throw new ae}});var st=c(A=>{"use strict";var nn=A&&A.__createBinding||(Object.create?function(e,t,r,i){i===void 0&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]}),at=A&&A.__exportStar||function(e,t){for(var r in e)r!=="default"&&!t.hasOwnProperty(r)&&nn(t,e,r)};Object.defineProperty(A,"__esModule",{value:!0});at(we(),A);at(it(),A)});var gn={};Ot(gn,{GenerationError:()=>fe,ResponseError:()=>U,builtinFontNames:()=>un,builtinLineHeights:()=>mt,builtinMargins:()=>yt,builtinTextScales:()=>pt,builtinTools:()=>fn,formatEntry:()=>gt,parseEntry:()=>ht,register:()=>yn,remarkable:()=>mn});module.exports=kt(gn);var dt=de(Se());var w=de(Ye(),1),Un=w.default.v1,In=w.default.v3,be=w.default.v4,qn=w.default.v5,Ln=w.default.NIL,Bn=w.default.version,Nn=w.default.validate,$n=w.default.stringify,Hn=w.default.parse;function _e(e){return[...new Uint8Array(e)].map(t=>t.toString(16).padStart(2,"0")).join("")}function Ze(e){return new Uint8Array((e.match(/../g)??[]).map(t=>parseInt(t,16)))}function We(e){let t=0;for(let n of e)t+=n.length;let r=new Uint8Array(t),i=0;for(let n of e)r.set(n,i),i+=n.length;return r}var ot=de(st());function $(e,t){if((0,ot.validate)(e,t).length)throw new Error(`couldn't validate schema: ${JSON.stringify(t)} didn't match schema ${JSON.stringify(e)}`)}var ft="3",ct="https://webapp-prod.cloud.remarkable.engineering",an="https://internal.cloud.remarkable.com",ut="x-goog-generation",sn="x-goog-if-generation-match",on="x-goog-content-length-range",fn=["Ballpoint","Ballpointv2","Brush","Calligraphy","ClearPage","EraseSection","Eraser","Fineliner","Finelinerv2","Highlighter","Highlighterv2","Marker","Markerv2","Paintbrush","Paintbrushv2","Pencilv2","SharpPencil","SharpPencilv2","SolidPen","ZoomTool"],un=["Maison Neue","EB Garamond","Noto Sans","Noto Serif","Noto Mono","Noto Sans UI"],pt={xs:.7,sm:.8,md:1,lg:1.2,xl:1.5,xx:2},yt={sm:50,md:125,rr:180,lg:200},mt={df:-1,md:100,lg:150,xl:200},ln={properties:{docID:{type:"string"},hash:{type:"string"}}},dn={properties:{relative_path:{type:"string"},url:{type:"string"},expires:{type:"timestamp"},method:{enum:["POST","GET","PUT","DELETE"]}},optionalProperties:{maxuploadsize_bytes:{type:"float64"}}},se={visibleName:{type:"string"},lastModified:{type:"string"}},oe={version:{type:"int32"},pinned:{type:"boolean"},synced:{type:"boolean"},modified:{type:"boolean"},deleted:{type:"boolean"},metadatamodified:{type:"boolean"},parent:{type:"string"}},cn={discriminator:"type",mapping:{CollectionType:{properties:se,optionalProperties:oe},DocumentType:{properties:se,optionalProperties:{...oe,lastOpened:{type:"string"},lastOpenedPage:{type:"int32"}}}}},lt={id:{type:"string"},hash:{type:"string"}},pn={discriminator:"type",mapping:{CollectionType:{properties:{...se,...lt},optionalProperties:oe},DocumentType:{properties:{...se,...lt,fileType:{enum:["notebook","epub","pdf",""]}},optionalProperties:{...oe,lastOpened:{type:"string"},lastOpenedPage:{type:"int32"}}}}},U=class extends Error{constructor(r,i,n){super(n);this.status=r,this.statusText=i}},fe=class extends Error{constructor(){super("Generation preconditions failed. This means the current state is out of date with the cloud and needs to be re-synced.")}};async function yn(e,{deviceDesc:t="browser-chrome",uuid:r=be(),authHost:i=ct,fetch:n=globalThis.fetch}={}){if(e.length!==8)throw new Error(`code should be length 8, but was ${e.length}`);let a=await n(`${i}/token/json/2/device/new`,{method:"POST",headers:{Authorization:"Bearer"},body:JSON.stringify({code:e,deviceDesc:t,deviceID:r})});if(a.ok)return await a.text();throw new U(a.status,a.statusText,"couldn't register api")}function gt({hash:e,type:t,documentId:r,subfiles:i,size:n}){return`${e}:${t}:${r}:${i}:${n}
|
|
2
|
+
`}function ht(e){let[t,r,i,n,a]=e.split(":");if(t===void 0||r===void 0||i===void 0||n===void 0||a===void 0)throw new Error(`entries line didn't contain five fields: '${e}'`);if(r==="80000000")return{hash:t,type:r,documentId:i,subfiles:parseInt(n),size:BigInt(a)};if(r==="0"){if(n!=="0")throw new Error(`file type entry had nonzero number of subfiles: ${n}`);return{hash:t,type:r,documentId:i,subfiles:0,size:BigInt(a)}}else throw new Error(`entries line contained invalid type: ${r}`)}var Te=class{#o;#a;#e;#s;#t;constructor(t,r,i,n,a){this.#o=t,this.#a=r,this.#e=i,this.#s=n,this.#t=a}async#i(t,{body:r,method:i="POST",headers:n={}}){let a=await this.#a(t,{method:i,headers:{Authorization:`Bearer ${this.#o}`,...n},body:r});if(a.ok)return a;{let s=await a.text();throw new U(a.status,a.statusText,`failed reMarkable request: ${s}`)}}async#r({url:t,method:r,maxuploadsize_bytes:i},n,a={}){let s=i?{...a,[on]:`0,${i}`}:a,f=await this.#a(t,{method:r,body:n,headers:s});if(f.ok)return f;{let o=await f.text();throw new U(f.status,f.statusText,o)}}async#n(t,r,i){let n=r===void 0?"downloads":"uploads",a=i?`{ "http_method": "PUT", "relative_path": "${t}", "root_schema": "${i}", "generation": ${r} }`:JSON.stringify({http_method:"GET",relative_path:t}),f=await(await this.#i(`${this.#t}/sync/v2/signed-urls/${n}`,{body:a})).text(),o=JSON.parse(f);return $(dn,o),o}async getRootHash(){let t=await this.#n("root"),r=await this.#r(t),i=r.headers.get(ut);if(!i)throw new Error("no generation header in root hash");return[await r.text(),BigInt(i)]}async putRootHash(t,r){let i=await this.#n("root",r,t),n;try{n=await this.#r(i,t,{[sn]:`${r}`})}catch(s){throw s instanceof U&&s.status===412?new fe:s}let a=n.headers.get(ut);if(!a)throw new Error("no generation header in root hash");return BigInt(a)}async getBuffer(t){let r=await this.#n(t);return await(await this.#r(r)).arrayBuffer()}async getText(t){let r=await this.#e?.get(t);if(r)return r;{let i=await this.#n(t),a=await(await this.#r(i)).text();return await this.#e?.set(t,a),a}}async getMetadata(t){let r=await this.getText(t),i=JSON.parse(r);return $(cn,i),i}async getEntries(t){let r=await this.getText(t),[i,...n]=r.slice(0,-1).split(`
|
|
3
|
+
`);if(i!==ft)throw new Error(`got unexpected schema version: ${i}`);return n.map(ht)}async#f(t,r){let i=await this.#n(t,null);await this.#r(i,r)}async putEntries(t,r){let i=new TextEncoder;r.sort((l,v)=>l.documentId.localeCompare(v.documentId));let n=We(r.map(l=>Ze(l.hash))),a=await this.#s.digest("SHA-256",n),s=_e(a),f=r.map(gt).join(""),o=`${ft}
|
|
4
|
+
${f}`,u=i.encode(o);return await this.#f(s,u),await this.#e?.set(s,o),{hash:s,type:"80000000",documentId:t,subfiles:r.length,size:0n}}async putBuffer(t,r){let i=await this.#s.digest("SHA-256",r),n=_e(i);return await this.#f(n,r),{hash:n,type:"0",documentId:t,subfiles:0,size:BigInt(r.length)}}async putText(t,r){let i=new TextEncoder,n=await this.putBuffer(t,i.encode(r));return await this.#e?.set(n.hash,r),n}async#u(t,r,i,n,a){if(a.fileType!==i)throw new Error(`internal error: fileTypes don't match: ${i}, ${a.fileType}`);let s=be(),f=`${new Date().valueOf()}`,o=[];o.push(this.putBuffer(`${s}.${i}`,r));let u={type:"DocumentType",visibleName:t,version:0,parent:n,synced:!0,lastModified:f};o.push(this.putText(`${s}.metadata`,JSON.stringify(u))),o.push(this.putText(`${s}.content`,JSON.stringify(a)));let l=await Promise.all(o);return await this.putEntries(s,l)}async putEpub(t,r,{parent:i="",margins:n=125,orientation:a,textAlignment:s,textScale:f=1,lineHeight:o=-1,fontName:u="",cover:l="visited",lastTool:v}={}){let p={dummyDocument:!1,extraMetadata:{LastTool:v},fileType:"epub",pageCount:0,lastOpenedPage:0,lineHeight:typeof o=="string"?mt[o]:o,margins:typeof n=="string"?yt[n]:n,textScale:typeof f=="string"?pt[f]:f,pages:[],coverPageNumber:l==="first"?0:-1,formatVersion:1,orientation:a,textAlignment:s,fontName:u};return await this.#u(t,r,"epub",i,p)}async putPdf(t,r,{parent:i="",orientation:n,cover:a="first",lastTool:s}={}){let f={dummyDocument:!1,extraMetadata:{LastTool:s},fileType:"pdf",pageCount:0,lastOpenedPage:0,lineHeight:-1,margins:125,textScale:1,pages:[],coverPageNumber:a==="first"?0:-1,formatVersion:1,orientation:n};return await this.#u(t,r,"pdf",i,f)}async syncComplete(t){let r=`{ "generation": ${t} }`;await this.#i(`${this.#t}/sync/v2/sync-complete`,{body:r})}async getEntriesMetadata(){let r=await(await this.#i(`${this.#t}/doc/v2/files`,{method:"GET",headers:{"rm-source":"RoR-Browser"}})).text(),i=JSON.parse(r);return $({elements:pn},i),i}async#l(t,r,i){let a=new TextEncoder().encode(JSON.stringify({file_name:t})),f=await(await this.#i(`${this.#t}/doc/v2/files`,{body:r,headers:{"content-type":i,"rm-meta":(0,dt.fromByteArray)(a),"rm-source":"RoR-Browser"}})).text(),o=JSON.parse(f);return $(ln,o),o}async uploadEpub(t,r){return await this.#l(t,r,"application/epub+zip")}async uploadPdf(t,r){return await this.#l(t,r,"application/pdf")}};async function mn(e,{fetch:t=globalThis.fetch,cache:r,subtle:i=globalThis.crypto?.subtle,authHost:n=ct,syncHost:a=an}={}){let s=await t(`${n}/token/json/2/user/new`,{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!s.ok)throw new Error(`couldn't fetch auth token: ${s.statusText}`);let f=await s.text();return new Te(f,t,r,i,a)}0&&(module.exports={GenerationError,ResponseError,builtinFontNames,builtinLineHeights,builtinMargins,builtinTextScales,builtinTools,formatEntry,parseEntry,register,remarkable});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Ue=Object.create;var fe=Object.defineProperty;var Me=Object.getOwnPropertyDescriptor;var Ce=Object.getOwnPropertyNames;var Le=Object.getPrototypeOf,je=Object.prototype.hasOwnProperty;var V=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var De=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Ce(t))!je.call(e,n)&&n!==r&&fe(e,n,{get:()=>t[n],enumerable:!(i=Me(t,n))||i.enumerable});return e};var Ne=(e,t,r)=>(r=e!=null?Ue(Le(e)):{},De(t||!e||!e.__esModule?fe(r,"default",{value:e,enumerable:!0}):r,e));var te=V(l=>{"use strict";var ge=l&&l.__rest||function(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(r[i[n]]=e[i[n]]);return r};Object.defineProperty(l,"__esModule",{value:!0});l.isSchema=l.isValidSchema=l.isDiscriminatorForm=l.isValuesForm=l.isPropertiesForm=l.isElementsForm=l.isEnumForm=l.isTypeForm=l.isRefForm=l.isEmptyForm=void 0;function er(e){let{definitions:t,nullable:r,metadata:i}=e,n=ge(e,["definitions","nullable","metadata"]);return Object.keys(n).length===0}l.isEmptyForm=er;function he(e){return"ref"in e}l.isRefForm=he;function rr(e){return"type"in e}l.isTypeForm=rr;function ye(e){return"enum"in e}l.isEnumForm=ye;function ve(e){return"elements"in e}l.isElementsForm=ve;function re(e){return"properties"in e||"optionalProperties"in e}l.isPropertiesForm=re;function be(e){return"values"in e}l.isValuesForm=be;function xe(e){return"discriminator"in e}l.isDiscriminatorForm=xe;function I(e,t){if(t===void 0&&(t=e),e.definitions!==void 0){if(t!==e)return!1;for(let r of Object.values(e.definitions))if(!I(r,t))return!1}if(he(e)&&!(e.ref in(t.definitions||{}))||ye(e)&&(e.enum.length===0||e.enum.length!==new Set(e.enum).size))return!1;if(ve(e))return I(e.elements,t);if(re(e)){for(let r of Object.values(e.properties||{}))if(!I(r,t))return!1;for(let r of Object.values(e.optionalProperties||{}))if(!I(r,t))return!1;for(let r of Object.keys(e.properties||{}))if(r in(e.optionalProperties||{}))return!1}if(be(e))return I(e.values,t);if(xe(e)){for(let r of Object.values(e.mapping))if(!I(r,t)||!re(r)||r.nullable||e.discriminator in(r.properties||{})||e.discriminator in(r.optionalProperties||{}))return!1}return!0}l.isValidSchema=I;var tr=[[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1],[!0,!1,!1,!1,!1,!1,!1,!1,!1,!1],[!1,!0,!1,!1,!1,!1,!1,!1,!1,!1],[!1,!1,!0,!1,!1,!1,!1,!1,!1,!1],[!1,!1,!1,!0,!1,!1,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!1,!1,!1,!1,!1],[!1,!1,!1,!1,!1,!0,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!0,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!1,!0,!1,!1,!1],[!1,!1,!1,!1,!1,!0,!0,!1,!1,!1],[!1,!1,!1,!1,!0,!0,!0,!1,!1,!1],[!1,!1,!1,!1,!1,!1,!1,!0,!1,!1],[!1,!1,!1,!1,!1,!1,!1,!1,!0,!0]],nr=["boolean","float32","float64","int8","uint8","int16","uint16","int32","uint32","string","timestamp"];function U(e){if(typeof e!="object"||Array.isArray(e)||e===null)return!1;let t=e,{definitions:r=void 0,nullable:i=void 0,metadata:n=void 0,ref:o=void 0,type:s=void 0,enum:f=void 0,elements:a=void 0,properties:d=void 0,optionalProperties:u=void 0,additionalProperties:E=void 0,values:m=void 0,discriminator:P=void 0,mapping:p=void 0}=t,k=ge(t,["definitions","nullable","metadata","ref","type","enum","elements","properties","optionalProperties","additionalProperties","values","discriminator","mapping"]),S=[o!==void 0,s!==void 0,f!==void 0,a!==void 0,d!==void 0,u!==void 0,E!==void 0,m!==void 0,P!==void 0,p!==void 0],A=!1;for(let g of tr)A=A||g.every((B,D)=>B===S[D]);if(!A)return!1;if(r!==void 0){if(typeof r!="object"||Array.isArray(r)||r===null)return!1;for(let g of Object.values(r))if(!U(g))return!1}if(i!==void 0&&typeof i!="boolean"||n!==void 0&&(typeof n!="object"||Array.isArray(n)||n===null)||o!==void 0&&typeof o!="string"||s!==void 0&&(typeof s!="string"||!nr.includes(s))||f!==void 0&&(!Array.isArray(f)||!f.every(g=>typeof g=="string"))||a!==void 0&&!U(a))return!1;if(d!==void 0){if(typeof d!="object"||Array.isArray(d)||d===null)return!1;for(let g of Object.values(d))if(!U(g))return!1}if(u!==void 0){if(typeof u!="object"||Array.isArray(u)||u===null)return!1;for(let g of Object.values(u))if(!U(g))return!1}if(E!==void 0&&typeof E!="boolean"||m!==void 0&&!U(m)||P!==void 0&&typeof P!="string")return!1;if(p!==void 0){if(typeof p!="object"||Array.isArray(p)||p===null)return!1;for(let g of Object.values(p))if(!U(g))return!1}return Object.keys(k).length===0}l.isSchema=U});var we=V(ne=>{"use strict";Object.defineProperty(ne,"__esModule",{value:!0});var ir=/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(\.\d+)?([zZ]|((\+|-)(\d{2}):(\d{2})))$/;function or(e){let t=e.match(ir);if(t===null)return!1;let r=parseInt(t[1],10),i=parseInt(t[2],10),n=parseInt(t[3],10),o=parseInt(t[4],10),s=parseInt(t[5],10),f=parseInt(t[6],10);return!(i>12||n>sr(r,i)||o>23||s>59||f>60)}ne.default=or;function sr(e,t){return t===2?ar(e)?29:28:fr[t]}function ar(e){return e%4===0&&(e%100!==0||e%400===0)}var fr=[0,31,0,31,30,31,30,31,31,30,31,30,31]});var Te=V(F=>{"use strict";var lr=F&&F.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(F,"__esModule",{value:!0});F.validate=F.MaxDepthExceededError=void 0;var ur=lr(we()),M=te(),K=class extends Error{};F.MaxDepthExceededError=K;var X=class extends Error{};function dr(e,t,r){let i={errors:[],instanceTokens:[],schemaTokens:[[]],root:e,config:r||{maxDepth:0,maxErrors:0}};try{j(i,e,t)}catch(n){if(!(n instanceof X))throw n}return i.errors}F.validate=dr;function j(e,t,r,i){if(!(t.nullable&&r===null)){if(M.isRefForm(t)){if(e.schemaTokens.length===e.config.maxDepth)throw new K;e.schemaTokens.push(["definitions",t.ref]),j(e,e.root.definitions[t.ref],r),e.schemaTokens.pop()}else if(M.isTypeForm(t)){switch(x(e,"type"),t.type){case"boolean":typeof r!="boolean"&&w(e);break;case"float32":case"float64":typeof r!="number"&&w(e);break;case"int8":H(e,r,-128,127);break;case"uint8":H(e,r,0,255);break;case"int16":H(e,r,-32768,32767);break;case"uint16":H(e,r,0,65535);break;case"int32":H(e,r,-2147483648,2147483647);break;case"uint32":H(e,r,0,4294967295);break;case"string":typeof r!="string"&&w(e);break;case"timestamp":typeof r!="string"?w(e):ur.default(r)||w(e);break}T(e)}else if(M.isEnumForm(t))x(e,"enum"),(typeof r!="string"||!t.enum.includes(r))&&w(e),T(e);else if(M.isElementsForm(t)){if(x(e,"elements"),Array.isArray(r))for(let[n,o]of r.entries())C(e,n.toString()),j(e,t.elements,o),L(e);else w(e);T(e)}else if(M.isPropertiesForm(t))if(typeof r=="object"&&r!==null&&!Array.isArray(r)){if(t.properties!==void 0){x(e,"properties");for(let[n,o]of Object.entries(t.properties))x(e,n),r.hasOwnProperty(n)?(C(e,n),j(e,o,r[n]),L(e)):w(e),T(e);T(e)}if(t.optionalProperties!==void 0){x(e,"optionalProperties");for(let[n,o]of Object.entries(t.optionalProperties))x(e,n),r.hasOwnProperty(n)&&(C(e,n),j(e,o,r[n]),L(e)),T(e);T(e)}if(t.additionalProperties!==!0)for(let n of Object.keys(r)){let o=t.properties&&n in t.properties,s=t.optionalProperties&&n in t.optionalProperties;!o&&!s&&n!==i&&(C(e,n),w(e),L(e))}}else t.properties!==void 0?x(e,"properties"):x(e,"optionalProperties"),w(e),T(e);else if(M.isValuesForm(t)){if(x(e,"values"),typeof r=="object"&&r!==null&&!Array.isArray(r))for(let[n,o]of Object.entries(r))C(e,n),j(e,t.values,o),L(e);else w(e);T(e)}else if(M.isDiscriminatorForm(t))if(typeof r=="object"&&r!==null&&!Array.isArray(r))if(r.hasOwnProperty(t.discriminator)){let n=r[t.discriminator];typeof n=="string"?n in t.mapping?(x(e,"mapping"),x(e,n),j(e,t.mapping[n],r,t.discriminator),T(e),T(e)):(x(e,"mapping"),C(e,t.discriminator),w(e),L(e),T(e)):(x(e,"discriminator"),C(e,t.discriminator),w(e),L(e),T(e))}else x(e,"discriminator"),w(e),T(e);else x(e,"discriminator"),w(e),T(e)}}function H(e,t,r,i){(typeof t!="number"||!Number.isInteger(t)||t<r||t>i)&&w(e)}function C(e,t){e.instanceTokens.push(t)}function L(e){e.instanceTokens.pop()}function x(e,t){e.schemaTokens[e.schemaTokens.length-1].push(t)}function T(e){e.schemaTokens[e.schemaTokens.length-1].pop()}function w(e){if(e.errors.push({instancePath:[...e.instanceTokens],schemaPath:[...e.schemaTokens[e.schemaTokens.length-1]]}),e.errors.length===e.config.maxErrors)throw new X}});var Pe=V(R=>{"use strict";var pr=R&&R.__createBinding||(Object.create?function(e,t,r,i){i===void 0&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]}),Ee=R&&R.__exportStar||function(e,t){for(var r in e)r!=="default"&&!t.hasOwnProperty(r)&&pr(t,e,r)};Object.defineProperty(R,"__esModule",{value:!0});Ee(te(),R);Ee(Te(),R)});var q,$e=new Uint8Array(16);function J(){if(!q&&(q=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!q))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return q($e)}var le=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function He(e){return typeof e=="string"&&le.test(e)}var N=He;var c=[];for(z=0;z<256;++z)c.push((z+256).toString(16).substr(1));var z;function _e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=(c[e[t+0]]+c[e[t+1]]+c[e[t+2]]+c[e[t+3]]+"-"+c[e[t+4]]+c[e[t+5]]+"-"+c[e[t+6]]+c[e[t+7]]+"-"+c[e[t+8]]+c[e[t+9]]+"-"+c[e[t+10]]+c[e[t+11]]+c[e[t+12]]+c[e[t+13]]+c[e[t+14]]+c[e[t+15]]).toLowerCase();if(!N(r))throw TypeError("Stringified UUID is invalid");return r}var $=_e;function Be(e){if(!N(e))throw TypeError("Invalid UUID");var t,r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=t&255,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=t&255,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=t&255,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=t&255,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=t&255,r}var Q=Be;function Ve(e){e=unescape(encodeURIComponent(e));for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t}var qe="6ba7b810-9dad-11d1-80b4-00c04fd430c8",Je="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function G(e,t,r){function i(n,o,s,f){if(typeof n=="string"&&(n=Ve(n)),typeof o=="string"&&(o=Q(o)),o.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var a=new Uint8Array(16+n.length);if(a.set(o),a.set(n,o.length),a=r(a),a[6]=a[6]&15|t,a[8]=a[8]&63|128,s){f=f||0;for(var d=0;d<16;++d)s[f+d]=a[d];return s}return $(a)}try{i.name=e}catch{}return i.DNS=qe,i.URL=Je,i}function ze(e){if(typeof e=="string"){var t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(var r=0;r<t.length;++r)e[r]=t.charCodeAt(r)}return Ge(Ye(Ze(e),e.length*8))}function Ge(e){for(var t=[],r=e.length*32,i="0123456789abcdef",n=0;n<r;n+=8){var o=e[n>>5]>>>n%32&255,s=parseInt(i.charAt(o>>>4&15)+i.charAt(o&15),16);t.push(s)}return t}function ue(e){return(e+64>>>9<<4)+14+1}function Ye(e,t){e[t>>5]|=128<<t%32,e[ue(t)-1]=t;for(var r=1732584193,i=-271733879,n=-1732584194,o=271733878,s=0;s<e.length;s+=16){var f=r,a=i,d=n,u=o;r=h(r,i,n,o,e[s],7,-680876936),o=h(o,r,i,n,e[s+1],12,-389564586),n=h(n,o,r,i,e[s+2],17,606105819),i=h(i,n,o,r,e[s+3],22,-1044525330),r=h(r,i,n,o,e[s+4],7,-176418897),o=h(o,r,i,n,e[s+5],12,1200080426),n=h(n,o,r,i,e[s+6],17,-1473231341),i=h(i,n,o,r,e[s+7],22,-45705983),r=h(r,i,n,o,e[s+8],7,1770035416),o=h(o,r,i,n,e[s+9],12,-1958414417),n=h(n,o,r,i,e[s+10],17,-42063),i=h(i,n,o,r,e[s+11],22,-1990404162),r=h(r,i,n,o,e[s+12],7,1804603682),o=h(o,r,i,n,e[s+13],12,-40341101),n=h(n,o,r,i,e[s+14],17,-1502002290),i=h(i,n,o,r,e[s+15],22,1236535329),r=y(r,i,n,o,e[s+1],5,-165796510),o=y(o,r,i,n,e[s+6],9,-1069501632),n=y(n,o,r,i,e[s+11],14,643717713),i=y(i,n,o,r,e[s],20,-373897302),r=y(r,i,n,o,e[s+5],5,-701558691),o=y(o,r,i,n,e[s+10],9,38016083),n=y(n,o,r,i,e[s+15],14,-660478335),i=y(i,n,o,r,e[s+4],20,-405537848),r=y(r,i,n,o,e[s+9],5,568446438),o=y(o,r,i,n,e[s+14],9,-1019803690),n=y(n,o,r,i,e[s+3],14,-187363961),i=y(i,n,o,r,e[s+8],20,1163531501),r=y(r,i,n,o,e[s+13],5,-1444681467),o=y(o,r,i,n,e[s+2],9,-51403784),n=y(n,o,r,i,e[s+7],14,1735328473),i=y(i,n,o,r,e[s+12],20,-1926607734),r=v(r,i,n,o,e[s+5],4,-378558),o=v(o,r,i,n,e[s+8],11,-2022574463),n=v(n,o,r,i,e[s+11],16,1839030562),i=v(i,n,o,r,e[s+14],23,-35309556),r=v(r,i,n,o,e[s+1],4,-1530992060),o=v(o,r,i,n,e[s+4],11,1272893353),n=v(n,o,r,i,e[s+7],16,-155497632),i=v(i,n,o,r,e[s+10],23,-1094730640),r=v(r,i,n,o,e[s+13],4,681279174),o=v(o,r,i,n,e[s],11,-358537222),n=v(n,o,r,i,e[s+3],16,-722521979),i=v(i,n,o,r,e[s+6],23,76029189),r=v(r,i,n,o,e[s+9],4,-640364487),o=v(o,r,i,n,e[s+12],11,-421815835),n=v(n,o,r,i,e[s+15],16,530742520),i=v(i,n,o,r,e[s+2],23,-995338651),r=b(r,i,n,o,e[s],6,-198630844),o=b(o,r,i,n,e[s+7],10,1126891415),n=b(n,o,r,i,e[s+14],15,-1416354905),i=b(i,n,o,r,e[s+5],21,-57434055),r=b(r,i,n,o,e[s+12],6,1700485571),o=b(o,r,i,n,e[s+3],10,-1894986606),n=b(n,o,r,i,e[s+10],15,-1051523),i=b(i,n,o,r,e[s+1],21,-2054922799),r=b(r,i,n,o,e[s+8],6,1873313359),o=b(o,r,i,n,e[s+15],10,-30611744),n=b(n,o,r,i,e[s+6],15,-1560198380),i=b(i,n,o,r,e[s+13],21,1309151649),r=b(r,i,n,o,e[s+4],6,-145523070),o=b(o,r,i,n,e[s+11],10,-1120210379),n=b(n,o,r,i,e[s+2],15,718787259),i=b(i,n,o,r,e[s+9],21,-343485551),r=O(r,f),i=O(i,a),n=O(n,d),o=O(o,u)}return[r,i,n,o]}function Ze(e){if(e.length===0)return[];for(var t=e.length*8,r=new Uint32Array(ue(t)),i=0;i<t;i+=8)r[i>>5]|=(e[i/8]&255)<<i%32;return r}function O(e,t){var r=(e&65535)+(t&65535),i=(e>>16)+(t>>16)+(r>>16);return i<<16|r&65535}function Ke(e,t){return e<<t|e>>>32-t}function Y(e,t,r,i,n,o){return O(Ke(O(O(t,e),O(i,o)),n),r)}function h(e,t,r,i,n,o,s){return Y(t&r|~t&i,e,t,n,o,s)}function y(e,t,r,i,n,o,s){return Y(t&i|r&~i,e,t,n,o,s)}function v(e,t,r,i,n,o,s){return Y(t^r^i,e,t,n,o,s)}function b(e,t,r,i,n,o,s){return Y(r^(t|~i),e,t,n,o,s)}var de=ze;var Hr=G("v3",48,de);function Xe(e,t,r){e=e||{};var i=e.random||(e.rng||J)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){r=r||0;for(var n=0;n<16;++n)t[r+n]=i[n];return t}return $(i)}var Z=Xe;function Qe(e,t,r,i){switch(e){case 0:return t&r^~t&i;case 1:return t^r^i;case 2:return t&r^t&i^r&i;case 3:return t^r^i}}function W(e,t){return e<<t|e>>>32-t}function We(e){var t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof e=="string"){var i=unescape(encodeURIComponent(e));e=[];for(var n=0;n<i.length;++n)e.push(i.charCodeAt(n))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);for(var o=e.length/4+2,s=Math.ceil(o/16),f=new Array(s),a=0;a<s;++a){for(var d=new Uint32Array(16),u=0;u<16;++u)d[u]=e[a*64+u*4]<<24|e[a*64+u*4+1]<<16|e[a*64+u*4+2]<<8|e[a*64+u*4+3];f[a]=d}f[s-1][14]=(e.length-1)*8/Math.pow(2,32),f[s-1][14]=Math.floor(f[s-1][14]),f[s-1][15]=(e.length-1)*8&4294967295;for(var E=0;E<s;++E){for(var m=new Uint32Array(80),P=0;P<16;++P)m[P]=f[E][P];for(var p=16;p<80;++p)m[p]=W(m[p-3]^m[p-8]^m[p-14]^m[p-16],1);for(var k=r[0],S=r[1],A=r[2],g=r[3],B=r[4],D=0;D<80;++D){var ae=Math.floor(D/20),Ie=W(k,5)+Qe(ae,S,A,g)+B+t[ae]+m[D]>>>0;B=g,g=A,A=W(S,30)>>>0,S=k,k=Ie}r[0]=r[0]+k>>>0,r[1]=r[1]+S>>>0,r[2]=r[2]+A>>>0,r[3]=r[3]+g>>>0,r[4]=r[4]+B>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,r[0]&255,r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,r[1]&255,r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,r[2]&255,r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,r[3]&255,r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,r[4]&255]}var pe=We;var Yr=G("v5",80,pe);function ee(e){return[...new Uint8Array(e)].map(t=>t.toString(16).padStart(2,"0")).join("")}function ce(e){return new Uint8Array((e.match(/../g)??[]).map(t=>parseInt(t,16)))}function me(e){let t=0;for(let n of e)t+=n.length;let r=new Uint8Array(t),i=0;for(let n of e)r.set(n,i),i+=n.length;return r}var Ae=Ne(Pe());function ie(e,t){if((0,Ae.validate)(e,t).length)throw new Error(`couldn't validate schema: ${JSON.stringify(t)} didn't match schema ${JSON.stringify(e)}`)}var ke="3",Re="https://webapp-production-dot-remarkable-production.appspot.com",cr="https://rm-blob-storage-prod.appspot.com",Se="x-goog-generation",mr="x-goog-if-generation-match",Pt=["Ballpoint","Ballpointv2","Brush","Calligraphy","ClearPage","EraseSection","Eraser","Fineliner","Finelinerv2","Highlighter","Highlighterv2","Marker","Markerv2","Paintbrush","Paintbrushv2","Pencilv2","SharpPencil","SharpPencilv2","SolidPen","ZoomTool"],At=["Maison Neue","EB Garamond","Noto Sans","Noto Serif","Noto Mono","Noto Sans UI"],gr={xs:.7,sm:.8,md:1,lg:1.2,xl:1.5,xx:2},hr={sm:50,md:125,rr:180,lg:200},yr={df:-1,md:100,lg:150,xl:200},vr={properties:{relative_path:{type:"string"},url:{type:"string"},expires:{type:"timestamp"},method:{enum:["POST","GET","PUT","DELETE"]}}},Oe={visibleName:{type:"string"},parent:{type:"string"},lastModified:{type:"string"},version:{type:"int32"},synced:{type:"boolean"}},Fe={pinned:{type:"boolean"},modified:{type:"boolean"},deleted:{type:"boolean"},metadatamodified:{type:"boolean"}},br={discriminator:"type",mapping:{CollectionType:{properties:Oe,optionalProperties:Fe},DocumentType:{properties:Oe,optionalProperties:{...Fe,lastOpened:{type:"string"},lastOpenedPage:{type:"int32"}}}}},_=class extends Error{constructor(r,i,n){super(n);this.status=r,this.statusText=i}},oe=class extends Error{constructor(){super("Generation preconditions failed. This means the current state is out of date with the cloud and needs to be re-synced.")}};async function kt(e,{deviceDesc:t="desktop-linux",uuid:r=Z(),authUrl:i=Re,fetch:n=globalThis.fetch}={}){if(e.length!==8)throw new Error(`code should be length 8, but was ${e.length}`);let o=await n(`${i}/token/json/2/device/new`,{method:"POST",headers:{Authorization:"Bearer"},body:JSON.stringify({code:e,deviceDesc:t,deviceID:r})});if(o.ok)return await o.text();throw new _(o.status,o.statusText,"couldn't register api")}function xr({hash:e,type:t,documentId:r,subfiles:i,size:n}){return`${e}:${t}:${r}:${i}:${n}
|
|
2
|
-
`}function
|
|
3
|
-
`);if(
|
|
4
|
-
${
|
|
1
|
+
var $e=Object.create;var de=Object.defineProperty;var He=Object.getOwnPropertyDescriptor;var Je=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,qe=Object.prototype.hasOwnProperty;var B=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var ze=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of Je(r))!qe.call(e,i)&&i!==t&&de(e,i,{get:()=>r[i],enumerable:!(n=He(r,i))||n.enumerable});return e};var ce=(e,r,t)=>(t=e!=null?$e(Ve(e)):{},ze(r||!e||!e.__esModule?de(t,"default",{value:e,enumerable:!0}):t,e));var ye=B(V=>{"use strict";V.byteLength=We;V.toByteArray=Ze;V.fromByteArray=Qe;var A=[],E=[],Ge=typeof Uint8Array<"u"?Uint8Array:Array,te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(U=0,pe=te.length;U<pe;++U)A[U]=te[U],E[te.charCodeAt(U)]=U;var U,pe;E["-".charCodeAt(0)]=62;E["_".charCodeAt(0)]=63;function me(e){var r=e.length;if(r%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=e.indexOf("=");t===-1&&(t=r);var n=t===r?0:4-t%4;return[t,n]}function We(e){var r=me(e),t=r[0],n=r[1];return(t+n)*3/4-n}function Ye(e,r,t){return(r+t)*3/4-t}function Ze(e){var r,t=me(e),n=t[0],i=t[1],o=new Ge(Ye(e,n,i)),s=0,a=i>0?n-4:n,f;for(f=0;f<a;f+=4)r=E[e.charCodeAt(f)]<<18|E[e.charCodeAt(f+1)]<<12|E[e.charCodeAt(f+2)]<<6|E[e.charCodeAt(f+3)],o[s++]=r>>16&255,o[s++]=r>>8&255,o[s++]=r&255;return i===2&&(r=E[e.charCodeAt(f)]<<2|E[e.charCodeAt(f+1)]>>4,o[s++]=r&255),i===1&&(r=E[e.charCodeAt(f)]<<10|E[e.charCodeAt(f+1)]<<4|E[e.charCodeAt(f+2)]>>2,o[s++]=r>>8&255,o[s++]=r&255),o}function Ke(e){return A[e>>18&63]+A[e>>12&63]+A[e>>6&63]+A[e&63]}function Xe(e,r,t){for(var n,i=[],o=r;o<t;o+=3)n=(e[o]<<16&16711680)+(e[o+1]<<8&65280)+(e[o+2]&255),i.push(Ke(n));return i.join("")}function Qe(e){for(var r,t=e.length,n=t%3,i=[],o=16383,s=0,a=t-n;s<a;s+=o)i.push(Xe(e,s,s+o>a?a:s+o));return n===1?(r=e[t-1],i.push(A[r>>2]+A[r<<4&63]+"==")):n===2&&(r=(e[t-2]<<8)+e[t-1],i.push(A[r>>10]+A[r>>4&63]+A[r<<2&63]+"=")),i.join("")}});var ae=B(d=>{"use strict";var Ee=d&&d.__rest||function(e,r){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&r.indexOf(n)<0&&(t[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)r.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(t[n[i]]=e[n[i]]);return t};Object.defineProperty(d,"__esModule",{value:!0});d.isSchema=d.isValidSchema=d.isDiscriminatorForm=d.isValuesForm=d.isPropertiesForm=d.isElementsForm=d.isEnumForm=d.isTypeForm=d.isRefForm=d.isEmptyForm=void 0;function yt(e){let{definitions:r,nullable:t,metadata:n}=e,i=Ee(e,["definitions","nullable","metadata"]);return Object.keys(i).length===0}d.isEmptyForm=yt;function Te(e){return"ref"in e}d.isRefForm=Te;function gt(e){return"type"in e}d.isTypeForm=gt;function Ae(e){return"enum"in e}d.isEnumForm=Ae;function Pe(e){return"elements"in e}d.isElementsForm=Pe;function se(e){return"properties"in e||"optionalProperties"in e}d.isPropertiesForm=se;function ke(e){return"values"in e}d.isValuesForm=ke;function Se(e){return"discriminator"in e}d.isDiscriminatorForm=Se;function C(e,r){if(r===void 0&&(r=e),e.definitions!==void 0){if(r!==e)return!1;for(let t of Object.values(e.definitions))if(!C(t,r))return!1}if(Te(e)&&!(e.ref in(r.definitions||{}))||Ae(e)&&(e.enum.length===0||e.enum.length!==new Set(e.enum).size))return!1;if(Pe(e))return C(e.elements,r);if(se(e)){for(let t of Object.values(e.properties||{}))if(!C(t,r))return!1;for(let t of Object.values(e.optionalProperties||{}))if(!C(t,r))return!1;for(let t of Object.keys(e.properties||{}))if(t in(e.optionalProperties||{}))return!1}if(ke(e))return C(e.values,r);if(Se(e)){for(let t of Object.values(e.mapping))if(!C(t,r)||!se(t)||t.nullable||e.discriminator in(t.properties||{})||e.discriminator in(t.optionalProperties||{}))return!1}return!0}d.isValidSchema=C;var ht=[[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1],[!0,!1,!1,!1,!1,!1,!1,!1,!1,!1],[!1,!0,!1,!1,!1,!1,!1,!1,!1,!1],[!1,!1,!0,!1,!1,!1,!1,!1,!1,!1],[!1,!1,!1,!0,!1,!1,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!1,!1,!1,!1,!1],[!1,!1,!1,!1,!1,!0,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!0,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!1,!0,!1,!1,!1],[!1,!1,!1,!1,!1,!0,!0,!1,!1,!1],[!1,!1,!1,!1,!0,!0,!0,!1,!1,!1],[!1,!1,!1,!1,!1,!1,!1,!0,!1,!1],[!1,!1,!1,!1,!1,!1,!1,!1,!0,!0]],bt=["boolean","float32","float64","int8","uint8","int16","uint16","int32","uint32","string","timestamp"];function M(e){if(typeof e!="object"||Array.isArray(e)||e===null)return!1;let r=e,{definitions:t=void 0,nullable:n=void 0,metadata:i=void 0,ref:o=void 0,type:s=void 0,enum:a=void 0,elements:f=void 0,properties:l=void 0,optionalProperties:u=void 0,additionalProperties:v=void 0,values:P=void 0,discriminator:c=void 0,mapping:k=void 0}=r,Q=Ee(r,["definitions","nullable","metadata","ref","type","enum","elements","properties","optionalProperties","additionalProperties","values","discriminator","mapping"]),Ne=[o!==void 0,s!==void 0,a!==void 0,f!==void 0,l!==void 0,u!==void 0,v!==void 0,P!==void 0,c!==void 0,k!==void 0],ee=!1;for(let T of ht)ee=ee||T.every((Be,je)=>Be===Ne[je]);if(!ee)return!1;if(t!==void 0){if(typeof t!="object"||Array.isArray(t)||t===null)return!1;for(let T of Object.values(t))if(!M(T))return!1}if(n!==void 0&&typeof n!="boolean"||i!==void 0&&(typeof i!="object"||Array.isArray(i)||i===null)||o!==void 0&&typeof o!="string"||s!==void 0&&(typeof s!="string"||!bt.includes(s))||a!==void 0&&(!Array.isArray(a)||!a.every(T=>typeof T=="string"))||f!==void 0&&!M(f))return!1;if(l!==void 0){if(typeof l!="object"||Array.isArray(l)||l===null)return!1;for(let T of Object.values(l))if(!M(T))return!1}if(u!==void 0){if(typeof u!="object"||Array.isArray(u)||u===null)return!1;for(let T of Object.values(u))if(!M(T))return!1}if(v!==void 0&&typeof v!="boolean"||P!==void 0&&!M(P)||c!==void 0&&typeof c!="string")return!1;if(k!==void 0){if(typeof k!="object"||Array.isArray(k)||k===null)return!1;for(let T of Object.values(k))if(!M(T))return!1}return Object.keys(Q).length===0}d.isSchema=M});var Oe=B(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});var xt=/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(\.\d+)?([zZ]|((\+|-)(\d{2}):(\d{2})))$/;function wt(e){let r=e.match(xt);if(r===null)return!1;let t=parseInt(r[1],10),n=parseInt(r[2],10),i=parseInt(r[3],10),o=parseInt(r[4],10),s=parseInt(r[5],10),a=parseInt(r[6],10);return!(n>12||i>vt(t,n)||o>23||s>59||a>60)}fe.default=wt;function vt(e,r){return r===2?Et(e)?29:28:Tt[r]}function Et(e){return e%4===0&&(e%100!==0||e%400===0)}var Tt=[0,31,0,31,30,31,30,31,31,30,31,30,31]});var Fe=B(O=>{"use strict";var At=O&&O.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(O,"__esModule",{value:!0});O.validate=O.MaxDepthExceededError=void 0;var Pt=At(Oe()),I=ae(),Y=class extends Error{};O.MaxDepthExceededError=Y;var Z=class extends Error{};function kt(e,r,t){let n={errors:[],instanceTokens:[],schemaTokens:[[]],root:e,config:t||{maxDepth:0,maxErrors:0}};try{L(n,e,r)}catch(i){if(!(i instanceof Z))throw i}return n.errors}O.validate=kt;function L(e,r,t,n){if(!(r.nullable&&t===null)){if(I.isRefForm(r)){if(e.schemaTokens.length===e.config.maxDepth)throw new Y;e.schemaTokens.push(["definitions",r.ref]),L(e,e.root.definitions[r.ref],t),e.schemaTokens.pop()}else if(I.isTypeForm(r)){switch(b(e,"type"),r.type){case"boolean":typeof t!="boolean"&&x(e);break;case"float32":case"float64":typeof t!="number"&&x(e);break;case"int8":D(e,t,-128,127);break;case"uint8":D(e,t,0,255);break;case"int16":D(e,t,-32768,32767);break;case"uint16":D(e,t,0,65535);break;case"int32":D(e,t,-2147483648,2147483647);break;case"uint32":D(e,t,0,4294967295);break;case"string":typeof t!="string"&&x(e);break;case"timestamp":typeof t!="string"?x(e):Pt.default(t)||x(e);break}w(e)}else if(I.isEnumForm(r))b(e,"enum"),(typeof t!="string"||!r.enum.includes(t))&&x(e),w(e);else if(I.isElementsForm(r)){if(b(e,"elements"),Array.isArray(t))for(let[i,o]of t.entries())R(e,i.toString()),L(e,r.elements,o),_(e);else x(e);w(e)}else if(I.isPropertiesForm(r))if(typeof t=="object"&&t!==null&&!Array.isArray(t)){if(r.properties!==void 0){b(e,"properties");for(let[i,o]of Object.entries(r.properties))b(e,i),t.hasOwnProperty(i)?(R(e,i),L(e,o,t[i]),_(e)):x(e),w(e);w(e)}if(r.optionalProperties!==void 0){b(e,"optionalProperties");for(let[i,o]of Object.entries(r.optionalProperties))b(e,i),t.hasOwnProperty(i)&&(R(e,i),L(e,o,t[i]),_(e)),w(e);w(e)}if(r.additionalProperties!==!0)for(let i of Object.keys(t)){let o=r.properties&&i in r.properties,s=r.optionalProperties&&i in r.optionalProperties;!o&&!s&&i!==n&&(R(e,i),x(e),_(e))}}else r.properties!==void 0?b(e,"properties"):b(e,"optionalProperties"),x(e),w(e);else if(I.isValuesForm(r)){if(b(e,"values"),typeof t=="object"&&t!==null&&!Array.isArray(t))for(let[i,o]of Object.entries(t))R(e,i),L(e,r.values,o),_(e);else x(e);w(e)}else if(I.isDiscriminatorForm(r))if(typeof t=="object"&&t!==null&&!Array.isArray(t))if(t.hasOwnProperty(r.discriminator)){let i=t[r.discriminator];typeof i=="string"?i in r.mapping?(b(e,"mapping"),b(e,i),L(e,r.mapping[i],t,r.discriminator),w(e),w(e)):(b(e,"mapping"),R(e,r.discriminator),x(e),_(e),w(e)):(b(e,"discriminator"),R(e,r.discriminator),x(e),_(e),w(e))}else b(e,"discriminator"),x(e),w(e);else b(e,"discriminator"),x(e),w(e)}}function D(e,r,t,n){(typeof r!="number"||!Number.isInteger(r)||r<t||r>n)&&x(e)}function R(e,r){e.instanceTokens.push(r)}function _(e){e.instanceTokens.pop()}function b(e,r){e.schemaTokens[e.schemaTokens.length-1].push(r)}function w(e){e.schemaTokens[e.schemaTokens.length-1].pop()}function x(e){if(e.errors.push({instancePath:[...e.instanceTokens],schemaPath:[...e.schemaTokens[e.schemaTokens.length-1]]}),e.errors.length===e.config.maxErrors)throw new Z}});var Ce=B(F=>{"use strict";var St=F&&F.__createBinding||(Object.create?function(e,r,t,n){n===void 0&&(n=t),Object.defineProperty(e,n,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,n){n===void 0&&(n=t),e[n]=r[t]}),Ue=F&&F.__exportStar||function(e,r){for(var t in e)t!=="default"&&!r.hasOwnProperty(t)&&St(r,e,t)};Object.defineProperty(F,"__esModule",{value:!0});Ue(ae(),F);Ue(Fe(),F)});var Le=ce(ye());var q,et=new Uint8Array(16);function z(){if(!q&&(q=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!q))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return q(et)}var ge=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function tt(e){return typeof e=="string"&&ge.test(e)}var j=tt;var p=[];for(let e=0;e<256;++e)p.push((e+256).toString(16).slice(1));function $(e,r=0){return(p[e[r+0]]+p[e[r+1]]+p[e[r+2]]+p[e[r+3]]+"-"+p[e[r+4]]+p[e[r+5]]+"-"+p[e[r+6]]+p[e[r+7]]+"-"+p[e[r+8]]+p[e[r+9]]+"-"+p[e[r+10]]+p[e[r+11]]+p[e[r+12]]+p[e[r+13]]+p[e[r+14]]+p[e[r+15]]).toLowerCase()}function rt(e){if(!j(e))throw TypeError("Invalid UUID");let r,t=new Uint8Array(16);return t[0]=(r=parseInt(e.slice(0,8),16))>>>24,t[1]=r>>>16&255,t[2]=r>>>8&255,t[3]=r&255,t[4]=(r=parseInt(e.slice(9,13),16))>>>8,t[5]=r&255,t[6]=(r=parseInt(e.slice(14,18),16))>>>8,t[7]=r&255,t[8]=(r=parseInt(e.slice(19,23),16))>>>8,t[9]=r&255,t[10]=(r=parseInt(e.slice(24,36),16))/1099511627776&255,t[11]=r/4294967296&255,t[12]=r>>>24&255,t[13]=r>>>16&255,t[14]=r>>>8&255,t[15]=r&255,t}var re=rt;function nt(e){e=unescape(encodeURIComponent(e));let r=[];for(let t=0;t<e.length;++t)r.push(e.charCodeAt(t));return r}var it="6ba7b810-9dad-11d1-80b4-00c04fd430c8",ot="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function H(e,r,t){function n(i,o,s,a){var f;if(typeof i=="string"&&(i=nt(i)),typeof o=="string"&&(o=re(o)),((f=o)===null||f===void 0?void 0:f.length)!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let l=new Uint8Array(16+i.length);if(l.set(o),l.set(i,o.length),l=t(l),l[6]=l[6]&15|r,l[8]=l[8]&63|128,s){a=a||0;for(let u=0;u<16;++u)s[a+u]=l[u];return s}return $(l)}try{n.name=e}catch{}return n.DNS=it,n.URL=ot,n}function st(e){if(typeof e=="string"){let r=unescape(encodeURIComponent(e));e=new Uint8Array(r.length);for(let t=0;t<r.length;++t)e[t]=r.charCodeAt(t)}return at(ft(lt(e),e.length*8))}function at(e){let r=[],t=e.length*32,n="0123456789abcdef";for(let i=0;i<t;i+=8){let o=e[i>>5]>>>i%32&255,s=parseInt(n.charAt(o>>>4&15)+n.charAt(o&15),16);r.push(s)}return r}function he(e){return(e+64>>>9<<4)+14+1}function ft(e,r){e[r>>5]|=128<<r%32,e[he(r)-1]=r;let t=1732584193,n=-271733879,i=-1732584194,o=271733878;for(let s=0;s<e.length;s+=16){let a=t,f=n,l=i,u=o;t=m(t,n,i,o,e[s],7,-680876936),o=m(o,t,n,i,e[s+1],12,-389564586),i=m(i,o,t,n,e[s+2],17,606105819),n=m(n,i,o,t,e[s+3],22,-1044525330),t=m(t,n,i,o,e[s+4],7,-176418897),o=m(o,t,n,i,e[s+5],12,1200080426),i=m(i,o,t,n,e[s+6],17,-1473231341),n=m(n,i,o,t,e[s+7],22,-45705983),t=m(t,n,i,o,e[s+8],7,1770035416),o=m(o,t,n,i,e[s+9],12,-1958414417),i=m(i,o,t,n,e[s+10],17,-42063),n=m(n,i,o,t,e[s+11],22,-1990404162),t=m(t,n,i,o,e[s+12],7,1804603682),o=m(o,t,n,i,e[s+13],12,-40341101),i=m(i,o,t,n,e[s+14],17,-1502002290),n=m(n,i,o,t,e[s+15],22,1236535329),t=y(t,n,i,o,e[s+1],5,-165796510),o=y(o,t,n,i,e[s+6],9,-1069501632),i=y(i,o,t,n,e[s+11],14,643717713),n=y(n,i,o,t,e[s],20,-373897302),t=y(t,n,i,o,e[s+5],5,-701558691),o=y(o,t,n,i,e[s+10],9,38016083),i=y(i,o,t,n,e[s+15],14,-660478335),n=y(n,i,o,t,e[s+4],20,-405537848),t=y(t,n,i,o,e[s+9],5,568446438),o=y(o,t,n,i,e[s+14],9,-1019803690),i=y(i,o,t,n,e[s+3],14,-187363961),n=y(n,i,o,t,e[s+8],20,1163531501),t=y(t,n,i,o,e[s+13],5,-1444681467),o=y(o,t,n,i,e[s+2],9,-51403784),i=y(i,o,t,n,e[s+7],14,1735328473),n=y(n,i,o,t,e[s+12],20,-1926607734),t=g(t,n,i,o,e[s+5],4,-378558),o=g(o,t,n,i,e[s+8],11,-2022574463),i=g(i,o,t,n,e[s+11],16,1839030562),n=g(n,i,o,t,e[s+14],23,-35309556),t=g(t,n,i,o,e[s+1],4,-1530992060),o=g(o,t,n,i,e[s+4],11,1272893353),i=g(i,o,t,n,e[s+7],16,-155497632),n=g(n,i,o,t,e[s+10],23,-1094730640),t=g(t,n,i,o,e[s+13],4,681279174),o=g(o,t,n,i,e[s],11,-358537222),i=g(i,o,t,n,e[s+3],16,-722521979),n=g(n,i,o,t,e[s+6],23,76029189),t=g(t,n,i,o,e[s+9],4,-640364487),o=g(o,t,n,i,e[s+12],11,-421815835),i=g(i,o,t,n,e[s+15],16,530742520),n=g(n,i,o,t,e[s+2],23,-995338651),t=h(t,n,i,o,e[s],6,-198630844),o=h(o,t,n,i,e[s+7],10,1126891415),i=h(i,o,t,n,e[s+14],15,-1416354905),n=h(n,i,o,t,e[s+5],21,-57434055),t=h(t,n,i,o,e[s+12],6,1700485571),o=h(o,t,n,i,e[s+3],10,-1894986606),i=h(i,o,t,n,e[s+10],15,-1051523),n=h(n,i,o,t,e[s+1],21,-2054922799),t=h(t,n,i,o,e[s+8],6,1873313359),o=h(o,t,n,i,e[s+15],10,-30611744),i=h(i,o,t,n,e[s+6],15,-1560198380),n=h(n,i,o,t,e[s+13],21,1309151649),t=h(t,n,i,o,e[s+4],6,-145523070),o=h(o,t,n,i,e[s+11],10,-1120210379),i=h(i,o,t,n,e[s+2],15,718787259),n=h(n,i,o,t,e[s+9],21,-343485551),t=S(t,a),n=S(n,f),i=S(i,l),o=S(o,u)}return[t,n,i,o]}function lt(e){if(e.length===0)return[];let r=e.length*8,t=new Uint32Array(he(r));for(let n=0;n<r;n+=8)t[n>>5]|=(e[n/8]&255)<<n%32;return t}function S(e,r){let t=(e&65535)+(r&65535);return(e>>16)+(r>>16)+(t>>16)<<16|t&65535}function ut(e,r){return e<<r|e>>>32-r}function G(e,r,t,n,i,o){return S(ut(S(S(r,e),S(n,o)),i),t)}function m(e,r,t,n,i,o,s){return G(r&t|~r&n,e,r,i,o,s)}function y(e,r,t,n,i,o,s){return G(r&n|t&~n,e,r,i,o,s)}function g(e,r,t,n,i,o,s){return G(r^t^n,e,r,i,o,s)}function h(e,r,t,n,i,o,s){return G(t^(r|~n),e,r,i,o,s)}var be=st;var or=H("v3",48,be);var dt=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),ne={randomUUID:dt};function ct(e,r,t){if(ne.randomUUID&&!r&&!e)return ne.randomUUID();e=e||{};let n=e.random||(e.rng||z)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,r){t=t||0;for(let i=0;i<16;++i)r[t+i]=n[i];return r}return $(n)}var W=ct;function pt(e,r,t,n){switch(e){case 0:return r&t^~r&n;case 1:return r^t^n;case 2:return r&t^r&n^t&n;case 3:return r^t^n}}function ie(e,r){return e<<r|e>>>32-r}function mt(e){let r=[1518500249,1859775393,2400959708,3395469782],t=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof e=="string"){let s=unescape(encodeURIComponent(e));e=[];for(let a=0;a<s.length;++a)e.push(s.charCodeAt(a))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);let n=e.length/4+2,i=Math.ceil(n/16),o=new Array(i);for(let s=0;s<i;++s){let a=new Uint32Array(16);for(let f=0;f<16;++f)a[f]=e[s*64+f*4]<<24|e[s*64+f*4+1]<<16|e[s*64+f*4+2]<<8|e[s*64+f*4+3];o[s]=a}o[i-1][14]=(e.length-1)*8/Math.pow(2,32),o[i-1][14]=Math.floor(o[i-1][14]),o[i-1][15]=(e.length-1)*8&4294967295;for(let s=0;s<i;++s){let a=new Uint32Array(80);for(let c=0;c<16;++c)a[c]=o[s][c];for(let c=16;c<80;++c)a[c]=ie(a[c-3]^a[c-8]^a[c-14]^a[c-16],1);let f=t[0],l=t[1],u=t[2],v=t[3],P=t[4];for(let c=0;c<80;++c){let k=Math.floor(c/20),Q=ie(f,5)+pt(k,l,u,v)+P+r[k]+a[c]>>>0;P=v,v=u,u=ie(l,30)>>>0,l=f,f=Q}t[0]=t[0]+f>>>0,t[1]=t[1]+l>>>0,t[2]=t[2]+u>>>0,t[3]=t[3]+v>>>0,t[4]=t[4]+P>>>0}return[t[0]>>24&255,t[0]>>16&255,t[0]>>8&255,t[0]&255,t[1]>>24&255,t[1]>>16&255,t[1]>>8&255,t[1]&255,t[2]>>24&255,t[2]>>16&255,t[2]>>8&255,t[2]&255,t[3]>>24&255,t[3]>>16&255,t[3]>>8&255,t[3]&255,t[4]>>24&255,t[4]>>16&255,t[4]>>8&255,t[4]&255]}var xe=mt;var yr=H("v5",80,xe);function oe(e){return[...new Uint8Array(e)].map(r=>r.toString(16).padStart(2,"0")).join("")}function we(e){return new Uint8Array((e.match(/../g)??[]).map(r=>parseInt(r,16)))}function ve(e){let r=0;for(let i of e)r+=i.length;let t=new Uint8Array(r),n=0;for(let i of e)t.set(i,n),n+=i.length;return t}var Me=ce(Ce());function J(e,r){if((0,Me.validate)(e,r).length)throw new Error(`couldn't validate schema: ${JSON.stringify(r)} didn't match schema ${JSON.stringify(e)}`)}var Ie="3",De="https://webapp-prod.cloud.remarkable.engineering",Ot="https://internal.cloud.remarkable.com",Re="x-goog-generation",Ft="x-goog-if-generation-match",Ut="x-goog-content-length-range",zr=["Ballpoint","Ballpointv2","Brush","Calligraphy","ClearPage","EraseSection","Eraser","Fineliner","Finelinerv2","Highlighter","Highlighterv2","Marker","Markerv2","Paintbrush","Paintbrushv2","Pencilv2","SharpPencil","SharpPencilv2","SolidPen","ZoomTool"],Gr=["Maison Neue","EB Garamond","Noto Sans","Noto Serif","Noto Mono","Noto Sans UI"],Ct={xs:.7,sm:.8,md:1,lg:1.2,xl:1.5,xx:2},Mt={sm:50,md:125,rr:180,lg:200},It={df:-1,md:100,lg:150,xl:200},Rt={properties:{docID:{type:"string"},hash:{type:"string"}}},_t={properties:{relative_path:{type:"string"},url:{type:"string"},expires:{type:"timestamp"},method:{enum:["POST","GET","PUT","DELETE"]}},optionalProperties:{maxuploadsize_bytes:{type:"float64"}}},K={visibleName:{type:"string"},lastModified:{type:"string"}},X={version:{type:"int32"},pinned:{type:"boolean"},synced:{type:"boolean"},modified:{type:"boolean"},deleted:{type:"boolean"},metadatamodified:{type:"boolean"},parent:{type:"string"}},Lt={discriminator:"type",mapping:{CollectionType:{properties:K,optionalProperties:X},DocumentType:{properties:K,optionalProperties:{...X,lastOpened:{type:"string"},lastOpenedPage:{type:"int32"}}}}},_e={id:{type:"string"},hash:{type:"string"}},Dt={discriminator:"type",mapping:{CollectionType:{properties:{...K,..._e},optionalProperties:X},DocumentType:{properties:{...K,..._e,fileType:{enum:["notebook","epub","pdf",""]}},optionalProperties:{...X,lastOpened:{type:"string"},lastOpenedPage:{type:"int32"}}}}},N=class extends Error{constructor(t,n,i){super(i);this.status=t,this.statusText=n}},le=class extends Error{constructor(){super("Generation preconditions failed. This means the current state is out of date with the cloud and needs to be re-synced.")}};async function Wr(e,{deviceDesc:r="browser-chrome",uuid:t=W(),authHost:n=De,fetch:i=globalThis.fetch}={}){if(e.length!==8)throw new Error(`code should be length 8, but was ${e.length}`);let o=await i(`${n}/token/json/2/device/new`,{method:"POST",headers:{Authorization:"Bearer"},body:JSON.stringify({code:e,deviceDesc:r,deviceID:t})});if(o.ok)return await o.text();throw new N(o.status,o.statusText,"couldn't register api")}function Nt({hash:e,type:r,documentId:t,subfiles:n,size:i}){return`${e}:${r}:${t}:${n}:${i}
|
|
2
|
+
`}function Bt(e){let[r,t,n,i,o]=e.split(":");if(r===void 0||t===void 0||n===void 0||i===void 0||o===void 0)throw new Error(`entries line didn't contain five fields: '${e}'`);if(t==="80000000")return{hash:r,type:t,documentId:n,subfiles:parseInt(i),size:BigInt(o)};if(t==="0"){if(i!=="0")throw new Error(`file type entry had nonzero number of subfiles: ${i}`);return{hash:r,type:t,documentId:n,subfiles:0,size:BigInt(o)}}else throw new Error(`entries line contained invalid type: ${t}`)}var ue=class{#a;#o;#e;#s;#t;constructor(r,t,n,i,o){this.#a=r,this.#o=t,this.#e=n,this.#s=i,this.#t=o}async#i(r,{body:t,method:n="POST",headers:i={}}){let o=await this.#o(r,{method:n,headers:{Authorization:`Bearer ${this.#a}`,...i},body:t});if(o.ok)return o;{let s=await o.text();throw new N(o.status,o.statusText,`failed reMarkable request: ${s}`)}}async#r({url:r,method:t,maxuploadsize_bytes:n},i,o={}){let s=n?{...o,[Ut]:`0,${n}`}:o,a=await this.#o(r,{method:t,body:i,headers:s});if(a.ok)return a;{let f=await a.text();throw new N(a.status,a.statusText,f)}}async#n(r,t,n){let i=t===void 0?"downloads":"uploads",o=n?`{ "http_method": "PUT", "relative_path": "${r}", "root_schema": "${n}", "generation": ${t} }`:JSON.stringify({http_method:"GET",relative_path:r}),a=await(await this.#i(`${this.#t}/sync/v2/signed-urls/${i}`,{body:o})).text(),f=JSON.parse(a);return J(_t,f),f}async getRootHash(){let r=await this.#n("root"),t=await this.#r(r),n=t.headers.get(Re);if(!n)throw new Error("no generation header in root hash");return[await t.text(),BigInt(n)]}async putRootHash(r,t){let n=await this.#n("root",t,r),i;try{i=await this.#r(n,r,{[Ft]:`${t}`})}catch(s){throw s instanceof N&&s.status===412?new le:s}let o=i.headers.get(Re);if(!o)throw new Error("no generation header in root hash");return BigInt(o)}async getBuffer(r){let t=await this.#n(r);return await(await this.#r(t)).arrayBuffer()}async getText(r){let t=await this.#e?.get(r);if(t)return t;{let n=await this.#n(r),o=await(await this.#r(n)).text();return await this.#e?.set(r,o),o}}async getMetadata(r){let t=await this.getText(r),n=JSON.parse(t);return J(Lt,n),n}async getEntries(r){let t=await this.getText(r),[n,...i]=t.slice(0,-1).split(`
|
|
3
|
+
`);if(n!==Ie)throw new Error(`got unexpected schema version: ${n}`);return i.map(Bt)}async#f(r,t){let n=await this.#n(r,null);await this.#r(n,t)}async putEntries(r,t){let n=new TextEncoder;t.sort((u,v)=>u.documentId.localeCompare(v.documentId));let i=ve(t.map(u=>we(u.hash))),o=await this.#s.digest("SHA-256",i),s=oe(o),a=t.map(Nt).join(""),f=`${Ie}
|
|
4
|
+
${a}`,l=n.encode(f);return await this.#f(s,l),await this.#e?.set(s,f),{hash:s,type:"80000000",documentId:r,subfiles:t.length,size:0n}}async putBuffer(r,t){let n=await this.#s.digest("SHA-256",t),i=oe(n);return await this.#f(i,t),{hash:i,type:"0",documentId:r,subfiles:0,size:BigInt(t.length)}}async putText(r,t){let n=new TextEncoder,i=await this.putBuffer(r,n.encode(t));return await this.#e?.set(i.hash,t),i}async#l(r,t,n,i,o){if(o.fileType!==n)throw new Error(`internal error: fileTypes don't match: ${n}, ${o.fileType}`);let s=W(),a=`${new Date().valueOf()}`,f=[];f.push(this.putBuffer(`${s}.${n}`,t));let l={type:"DocumentType",visibleName:r,version:0,parent:i,synced:!0,lastModified:a};f.push(this.putText(`${s}.metadata`,JSON.stringify(l))),f.push(this.putText(`${s}.content`,JSON.stringify(o)));let u=await Promise.all(f);return await this.putEntries(s,u)}async putEpub(r,t,{parent:n="",margins:i=125,orientation:o,textAlignment:s,textScale:a=1,lineHeight:f=-1,fontName:l="",cover:u="visited",lastTool:v}={}){let P={dummyDocument:!1,extraMetadata:{LastTool:v},fileType:"epub",pageCount:0,lastOpenedPage:0,lineHeight:typeof f=="string"?It[f]:f,margins:typeof i=="string"?Mt[i]:i,textScale:typeof a=="string"?Ct[a]:a,pages:[],coverPageNumber:u==="first"?0:-1,formatVersion:1,orientation:o,textAlignment:s,fontName:l};return await this.#l(r,t,"epub",n,P)}async putPdf(r,t,{parent:n="",orientation:i,cover:o="first",lastTool:s}={}){let a={dummyDocument:!1,extraMetadata:{LastTool:s},fileType:"pdf",pageCount:0,lastOpenedPage:0,lineHeight:-1,margins:125,textScale:1,pages:[],coverPageNumber:o==="first"?0:-1,formatVersion:1,orientation:i};return await this.#l(r,t,"pdf",n,a)}async syncComplete(r){let t=`{ "generation": ${r} }`;await this.#i(`${this.#t}/sync/v2/sync-complete`,{body:t})}async getEntriesMetadata(){let t=await(await this.#i(`${this.#t}/doc/v2/files`,{method:"GET",headers:{"rm-source":"RoR-Browser"}})).text(),n=JSON.parse(t);return J({elements:Dt},n),n}async#u(r,t,n){let o=new TextEncoder().encode(JSON.stringify({file_name:r})),a=await(await this.#i(`${this.#t}/doc/v2/files`,{body:t,headers:{"content-type":n,"rm-meta":(0,Le.fromByteArray)(o),"rm-source":"RoR-Browser"}})).text(),f=JSON.parse(a);return J(Rt,f),f}async uploadEpub(r,t){return await this.#u(r,t,"application/epub+zip")}async uploadPdf(r,t){return await this.#u(r,t,"application/pdf")}};async function Yr(e,{fetch:r=globalThis.fetch,cache:t,subtle:n=globalThis.crypto?.subtle,authHost:i=De,syncHost:o=Ot}={}){let s=await r(`${i}/token/json/2/user/new`,{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!s.ok)throw new Error(`couldn't fetch auth token: ${s.statusText}`);let a=await s.text();return new ue(a,r,t,n,o)}export{le as GenerationError,N as ResponseError,Gr as builtinFontNames,It as builtinLineHeights,Mt as builtinMargins,Ct as builtinTextScales,zr as builtinTools,Nt as formatEntry,Bt as parseEntry,Wr as register,Yr as remarkable};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var rmapi=(()=>{var Ne=Object.create;var V=Object.defineProperty;var $e=Object.getOwnPropertyDescriptor;var He=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Be=Object.prototype.hasOwnProperty;var q=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ve=(e,t)=>{for(var r in t)V(e,r,{get:t[r],enumerable:!0})},le=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of He(t))!Be.call(e,n)&&n!==r&&V(e,n,{get:()=>t[n],enumerable:!(i=$e(t,n))||i.enumerable});return e};var qe=(e,t,r)=>(r=e!=null?Ne(_e(e)):{},le(t||!e||!e.__esModule?V(r,"default",{value:e,enumerable:!0}):r,e)),Je=e=>le(V({},"__esModule",{value:!0}),e);var ie=q(l=>{"use strict";var he=l&&l.__rest||function(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(e);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(r[i[n]]=e[i[n]]);return r};Object.defineProperty(l,"__esModule",{value:!0});l.isSchema=l.isValidSchema=l.isDiscriminatorForm=l.isValuesForm=l.isPropertiesForm=l.isElementsForm=l.isEnumForm=l.isTypeForm=l.isRefForm=l.isEmptyForm=void 0;function ar(e){let{definitions:t,nullable:r,metadata:i}=e,n=he(e,["definitions","nullable","metadata"]);return Object.keys(n).length===0}l.isEmptyForm=ar;function ye(e){return"ref"in e}l.isRefForm=ye;function fr(e){return"type"in e}l.isTypeForm=fr;function ve(e){return"enum"in e}l.isEnumForm=ve;function be(e){return"elements"in e}l.isElementsForm=be;function ne(e){return"properties"in e||"optionalProperties"in e}l.isPropertiesForm=ne;function xe(e){return"values"in e}l.isValuesForm=xe;function we(e){return"discriminator"in e}l.isDiscriminatorForm=we;function I(e,t){if(t===void 0&&(t=e),e.definitions!==void 0){if(t!==e)return!1;for(let r of Object.values(e.definitions))if(!I(r,t))return!1}if(ye(e)&&!(e.ref in(t.definitions||{}))||ve(e)&&(e.enum.length===0||e.enum.length!==new Set(e.enum).size))return!1;if(be(e))return I(e.elements,t);if(ne(e)){for(let r of Object.values(e.properties||{}))if(!I(r,t))return!1;for(let r of Object.values(e.optionalProperties||{}))if(!I(r,t))return!1;for(let r of Object.keys(e.properties||{}))if(r in(e.optionalProperties||{}))return!1}if(xe(e))return I(e.values,t);if(we(e)){for(let r of Object.values(e.mapping))if(!I(r,t)||!ne(r)||r.nullable||e.discriminator in(r.properties||{})||e.discriminator in(r.optionalProperties||{}))return!1}return!0}l.isValidSchema=I;var lr=[[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1],[!0,!1,!1,!1,!1,!1,!1,!1,!1,!1],[!1,!0,!1,!1,!1,!1,!1,!1,!1,!1],[!1,!1,!0,!1,!1,!1,!1,!1,!1,!1],[!1,!1,!1,!0,!1,!1,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!1,!1,!1,!1,!1],[!1,!1,!1,!1,!1,!0,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!0,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!1,!0,!1,!1,!1],[!1,!1,!1,!1,!1,!0,!0,!1,!1,!1],[!1,!1,!1,!1,!0,!0,!0,!1,!1,!1],[!1,!1,!1,!1,!1,!1,!1,!0,!1,!1],[!1,!1,!1,!1,!1,!1,!1,!1,!0,!0]],ur=["boolean","float32","float64","int8","uint8","int16","uint16","int32","uint32","string","timestamp"];function U(e){if(typeof e!="object"||Array.isArray(e)||e===null)return!1;let t=e,{definitions:r=void 0,nullable:i=void 0,metadata:n=void 0,ref:o=void 0,type:s=void 0,enum:f=void 0,elements:a=void 0,properties:d=void 0,optionalProperties:u=void 0,additionalProperties:E=void 0,values:m=void 0,discriminator:P=void 0,mapping:p=void 0}=t,k=he(t,["definitions","nullable","metadata","ref","type","enum","elements","properties","optionalProperties","additionalProperties","values","discriminator","mapping"]),S=[o!==void 0,s!==void 0,f!==void 0,a!==void 0,d!==void 0,u!==void 0,E!==void 0,m!==void 0,P!==void 0,p!==void 0],A=!1;for(let g of lr)A=A||g.every((B,N)=>B===S[N]);if(!A)return!1;if(r!==void 0){if(typeof r!="object"||Array.isArray(r)||r===null)return!1;for(let g of Object.values(r))if(!U(g))return!1}if(i!==void 0&&typeof i!="boolean"||n!==void 0&&(typeof n!="object"||Array.isArray(n)||n===null)||o!==void 0&&typeof o!="string"||s!==void 0&&(typeof s!="string"||!ur.includes(s))||f!==void 0&&(!Array.isArray(f)||!f.every(g=>typeof g=="string"))||a!==void 0&&!U(a))return!1;if(d!==void 0){if(typeof d!="object"||Array.isArray(d)||d===null)return!1;for(let g of Object.values(d))if(!U(g))return!1}if(u!==void 0){if(typeof u!="object"||Array.isArray(u)||u===null)return!1;for(let g of Object.values(u))if(!U(g))return!1}if(E!==void 0&&typeof E!="boolean"||m!==void 0&&!U(m)||P!==void 0&&typeof P!="string")return!1;if(p!==void 0){if(typeof p!="object"||Array.isArray(p)||p===null)return!1;for(let g of Object.values(p))if(!U(g))return!1}return Object.keys(k).length===0}l.isSchema=U});var Te=q(oe=>{"use strict";Object.defineProperty(oe,"__esModule",{value:!0});var dr=/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(\.\d+)?([zZ]|((\+|-)(\d{2}):(\d{2})))$/;function pr(e){let t=e.match(dr);if(t===null)return!1;let r=parseInt(t[1],10),i=parseInt(t[2],10),n=parseInt(t[3],10),o=parseInt(t[4],10),s=parseInt(t[5],10),f=parseInt(t[6],10);return!(i>12||n>cr(r,i)||o>23||s>59||f>60)}oe.default=pr;function cr(e,t){return t===2?mr(e)?29:28:gr[t]}function mr(e){return e%4===0&&(e%100!==0||e%400===0)}var gr=[0,31,0,31,30,31,30,31,31,30,31,30,31]});var Ee=q(F=>{"use strict";var hr=F&&F.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(F,"__esModule",{value:!0});F.validate=F.MaxDepthExceededError=void 0;var yr=hr(Te()),M=ie(),X=class extends Error{};F.MaxDepthExceededError=X;var Q=class extends Error{};function vr(e,t,r){let i={errors:[],instanceTokens:[],schemaTokens:[[]],root:e,config:r||{maxDepth:0,maxErrors:0}};try{j(i,e,t)}catch(n){if(!(n instanceof Q))throw n}return i.errors}F.validate=vr;function j(e,t,r,i){if(!(t.nullable&&r===null)){if(M.isRefForm(t)){if(e.schemaTokens.length===e.config.maxDepth)throw new X;e.schemaTokens.push(["definitions",t.ref]),j(e,e.root.definitions[t.ref],r),e.schemaTokens.pop()}else if(M.isTypeForm(t)){switch(x(e,"type"),t.type){case"boolean":typeof r!="boolean"&&w(e);break;case"float32":case"float64":typeof r!="number"&&w(e);break;case"int8":_(e,r,-128,127);break;case"uint8":_(e,r,0,255);break;case"int16":_(e,r,-32768,32767);break;case"uint16":_(e,r,0,65535);break;case"int32":_(e,r,-2147483648,2147483647);break;case"uint32":_(e,r,0,4294967295);break;case"string":typeof r!="string"&&w(e);break;case"timestamp":typeof r!="string"?w(e):yr.default(r)||w(e);break}T(e)}else if(M.isEnumForm(t))x(e,"enum"),(typeof r!="string"||!t.enum.includes(r))&&w(e),T(e);else if(M.isElementsForm(t)){if(x(e,"elements"),Array.isArray(r))for(let[n,o]of r.entries())C(e,n.toString()),j(e,t.elements,o),L(e);else w(e);T(e)}else if(M.isPropertiesForm(t))if(typeof r=="object"&&r!==null&&!Array.isArray(r)){if(t.properties!==void 0){x(e,"properties");for(let[n,o]of Object.entries(t.properties))x(e,n),r.hasOwnProperty(n)?(C(e,n),j(e,o,r[n]),L(e)):w(e),T(e);T(e)}if(t.optionalProperties!==void 0){x(e,"optionalProperties");for(let[n,o]of Object.entries(t.optionalProperties))x(e,n),r.hasOwnProperty(n)&&(C(e,n),j(e,o,r[n]),L(e)),T(e);T(e)}if(t.additionalProperties!==!0)for(let n of Object.keys(r)){let o=t.properties&&n in t.properties,s=t.optionalProperties&&n in t.optionalProperties;!o&&!s&&n!==i&&(C(e,n),w(e),L(e))}}else t.properties!==void 0?x(e,"properties"):x(e,"optionalProperties"),w(e),T(e);else if(M.isValuesForm(t)){if(x(e,"values"),typeof r=="object"&&r!==null&&!Array.isArray(r))for(let[n,o]of Object.entries(r))C(e,n),j(e,t.values,o),L(e);else w(e);T(e)}else if(M.isDiscriminatorForm(t))if(typeof r=="object"&&r!==null&&!Array.isArray(r))if(r.hasOwnProperty(t.discriminator)){let n=r[t.discriminator];typeof n=="string"?n in t.mapping?(x(e,"mapping"),x(e,n),j(e,t.mapping[n],r,t.discriminator),T(e),T(e)):(x(e,"mapping"),C(e,t.discriminator),w(e),L(e),T(e)):(x(e,"discriminator"),C(e,t.discriminator),w(e),L(e),T(e))}else x(e,"discriminator"),w(e),T(e);else x(e,"discriminator"),w(e),T(e)}}function _(e,t,r,i){(typeof t!="number"||!Number.isInteger(t)||t<r||t>i)&&w(e)}function C(e,t){e.instanceTokens.push(t)}function L(e){e.instanceTokens.pop()}function x(e,t){e.schemaTokens[e.schemaTokens.length-1].push(t)}function T(e){e.schemaTokens[e.schemaTokens.length-1].pop()}function w(e){if(e.errors.push({instancePath:[...e.instanceTokens],schemaPath:[...e.schemaTokens[e.schemaTokens.length-1]]}),e.errors.length===e.config.maxErrors)throw new Q}});var Ae=q(R=>{"use strict";var br=R&&R.__createBinding||(Object.create?function(e,t,r,i){i===void 0&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]}),Pe=R&&R.__exportStar||function(e,t){for(var r in e)r!=="default"&&!t.hasOwnProperty(r)&&br(t,e,r)};Object.defineProperty(R,"__esModule",{value:!0});Pe(ie(),R);Pe(Ee(),R)});var Or={};Ve(Or,{GenerationError:()=>W,ResponseError:()=>D,builtinFontNames:()=>Er,builtinLineHeights:()=>Ce,builtinMargins:()=>Me,builtinTextScales:()=>Ue,builtinTools:()=>Tr,formatEntry:()=>Le,parseEntry:()=>je,register:()=>kr,remarkable:()=>Sr});var J,ze=new Uint8Array(16);function z(){if(!J&&(J=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!J))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return J(ze)}var ue=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function Ge(e){return typeof e=="string"&&ue.test(e)}var $=Ge;var c=[];for(G=0;G<256;++G)c.push((G+256).toString(16).substr(1));var G;function Ye(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=(c[e[t+0]]+c[e[t+1]]+c[e[t+2]]+c[e[t+3]]+"-"+c[e[t+4]]+c[e[t+5]]+"-"+c[e[t+6]]+c[e[t+7]]+"-"+c[e[t+8]]+c[e[t+9]]+"-"+c[e[t+10]]+c[e[t+11]]+c[e[t+12]]+c[e[t+13]]+c[e[t+14]]+c[e[t+15]]).toLowerCase();if(!$(r))throw TypeError("Stringified UUID is invalid");return r}var H=Ye;function Ze(e){if(!$(e))throw TypeError("Invalid UUID");var t,r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=t&255,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=t&255,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=t&255,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=t&255,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=t&255,r}var ee=Ze;function Ke(e){e=unescape(encodeURIComponent(e));for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t}var Xe="6ba7b810-9dad-11d1-80b4-00c04fd430c8",Qe="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function Y(e,t,r){function i(n,o,s,f){if(typeof n=="string"&&(n=Ke(n)),typeof o=="string"&&(o=ee(o)),o.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var a=new Uint8Array(16+n.length);if(a.set(o),a.set(n,o.length),a=r(a),a[6]=a[6]&15|t,a[8]=a[8]&63|128,s){f=f||0;for(var d=0;d<16;++d)s[f+d]=a[d];return s}return H(a)}try{i.name=e}catch{}return i.DNS=Xe,i.URL=Qe,i}function We(e){if(typeof e=="string"){var t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(var r=0;r<t.length;++r)e[r]=t.charCodeAt(r)}return er(rr(tr(e),e.length*8))}function er(e){for(var t=[],r=e.length*32,i="0123456789abcdef",n=0;n<r;n+=8){var o=e[n>>5]>>>n%32&255,s=parseInt(i.charAt(o>>>4&15)+i.charAt(o&15),16);t.push(s)}return t}function de(e){return(e+64>>>9<<4)+14+1}function rr(e,t){e[t>>5]|=128<<t%32,e[de(t)-1]=t;for(var r=1732584193,i=-271733879,n=-1732584194,o=271733878,s=0;s<e.length;s+=16){var f=r,a=i,d=n,u=o;r=h(r,i,n,o,e[s],7,-680876936),o=h(o,r,i,n,e[s+1],12,-389564586),n=h(n,o,r,i,e[s+2],17,606105819),i=h(i,n,o,r,e[s+3],22,-1044525330),r=h(r,i,n,o,e[s+4],7,-176418897),o=h(o,r,i,n,e[s+5],12,1200080426),n=h(n,o,r,i,e[s+6],17,-1473231341),i=h(i,n,o,r,e[s+7],22,-45705983),r=h(r,i,n,o,e[s+8],7,1770035416),o=h(o,r,i,n,e[s+9],12,-1958414417),n=h(n,o,r,i,e[s+10],17,-42063),i=h(i,n,o,r,e[s+11],22,-1990404162),r=h(r,i,n,o,e[s+12],7,1804603682),o=h(o,r,i,n,e[s+13],12,-40341101),n=h(n,o,r,i,e[s+14],17,-1502002290),i=h(i,n,o,r,e[s+15],22,1236535329),r=y(r,i,n,o,e[s+1],5,-165796510),o=y(o,r,i,n,e[s+6],9,-1069501632),n=y(n,o,r,i,e[s+11],14,643717713),i=y(i,n,o,r,e[s],20,-373897302),r=y(r,i,n,o,e[s+5],5,-701558691),o=y(o,r,i,n,e[s+10],9,38016083),n=y(n,o,r,i,e[s+15],14,-660478335),i=y(i,n,o,r,e[s+4],20,-405537848),r=y(r,i,n,o,e[s+9],5,568446438),o=y(o,r,i,n,e[s+14],9,-1019803690),n=y(n,o,r,i,e[s+3],14,-187363961),i=y(i,n,o,r,e[s+8],20,1163531501),r=y(r,i,n,o,e[s+13],5,-1444681467),o=y(o,r,i,n,e[s+2],9,-51403784),n=y(n,o,r,i,e[s+7],14,1735328473),i=y(i,n,o,r,e[s+12],20,-1926607734),r=v(r,i,n,o,e[s+5],4,-378558),o=v(o,r,i,n,e[s+8],11,-2022574463),n=v(n,o,r,i,e[s+11],16,1839030562),i=v(i,n,o,r,e[s+14],23,-35309556),r=v(r,i,n,o,e[s+1],4,-1530992060),o=v(o,r,i,n,e[s+4],11,1272893353),n=v(n,o,r,i,e[s+7],16,-155497632),i=v(i,n,o,r,e[s+10],23,-1094730640),r=v(r,i,n,o,e[s+13],4,681279174),o=v(o,r,i,n,e[s],11,-358537222),n=v(n,o,r,i,e[s+3],16,-722521979),i=v(i,n,o,r,e[s+6],23,76029189),r=v(r,i,n,o,e[s+9],4,-640364487),o=v(o,r,i,n,e[s+12],11,-421815835),n=v(n,o,r,i,e[s+15],16,530742520),i=v(i,n,o,r,e[s+2],23,-995338651),r=b(r,i,n,o,e[s],6,-198630844),o=b(o,r,i,n,e[s+7],10,1126891415),n=b(n,o,r,i,e[s+14],15,-1416354905),i=b(i,n,o,r,e[s+5],21,-57434055),r=b(r,i,n,o,e[s+12],6,1700485571),o=b(o,r,i,n,e[s+3],10,-1894986606),n=b(n,o,r,i,e[s+10],15,-1051523),i=b(i,n,o,r,e[s+1],21,-2054922799),r=b(r,i,n,o,e[s+8],6,1873313359),o=b(o,r,i,n,e[s+15],10,-30611744),n=b(n,o,r,i,e[s+6],15,-1560198380),i=b(i,n,o,r,e[s+13],21,1309151649),r=b(r,i,n,o,e[s+4],6,-145523070),o=b(o,r,i,n,e[s+11],10,-1120210379),n=b(n,o,r,i,e[s+2],15,718787259),i=b(i,n,o,r,e[s+9],21,-343485551),r=O(r,f),i=O(i,a),n=O(n,d),o=O(o,u)}return[r,i,n,o]}function tr(e){if(e.length===0)return[];for(var t=e.length*8,r=new Uint32Array(de(t)),i=0;i<t;i+=8)r[i>>5]|=(e[i/8]&255)<<i%32;return r}function O(e,t){var r=(e&65535)+(t&65535),i=(e>>16)+(t>>16)+(r>>16);return i<<16|r&65535}function nr(e,t){return e<<t|e>>>32-t}function Z(e,t,r,i,n,o){return O(nr(O(O(t,e),O(i,o)),n),r)}function h(e,t,r,i,n,o,s){return Z(t&r|~t&i,e,t,n,o,s)}function y(e,t,r,i,n,o,s){return Z(t&i|r&~i,e,t,n,o,s)}function v(e,t,r,i,n,o,s){return Z(t^r^i,e,t,n,o,s)}function b(e,t,r,i,n,o,s){return Z(r^(t|~i),e,t,n,o,s)}var pe=We;var Gr=Y("v3",48,pe);function ir(e,t,r){e=e||{};var i=e.random||(e.rng||z)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){r=r||0;for(var n=0;n<16;++n)t[r+n]=i[n];return t}return H(i)}var K=ir;function or(e,t,r,i){switch(e){case 0:return t&r^~t&i;case 1:return t^r^i;case 2:return t&r^t&i^r&i;case 3:return t^r^i}}function re(e,t){return e<<t|e>>>32-t}function sr(e){var t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof e=="string"){var i=unescape(encodeURIComponent(e));e=[];for(var n=0;n<i.length;++n)e.push(i.charCodeAt(n))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);for(var o=e.length/4+2,s=Math.ceil(o/16),f=new Array(s),a=0;a<s;++a){for(var d=new Uint32Array(16),u=0;u<16;++u)d[u]=e[a*64+u*4]<<24|e[a*64+u*4+1]<<16|e[a*64+u*4+2]<<8|e[a*64+u*4+3];f[a]=d}f[s-1][14]=(e.length-1)*8/Math.pow(2,32),f[s-1][14]=Math.floor(f[s-1][14]),f[s-1][15]=(e.length-1)*8&4294967295;for(var E=0;E<s;++E){for(var m=new Uint32Array(80),P=0;P<16;++P)m[P]=f[E][P];for(var p=16;p<80;++p)m[p]=re(m[p-3]^m[p-8]^m[p-14]^m[p-16],1);for(var k=r[0],S=r[1],A=r[2],g=r[3],B=r[4],N=0;N<80;++N){var fe=Math.floor(N/20),De=re(k,5)+or(fe,S,A,g)+B+t[fe]+m[N]>>>0;B=g,g=A,A=re(S,30)>>>0,S=k,k=De}r[0]=r[0]+k>>>0,r[1]=r[1]+S>>>0,r[2]=r[2]+A>>>0,r[3]=r[3]+g>>>0,r[4]=r[4]+B>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,r[0]&255,r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,r[1]&255,r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,r[2]&255,r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,r[3]&255,r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,r[4]&255]}var ce=sr;var rt=Y("v5",80,ce);function te(e){return[...new Uint8Array(e)].map(t=>t.toString(16).padStart(2,"0")).join("")}function me(e){return new Uint8Array((e.match(/../g)??[]).map(t=>parseInt(t,16)))}function ge(e){let t=0;for(let n of e)t+=n.length;let r=new Uint8Array(t),i=0;for(let n of e)r.set(n,i),i+=n.length;return r}var ke=qe(Ae());function se(e,t){if((0,ke.validate)(e,t).length)throw new Error(`couldn't validate schema: ${JSON.stringify(t)} didn't match schema ${JSON.stringify(e)}`)}var Se="3",Ie="https://webapp-production-dot-remarkable-production.appspot.com",xr="https://rm-blob-storage-prod.appspot.com",Oe="x-goog-generation",wr="x-goog-if-generation-match",Tr=["Ballpoint","Ballpointv2","Brush","Calligraphy","ClearPage","EraseSection","Eraser","Fineliner","Finelinerv2","Highlighter","Highlighterv2","Marker","Markerv2","Paintbrush","Paintbrushv2","Pencilv2","SharpPencil","SharpPencilv2","SolidPen","ZoomTool"],Er=["Maison Neue","EB Garamond","Noto Sans","Noto Serif","Noto Mono","Noto Sans UI"],Ue={xs:.7,sm:.8,md:1,lg:1.2,xl:1.5,xx:2},Me={sm:50,md:125,rr:180,lg:200},Ce={df:-1,md:100,lg:150,xl:200},Pr={properties:{relative_path:{type:"string"},url:{type:"string"},expires:{type:"timestamp"},method:{enum:["POST","GET","PUT","DELETE"]}}},Fe={visibleName:{type:"string"},parent:{type:"string"},lastModified:{type:"string"},version:{type:"int32"},synced:{type:"boolean"}},Re={pinned:{type:"boolean"},modified:{type:"boolean"},deleted:{type:"boolean"},metadatamodified:{type:"boolean"}},Ar={discriminator:"type",mapping:{CollectionType:{properties:Fe,optionalProperties:Re},DocumentType:{properties:Fe,optionalProperties:{...Re,lastOpened:{type:"string"},lastOpenedPage:{type:"int32"}}}}},D=class extends Error{constructor(r,i,n){super(n);this.status=r,this.statusText=i}},W=class extends Error{constructor(){super("Generation preconditions failed. This means the current state is out of date with the cloud and needs to be re-synced.")}};async function kr(e,{deviceDesc:t="desktop-linux",uuid:r=K(),authUrl:i=Ie,fetch:n=globalThis.fetch}={}){if(e.length!==8)throw new Error(`code should be length 8, but was ${e.length}`);let o=await n(`${i}/token/json/2/device/new`,{method:"POST",headers:{Authorization:"Bearer"},body:JSON.stringify({code:e,deviceDesc:t,deviceID:r})});if(o.ok)return await o.text();throw new D(o.status,o.statusText,"couldn't register api")}function Le({hash:e,type:t,documentId:r,subfiles:i,size:n}){return`${e}:${t}:${r}:${i}:${n}
|
|
2
|
-
`}function
|
|
3
|
-
`);if(
|
|
4
|
-
${
|
|
1
|
+
var rmapi=(()=>{var Ge=Object.create;var V=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var Ye=Object.getOwnPropertyNames;var Ze=Object.getPrototypeOf,Ke=Object.prototype.hasOwnProperty;var B=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Xe=(e,r)=>{for(var t in r)V(e,t,{get:r[t],enumerable:!0})},ce=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of Ye(r))!Ke.call(e,i)&&i!==t&&V(e,i,{get:()=>r[i],enumerable:!(n=We(r,i))||n.enumerable});return e};var pe=(e,r,t)=>(t=e!=null?Ge(Ze(e)):{},ce(r||!e||!e.__esModule?V(t,"default",{value:e,enumerable:!0}):t,e)),Qe=e=>ce(V({},"__esModule",{value:!0}),e);var ge=B(q=>{"use strict";q.byteLength=tt;q.toByteArray=nt;q.fromByteArray=st;var A=[],E=[],et=typeof Uint8Array<"u"?Uint8Array:Array,ne="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(U=0,me=ne.length;U<me;++U)A[U]=ne[U],E[ne.charCodeAt(U)]=U;var U,me;E["-".charCodeAt(0)]=62;E["_".charCodeAt(0)]=63;function ye(e){var r=e.length;if(r%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=e.indexOf("=");t===-1&&(t=r);var n=t===r?0:4-t%4;return[t,n]}function tt(e){var r=ye(e),t=r[0],n=r[1];return(t+n)*3/4-n}function rt(e,r,t){return(r+t)*3/4-t}function nt(e){var r,t=ye(e),n=t[0],i=t[1],o=new et(rt(e,n,i)),s=0,a=i>0?n-4:n,f;for(f=0;f<a;f+=4)r=E[e.charCodeAt(f)]<<18|E[e.charCodeAt(f+1)]<<12|E[e.charCodeAt(f+2)]<<6|E[e.charCodeAt(f+3)],o[s++]=r>>16&255,o[s++]=r>>8&255,o[s++]=r&255;return i===2&&(r=E[e.charCodeAt(f)]<<2|E[e.charCodeAt(f+1)]>>4,o[s++]=r&255),i===1&&(r=E[e.charCodeAt(f)]<<10|E[e.charCodeAt(f+1)]<<4|E[e.charCodeAt(f+2)]>>2,o[s++]=r>>8&255,o[s++]=r&255),o}function it(e){return A[e>>18&63]+A[e>>12&63]+A[e>>6&63]+A[e&63]}function ot(e,r,t){for(var n,i=[],o=r;o<t;o+=3)n=(e[o]<<16&16711680)+(e[o+1]<<8&65280)+(e[o+2]&255),i.push(it(n));return i.join("")}function st(e){for(var r,t=e.length,n=t%3,i=[],o=16383,s=0,a=t-n;s<a;s+=o)i.push(ot(e,s,s+o>a?a:s+o));return n===1?(r=e[t-1],i.push(A[r>>2]+A[r<<4&63]+"==")):n===2&&(r=(e[t-2]<<8)+e[t-1],i.push(A[r>>10]+A[r>>4&63]+A[r<<2&63]+"=")),i.join("")}});var le=B(d=>{"use strict";var Te=d&&d.__rest||function(e,r){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&r.indexOf(n)<0&&(t[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)r.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i])&&(t[n[i]]=e[n[i]]);return t};Object.defineProperty(d,"__esModule",{value:!0});d.isSchema=d.isValidSchema=d.isDiscriminatorForm=d.isValuesForm=d.isPropertiesForm=d.isElementsForm=d.isEnumForm=d.isTypeForm=d.isRefForm=d.isEmptyForm=void 0;function Et(e){let{definitions:r,nullable:t,metadata:n}=e,i=Te(e,["definitions","nullable","metadata"]);return Object.keys(i).length===0}d.isEmptyForm=Et;function Ae(e){return"ref"in e}d.isRefForm=Ae;function Tt(e){return"type"in e}d.isTypeForm=Tt;function Pe(e){return"enum"in e}d.isEnumForm=Pe;function ke(e){return"elements"in e}d.isElementsForm=ke;function fe(e){return"properties"in e||"optionalProperties"in e}d.isPropertiesForm=fe;function Se(e){return"values"in e}d.isValuesForm=Se;function Oe(e){return"discriminator"in e}d.isDiscriminatorForm=Oe;function C(e,r){if(r===void 0&&(r=e),e.definitions!==void 0){if(r!==e)return!1;for(let t of Object.values(e.definitions))if(!C(t,r))return!1}if(Ae(e)&&!(e.ref in(r.definitions||{}))||Pe(e)&&(e.enum.length===0||e.enum.length!==new Set(e.enum).size))return!1;if(ke(e))return C(e.elements,r);if(fe(e)){for(let t of Object.values(e.properties||{}))if(!C(t,r))return!1;for(let t of Object.values(e.optionalProperties||{}))if(!C(t,r))return!1;for(let t of Object.keys(e.properties||{}))if(t in(e.optionalProperties||{}))return!1}if(Se(e))return C(e.values,r);if(Oe(e)){for(let t of Object.values(e.mapping))if(!C(t,r)||!fe(t)||t.nullable||e.discriminator in(t.properties||{})||e.discriminator in(t.optionalProperties||{}))return!1}return!0}d.isValidSchema=C;var At=[[!1,!1,!1,!1,!1,!1,!1,!1,!1,!1],[!0,!1,!1,!1,!1,!1,!1,!1,!1,!1],[!1,!0,!1,!1,!1,!1,!1,!1,!1,!1],[!1,!1,!0,!1,!1,!1,!1,!1,!1,!1],[!1,!1,!1,!0,!1,!1,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!1,!1,!1,!1,!1],[!1,!1,!1,!1,!1,!0,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!0,!1,!1,!1,!1],[!1,!1,!1,!1,!0,!1,!0,!1,!1,!1],[!1,!1,!1,!1,!1,!0,!0,!1,!1,!1],[!1,!1,!1,!1,!0,!0,!0,!1,!1,!1],[!1,!1,!1,!1,!1,!1,!1,!0,!1,!1],[!1,!1,!1,!1,!1,!1,!1,!1,!0,!0]],Pt=["boolean","float32","float64","int8","uint8","int16","uint16","int32","uint32","string","timestamp"];function M(e){if(typeof e!="object"||Array.isArray(e)||e===null)return!1;let r=e,{definitions:t=void 0,nullable:n=void 0,metadata:i=void 0,ref:o=void 0,type:s=void 0,enum:a=void 0,elements:f=void 0,properties:l=void 0,optionalProperties:u=void 0,additionalProperties:v=void 0,values:P=void 0,discriminator:c=void 0,mapping:k=void 0}=r,te=Te(r,["definitions","nullable","metadata","ref","type","enum","elements","properties","optionalProperties","additionalProperties","values","discriminator","mapping"]),Ve=[o!==void 0,s!==void 0,a!==void 0,f!==void 0,l!==void 0,u!==void 0,v!==void 0,P!==void 0,c!==void 0,k!==void 0],re=!1;for(let T of At)re=re||T.every((qe,ze)=>qe===Ve[ze]);if(!re)return!1;if(t!==void 0){if(typeof t!="object"||Array.isArray(t)||t===null)return!1;for(let T of Object.values(t))if(!M(T))return!1}if(n!==void 0&&typeof n!="boolean"||i!==void 0&&(typeof i!="object"||Array.isArray(i)||i===null)||o!==void 0&&typeof o!="string"||s!==void 0&&(typeof s!="string"||!Pt.includes(s))||a!==void 0&&(!Array.isArray(a)||!a.every(T=>typeof T=="string"))||f!==void 0&&!M(f))return!1;if(l!==void 0){if(typeof l!="object"||Array.isArray(l)||l===null)return!1;for(let T of Object.values(l))if(!M(T))return!1}if(u!==void 0){if(typeof u!="object"||Array.isArray(u)||u===null)return!1;for(let T of Object.values(u))if(!M(T))return!1}if(v!==void 0&&typeof v!="boolean"||P!==void 0&&!M(P)||c!==void 0&&typeof c!="string")return!1;if(k!==void 0){if(typeof k!="object"||Array.isArray(k)||k===null)return!1;for(let T of Object.values(k))if(!M(T))return!1}return Object.keys(te).length===0}d.isSchema=M});var Fe=B(ue=>{"use strict";Object.defineProperty(ue,"__esModule",{value:!0});var kt=/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(\.\d+)?([zZ]|((\+|-)(\d{2}):(\d{2})))$/;function St(e){let r=e.match(kt);if(r===null)return!1;let t=parseInt(r[1],10),n=parseInt(r[2],10),i=parseInt(r[3],10),o=parseInt(r[4],10),s=parseInt(r[5],10),a=parseInt(r[6],10);return!(n>12||i>Ot(t,n)||o>23||s>59||a>60)}ue.default=St;function Ot(e,r){return r===2?Ft(e)?29:28:Ut[r]}function Ft(e){return e%4===0&&(e%100!==0||e%400===0)}var Ut=[0,31,0,31,30,31,30,31,31,30,31,30,31]});var Ue=B(O=>{"use strict";var Ct=O&&O.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(O,"__esModule",{value:!0});O.validate=O.MaxDepthExceededError=void 0;var Mt=Ct(Fe()),I=le(),Z=class extends Error{};O.MaxDepthExceededError=Z;var K=class extends Error{};function It(e,r,t){let n={errors:[],instanceTokens:[],schemaTokens:[[]],root:e,config:t||{maxDepth:0,maxErrors:0}};try{L(n,e,r)}catch(i){if(!(i instanceof K))throw i}return n.errors}O.validate=It;function L(e,r,t,n){if(!(r.nullable&&t===null)){if(I.isRefForm(r)){if(e.schemaTokens.length===e.config.maxDepth)throw new Z;e.schemaTokens.push(["definitions",r.ref]),L(e,e.root.definitions[r.ref],t),e.schemaTokens.pop()}else if(I.isTypeForm(r)){switch(b(e,"type"),r.type){case"boolean":typeof t!="boolean"&&x(e);break;case"float32":case"float64":typeof t!="number"&&x(e);break;case"int8":N(e,t,-128,127);break;case"uint8":N(e,t,0,255);break;case"int16":N(e,t,-32768,32767);break;case"uint16":N(e,t,0,65535);break;case"int32":N(e,t,-2147483648,2147483647);break;case"uint32":N(e,t,0,4294967295);break;case"string":typeof t!="string"&&x(e);break;case"timestamp":typeof t!="string"?x(e):Mt.default(t)||x(e);break}w(e)}else if(I.isEnumForm(r))b(e,"enum"),(typeof t!="string"||!r.enum.includes(t))&&x(e),w(e);else if(I.isElementsForm(r)){if(b(e,"elements"),Array.isArray(t))for(let[i,o]of t.entries())R(e,i.toString()),L(e,r.elements,o),_(e);else x(e);w(e)}else if(I.isPropertiesForm(r))if(typeof t=="object"&&t!==null&&!Array.isArray(t)){if(r.properties!==void 0){b(e,"properties");for(let[i,o]of Object.entries(r.properties))b(e,i),t.hasOwnProperty(i)?(R(e,i),L(e,o,t[i]),_(e)):x(e),w(e);w(e)}if(r.optionalProperties!==void 0){b(e,"optionalProperties");for(let[i,o]of Object.entries(r.optionalProperties))b(e,i),t.hasOwnProperty(i)&&(R(e,i),L(e,o,t[i]),_(e)),w(e);w(e)}if(r.additionalProperties!==!0)for(let i of Object.keys(t)){let o=r.properties&&i in r.properties,s=r.optionalProperties&&i in r.optionalProperties;!o&&!s&&i!==n&&(R(e,i),x(e),_(e))}}else r.properties!==void 0?b(e,"properties"):b(e,"optionalProperties"),x(e),w(e);else if(I.isValuesForm(r)){if(b(e,"values"),typeof t=="object"&&t!==null&&!Array.isArray(t))for(let[i,o]of Object.entries(t))R(e,i),L(e,r.values,o),_(e);else x(e);w(e)}else if(I.isDiscriminatorForm(r))if(typeof t=="object"&&t!==null&&!Array.isArray(t))if(t.hasOwnProperty(r.discriminator)){let i=t[r.discriminator];typeof i=="string"?i in r.mapping?(b(e,"mapping"),b(e,i),L(e,r.mapping[i],t,r.discriminator),w(e),w(e)):(b(e,"mapping"),R(e,r.discriminator),x(e),_(e),w(e)):(b(e,"discriminator"),R(e,r.discriminator),x(e),_(e),w(e))}else b(e,"discriminator"),x(e),w(e);else b(e,"discriminator"),x(e),w(e)}}function N(e,r,t,n){(typeof r!="number"||!Number.isInteger(r)||r<t||r>n)&&x(e)}function R(e,r){e.instanceTokens.push(r)}function _(e){e.instanceTokens.pop()}function b(e,r){e.schemaTokens[e.schemaTokens.length-1].push(r)}function w(e){e.schemaTokens[e.schemaTokens.length-1].pop()}function x(e){if(e.errors.push({instancePath:[...e.instanceTokens],schemaPath:[...e.schemaTokens[e.schemaTokens.length-1]]}),e.errors.length===e.config.maxErrors)throw new K}});var Me=B(F=>{"use strict";var Rt=F&&F.__createBinding||(Object.create?function(e,r,t,n){n===void 0&&(n=t),Object.defineProperty(e,n,{enumerable:!0,get:function(){return r[t]}})}:function(e,r,t,n){n===void 0&&(n=t),e[n]=r[t]}),Ce=F&&F.__exportStar||function(e,r){for(var t in e)t!=="default"&&!r.hasOwnProperty(t)&&Rt(r,e,t)};Object.defineProperty(F,"__esModule",{value:!0});Ce(le(),F);Ce(Ue(),F)});var zt={};Xe(zt,{GenerationError:()=>ee,ResponseError:()=>D,builtinFontNames:()=>Bt,builtinLineHeights:()=>$e,builtinMargins:()=>je,builtinTextScales:()=>Be,builtinTools:()=>Nt,formatEntry:()=>He,parseEntry:()=>Je,register:()=>Vt,remarkable:()=>qt});var De=pe(ge());var z,at=new Uint8Array(16);function G(){if(!z&&(z=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!z))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return z(at)}var he=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function ft(e){return typeof e=="string"&&he.test(e)}var j=ft;var p=[];for(let e=0;e<256;++e)p.push((e+256).toString(16).slice(1));function $(e,r=0){return(p[e[r+0]]+p[e[r+1]]+p[e[r+2]]+p[e[r+3]]+"-"+p[e[r+4]]+p[e[r+5]]+"-"+p[e[r+6]]+p[e[r+7]]+"-"+p[e[r+8]]+p[e[r+9]]+"-"+p[e[r+10]]+p[e[r+11]]+p[e[r+12]]+p[e[r+13]]+p[e[r+14]]+p[e[r+15]]).toLowerCase()}function lt(e){if(!j(e))throw TypeError("Invalid UUID");let r,t=new Uint8Array(16);return t[0]=(r=parseInt(e.slice(0,8),16))>>>24,t[1]=r>>>16&255,t[2]=r>>>8&255,t[3]=r&255,t[4]=(r=parseInt(e.slice(9,13),16))>>>8,t[5]=r&255,t[6]=(r=parseInt(e.slice(14,18),16))>>>8,t[7]=r&255,t[8]=(r=parseInt(e.slice(19,23),16))>>>8,t[9]=r&255,t[10]=(r=parseInt(e.slice(24,36),16))/1099511627776&255,t[11]=r/4294967296&255,t[12]=r>>>24&255,t[13]=r>>>16&255,t[14]=r>>>8&255,t[15]=r&255,t}var ie=lt;function ut(e){e=unescape(encodeURIComponent(e));let r=[];for(let t=0;t<e.length;++t)r.push(e.charCodeAt(t));return r}var dt="6ba7b810-9dad-11d1-80b4-00c04fd430c8",ct="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function H(e,r,t){function n(i,o,s,a){var f;if(typeof i=="string"&&(i=ut(i)),typeof o=="string"&&(o=ie(o)),((f=o)===null||f===void 0?void 0:f.length)!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let l=new Uint8Array(16+i.length);if(l.set(o),l.set(i,o.length),l=t(l),l[6]=l[6]&15|r,l[8]=l[8]&63|128,s){a=a||0;for(let u=0;u<16;++u)s[a+u]=l[u];return s}return $(l)}try{n.name=e}catch{}return n.DNS=dt,n.URL=ct,n}function pt(e){if(typeof e=="string"){let r=unescape(encodeURIComponent(e));e=new Uint8Array(r.length);for(let t=0;t<r.length;++t)e[t]=r.charCodeAt(t)}return mt(yt(gt(e),e.length*8))}function mt(e){let r=[],t=e.length*32,n="0123456789abcdef";for(let i=0;i<t;i+=8){let o=e[i>>5]>>>i%32&255,s=parseInt(n.charAt(o>>>4&15)+n.charAt(o&15),16);r.push(s)}return r}function be(e){return(e+64>>>9<<4)+14+1}function yt(e,r){e[r>>5]|=128<<r%32,e[be(r)-1]=r;let t=1732584193,n=-271733879,i=-1732584194,o=271733878;for(let s=0;s<e.length;s+=16){let a=t,f=n,l=i,u=o;t=m(t,n,i,o,e[s],7,-680876936),o=m(o,t,n,i,e[s+1],12,-389564586),i=m(i,o,t,n,e[s+2],17,606105819),n=m(n,i,o,t,e[s+3],22,-1044525330),t=m(t,n,i,o,e[s+4],7,-176418897),o=m(o,t,n,i,e[s+5],12,1200080426),i=m(i,o,t,n,e[s+6],17,-1473231341),n=m(n,i,o,t,e[s+7],22,-45705983),t=m(t,n,i,o,e[s+8],7,1770035416),o=m(o,t,n,i,e[s+9],12,-1958414417),i=m(i,o,t,n,e[s+10],17,-42063),n=m(n,i,o,t,e[s+11],22,-1990404162),t=m(t,n,i,o,e[s+12],7,1804603682),o=m(o,t,n,i,e[s+13],12,-40341101),i=m(i,o,t,n,e[s+14],17,-1502002290),n=m(n,i,o,t,e[s+15],22,1236535329),t=y(t,n,i,o,e[s+1],5,-165796510),o=y(o,t,n,i,e[s+6],9,-1069501632),i=y(i,o,t,n,e[s+11],14,643717713),n=y(n,i,o,t,e[s],20,-373897302),t=y(t,n,i,o,e[s+5],5,-701558691),o=y(o,t,n,i,e[s+10],9,38016083),i=y(i,o,t,n,e[s+15],14,-660478335),n=y(n,i,o,t,e[s+4],20,-405537848),t=y(t,n,i,o,e[s+9],5,568446438),o=y(o,t,n,i,e[s+14],9,-1019803690),i=y(i,o,t,n,e[s+3],14,-187363961),n=y(n,i,o,t,e[s+8],20,1163531501),t=y(t,n,i,o,e[s+13],5,-1444681467),o=y(o,t,n,i,e[s+2],9,-51403784),i=y(i,o,t,n,e[s+7],14,1735328473),n=y(n,i,o,t,e[s+12],20,-1926607734),t=g(t,n,i,o,e[s+5],4,-378558),o=g(o,t,n,i,e[s+8],11,-2022574463),i=g(i,o,t,n,e[s+11],16,1839030562),n=g(n,i,o,t,e[s+14],23,-35309556),t=g(t,n,i,o,e[s+1],4,-1530992060),o=g(o,t,n,i,e[s+4],11,1272893353),i=g(i,o,t,n,e[s+7],16,-155497632),n=g(n,i,o,t,e[s+10],23,-1094730640),t=g(t,n,i,o,e[s+13],4,681279174),o=g(o,t,n,i,e[s],11,-358537222),i=g(i,o,t,n,e[s+3],16,-722521979),n=g(n,i,o,t,e[s+6],23,76029189),t=g(t,n,i,o,e[s+9],4,-640364487),o=g(o,t,n,i,e[s+12],11,-421815835),i=g(i,o,t,n,e[s+15],16,530742520),n=g(n,i,o,t,e[s+2],23,-995338651),t=h(t,n,i,o,e[s],6,-198630844),o=h(o,t,n,i,e[s+7],10,1126891415),i=h(i,o,t,n,e[s+14],15,-1416354905),n=h(n,i,o,t,e[s+5],21,-57434055),t=h(t,n,i,o,e[s+12],6,1700485571),o=h(o,t,n,i,e[s+3],10,-1894986606),i=h(i,o,t,n,e[s+10],15,-1051523),n=h(n,i,o,t,e[s+1],21,-2054922799),t=h(t,n,i,o,e[s+8],6,1873313359),o=h(o,t,n,i,e[s+15],10,-30611744),i=h(i,o,t,n,e[s+6],15,-1560198380),n=h(n,i,o,t,e[s+13],21,1309151649),t=h(t,n,i,o,e[s+4],6,-145523070),o=h(o,t,n,i,e[s+11],10,-1120210379),i=h(i,o,t,n,e[s+2],15,718787259),n=h(n,i,o,t,e[s+9],21,-343485551),t=S(t,a),n=S(n,f),i=S(i,l),o=S(o,u)}return[t,n,i,o]}function gt(e){if(e.length===0)return[];let r=e.length*8,t=new Uint32Array(be(r));for(let n=0;n<r;n+=8)t[n>>5]|=(e[n/8]&255)<<n%32;return t}function S(e,r){let t=(e&65535)+(r&65535);return(e>>16)+(r>>16)+(t>>16)<<16|t&65535}function ht(e,r){return e<<r|e>>>32-r}function W(e,r,t,n,i,o){return S(ht(S(S(r,e),S(n,o)),i),t)}function m(e,r,t,n,i,o,s){return W(r&t|~r&n,e,r,i,o,s)}function y(e,r,t,n,i,o,s){return W(r&n|t&~n,e,r,i,o,s)}function g(e,r,t,n,i,o,s){return W(r^t^n,e,r,i,o,s)}function h(e,r,t,n,i,o,s){return W(t^(r|~n),e,r,i,o,s)}var xe=pt;var cr=H("v3",48,xe);var bt=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),oe={randomUUID:bt};function xt(e,r,t){if(oe.randomUUID&&!r&&!e)return oe.randomUUID();e=e||{};let n=e.random||(e.rng||G)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,r){t=t||0;for(let i=0;i<16;++i)r[t+i]=n[i];return r}return $(n)}var Y=xt;function wt(e,r,t,n){switch(e){case 0:return r&t^~r&n;case 1:return r^t^n;case 2:return r&t^r&n^t&n;case 3:return r^t^n}}function se(e,r){return e<<r|e>>>32-r}function vt(e){let r=[1518500249,1859775393,2400959708,3395469782],t=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof e=="string"){let s=unescape(encodeURIComponent(e));e=[];for(let a=0;a<s.length;++a)e.push(s.charCodeAt(a))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);let n=e.length/4+2,i=Math.ceil(n/16),o=new Array(i);for(let s=0;s<i;++s){let a=new Uint32Array(16);for(let f=0;f<16;++f)a[f]=e[s*64+f*4]<<24|e[s*64+f*4+1]<<16|e[s*64+f*4+2]<<8|e[s*64+f*4+3];o[s]=a}o[i-1][14]=(e.length-1)*8/Math.pow(2,32),o[i-1][14]=Math.floor(o[i-1][14]),o[i-1][15]=(e.length-1)*8&4294967295;for(let s=0;s<i;++s){let a=new Uint32Array(80);for(let c=0;c<16;++c)a[c]=o[s][c];for(let c=16;c<80;++c)a[c]=se(a[c-3]^a[c-8]^a[c-14]^a[c-16],1);let f=t[0],l=t[1],u=t[2],v=t[3],P=t[4];for(let c=0;c<80;++c){let k=Math.floor(c/20),te=se(f,5)+wt(k,l,u,v)+P+r[k]+a[c]>>>0;P=v,v=u,u=se(l,30)>>>0,l=f,f=te}t[0]=t[0]+f>>>0,t[1]=t[1]+l>>>0,t[2]=t[2]+u>>>0,t[3]=t[3]+v>>>0,t[4]=t[4]+P>>>0}return[t[0]>>24&255,t[0]>>16&255,t[0]>>8&255,t[0]&255,t[1]>>24&255,t[1]>>16&255,t[1]>>8&255,t[1]&255,t[2]>>24&255,t[2]>>16&255,t[2]>>8&255,t[2]&255,t[3]>>24&255,t[3]>>16&255,t[3]>>8&255,t[3]&255,t[4]>>24&255,t[4]>>16&255,t[4]>>8&255,t[4]&255]}var we=vt;var Er=H("v5",80,we);function ae(e){return[...new Uint8Array(e)].map(r=>r.toString(16).padStart(2,"0")).join("")}function ve(e){return new Uint8Array((e.match(/../g)??[]).map(r=>parseInt(r,16)))}function Ee(e){let r=0;for(let i of e)r+=i.length;let t=new Uint8Array(r),n=0;for(let i of e)t.set(i,n),n+=i.length;return t}var Ie=pe(Me());function J(e,r){if((0,Ie.validate)(e,r).length)throw new Error(`couldn't validate schema: ${JSON.stringify(r)} didn't match schema ${JSON.stringify(e)}`)}var Re="3",Ne="https://webapp-prod.cloud.remarkable.engineering",_t="https://internal.cloud.remarkable.com",_e="x-goog-generation",Lt="x-goog-if-generation-match",Dt="x-goog-content-length-range",Nt=["Ballpoint","Ballpointv2","Brush","Calligraphy","ClearPage","EraseSection","Eraser","Fineliner","Finelinerv2","Highlighter","Highlighterv2","Marker","Markerv2","Paintbrush","Paintbrushv2","Pencilv2","SharpPencil","SharpPencilv2","SolidPen","ZoomTool"],Bt=["Maison Neue","EB Garamond","Noto Sans","Noto Serif","Noto Mono","Noto Sans UI"],Be={xs:.7,sm:.8,md:1,lg:1.2,xl:1.5,xx:2},je={sm:50,md:125,rr:180,lg:200},$e={df:-1,md:100,lg:150,xl:200},jt={properties:{docID:{type:"string"},hash:{type:"string"}}},$t={properties:{relative_path:{type:"string"},url:{type:"string"},expires:{type:"timestamp"},method:{enum:["POST","GET","PUT","DELETE"]}},optionalProperties:{maxuploadsize_bytes:{type:"float64"}}},X={visibleName:{type:"string"},lastModified:{type:"string"}},Q={version:{type:"int32"},pinned:{type:"boolean"},synced:{type:"boolean"},modified:{type:"boolean"},deleted:{type:"boolean"},metadatamodified:{type:"boolean"},parent:{type:"string"}},Ht={discriminator:"type",mapping:{CollectionType:{properties:X,optionalProperties:Q},DocumentType:{properties:X,optionalProperties:{...Q,lastOpened:{type:"string"},lastOpenedPage:{type:"int32"}}}}},Le={id:{type:"string"},hash:{type:"string"}},Jt={discriminator:"type",mapping:{CollectionType:{properties:{...X,...Le},optionalProperties:Q},DocumentType:{properties:{...X,...Le,fileType:{enum:["notebook","epub","pdf",""]}},optionalProperties:{...Q,lastOpened:{type:"string"},lastOpenedPage:{type:"int32"}}}}},D=class extends Error{constructor(t,n,i){super(i);this.status=t,this.statusText=n}},ee=class extends Error{constructor(){super("Generation preconditions failed. This means the current state is out of date with the cloud and needs to be re-synced.")}};async function Vt(e,{deviceDesc:r="browser-chrome",uuid:t=Y(),authHost:n=Ne,fetch:i=globalThis.fetch}={}){if(e.length!==8)throw new Error(`code should be length 8, but was ${e.length}`);let o=await i(`${n}/token/json/2/device/new`,{method:"POST",headers:{Authorization:"Bearer"},body:JSON.stringify({code:e,deviceDesc:r,deviceID:t})});if(o.ok)return await o.text();throw new D(o.status,o.statusText,"couldn't register api")}function He({hash:e,type:r,documentId:t,subfiles:n,size:i}){return`${e}:${r}:${t}:${n}:${i}
|
|
2
|
+
`}function Je(e){let[r,t,n,i,o]=e.split(":");if(r===void 0||t===void 0||n===void 0||i===void 0||o===void 0)throw new Error(`entries line didn't contain five fields: '${e}'`);if(t==="80000000")return{hash:r,type:t,documentId:n,subfiles:parseInt(i),size:BigInt(o)};if(t==="0"){if(i!=="0")throw new Error(`file type entry had nonzero number of subfiles: ${i}`);return{hash:r,type:t,documentId:n,subfiles:0,size:BigInt(o)}}else throw new Error(`entries line contained invalid type: ${t}`)}var de=class{#a;#o;#e;#s;#t;constructor(r,t,n,i,o){this.#a=r,this.#o=t,this.#e=n,this.#s=i,this.#t=o}async#i(r,{body:t,method:n="POST",headers:i={}}){let o=await this.#o(r,{method:n,headers:{Authorization:`Bearer ${this.#a}`,...i},body:t});if(o.ok)return o;{let s=await o.text();throw new D(o.status,o.statusText,`failed reMarkable request: ${s}`)}}async#r({url:r,method:t,maxuploadsize_bytes:n},i,o={}){let s=n?{...o,[Dt]:`0,${n}`}:o,a=await this.#o(r,{method:t,body:i,headers:s});if(a.ok)return a;{let f=await a.text();throw new D(a.status,a.statusText,f)}}async#n(r,t,n){let i=t===void 0?"downloads":"uploads",o=n?`{ "http_method": "PUT", "relative_path": "${r}", "root_schema": "${n}", "generation": ${t} }`:JSON.stringify({http_method:"GET",relative_path:r}),a=await(await this.#i(`${this.#t}/sync/v2/signed-urls/${i}`,{body:o})).text(),f=JSON.parse(a);return J($t,f),f}async getRootHash(){let r=await this.#n("root"),t=await this.#r(r),n=t.headers.get(_e);if(!n)throw new Error("no generation header in root hash");return[await t.text(),BigInt(n)]}async putRootHash(r,t){let n=await this.#n("root",t,r),i;try{i=await this.#r(n,r,{[Lt]:`${t}`})}catch(s){throw s instanceof D&&s.status===412?new ee:s}let o=i.headers.get(_e);if(!o)throw new Error("no generation header in root hash");return BigInt(o)}async getBuffer(r){let t=await this.#n(r);return await(await this.#r(t)).arrayBuffer()}async getText(r){let t=await this.#e?.get(r);if(t)return t;{let n=await this.#n(r),o=await(await this.#r(n)).text();return await this.#e?.set(r,o),o}}async getMetadata(r){let t=await this.getText(r),n=JSON.parse(t);return J(Ht,n),n}async getEntries(r){let t=await this.getText(r),[n,...i]=t.slice(0,-1).split(`
|
|
3
|
+
`);if(n!==Re)throw new Error(`got unexpected schema version: ${n}`);return i.map(Je)}async#f(r,t){let n=await this.#n(r,null);await this.#r(n,t)}async putEntries(r,t){let n=new TextEncoder;t.sort((u,v)=>u.documentId.localeCompare(v.documentId));let i=Ee(t.map(u=>ve(u.hash))),o=await this.#s.digest("SHA-256",i),s=ae(o),a=t.map(He).join(""),f=`${Re}
|
|
4
|
+
${a}`,l=n.encode(f);return await this.#f(s,l),await this.#e?.set(s,f),{hash:s,type:"80000000",documentId:r,subfiles:t.length,size:0n}}async putBuffer(r,t){let n=await this.#s.digest("SHA-256",t),i=ae(n);return await this.#f(i,t),{hash:i,type:"0",documentId:r,subfiles:0,size:BigInt(t.length)}}async putText(r,t){let n=new TextEncoder,i=await this.putBuffer(r,n.encode(t));return await this.#e?.set(i.hash,t),i}async#l(r,t,n,i,o){if(o.fileType!==n)throw new Error(`internal error: fileTypes don't match: ${n}, ${o.fileType}`);let s=Y(),a=`${new Date().valueOf()}`,f=[];f.push(this.putBuffer(`${s}.${n}`,t));let l={type:"DocumentType",visibleName:r,version:0,parent:i,synced:!0,lastModified:a};f.push(this.putText(`${s}.metadata`,JSON.stringify(l))),f.push(this.putText(`${s}.content`,JSON.stringify(o)));let u=await Promise.all(f);return await this.putEntries(s,u)}async putEpub(r,t,{parent:n="",margins:i=125,orientation:o,textAlignment:s,textScale:a=1,lineHeight:f=-1,fontName:l="",cover:u="visited",lastTool:v}={}){let P={dummyDocument:!1,extraMetadata:{LastTool:v},fileType:"epub",pageCount:0,lastOpenedPage:0,lineHeight:typeof f=="string"?$e[f]:f,margins:typeof i=="string"?je[i]:i,textScale:typeof a=="string"?Be[a]:a,pages:[],coverPageNumber:u==="first"?0:-1,formatVersion:1,orientation:o,textAlignment:s,fontName:l};return await this.#l(r,t,"epub",n,P)}async putPdf(r,t,{parent:n="",orientation:i,cover:o="first",lastTool:s}={}){let a={dummyDocument:!1,extraMetadata:{LastTool:s},fileType:"pdf",pageCount:0,lastOpenedPage:0,lineHeight:-1,margins:125,textScale:1,pages:[],coverPageNumber:o==="first"?0:-1,formatVersion:1,orientation:i};return await this.#l(r,t,"pdf",n,a)}async syncComplete(r){let t=`{ "generation": ${r} }`;await this.#i(`${this.#t}/sync/v2/sync-complete`,{body:t})}async getEntriesMetadata(){let t=await(await this.#i(`${this.#t}/doc/v2/files`,{method:"GET",headers:{"rm-source":"RoR-Browser"}})).text(),n=JSON.parse(t);return J({elements:Jt},n),n}async#u(r,t,n){let o=new TextEncoder().encode(JSON.stringify({file_name:r})),a=await(await this.#i(`${this.#t}/doc/v2/files`,{body:t,headers:{"content-type":n,"rm-meta":(0,De.fromByteArray)(o),"rm-source":"RoR-Browser"}})).text(),f=JSON.parse(a);return J(jt,f),f}async uploadEpub(r,t){return await this.#u(r,t,"application/epub+zip")}async uploadPdf(r,t){return await this.#u(r,t,"application/pdf")}};async function qt(e,{fetch:r=globalThis.fetch,cache:t,subtle:n=globalThis.crypto?.subtle,authHost:i=Ne,syncHost:o=_t}={}){let s=await r(`${i}/token/json/2/user/new`,{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!s.ok)throw new Error(`couldn't fetch auth token: ${s.statusText}`);let a=await s.text();return new de(a,r,t,n,o)}return Qe(zt);})();
|