/ *
THIS IS A GENERATED / BUNDLED FILE BY ESBUILD
if you want to view the source , please visit the github repository of this plugin
* /
var _ _create = Object . create ;
var _ _defProp = Object . defineProperty ;
var _ _defProps = Object . defineProperties ;
var _ _getOwnPropDesc = Object . getOwnPropertyDescriptor ;
var _ _getOwnPropDescs = Object . getOwnPropertyDescriptors ;
var _ _getOwnPropNames = Object . getOwnPropertyNames ;
var _ _getOwnPropSymbols = Object . getOwnPropertySymbols ;
var _ _getProtoOf = Object . getPrototypeOf ;
var _ _hasOwnProp = Object . prototype . hasOwnProperty ;
var _ _propIsEnum = Object . prototype . propertyIsEnumerable ;
var _ _defNormalProp = ( obj , key , value ) => key in obj ? _ _defProp ( obj , key , { enumerable : true , configurable : true , writable : true , value } ) : obj [ key ] = value ;
var _ _spreadValues = ( a , b ) => {
for ( var prop in b || ( b = { } ) )
if ( _ _hasOwnProp . call ( b , prop ) )
_ _defNormalProp ( a , prop , b [ prop ] ) ;
if ( _ _getOwnPropSymbols )
for ( var prop of _ _getOwnPropSymbols ( b ) ) {
if ( _ _propIsEnum . call ( b , prop ) )
_ _defNormalProp ( a , prop , b [ prop ] ) ;
}
return a ;
} ;
var _ _spreadProps = ( a , b ) => _ _defProps ( a , _ _getOwnPropDescs ( b ) ) ;
var _ _markAsModule = ( target ) => _ _defProp ( target , "__esModule" , { value : true } ) ;
var _ _objRest = ( source , exclude ) => {
var target = { } ;
for ( var prop in source )
if ( _ _hasOwnProp . call ( source , prop ) && exclude . indexOf ( prop ) < 0 )
target [ prop ] = source [ prop ] ;
if ( source != null && _ _getOwnPropSymbols )
for ( var prop of _ _getOwnPropSymbols ( source ) ) {
if ( exclude . indexOf ( prop ) < 0 && _ _propIsEnum . call ( source , prop ) )
target [ prop ] = source [ prop ] ;
}
return target ;
} ;
var _ _commonJS = ( cb , mod ) => function _ _require ( ) {
return mod || ( 0 , cb [ Object . keys ( cb ) [ 0 ] ] ) ( ( mod = { exports : { } } ) . exports , mod ) , mod . exports ;
} ;
var _ _export = ( target , all ) => {
_ _markAsModule ( target ) ;
for ( var name in all )
_ _defProp ( target , name , { get : all [ name ] , enumerable : true } ) ;
} ;
var _ _reExport = ( target , module2 , desc ) => {
if ( module2 && typeof module2 === "object" || typeof module2 === "function" ) {
for ( let key of _ _getOwnPropNames ( module2 ) )
if ( ! _ _hasOwnProp . call ( target , key ) && key !== "default" )
_ _defProp ( target , key , { get : ( ) => module2 [ key ] , enumerable : ! ( desc = _ _getOwnPropDesc ( module2 , key ) ) || desc . enumerable } ) ;
}
return target ;
} ;
var _ _toModule = ( module2 ) => {
return _ _reExport ( _ _markAsModule ( _ _defProp ( module2 != null ? _ _create ( _ _getProtoOf ( module2 ) ) : { } , "default" , module2 && module2 . _ _esModule && "default" in module2 ? { get : ( ) => module2 . default , enumerable : true } : { value : module2 , enumerable : true } ) ) , module2 ) ;
} ;
var _ _async = ( _ _this , _ _arguments , generator ) => {
return new Promise ( ( resolve , reject ) => {
var fulfilled = ( value ) => {
try {
step ( generator . next ( value ) ) ;
} catch ( e ) {
reject ( e ) ;
}
} ;
var rejected = ( value ) => {
try {
step ( generator . throw ( value ) ) ;
} catch ( e ) {
reject ( e ) ;
}
} ;
var step = ( x ) => x . done ? resolve ( x . value ) : Promise . resolve ( x . value ) . then ( fulfilled , rejected ) ;
step ( ( generator = generator . apply ( _ _this , _ _arguments ) ) . next ( ) ) ;
} ) ;
} ;
// node_modules/before-after-hook/lib/register.js
var require _register = _ _commonJS ( {
"node_modules/before-after-hook/lib/register.js" ( exports , module2 ) {
module2 . exports = register ;
function register ( state , name , method , options ) {
if ( typeof method !== "function" ) {
throw new Error ( "method for before hook must be a function" ) ;
}
if ( ! options ) {
options = { } ;
}
if ( Array . isArray ( name ) ) {
return name . reverse ( ) . reduce ( function ( callback , name2 ) {
return register . bind ( null , state , name2 , callback , options ) ;
} , method ) ( ) ;
}
return Promise . resolve ( ) . then ( function ( ) {
if ( ! state . registry [ name ] ) {
return method ( options ) ;
}
return state . registry [ name ] . reduce ( function ( method2 , registered ) {
return registered . hook . bind ( null , method2 , options ) ;
} , method ) ( ) ;
} ) ;
}
}
} ) ;
// node_modules/before-after-hook/lib/add.js
var require _add = _ _commonJS ( {
"node_modules/before-after-hook/lib/add.js" ( exports , module2 ) {
module2 . exports = addHook ;
function addHook ( state , kind , name , hook2 ) {
var orig = hook2 ;
if ( ! state . registry [ name ] ) {
state . registry [ name ] = [ ] ;
}
if ( kind === "before" ) {
hook2 = function ( method , options ) {
return Promise . resolve ( ) . then ( orig . bind ( null , options ) ) . then ( method . bind ( null , options ) ) ;
} ;
}
if ( kind === "after" ) {
hook2 = function ( method , options ) {
var result ;
return Promise . resolve ( ) . then ( method . bind ( null , options ) ) . then ( function ( result _ ) {
result = result _ ;
return orig ( result , options ) ;
} ) . then ( function ( ) {
return result ;
} ) ;
} ;
}
if ( kind === "error" ) {
hook2 = function ( method , options ) {
return Promise . resolve ( ) . then ( method . bind ( null , options ) ) . catch ( function ( error ) {
return orig ( error , options ) ;
} ) ;
} ;
}
state . registry [ name ] . push ( {
hook : hook2 ,
orig
} ) ;
}
}
} ) ;
// node_modules/before-after-hook/lib/remove.js
var require _remove = _ _commonJS ( {
"node_modules/before-after-hook/lib/remove.js" ( exports , module2 ) {
module2 . exports = removeHook ;
function removeHook ( state , name , method ) {
if ( ! state . registry [ name ] ) {
return ;
}
var index = state . registry [ name ] . map ( function ( registered ) {
return registered . orig ;
} ) . indexOf ( method ) ;
if ( index === - 1 ) {
return ;
}
state . registry [ name ] . splice ( index , 1 ) ;
}
}
} ) ;
// node_modules/before-after-hook/index.js
var require _before _after _hook = _ _commonJS ( {
"node_modules/before-after-hook/index.js" ( exports , module2 ) {
var register = require _register ( ) ;
var addHook = require _add ( ) ;
var removeHook = require _remove ( ) ;
var bind = Function . bind ;
var bindable = bind . bind ( bind ) ;
function bindApi ( hook2 , state , name ) {
var removeHookRef = bindable ( removeHook , null ) . apply ( null , name ? [ state , name ] : [ state ] ) ;
hook2 . api = { remove : removeHookRef } ;
hook2 . remove = removeHookRef ;
[ "before" , "error" , "after" , "wrap" ] . forEach ( function ( kind ) {
var args = name ? [ state , kind , name ] : [ state , kind ] ;
hook2 [ kind ] = hook2 . api [ kind ] = bindable ( addHook , null ) . apply ( null , args ) ;
} ) ;
}
function HookSingular ( ) {
var singularHookName = "h" ;
var singularHookState = {
registry : { }
} ;
var singularHook = register . bind ( null , singularHookState , singularHookName ) ;
bindApi ( singularHook , singularHookState , singularHookName ) ;
return singularHook ;
}
function HookCollection ( ) {
var state = {
registry : { }
} ;
var hook2 = register . bind ( null , state ) ;
bindApi ( hook2 , state ) ;
return hook2 ;
}
var collectionHookDeprecationMessageDisplayed = false ;
function Hook ( ) {
if ( ! collectionHookDeprecationMessageDisplayed ) {
console . warn ( '[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4' ) ;
collectionHookDeprecationMessageDisplayed = true ;
}
return HookCollection ( ) ;
}
Hook . Singular = HookSingular . bind ( ) ;
Hook . Collection = HookCollection . bind ( ) ;
module2 . exports = Hook ;
module2 . exports . Hook = Hook ;
module2 . exports . Singular = Hook . Singular ;
module2 . exports . Collection = Hook . Collection ;
}
} ) ;
// node_modules/node-fetch/browser.js
var require _browser = _ _commonJS ( {
"node_modules/node-fetch/browser.js" ( exports , module2 ) {
"use strict" ;
var getGlobal = function ( ) {
if ( typeof self !== "undefined" ) {
return self ;
}
if ( typeof window !== "undefined" ) {
return window ;
}
if ( typeof global2 !== "undefined" ) {
return global2 ;
}
throw new Error ( "unable to locate global object" ) ;
} ;
var global2 = getGlobal ( ) ;
module2 . exports = exports = global2 . fetch ;
if ( global2 . fetch ) {
exports . default = global2 . fetch . bind ( global2 ) ;
}
exports . Headers = global2 . Headers ;
exports . Request = global2 . Request ;
exports . Response = global2 . Response ;
}
} ) ;
// node_modules/wrappy/wrappy.js
var require _wrappy = _ _commonJS ( {
"node_modules/wrappy/wrappy.js" ( exports , module2 ) {
module2 . exports = wrappy ;
function wrappy ( fn , cb ) {
if ( fn && cb )
return wrappy ( fn ) ( cb ) ;
if ( typeof fn !== "function" )
throw new TypeError ( "need wrapper function" ) ;
Object . keys ( fn ) . forEach ( function ( k ) {
wrapper [ k ] = fn [ k ] ;
} ) ;
return wrapper ;
function wrapper ( ) {
var args = new Array ( arguments . length ) ;
for ( var i = 0 ; i < args . length ; i ++ ) {
args [ i ] = arguments [ i ] ;
}
var ret = fn . apply ( this , args ) ;
var cb2 = args [ args . length - 1 ] ;
if ( typeof ret === "function" && ret !== cb2 ) {
Object . keys ( cb2 ) . forEach ( function ( k ) {
ret [ k ] = cb2 [ k ] ;
} ) ;
}
return ret ;
}
}
}
} ) ;
// node_modules/once/once.js
var require _once = _ _commonJS ( {
"node_modules/once/once.js" ( exports , module2 ) {
var wrappy = require _wrappy ( ) ;
module2 . exports = wrappy ( once2 ) ;
module2 . exports . strict = wrappy ( onceStrict ) ;
once2 . proto = once2 ( function ( ) {
Object . defineProperty ( Function . prototype , "once" , {
value : function ( ) {
return once2 ( this ) ;
} ,
configurable : true
} ) ;
Object . defineProperty ( Function . prototype , "onceStrict" , {
value : function ( ) {
return onceStrict ( this ) ;
} ,
configurable : true
} ) ;
} ) ;
function once2 ( fn ) {
var f = function ( ) {
if ( f . called )
return f . value ;
f . called = true ;
return f . value = fn . apply ( this , arguments ) ;
} ;
f . called = false ;
return f ;
}
function onceStrict ( fn ) {
var f = function ( ) {
if ( f . called )
throw new Error ( f . onceError ) ;
f . called = true ;
return f . value = fn . apply ( this , arguments ) ;
} ;
var name = fn . name || "Function wrapped with `once`" ;
f . onceError = name + " shouldn't be called more than once" ;
f . called = false ;
return f ;
}
}
} ) ;
// node_modules/escape-string-regexp/index.js
var require _escape _string _regexp = _ _commonJS ( {
"node_modules/escape-string-regexp/index.js" ( exports , module2 ) {
"use strict" ;
module2 . exports = ( string ) => {
if ( typeof string !== "string" ) {
throw new TypeError ( "Expected a string" ) ;
}
return string . replace ( /[|\\{}()[\]^$+*?.]/g , "\\$&" ) . replace ( /-/g , "\\x2d" ) ;
} ;
}
} ) ;
// node_modules/lodash.deburr/index.js
var require _lodash = _ _commonJS ( {
"node_modules/lodash.deburr/index.js" ( exports , module2 ) {
var INFINITY = 1 / 0 ;
var symbolTag = "[object Symbol]" ;
var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g ;
var rsComboMarksRange = "\\u0300-\\u036f\\ufe20-\\ufe23" ;
var rsComboSymbolsRange = "\\u20d0-\\u20f0" ;
var rsCombo = "[" + rsComboMarksRange + rsComboSymbolsRange + "]" ;
var reComboMark = RegExp ( rsCombo , "g" ) ;
var deburredLetters = {
"\xC0" : "A" ,
"\xC1" : "A" ,
"\xC2" : "A" ,
"\xC3" : "A" ,
"\xC4" : "A" ,
"\xC5" : "A" ,
"\xE0" : "a" ,
"\xE1" : "a" ,
"\xE2" : "a" ,
"\xE3" : "a" ,
"\xE4" : "a" ,
"\xE5" : "a" ,
"\xC7" : "C" ,
"\xE7" : "c" ,
"\xD0" : "D" ,
"\xF0" : "d" ,
"\xC8" : "E" ,
"\xC9" : "E" ,
"\xCA" : "E" ,
"\xCB" : "E" ,
"\xE8" : "e" ,
"\xE9" : "e" ,
"\xEA" : "e" ,
"\xEB" : "e" ,
"\xCC" : "I" ,
"\xCD" : "I" ,
"\xCE" : "I" ,
"\xCF" : "I" ,
"\xEC" : "i" ,
"\xED" : "i" ,
"\xEE" : "i" ,
"\xEF" : "i" ,
"\xD1" : "N" ,
"\xF1" : "n" ,
"\xD2" : "O" ,
"\xD3" : "O" ,
"\xD4" : "O" ,
"\xD5" : "O" ,
"\xD6" : "O" ,
"\xD8" : "O" ,
"\xF2" : "o" ,
"\xF3" : "o" ,
"\xF4" : "o" ,
"\xF5" : "o" ,
"\xF6" : "o" ,
"\xF8" : "o" ,
"\xD9" : "U" ,
"\xDA" : "U" ,
"\xDB" : "U" ,
"\xDC" : "U" ,
"\xF9" : "u" ,
"\xFA" : "u" ,
"\xFB" : "u" ,
"\xFC" : "u" ,
"\xDD" : "Y" ,
"\xFD" : "y" ,
"\xFF" : "y" ,
"\xC6" : "Ae" ,
"\xE6" : "ae" ,
"\xDE" : "Th" ,
"\xFE" : "th" ,
"\xDF" : "ss" ,
"\u0100" : "A" ,
"\u0102" : "A" ,
"\u0104" : "A" ,
"\u0101" : "a" ,
"\u0103" : "a" ,
"\u0105" : "a" ,
"\u0106" : "C" ,
"\u0108" : "C" ,
"\u010A" : "C" ,
"\u010C" : "C" ,
"\u0107" : "c" ,
"\u0109" : "c" ,
"\u010B" : "c" ,
"\u010D" : "c" ,
"\u010E" : "D" ,
"\u0110" : "D" ,
"\u010F" : "d" ,
"\u0111" : "d" ,
"\u0112" : "E" ,
"\u0114" : "E" ,
"\u0116" : "E" ,
"\u0118" : "E" ,
"\u011A" : "E" ,
"\u0113" : "e" ,
"\u0115" : "e" ,
"\u0117" : "e" ,
"\u0119" : "e" ,
"\u011B" : "e" ,
"\u011C" : "G" ,
"\u011E" : "G" ,
"\u0120" : "G" ,
"\u0122" : "G" ,
"\u011D" : "g" ,
"\u011F" : "g" ,
"\u0121" : "g" ,
"\u0123" : "g" ,
"\u0124" : "H" ,
"\u0126" : "H" ,
"\u0125" : "h" ,
"\u0127" : "h" ,
"\u0128" : "I" ,
"\u012A" : "I" ,
"\u012C" : "I" ,
"\u012E" : "I" ,
"\u0130" : "I" ,
"\u0129" : "i" ,
"\u012B" : "i" ,
"\u012D" : "i" ,
"\u012F" : "i" ,
"\u0131" : "i" ,
"\u0134" : "J" ,
"\u0135" : "j" ,
"\u0136" : "K" ,
"\u0137" : "k" ,
"\u0138" : "k" ,
"\u0139" : "L" ,
"\u013B" : "L" ,
"\u013D" : "L" ,
"\u013F" : "L" ,
"\u0141" : "L" ,
"\u013A" : "l" ,
"\u013C" : "l" ,
"\u013E" : "l" ,
"\u0140" : "l" ,
"\u0142" : "l" ,
"\u0143" : "N" ,
"\u0145" : "N" ,
"\u0147" : "N" ,
"\u014A" : "N" ,
"\u0144" : "n" ,
"\u0146" : "n" ,
"\u0148" : "n" ,
"\u014B" : "n" ,
"\u014C" : "O" ,
"\u014E" : "O" ,
"\u0150" : "O" ,
"\u014D" : "o" ,
"\u014F" : "o" ,
"\u0151" : "o" ,
"\u0154" : "R" ,
"\u0156" : "R" ,
"\u0158" : "R" ,
"\u0155" : "r" ,
"\u0157" : "r" ,
"\u0159" : "r" ,
"\u015A" : "S" ,
"\u015C" : "S" ,
"\u015E" : "S" ,
"\u0160" : "S" ,
"\u015B" : "s" ,
"\u015D" : "s" ,
"\u015F" : "s" ,
"\u0161" : "s" ,
"\u0162" : "T" ,
"\u0164" : "T" ,
"\u0166" : "T" ,
"\u0163" : "t" ,
"\u0165" : "t" ,
"\u0167" : "t" ,
"\u0168" : "U" ,
"\u016A" : "U" ,
"\u016C" : "U" ,
"\u016E" : "U" ,
"\u0170" : "U" ,
"\u0172" : "U" ,
"\u0169" : "u" ,
"\u016B" : "u" ,
"\u016D" : "u" ,
"\u016F" : "u" ,
"\u0171" : "u" ,
"\u0173" : "u" ,
"\u0174" : "W" ,
"\u0175" : "w" ,
"\u0176" : "Y" ,
"\u0177" : "y" ,
"\u0178" : "Y" ,
"\u0179" : "Z" ,
"\u017B" : "Z" ,
"\u017D" : "Z" ,
"\u017A" : "z" ,
"\u017C" : "z" ,
"\u017E" : "z" ,
"\u0132" : "IJ" ,
"\u0133" : "ij" ,
"\u0152" : "Oe" ,
"\u0153" : "oe" ,
"\u0149" : "'n" ,
"\u017F" : "ss"
} ;
var freeGlobal = typeof global == "object" && global && global . Object === Object && global ;
var freeSelf = typeof self == "object" && self && self . Object === Object && self ;
var root = freeGlobal || freeSelf || Function ( "return this" ) ( ) ;
function basePropertyOf ( object ) {
return function ( key ) {
return object == null ? void 0 : object [ key ] ;
} ;
}
var deburrLetter = basePropertyOf ( deburredLetters ) ;
var objectProto = Object . prototype ;
var objectToString = objectProto . toString ;
var Symbol = root . Symbol ;
var symbolProto = Symbol ? Symbol . prototype : void 0 ;
var symbolToString = symbolProto ? symbolProto . toString : void 0 ;
function baseToString ( value ) {
if ( typeof value == "string" ) {
return value ;
}
if ( isSymbol ( value ) ) {
return symbolToString ? symbolToString . call ( value ) : "" ;
}
var result = value + "" ;
return result == "0" && 1 / value == - INFINITY ? "-0" : result ;
}
function isObjectLike ( value ) {
return ! ! value && typeof value == "object" ;
}
function isSymbol ( value ) {
return typeof value == "symbol" || isObjectLike ( value ) && objectToString . call ( value ) == symbolTag ;
}
function toString ( value ) {
return value == null ? "" : baseToString ( value ) ;
}
function deburr ( string ) {
string = toString ( string ) ;
return string && string . replace ( reLatin , deburrLetter ) . replace ( reComboMark , "" ) ;
}
module2 . exports = deburr ;
}
} ) ;
// node_modules/@sindresorhus/transliterate/node_modules/escape-string-regexp/index.js
var require _escape _string _regexp2 = _ _commonJS ( {
"node_modules/@sindresorhus/transliterate/node_modules/escape-string-regexp/index.js" ( exports , module2 ) {
"use strict" ;
var matchOperatorsRegex = /[|\\{}()[\]^$+*?.-]/g ;
module2 . exports = ( string ) => {
if ( typeof string !== "string" ) {
throw new TypeError ( "Expected a string" ) ;
}
return string . replace ( matchOperatorsRegex , "\\$&" ) ;
} ;
}
} ) ;
// node_modules/@sindresorhus/transliterate/replacements.js
var require _replacements = _ _commonJS ( {
"node_modules/@sindresorhus/transliterate/replacements.js" ( exports , module2 ) {
"use strict" ;
module2 . exports = [
[ "\xDF" , "ss" ] ,
[ "\xE4" , "ae" ] ,
[ "\xC4" , "Ae" ] ,
[ "\xF6" , "oe" ] ,
[ "\xD6" , "Oe" ] ,
[ "\xFC" , "ue" ] ,
[ "\xDC" , "Ue" ] ,
[ "\xC0" , "A" ] ,
[ "\xC1" , "A" ] ,
[ "\xC2" , "A" ] ,
[ "\xC3" , "A" ] ,
[ "\xC4" , "Ae" ] ,
[ "\xC5" , "A" ] ,
[ "\xC6" , "AE" ] ,
[ "\xC7" , "C" ] ,
[ "\xC8" , "E" ] ,
[ "\xC9" , "E" ] ,
[ "\xCA" , "E" ] ,
[ "\xCB" , "E" ] ,
[ "\xCC" , "I" ] ,
[ "\xCD" , "I" ] ,
[ "\xCE" , "I" ] ,
[ "\xCF" , "I" ] ,
[ "\xD0" , "D" ] ,
[ "\xD1" , "N" ] ,
[ "\xD2" , "O" ] ,
[ "\xD3" , "O" ] ,
[ "\xD4" , "O" ] ,
[ "\xD5" , "O" ] ,
[ "\xD6" , "Oe" ] ,
[ "\u0150" , "O" ] ,
[ "\xD8" , "O" ] ,
[ "\xD9" , "U" ] ,
[ "\xDA" , "U" ] ,
[ "\xDB" , "U" ] ,
[ "\xDC" , "Ue" ] ,
[ "\u0170" , "U" ] ,
[ "\xDD" , "Y" ] ,
[ "\xDE" , "TH" ] ,
[ "\xDF" , "ss" ] ,
[ "\xE0" , "a" ] ,
[ "\xE1" , "a" ] ,
[ "\xE2" , "a" ] ,
[ "\xE3" , "a" ] ,
[ "\xE4" , "ae" ] ,
[ "\xE5" , "a" ] ,
[ "\xE6" , "ae" ] ,
[ "\xE7" , "c" ] ,
[ "\xE8" , "e" ] ,
[ "\xE9" , "e" ] ,
[ "\xEA" , "e" ] ,
[ "\xEB" , "e" ] ,
[ "\xEC" , "i" ] ,
[ "\xED" , "i" ] ,
[ "\xEE" , "i" ] ,
[ "\xEF" , "i" ] ,
[ "\xF0" , "d" ] ,
[ "\xF1" , "n" ] ,
[ "\xF2" , "o" ] ,
[ "\xF3" , "o" ] ,
[ "\xF4" , "o" ] ,
[ "\xF5" , "o" ] ,
[ "\xF6" , "oe" ] ,
[ "\u0151" , "o" ] ,
[ "\xF8" , "o" ] ,
[ "\xF9" , "u" ] ,
[ "\xFA" , "u" ] ,
[ "\xFB" , "u" ] ,
[ "\xFC" , "ue" ] ,
[ "\u0171" , "u" ] ,
[ "\xFD" , "y" ] ,
[ "\xFE" , "th" ] ,
[ "\xFF" , "y" ] ,
[ "\u1E9E" , "SS" ] ,
[ "\xE0" , "a" ] ,
[ "\xC0" , "A" ] ,
[ "\xE1" , "a" ] ,
[ "\xC1" , "A" ] ,
[ "\xE2" , "a" ] ,
[ "\xC2" , "A" ] ,
[ "\xE3" , "a" ] ,
[ "\xC3" , "A" ] ,
[ "\xE8" , "e" ] ,
[ "\xC8" , "E" ] ,
[ "\xE9" , "e" ] ,
[ "\xC9" , "E" ] ,
[ "\xEA" , "e" ] ,
[ "\xCA" , "E" ] ,
[ "\xEC" , "i" ] ,
[ "\xCC" , "I" ] ,
[ "\xED" , "i" ] ,
[ "\xCD" , "I" ] ,
[ "\xF2" , "o" ] ,
[ "\xD2" , "O" ] ,
[ "\xF3" , "o" ] ,
[ "\xD3" , "O" ] ,
[ "\xF4" , "o" ] ,
[ "\xD4" , "O" ] ,
[ "\xF5" , "o" ] ,
[ "\xD5" , "O" ] ,
[ "\xF9" , "u" ] ,
[ "\xD9" , "U" ] ,
[ "\xFA" , "u" ] ,
[ "\xDA" , "U" ] ,
[ "\xFD" , "y" ] ,
[ "\xDD" , "Y" ] ,
[ "\u0103" , "a" ] ,
[ "\u0102" , "A" ] ,
[ "\u0110" , "D" ] ,
[ "\u0111" , "d" ] ,
[ "\u0129" , "i" ] ,
[ "\u0128" , "I" ] ,
[ "\u0169" , "u" ] ,
[ "\u0168" , "U" ] ,
[ "\u01A1" , "o" ] ,
[ "\u01A0" , "O" ] ,
[ "\u01B0" , "u" ] ,
[ "\u01AF" , "U" ] ,
[ "\u1EA1" , "a" ] ,
[ "\u1EA0" , "A" ] ,
[ "\u1EA3" , "a" ] ,
[ "\u1EA2" , "A" ] ,
[ "\u1EA5" , "a" ] ,
[ "\u1EA4" , "A" ] ,
[ "\u1EA7" , "a" ] ,
[ "\u1EA6" , "A" ] ,
[ "\u1EA9" , "a" ] ,
[ "\u1EA8" , "A" ] ,
[ "\u1EAB" , "a" ] ,
[ "\u1EAA" , "A" ] ,
[ "\u1EAD" , "a" ] ,
[ "\u1EAC" , "A" ] ,
[ "\u1EAF" , "a" ] ,
[ "\u1EAE" , "A" ] ,
[ "\u1EB1" , "a" ] ,
[ "\u1EB0" , "A" ] ,
[ "\u1EB3" , "a" ] ,
[ "\u1EB2" , "A" ] ,
[ "\u1EB5" , "a" ] ,
[ "\u1EB4" , "A" ] ,
[ "\u1EB7" , "a" ] ,
[ "\u1EB6" , "A" ] ,
[ "\u1EB9" , "e" ] ,
[ "\u1EB8" , "E" ] ,
[ "\u1EBB" , "e" ] ,
[ "\u1EBA" , "E" ] ,
[ "\u1EBD" , "e" ] ,
[ "\u1EBC" , "E" ] ,
[ "\u1EBF" , "e" ] ,
[ "\u1EBE" , "E" ] ,
[ "\u1EC1" , "e" ] ,
[ "\u1EC0" , "E" ] ,
[ "\u1EC3" , "e" ] ,
[ "\u1EC2" , "E" ] ,
[ "\u1EC5" , "e" ] ,
[ "\u1EC4" , "E" ] ,
[ "\u1EC7" , "e" ] ,
[ "\u1EC6" , "E" ] ,
[ "\u1EC9" , "i" ] ,
[ "\u1EC8" , "I" ] ,
[ "\u1ECB" , "i" ] ,
[ "\u1ECA" , "I" ] ,
[ "\u1ECD" , "o" ] ,
[ "\u1ECC" , "O" ] ,
[ "\u1ECF" , "o" ] ,
[ "\u1ECE" , "O" ] ,
[ "\u1ED1" , "o" ] ,
[ "\u1ED0" , "O" ] ,
[ "\u1ED3" , "o" ] ,
[ "\u1ED2" , "O" ] ,
[ "\u1ED5" , "o" ] ,
[ "\u1ED4" , "O" ] ,
[ "\u1ED7" , "o" ] ,
[ "\u1ED6" , "O" ] ,
[ "\u1ED9" , "o" ] ,
[ "\u1ED8" , "O" ] ,
[ "\u1EDB" , "o" ] ,
[ "\u1EDA" , "O" ] ,
[ "\u1EDD" , "o" ] ,
[ "\u1EDC" , "O" ] ,
[ "\u1EDF" , "o" ] ,
[ "\u1EDE" , "O" ] ,
[ "\u1EE1" , "o" ] ,
[ "\u1EE0" , "O" ] ,
[ "\u1EE3" , "o" ] ,
[ "\u1EE2" , "O" ] ,
[ "\u1EE5" , "u" ] ,
[ "\u1EE4" , "U" ] ,
[ "\u1EE7" , "u" ] ,
[ "\u1EE6" , "U" ] ,
[ "\u1EE9" , "u" ] ,
[ "\u1EE8" , "U" ] ,
[ "\u1EEB" , "u" ] ,
[ "\u1EEA" , "U" ] ,
[ "\u1EED" , "u" ] ,
[ "\u1EEC" , "U" ] ,
[ "\u1EEF" , "u" ] ,
[ "\u1EEE" , "U" ] ,
[ "\u1EF1" , "u" ] ,
[ "\u1EF0" , "U" ] ,
[ "\u1EF3" , "y" ] ,
[ "\u1EF2" , "Y" ] ,
[ "\u1EF5" , "y" ] ,
[ "\u1EF4" , "Y" ] ,
[ "\u1EF7" , "y" ] ,
[ "\u1EF6" , "Y" ] ,
[ "\u1EF9" , "y" ] ,
[ "\u1EF8" , "Y" ] ,
[ "\u0621" , "e" ] ,
[ "\u0622" , "a" ] ,
[ "\u0623" , "a" ] ,
[ "\u0624" , "w" ] ,
[ "\u0625" , "i" ] ,
[ "\u0626" , "y" ] ,
[ "\u0627" , "a" ] ,
[ "\u0628" , "b" ] ,
[ "\u0629" , "t" ] ,
[ "\u062A" , "t" ] ,
[ "\u062B" , "th" ] ,
[ "\u062C" , "j" ] ,
[ "\u062D" , "h" ] ,
[ "\u062E" , "kh" ] ,
[ "\u062F" , "d" ] ,
[ "\u0630" , "dh" ] ,
[ "\u0631" , "r" ] ,
[ "\u0632" , "z" ] ,
[ "\u0633" , "s" ] ,
[ "\u0634" , "sh" ] ,
[ "\u0635" , "s" ] ,
[ "\u0636" , "d" ] ,
[ "\u0637" , "t" ] ,
[ "\u0638" , "z" ] ,
[ "\u0639" , "e" ] ,
[ "\u063A" , "gh" ] ,
[ "\u0640" , "_" ] ,
[ "\u0641" , "f" ] ,
[ "\u0642" , "q" ] ,
[ "\u0643" , "k" ] ,
[ "\u0644" , "l" ] ,
[ "\u0645" , "m" ] ,
[ "\u0646" , "n" ] ,
[ "\u0647" , "h" ] ,
[ "\u0648" , "w" ] ,
[ "\u0649" , "a" ] ,
[ "\u064A" , "y" ] ,
[ "\u064E\u200E" , "a" ] ,
[ "\u064F" , "u" ] ,
[ "\u0650\u200E" , "i" ] ,
[ "\u0660" , "0" ] ,
[ "\u0661" , "1" ] ,
[ "\u0662" , "2" ] ,
[ "\u0663" , "3" ] ,
[ "\u0664" , "4" ] ,
[ "\u0665" , "5" ] ,
[ "\u0666" , "6" ] ,
[ "\u0667" , "7" ] ,
[ "\u0668" , "8" ] ,
[ "\u0669" , "9" ] ,
[ "\u0686" , "ch" ] ,
[ "\u06A9" , "k" ] ,
[ "\u06AF" , "g" ] ,
[ "\u067E" , "p" ] ,
[ "\u0698" , "zh" ] ,
[ "\u06CC" , "y" ] ,
[ "\u06F0" , "0" ] ,
[ "\u06F1" , "1" ] ,
[ "\u06F2" , "2" ] ,
[ "\u06F3" , "3" ] ,
[ "\u06F4" , "4" ] ,
[ "\u06F5" , "5" ] ,
[ "\u06F6" , "6" ] ,
[ "\u06F7" , "7" ] ,
[ "\u06F8" , "8" ] ,
[ "\u06F9" , "9" ] ,
[ "\u067C" , "p" ] ,
[ "\u0681" , "z" ] ,
[ "\u0685" , "c" ] ,
[ "\u0689" , "d" ] ,
[ "\uFEAB" , "d" ] ,
[ "\uFEAD" , "r" ] ,
[ "\u0693" , "r" ] ,
[ "\uFEAF" , "z" ] ,
[ "\u0696" , "g" ] ,
[ "\u069A" , "x" ] ,
[ "\u06AB" , "g" ] ,
[ "\u06BC" , "n" ] ,
[ "\u06C0" , "e" ] ,
[ "\u06D0" , "e" ] ,
[ "\u06CD" , "ai" ] ,
[ "\u0679" , "t" ] ,
[ "\u0688" , "d" ] ,
[ "\u0691" , "r" ] ,
[ "\u06BA" , "n" ] ,
[ "\u06C1" , "h" ] ,
[ "\u06BE" , "h" ] ,
[ "\u06D2" , "e" ] ,
[ "\u0410" , "A" ] ,
[ "\u0430" , "a" ] ,
[ "\u0411" , "B" ] ,
[ "\u0431" , "b" ] ,
[ "\u0412" , "V" ] ,
[ "\u0432" , "v" ] ,
[ "\u0413" , "G" ] ,
[ "\u0433" , "g" ] ,
[ "\u0414" , "D" ] ,
[ "\u0434" , "d" ] ,
[ "\u0415" , "E" ] ,
[ "\u0435" , "e" ] ,
[ "\u0416" , "Zh" ] ,
[ "\u0436" , "zh" ] ,
[ "\u0417" , "Z" ] ,
[ "\u0437" , "z" ] ,
[ "\u0418" , "I" ] ,
[ "\u0438" , "i" ] ,
[ "\u0419" , "J" ] ,
[ "\u0439" , "j" ] ,
[ "\u041A" , "K" ] ,
[ "\u043A" , "k" ] ,
[ "\u041B" , "L" ] ,
[ "\u043B" , "l" ] ,
[ "\u041C" , "M" ] ,
[ "\u043C" , "m" ] ,
[ "\u041D" , "N" ] ,
[ "\u043D" , "n" ] ,
[ "\u041E" , "O" ] ,
[ "\u043E" , "o" ] ,
[ "\u041F" , "P" ] ,
[ "\u043F" , "p" ] ,
[ "\u0420" , "R" ] ,
[ "\u0440" , "r" ] ,
[ "\u0421" , "S" ] ,
[ "\u0441" , "s" ] ,
[ "\u0422" , "T" ] ,
[ "\u0442" , "t" ] ,
[ "\u0423" , "U" ] ,
[ "\u0443" , "u" ] ,
[ "\u0424" , "F" ] ,
[ "\u0444" , "f" ] ,
[ "\u0425" , "H" ] ,
[ "\u0445" , "h" ] ,
[ "\u0426" , "Cz" ] ,
[ "\u0446" , "cz" ] ,
[ "\u0427" , "Ch" ] ,
[ "\u0447" , "ch" ] ,
[ "\u0428" , "Sh" ] ,
[ "\u0448" , "sh" ] ,
[ "\u0429" , "Shh" ] ,
[ "\u0449" , "shh" ] ,
[ "\u042A" , "" ] ,
[ "\u044A" , "" ] ,
[ "\u042B" , "Y" ] ,
[ "\u044B" , "y" ] ,
[ "\u042C" , "" ] ,
[ "\u044C" , "" ] ,
[ "\u042D" , "E" ] ,
[ "\u044D" , "e" ] ,
[ "\u042E" , "Yu" ] ,
[ "\u044E" , "yu" ] ,
[ "\u042F" , "Ya" ] ,
[ "\u044F" , "ya" ] ,
[ "\u0401" , "Yo" ] ,
[ "\u0451" , "yo" ] ,
[ "\u0103" , "a" ] ,
[ "\u0102" , "A" ] ,
[ "\u0219" , "s" ] ,
[ "\u0218" , "S" ] ,
[ "\u021B" , "t" ] ,
[ "\u021A" , "T" ] ,
[ "\u0163" , "t" ] ,
[ "\u0162" , "T" ] ,
[ "\u015F" , "s" ] ,
[ "\u015E" , "S" ] ,
[ "\xE7" , "c" ] ,
[ "\xC7" , "C" ] ,
[ "\u011F" , "g" ] ,
[ "\u011E" , "G" ] ,
[ "\u0131" , "i" ] ,
[ "\u0130" , "I" ] ,
[ "\u0561" , "a" ] ,
[ "\u0531" , "A" ] ,
[ "\u0562" , "b" ] ,
[ "\u0532" , "B" ] ,
[ "\u0563" , "g" ] ,
[ "\u0533" , "G" ] ,
[ "\u0564" , "d" ] ,
[ "\u0534" , "D" ] ,
[ "\u0565" , "ye" ] ,
[ "\u0535" , "Ye" ] ,
[ "\u0566" , "z" ] ,
[ "\u0536" , "Z" ] ,
[ "\u0567" , "e" ] ,
[ "\u0537" , "E" ] ,
[ "\u0568" , "y" ] ,
[ "\u0538" , "Y" ] ,
[ "\u0569" , "t" ] ,
[ "\u0539" , "T" ] ,
[ "\u056A" , "zh" ] ,
[ "\u053A" , "Zh" ] ,
[ "\u056B" , "i" ] ,
[ "\u053B" , "I" ] ,
[ "\u056C" , "l" ] ,
[ "\u053C" , "L" ] ,
[ "\u056D" , "kh" ] ,
[ "\u053D" , "Kh" ] ,
[ "\u056E" , "ts" ] ,
[ "\u053E" , "Ts" ] ,
[ "\u056F" , "k" ] ,
[ "\u053F" , "K" ] ,
[ "\u0570" , "h" ] ,
[ "\u0540" , "H" ] ,
[ "\u0571" , "dz" ] ,
[ "\u0541" , "Dz" ] ,
[ "\u0572" , "gh" ] ,
[ "\u0542" , "Gh" ] ,
[ "\u0573" , "tch" ] ,
[ "\u0543" , "Tch" ] ,
[ "\u0574" , "m" ] ,
[ "\u0544" , "M" ] ,
[ "\u0575" , "y" ] ,
[ "\u0545" , "Y" ] ,
[ "\u0576" , "n" ] ,
[ "\u0546" , "N" ] ,
[ "\u0577" , "sh" ] ,
[ "\u0547" , "Sh" ] ,
[ "\u0578" , "vo" ] ,
[ "\u0548" , "Vo" ] ,
[ "\u0579" , "ch" ] ,
[ "\u0549" , "Ch" ] ,
[ "\u057A" , "p" ] ,
[ "\u054A" , "P" ] ,
[ "\u057B" , "j" ] ,
[ "\u054B" , "J" ] ,
[ "\u057C" , "r" ] ,
[ "\u054C" , "R" ] ,
[ "\u057D" , "s" ] ,
[ "\u054D" , "S" ] ,
[ "\u057E" , "v" ] ,
[ "\u054E" , "V" ] ,
[ "\u057F" , "t" ] ,
[ "\u054F" , "T" ] ,
[ "\u0580" , "r" ] ,
[ "\u0550" , "R" ] ,
[ "\u0581" , "c" ] ,
[ "\u0551" , "C" ] ,
[ "\u0578\u0582" , "u" ] ,
[ "\u0548\u0552" , "U" ] ,
[ "\u0548\u0582" , "U" ] ,
[ "\u0583" , "p" ] ,
[ "\u0553" , "P" ] ,
[ "\u0584" , "q" ] ,
[ "\u0554" , "Q" ] ,
[ "\u0585" , "o" ] ,
[ "\u0555" , "O" ] ,
[ "\u0586" , "f" ] ,
[ "\u0556" , "F" ] ,
[ "\u0587" , "yev" ] ,
[ "\u10D0" , "a" ] ,
[ "\u10D1" , "b" ] ,
[ "\u10D2" , "g" ] ,
[ "\u10D3" , "d" ] ,
[ "\u10D4" , "e" ] ,
[ "\u10D5" , "v" ] ,
[ "\u10D6" , "z" ] ,
[ "\u10D7" , "t" ] ,
[ "\u10D8" , "i" ] ,
[ "\u10D9" , "k" ] ,
[ "\u10DA" , "l" ] ,
[ "\u10DB" , "m" ] ,
[ "\u10DC" , "n" ] ,
[ "\u10DD" , "o" ] ,
[ "\u10DE" , "p" ] ,
[ "\u10DF" , "zh" ] ,
[ "\u10E0" , "r" ] ,
[ "\u10E1" , "s" ] ,
[ "\u10E2" , "t" ] ,
[ "\u10E3" , "u" ] ,
[ "\u10E4" , "ph" ] ,
[ "\u10E5" , "q" ] ,
[ "\u10E6" , "gh" ] ,
[ "\u10E7" , "k" ] ,
[ "\u10E8" , "sh" ] ,
[ "\u10E9" , "ch" ] ,
[ "\u10EA" , "ts" ] ,
[ "\u10EB" , "dz" ] ,
[ "\u10EC" , "ts" ] ,
[ "\u10ED" , "tch" ] ,
[ "\u10EE" , "kh" ] ,
[ "\u10EF" , "j" ] ,
[ "\u10F0" , "h" ] ,
[ "\u010D" , "c" ] ,
[ "\u010F" , "d" ] ,
[ "\u011B" , "e" ] ,
[ "\u0148" , "n" ] ,
[ "\u0159" , "r" ] ,
[ "\u0161" , "s" ] ,
[ "\u0165" , "t" ] ,
[ "\u016F" , "u" ] ,
[ "\u017E" , "z" ] ,
[ "\u010C" , "C" ] ,
[ "\u010E" , "D" ] ,
[ "\u011A" , "E" ] ,
[ "\u0147" , "N" ] ,
[ "\u0158" , "R" ] ,
[ "\u0160" , "S" ] ,
[ "\u0164" , "T" ] ,
[ "\u016E" , "U" ] ,
[ "\u017D" , "Z" ] ,
[ "\u0780" , "h" ] ,
[ "\u0781" , "sh" ] ,
[ "\u0782" , "n" ] ,
[ "\u0783" , "r" ] ,
[ "\u0784" , "b" ] ,
[ "\u0785" , "lh" ] ,
[ "\u0786" , "k" ] ,
[ "\u0787" , "a" ] ,
[ "\u0788" , "v" ] ,
[ "\u0789" , "m" ] ,
[ "\u078A" , "f" ] ,
[ "\u078B" , "dh" ] ,
[ "\u078C" , "th" ] ,
[ "\u078D" , "l" ] ,
[ "\u078E" , "g" ] ,
[ "\u078F" , "gn" ] ,
[ "\u0790" , "s" ] ,
[ "\u0791" , "d" ] ,
[ "\u0792" , "z" ] ,
[ "\u0793" , "t" ] ,
[ "\u0794" , "y" ] ,
[ "\u0795" , "p" ] ,
[ "\u0796" , "j" ] ,
[ "\u0797" , "ch" ] ,
[ "\u0798" , "tt" ] ,
[ "\u0799" , "hh" ] ,
[ "\u079A" , "kh" ] ,
[ "\u079B" , "th" ] ,
[ "\u079C" , "z" ] ,
[ "\u079D" , "sh" ] ,
[ "\u079E" , "s" ] ,
[ "\u079F" , "d" ] ,
[ "\u07A0" , "t" ] ,
[ "\u07A1" , "z" ] ,
[ "\u07A2" , "a" ] ,
[ "\u07A3" , "gh" ] ,
[ "\u07A4" , "q" ] ,
[ "\u07A5" , "w" ] ,
[ "\u07A6" , "a" ] ,
[ "\u07A7" , "aa" ] ,
[ "\u07A8" , "i" ] ,
[ "\u07A9" , "ee" ] ,
[ "\u07AA" , "u" ] ,
[ "\u07AB" , "oo" ] ,
[ "\u07AC" , "e" ] ,
[ "\u07AD" , "ey" ] ,
[ "\u07AE" , "o" ] ,
[ "\u07AF" , "oa" ] ,
[ "\u07B0" , "" ] ,
[ "\u03B1" , "a" ] ,
[ "\u03B2" , "v" ] ,
[ "\u03B3" , "g" ] ,
[ "\u03B4" , "d" ] ,
[ "\u03B5" , "e" ] ,
[ "\u03B6" , "z" ] ,
[ "\u03B7" , "i" ] ,
[ "\u03B8" , "th" ] ,
[ "\u03B9" , "i" ] ,
[ "\u03BA" , "k" ] ,
[ "\u03BB" , "l" ] ,
[ "\u03BC" , "m" ] ,
[ "\u03BD" , "n" ] ,
[ "\u03BE" , "ks" ] ,
[ "\u03BF" , "o" ] ,
[ "\u03C0" , "p" ] ,
[ "\u03C1" , "r" ] ,
[ "\u03C3" , "s" ] ,
[ "\u03C4" , "t" ] ,
[ "\u03C5" , "y" ] ,
[ "\u03C6" , "f" ] ,
[ "\u03C7" , "x" ] ,
[ "\u03C8" , "ps" ] ,
[ "\u03C9" , "o" ] ,
[ "\u03AC" , "a" ] ,
[ "\u03AD" , "e" ] ,
[ "\u03AF" , "i" ] ,
[ "\u03CC" , "o" ] ,
[ "\u03CD" , "y" ] ,
[ "\u03AE" , "i" ] ,
[ "\u03CE" , "o" ] ,
[ "\u03C2" , "s" ] ,
[ "\u03CA" , "i" ] ,
[ "\u03B0" , "y" ] ,
[ "\u03CB" , "y" ] ,
[ "\u0390" , "i" ] ,
[ "\u0391" , "A" ] ,
[ "\u0392" , "B" ] ,
[ "\u0393" , "G" ] ,
[ "\u0394" , "D" ] ,
[ "\u0395" , "E" ] ,
[ "\u0396" , "Z" ] ,
[ "\u0397" , "I" ] ,
[ "\u0398" , "TH" ] ,
[ "\u0399" , "I" ] ,
[ "\u039A" , "K" ] ,
[ "\u039B" , "L" ] ,
[ "\u039C" , "M" ] ,
[ "\u039D" , "N" ] ,
[ "\u039E" , "KS" ] ,
[ "\u039F" , "O" ] ,
[ "\u03A0" , "P" ] ,
[ "\u03A1" , "R" ] ,
[ "\u03A3" , "S" ] ,
[ "\u03A4" , "T" ] ,
[ "\u03A5" , "Y" ] ,
[ "\u03A6" , "F" ] ,
[ "\u03A7" , "X" ] ,
[ "\u03A8" , "PS" ] ,
[ "\u03A9" , "O" ] ,
[ "\u0386" , "A" ] ,
[ "\u0388" , "E" ] ,
[ "\u038A" , "I" ] ,
[ "\u038C" , "O" ] ,
[ "\u038E" , "Y" ] ,
[ "\u0389" , "I" ] ,
[ "\u038F" , "O" ] ,
[ "\u03AA" , "I" ] ,
[ "\u03AB" , "Y" ] ,
[ "\u0101" , "a" ] ,
[ "\u0113" , "e" ] ,
[ "\u0123" , "g" ] ,
[ "\u012B" , "i" ] ,
[ "\u0137" , "k" ] ,
[ "\u013C" , "l" ] ,
[ "\u0146" , "n" ] ,
[ "\u016B" , "u" ] ,
[ "\u0100" , "A" ] ,
[ "\u0112" , "E" ] ,
[ "\u0122" , "G" ] ,
[ "\u012A" , "I" ] ,
[ "\u0136" , "K" ] ,
[ "\u013B" , "L" ] ,
[ "\u0145" , "N" ] ,
[ "\u016A" , "U" ] ,
[ "\u010D" , "c" ] ,
[ "\u0161" , "s" ] ,
[ "\u017E" , "z" ] ,
[ "\u010C" , "C" ] ,
[ "\u0160" , "S" ] ,
[ "\u017D" , "Z" ] ,
[ "\u0105" , "a" ] ,
[ "\u010D" , "c" ] ,
[ "\u0119" , "e" ] ,
[ "\u0117" , "e" ] ,
[ "\u012F" , "i" ] ,
[ "\u0161" , "s" ] ,
[ "\u0173" , "u" ] ,
[ "\u016B" , "u" ] ,
[ "\u017E" , "z" ] ,
[ "\u0104" , "A" ] ,
[ "\u010C" , "C" ] ,
[ "\u0118" , "E" ] ,
[ "\u0116" , "E" ] ,
[ "\u012E" , "I" ] ,
[ "\u0160" , "S" ] ,
[ "\u0172" , "U" ] ,
[ "\u016A" , "U" ] ,
[ "\u040C" , "Kj" ] ,
[ "\u045C" , "kj" ] ,
[ "\u0409" , "Lj" ] ,
[ "\u0459" , "lj" ] ,
[ "\u040A" , "Nj" ] ,
[ "\u045A" , "nj" ] ,
[ "\u0422\u0441" , "Ts" ] ,
[ "\u0442\u0441" , "ts" ] ,
[ "\u0105" , "a" ] ,
[ "\u0107" , "c" ] ,
[ "\u0119" , "e" ] ,
[ "\u0142" , "l" ] ,
[ "\u0144" , "n" ] ,
[ "\u015B" , "s" ] ,
[ "\u017A" , "z" ] ,
[ "\u017C" , "z" ] ,
[ "\u0104" , "A" ] ,
[ "\u0106" , "C" ] ,
[ "\u0118" , "E" ] ,
[ "\u0141" , "L" ] ,
[ "\u0143" , "N" ] ,
[ "\u015A" , "S" ] ,
[ "\u0179" , "Z" ] ,
[ "\u017B" , "Z" ] ,
[ "\u0404" , "Ye" ] ,
[ "\u0406" , "I" ] ,
[ "\u0407" , "Yi" ] ,
[ "\u0490" , "G" ] ,
[ "\u0454" , "ye" ] ,
[ "\u0456" , "i" ] ,
[ "\u0457" , "yi" ] ,
[ "\u0491" , "g" ]
] ;
}
} ) ;
// node_modules/@sindresorhus/transliterate/index.js
var require _transliterate = _ _commonJS ( {
"node_modules/@sindresorhus/transliterate/index.js" ( exports , module2 ) {
"use strict" ;
var deburr = require _lodash ( ) ;
var escapeStringRegexp = require _escape _string _regexp2 ( ) ;
var builtinReplacements = require _replacements ( ) ;
var doCustomReplacements = ( string , replacements ) => {
for ( const [ key , value ] of replacements ) {
string = string . replace ( new RegExp ( escapeStringRegexp ( key ) , "g" ) , value ) ;
}
return string ;
} ;
module2 . exports = ( string , options ) => {
if ( typeof string !== "string" ) {
throw new TypeError ( ` Expected a string, got \` ${ typeof string } \` ` ) ;
}
options = _ _spreadValues ( {
customReplacements : [ ]
} , options ) ;
const customReplacements = new Map ( [
... builtinReplacements ,
... options . customReplacements
] ) ;
string = string . normalize ( ) ;
string = doCustomReplacements ( string , customReplacements ) ;
string = deburr ( string ) ;
return string ;
} ;
}
} ) ;
// node_modules/@sindresorhus/slugify/overridable-replacements.js
var require _overridable _replacements = _ _commonJS ( {
"node_modules/@sindresorhus/slugify/overridable-replacements.js" ( exports , module2 ) {
"use strict" ;
module2 . exports = [
[ "&" , " and " ] ,
[ "\u{1F984}" , " unicorn " ] ,
[ "\u2665" , " love " ]
] ;
}
} ) ;
// node_modules/@sindresorhus/slugify/index.js
var require _slugify = _ _commonJS ( {
"node_modules/@sindresorhus/slugify/index.js" ( exports , module2 ) {
"use strict" ;
var escapeStringRegexp = require _escape _string _regexp ( ) ;
var transliterate = require _transliterate ( ) ;
var builtinOverridableReplacements = require _overridable _replacements ( ) ;
var decamelize = ( string ) => {
return string . replace ( /([A-Z]{2,})(\d+)/g , "$1 $2" ) . replace ( /([a-z\d]+)([A-Z]{2,})/g , "$1 $2" ) . replace ( /([a-z\d])([A-Z])/g , "$1 $2" ) . replace ( /([A-Z]+)([A-Z][a-z\d]+)/g , "$1 $2" ) ;
} ;
var removeMootSeparators = ( string , separator ) => {
const escapedSeparator = escapeStringRegexp ( separator ) ;
return string . replace ( new RegExp ( ` ${ escapedSeparator } {2,} ` , "g" ) , separator ) . replace ( new RegExp ( ` ^ ${ escapedSeparator } | ${ escapedSeparator } $ ` , "g" ) , "" ) ;
} ;
var slugify2 = ( string , options ) => {
if ( typeof string !== "string" ) {
throw new TypeError ( ` Expected a string, got \` ${ typeof string } \` ` ) ;
}
options = _ _spreadValues ( {
separator : "-" ,
lowercase : true ,
decamelize : true ,
customReplacements : [ ] ,
preserveLeadingUnderscore : false
} , options ) ;
const shouldPrependUnderscore = options . preserveLeadingUnderscore && string . startsWith ( "_" ) ;
const customReplacements = new Map ( [
... builtinOverridableReplacements ,
... options . customReplacements
] ) ;
string = transliterate ( string , { customReplacements } ) ;
if ( options . decamelize ) {
string = decamelize ( string ) ;
}
let patternSlug = /[^a-zA-Z\d]+/g ;
if ( options . lowercase ) {
string = string . toLowerCase ( ) ;
patternSlug = /[^a-z\d]+/g ;
}
string = string . replace ( patternSlug , options . separator ) ;
string = string . replace ( /\\/g , "" ) ;
if ( options . separator ) {
string = removeMootSeparators ( string , options . separator ) ;
}
if ( shouldPrependUnderscore ) {
string = ` _ ${ string } ` ;
}
return string ;
} ;
var counter = ( ) => {
const occurrences = new Map ( ) ;
const countable = ( string , options ) => {
string = slugify2 ( string , options ) ;
if ( ! string ) {
return "" ;
}
const stringLower = string . toLowerCase ( ) ;
const numberless = occurrences . get ( stringLower . replace ( /(?:-\d+?)+?$/ , "" ) ) || 0 ;
const counter2 = occurrences . get ( stringLower ) ;
occurrences . set ( stringLower , typeof counter2 === "number" ? counter2 + 1 : 1 ) ;
const newCounter = occurrences . get ( stringLower ) || 2 ;
if ( newCounter >= 2 || numberless > 2 ) {
string = ` ${ string } - ${ newCounter } ` ;
}
return string ;
} ;
countable . reset = ( ) => {
occurrences . clear ( ) ;
} ;
return countable ;
} ;
module2 . exports = slugify2 ;
module2 . exports . counter = counter ;
}
} ) ;
// node_modules/crypto-js/core.js
var require _core = _ _commonJS ( {
"node_modules/crypto-js/core.js" ( exports , module2 ) {
( function ( root , factory ) {
if ( typeof exports === "object" ) {
module2 . exports = exports = factory ( ) ;
} else if ( typeof define === "function" && define . amd ) {
define ( [ ] , factory ) ;
} else {
root . CryptoJS = factory ( ) ;
}
} ) ( exports , function ( ) {
var CryptoJS = CryptoJS || function ( Math2 , undefined2 ) {
var crypto ;
if ( typeof window !== "undefined" && window . crypto ) {
crypto = window . crypto ;
}
if ( typeof self !== "undefined" && self . crypto ) {
crypto = self . crypto ;
}
if ( typeof globalThis !== "undefined" && globalThis . crypto ) {
crypto = globalThis . crypto ;
}
if ( ! crypto && typeof window !== "undefined" && window . msCrypto ) {
crypto = window . msCrypto ;
}
if ( ! crypto && typeof global !== "undefined" && global . crypto ) {
crypto = global . crypto ;
}
if ( ! crypto && typeof require === "function" ) {
try {
crypto = require ( "crypto" ) ;
} catch ( err ) {
}
}
var cryptoSecureRandomInt = function ( ) {
if ( crypto ) {
if ( typeof crypto . getRandomValues === "function" ) {
try {
return crypto . getRandomValues ( new Uint32Array ( 1 ) ) [ 0 ] ;
} catch ( err ) {
}
}
if ( typeof crypto . randomBytes === "function" ) {
try {
return crypto . randomBytes ( 4 ) . readInt32LE ( ) ;
} catch ( err ) {
}
}
}
throw new Error ( "Native crypto module could not be used to get secure random number." ) ;
} ;
var create = Object . create || function ( ) {
function F ( ) {
}
return function ( obj ) {
var subtype ;
F . prototype = obj ;
subtype = new F ( ) ;
F . prototype = null ;
return subtype ;
} ;
} ( ) ;
var C = { } ;
var C _lib = C . lib = { } ;
var Base = C _lib . Base = function ( ) {
return {
extend : function ( overrides ) {
var subtype = create ( this ) ;
if ( overrides ) {
subtype . mixIn ( overrides ) ;
}
if ( ! subtype . hasOwnProperty ( "init" ) || this . init === subtype . init ) {
subtype . init = function ( ) {
subtype . $super . init . apply ( this , arguments ) ;
} ;
}
subtype . init . prototype = subtype ;
subtype . $super = this ;
return subtype ;
} ,
create : function ( ) {
var instance = this . extend ( ) ;
instance . init . apply ( instance , arguments ) ;
return instance ;
} ,
init : function ( ) {
} ,
mixIn : function ( properties ) {
for ( var propertyName in properties ) {
if ( properties . hasOwnProperty ( propertyName ) ) {
this [ propertyName ] = properties [ propertyName ] ;
}
}
if ( properties . hasOwnProperty ( "toString" ) ) {
this . toString = properties . toString ;
}
} ,
clone : function ( ) {
return this . init . prototype . extend ( this ) ;
}
} ;
} ( ) ;
var WordArray = C _lib . WordArray = Base . extend ( {
init : function ( words , sigBytes ) {
words = this . words = words || [ ] ;
if ( sigBytes != undefined2 ) {
this . sigBytes = sigBytes ;
} else {
this . sigBytes = words . length * 4 ;
}
} ,
toString : function ( encoder ) {
return ( encoder || Hex ) . stringify ( this ) ;
} ,
concat : function ( wordArray ) {
var thisWords = this . words ;
var thatWords = wordArray . words ;
var thisSigBytes = this . sigBytes ;
var thatSigBytes = wordArray . sigBytes ;
this . clamp ( ) ;
if ( thisSigBytes % 4 ) {
for ( var i = 0 ; i < thatSigBytes ; i ++ ) {
var thatByte = thatWords [ i >>> 2 ] >>> 24 - i % 4 * 8 & 255 ;
thisWords [ thisSigBytes + i >>> 2 ] |= thatByte << 24 - ( thisSigBytes + i ) % 4 * 8 ;
}
} else {
for ( var j = 0 ; j < thatSigBytes ; j += 4 ) {
thisWords [ thisSigBytes + j >>> 2 ] = thatWords [ j >>> 2 ] ;
}
}
this . sigBytes += thatSigBytes ;
return this ;
} ,
clamp : function ( ) {
var words = this . words ;
var sigBytes = this . sigBytes ;
words [ sigBytes >>> 2 ] &= 4294967295 << 32 - sigBytes % 4 * 8 ;
words . length = Math2 . ceil ( sigBytes / 4 ) ;
} ,
clone : function ( ) {
var clone = Base . clone . call ( this ) ;
clone . words = this . words . slice ( 0 ) ;
return clone ;
} ,
random : function ( nBytes ) {
var words = [ ] ;
for ( var i = 0 ; i < nBytes ; i += 4 ) {
words . push ( cryptoSecureRandomInt ( ) ) ;
}
return new WordArray . init ( words , nBytes ) ;
}
} ) ;
var C _enc = C . enc = { } ;
var Hex = C _enc . Hex = {
stringify : function ( wordArray ) {
var words = wordArray . words ;
var sigBytes = wordArray . sigBytes ;
var hexChars = [ ] ;
for ( var i = 0 ; i < sigBytes ; i ++ ) {
var bite = words [ i >>> 2 ] >>> 24 - i % 4 * 8 & 255 ;
hexChars . push ( ( bite >>> 4 ) . toString ( 16 ) ) ;
hexChars . push ( ( bite & 15 ) . toString ( 16 ) ) ;
}
return hexChars . join ( "" ) ;
} ,
parse : function ( hexStr ) {
var hexStrLength = hexStr . length ;
var words = [ ] ;
for ( var i = 0 ; i < hexStrLength ; i += 2 ) {
words [ i >>> 3 ] |= parseInt ( hexStr . substr ( i , 2 ) , 16 ) << 24 - i % 8 * 4 ;
}
return new WordArray . init ( words , hexStrLength / 2 ) ;
}
} ;
var Latin1 = C _enc . Latin1 = {
stringify : function ( wordArray ) {
var words = wordArray . words ;
var sigBytes = wordArray . sigBytes ;
var latin1Chars = [ ] ;
for ( var i = 0 ; i < sigBytes ; i ++ ) {
var bite = words [ i >>> 2 ] >>> 24 - i % 4 * 8 & 255 ;
latin1Chars . push ( String . fromCharCode ( bite ) ) ;
}
return latin1Chars . join ( "" ) ;
} ,
parse : function ( latin1Str ) {
var latin1StrLength = latin1Str . length ;
var words = [ ] ;
for ( var i = 0 ; i < latin1StrLength ; i ++ ) {
words [ i >>> 2 ] |= ( latin1Str . charCodeAt ( i ) & 255 ) << 24 - i % 4 * 8 ;
}
return new WordArray . init ( words , latin1StrLength ) ;
}
} ;
var Utf8 = C _enc . Utf8 = {
stringify : function ( wordArray ) {
try {
return decodeURIComponent ( escape ( Latin1 . stringify ( wordArray ) ) ) ;
} catch ( e ) {
throw new Error ( "Malformed UTF-8 data" ) ;
}
} ,
parse : function ( utf8Str ) {
return Latin1 . parse ( unescape ( encodeURIComponent ( utf8Str ) ) ) ;
}
} ;
var BufferedBlockAlgorithm = C _lib . BufferedBlockAlgorithm = Base . extend ( {
reset : function ( ) {
this . _data = new WordArray . init ( ) ;
this . _nDataBytes = 0 ;
} ,
_append : function ( data ) {
if ( typeof data == "string" ) {
data = Utf8 . parse ( data ) ;
}
this . _data . concat ( data ) ;
this . _nDataBytes += data . sigBytes ;
} ,
_process : function ( doFlush ) {
var processedWords ;
var data = this . _data ;
var dataWords = data . words ;
var dataSigBytes = data . sigBytes ;
var blockSize = this . blockSize ;
var blockSizeBytes = blockSize * 4 ;
var nBlocksReady = dataSigBytes / blockSizeBytes ;
if ( doFlush ) {
nBlocksReady = Math2 . ceil ( nBlocksReady ) ;
} else {
nBlocksReady = Math2 . max ( ( nBlocksReady | 0 ) - this . _minBufferSize , 0 ) ;
}
var nWordsReady = nBlocksReady * blockSize ;
var nBytesReady = Math2 . min ( nWordsReady * 4 , dataSigBytes ) ;
if ( nWordsReady ) {
for ( var offset = 0 ; offset < nWordsReady ; offset += blockSize ) {
this . _doProcessBlock ( dataWords , offset ) ;
}
processedWords = dataWords . splice ( 0 , nWordsReady ) ;
data . sigBytes -= nBytesReady ;
}
return new WordArray . init ( processedWords , nBytesReady ) ;
} ,
clone : function ( ) {
var clone = Base . clone . call ( this ) ;
clone . _data = this . _data . clone ( ) ;
return clone ;
} ,
_minBufferSize : 0
} ) ;
var Hasher = C _lib . Hasher = BufferedBlockAlgorithm . extend ( {
cfg : Base . extend ( ) ,
init : function ( cfg ) {
this . cfg = this . cfg . extend ( cfg ) ;
this . reset ( ) ;
} ,
reset : function ( ) {
BufferedBlockAlgorithm . reset . call ( this ) ;
this . _doReset ( ) ;
} ,
update : function ( messageUpdate ) {
this . _append ( messageUpdate ) ;
this . _process ( ) ;
return this ;
} ,
finalize : function ( messageUpdate ) {
if ( messageUpdate ) {
this . _append ( messageUpdate ) ;
}
var hash = this . _doFinalize ( ) ;
return hash ;
} ,
blockSize : 512 / 32 ,
_createHelper : function ( hasher ) {
return function ( message , cfg ) {
return new hasher . init ( cfg ) . finalize ( message ) ;
} ;
} ,
_createHmacHelper : function ( hasher ) {
return function ( message , key ) {
return new C _algo . HMAC . init ( hasher , key ) . finalize ( message ) ;
} ;
}
} ) ;
var C _algo = C . algo = { } ;
return C ;
} ( Math ) ;
return CryptoJS ;
} ) ;
}
} ) ;
// node_modules/crypto-js/sha1.js
var require _sha1 = _ _commonJS ( {
"node_modules/crypto-js/sha1.js" ( exports , module2 ) {
( function ( root , factory ) {
if ( typeof exports === "object" ) {
module2 . exports = exports = factory ( require _core ( ) ) ;
} else if ( typeof define === "function" && define . amd ) {
define ( [ "./core" ] , factory ) ;
} else {
factory ( root . CryptoJS ) ;
}
} ) ( exports , function ( CryptoJS ) {
( function ( ) {
var C = CryptoJS ;
var C _lib = C . lib ;
var WordArray = C _lib . WordArray ;
var Hasher = C _lib . Hasher ;
var C _algo = C . algo ;
var W = [ ] ;
var SHA1 = C _algo . SHA1 = Hasher . extend ( {
_doReset : function ( ) {
this . _hash = new WordArray . init ( [
1732584193 ,
4023233417 ,
2562383102 ,
271733878 ,
3285377520
] ) ;
} ,
_doProcessBlock : function ( M , offset ) {
var H = this . _hash . words ;
var a = H [ 0 ] ;
var b = H [ 1 ] ;
var c = H [ 2 ] ;
var d = H [ 3 ] ;
var e = H [ 4 ] ;
for ( var i = 0 ; i < 80 ; i ++ ) {
if ( i < 16 ) {
W [ i ] = M [ offset + i ] | 0 ;
} else {
var n = W [ i - 3 ] ^ W [ i - 8 ] ^ W [ i - 14 ] ^ W [ i - 16 ] ;
W [ i ] = n << 1 | n >>> 31 ;
}
var t = ( a << 5 | a >>> 27 ) + e + W [ i ] ;
if ( i < 20 ) {
t += ( b & c | ~ b & d ) + 1518500249 ;
} else if ( i < 40 ) {
t += ( b ^ c ^ d ) + 1859775393 ;
} else if ( i < 60 ) {
t += ( b & c | b & d | c & d ) - 1894007588 ;
} else {
t += ( b ^ c ^ d ) - 899497514 ;
}
e = d ;
d = c ;
c = b << 30 | b >>> 2 ;
b = a ;
a = t ;
}
H [ 0 ] = H [ 0 ] + a | 0 ;
H [ 1 ] = H [ 1 ] + b | 0 ;
H [ 2 ] = H [ 2 ] + c | 0 ;
H [ 3 ] = H [ 3 ] + d | 0 ;
H [ 4 ] = H [ 4 ] + e | 0 ;
} ,
_doFinalize : function ( ) {
var data = this . _data ;
var dataWords = data . words ;
var nBitsTotal = this . _nDataBytes * 8 ;
var nBitsLeft = data . sigBytes * 8 ;
dataWords [ nBitsLeft >>> 5 ] |= 128 << 24 - nBitsLeft % 32 ;
dataWords [ ( nBitsLeft + 64 >>> 9 << 4 ) + 14 ] = Math . floor ( nBitsTotal / 4294967296 ) ;
dataWords [ ( nBitsLeft + 64 >>> 9 << 4 ) + 15 ] = nBitsTotal ;
data . sigBytes = dataWords . length * 4 ;
this . _process ( ) ;
return this . _hash ;
} ,
clone : function ( ) {
var clone = Hasher . clone . call ( this ) ;
clone . _hash = this . _hash . clone ( ) ;
return clone ;
}
} ) ;
C . SHA1 = Hasher . _createHelper ( SHA1 ) ;
C . HmacSHA1 = Hasher . _createHmacHelper ( SHA1 ) ;
} ) ( ) ;
return CryptoJS . SHA1 ;
} ) ;
}
} ) ;
// node_modules/axios/lib/helpers/bind.js
var require _bind = _ _commonJS ( {
"node_modules/axios/lib/helpers/bind.js" ( exports , module2 ) {
"use strict" ;
module2 . exports = function bind ( fn , thisArg ) {
return function wrap ( ) {
var args = new Array ( arguments . length ) ;
for ( var i = 0 ; i < args . length ; i ++ ) {
args [ i ] = arguments [ i ] ;
}
return fn . apply ( thisArg , args ) ;
} ;
} ;
}
} ) ;
// node_modules/axios/lib/utils.js
var require _utils = _ _commonJS ( {
"node_modules/axios/lib/utils.js" ( exports , module2 ) {
"use strict" ;
var bind = require _bind ( ) ;
var toString = Object . prototype . toString ;
function isArray ( val ) {
return Array . isArray ( val ) ;
}
function isUndefined ( val ) {
return typeof val === "undefined" ;
}
function isBuffer ( val ) {
return val !== null && ! isUndefined ( val ) && val . constructor !== null && ! isUndefined ( val . constructor ) && typeof val . constructor . isBuffer === "function" && val . constructor . isBuffer ( val ) ;
}
function isArrayBuffer ( val ) {
return toString . call ( val ) === "[object ArrayBuffer]" ;
}
function isFormData ( val ) {
return toString . call ( val ) === "[object FormData]" ;
}
function isArrayBufferView ( val ) {
var result ;
if ( typeof ArrayBuffer !== "undefined" && ArrayBuffer . isView ) {
result = ArrayBuffer . isView ( val ) ;
} else {
result = val && val . buffer && isArrayBuffer ( val . buffer ) ;
}
return result ;
}
function isString ( val ) {
return typeof val === "string" ;
}
function isNumber ( val ) {
return typeof val === "number" ;
}
function isObject2 ( val ) {
return val !== null && typeof val === "object" ;
}
function isPlainObject2 ( val ) {
if ( toString . call ( val ) !== "[object Object]" ) {
return false ;
}
var prototype = Object . getPrototypeOf ( val ) ;
return prototype === null || prototype === Object . prototype ;
}
function isDate ( val ) {
return toString . call ( val ) === "[object Date]" ;
}
function isFile ( val ) {
return toString . call ( val ) === "[object File]" ;
}
function isBlob ( val ) {
return toString . call ( val ) === "[object Blob]" ;
}
function isFunction ( val ) {
return toString . call ( val ) === "[object Function]" ;
}
function isStream ( val ) {
return isObject2 ( val ) && isFunction ( val . pipe ) ;
}
function isURLSearchParams ( val ) {
return toString . call ( val ) === "[object URLSearchParams]" ;
}
function trim ( str ) {
return str . trim ? str . trim ( ) : str . replace ( /^\s+|\s+$/g , "" ) ;
}
function isStandardBrowserEnv ( ) {
if ( typeof navigator !== "undefined" && ( navigator . product === "ReactNative" || navigator . product === "NativeScript" || navigator . product === "NS" ) ) {
return false ;
}
return typeof window !== "undefined" && typeof document !== "undefined" ;
}
function forEach ( obj , fn ) {
if ( obj === null || typeof obj === "undefined" ) {
return ;
}
if ( typeof obj !== "object" ) {
obj = [ obj ] ;
}
if ( isArray ( obj ) ) {
for ( var i = 0 , l = obj . length ; i < l ; i ++ ) {
fn . call ( null , obj [ i ] , i , obj ) ;
}
} else {
for ( var key in obj ) {
if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) {
fn . call ( null , obj [ key ] , key , obj ) ;
}
}
}
}
function merge2 ( ) {
var result = { } ;
function assignValue ( val , key ) {
if ( isPlainObject2 ( result [ key ] ) && isPlainObject2 ( val ) ) {
result [ key ] = merge2 ( result [ key ] , val ) ;
} else if ( isPlainObject2 ( val ) ) {
result [ key ] = merge2 ( { } , val ) ;
} else if ( isArray ( val ) ) {
result [ key ] = val . slice ( ) ;
} else {
result [ key ] = val ;
}
}
for ( var i = 0 , l = arguments . length ; i < l ; i ++ ) {
forEach ( arguments [ i ] , assignValue ) ;
}
return result ;
}
function extend ( a , b , thisArg ) {
forEach ( b , function assignValue ( val , key ) {
if ( thisArg && typeof val === "function" ) {
a [ key ] = bind ( val , thisArg ) ;
} else {
a [ key ] = val ;
}
} ) ;
return a ;
}
function stripBOM ( content ) {
if ( content . charCodeAt ( 0 ) === 65279 ) {
content = content . slice ( 1 ) ;
}
return content ;
}
module2 . exports = {
isArray ,
isArrayBuffer ,
isBuffer ,
isFormData ,
isArrayBufferView ,
isString ,
isNumber ,
isObject : isObject2 ,
isPlainObject : isPlainObject2 ,
isUndefined ,
isDate ,
isFile ,
isBlob ,
isFunction ,
isStream ,
isURLSearchParams ,
isStandardBrowserEnv ,
forEach ,
merge : merge2 ,
extend ,
trim ,
stripBOM
} ;
}
} ) ;
// node_modules/axios/lib/helpers/buildURL.js
var require _buildURL = _ _commonJS ( {
"node_modules/axios/lib/helpers/buildURL.js" ( exports , module2 ) {
"use strict" ;
var utils = require _utils ( ) ;
function encode2 ( val ) {
return encodeURIComponent ( val ) . replace ( /%3A/gi , ":" ) . replace ( /%24/g , "$" ) . replace ( /%2C/gi , "," ) . replace ( /%20/g , "+" ) . replace ( /%5B/gi , "[" ) . replace ( /%5D/gi , "]" ) ;
}
module2 . exports = function buildURL ( url , params , paramsSerializer ) {
if ( ! params ) {
return url ;
}
var serializedParams ;
if ( paramsSerializer ) {
serializedParams = paramsSerializer ( params ) ;
} else if ( utils . isURLSearchParams ( params ) ) {
serializedParams = params . toString ( ) ;
} else {
var parts = [ ] ;
utils . forEach ( params , function serialize ( val , key ) {
if ( val === null || typeof val === "undefined" ) {
return ;
}
if ( utils . isArray ( val ) ) {
key = key + "[]" ;
} else {
val = [ val ] ;
}
utils . forEach ( val , function parseValue ( v ) {
if ( utils . isDate ( v ) ) {
v = v . toISOString ( ) ;
} else if ( utils . isObject ( v ) ) {
v = JSON . stringify ( v ) ;
}
parts . push ( encode2 ( key ) + "=" + encode2 ( v ) ) ;
} ) ;
} ) ;
serializedParams = parts . join ( "&" ) ;
}
if ( serializedParams ) {
var hashmarkIndex = url . indexOf ( "#" ) ;
if ( hashmarkIndex !== - 1 ) {
url = url . slice ( 0 , hashmarkIndex ) ;
}
url += ( url . indexOf ( "?" ) === - 1 ? "?" : "&" ) + serializedParams ;
}
return url ;
} ;
}
} ) ;
// node_modules/axios/lib/core/InterceptorManager.js
var require _InterceptorManager = _ _commonJS ( {
"node_modules/axios/lib/core/InterceptorManager.js" ( exports , module2 ) {
"use strict" ;
var utils = require _utils ( ) ;
function InterceptorManager ( ) {
this . handlers = [ ] ;
}
InterceptorManager . prototype . use = function use ( fulfilled , rejected , options ) {
this . handlers . push ( {
fulfilled ,
rejected ,
synchronous : options ? options . synchronous : false ,
runWhen : options ? options . runWhen : null
} ) ;
return this . handlers . length - 1 ;
} ;
InterceptorManager . prototype . eject = function eject ( id ) {
if ( this . handlers [ id ] ) {
this . handlers [ id ] = null ;
}
} ;
InterceptorManager . prototype . forEach = function forEach ( fn ) {
utils . forEach ( this . handlers , function forEachHandler ( h ) {
if ( h !== null ) {
fn ( h ) ;
}
} ) ;
} ;
module2 . exports = InterceptorManager ;
}
} ) ;
// node_modules/axios/lib/helpers/normalizeHeaderName.js
var require _normalizeHeaderName = _ _commonJS ( {
"node_modules/axios/lib/helpers/normalizeHeaderName.js" ( exports , module2 ) {
"use strict" ;
var utils = require _utils ( ) ;
module2 . exports = function normalizeHeaderName ( headers , normalizedName ) {
utils . forEach ( headers , function processHeader ( value , name ) {
if ( name !== normalizedName && name . toUpperCase ( ) === normalizedName . toUpperCase ( ) ) {
headers [ normalizedName ] = value ;
delete headers [ name ] ;
}
} ) ;
} ;
}
} ) ;
// node_modules/axios/lib/core/enhanceError.js
var require _enhanceError = _ _commonJS ( {
"node_modules/axios/lib/core/enhanceError.js" ( exports , module2 ) {
"use strict" ;
module2 . exports = function enhanceError ( error , config , code , request2 , response ) {
error . config = config ;
if ( code ) {
error . code = code ;
}
error . request = request2 ;
error . response = response ;
error . isAxiosError = true ;
error . toJSON = function toJSON ( ) {
return {
message : this . message ,
name : this . name ,
description : this . description ,
number : this . number ,
fileName : this . fileName ,
lineNumber : this . lineNumber ,
columnNumber : this . columnNumber ,
stack : this . stack ,
config : this . config ,
code : this . code ,
status : this . response && this . response . status ? this . response . status : null
} ;
} ;
return error ;
} ;
}
} ) ;
// node_modules/axios/lib/defaults/transitional.js
var require _transitional = _ _commonJS ( {
"node_modules/axios/lib/defaults/transitional.js" ( exports , module2 ) {
"use strict" ;
module2 . exports = {
silentJSONParsing : true ,
forcedJSONParsing : true ,
clarifyTimeoutError : false
} ;
}
} ) ;
// node_modules/axios/lib/core/createError.js
var require _createError = _ _commonJS ( {
"node_modules/axios/lib/core/createError.js" ( exports , module2 ) {
"use strict" ;
var enhanceError = require _enhanceError ( ) ;
module2 . exports = function createError ( message , config , code , request2 , response ) {
var error = new Error ( message ) ;
return enhanceError ( error , config , code , request2 , response ) ;
} ;
}
} ) ;
// node_modules/axios/lib/core/settle.js
var require _settle = _ _commonJS ( {
"node_modules/axios/lib/core/settle.js" ( exports , module2 ) {
"use strict" ;
var createError = require _createError ( ) ;
module2 . exports = function settle ( resolve , reject , response ) {
var validateStatus = response . config . validateStatus ;
if ( ! response . status || ! validateStatus || validateStatus ( response . status ) ) {
resolve ( response ) ;
} else {
reject ( createError ( "Request failed with status code " + response . status , response . config , null , response . request , response ) ) ;
}
} ;
}
} ) ;
// node_modules/axios/lib/helpers/cookies.js
var require _cookies = _ _commonJS ( {
"node_modules/axios/lib/helpers/cookies.js" ( exports , module2 ) {
"use strict" ;
var utils = require _utils ( ) ;
module2 . exports = utils . isStandardBrowserEnv ( ) ? function standardBrowserEnv ( ) {
return {
write : function write ( name , value , expires , path , domain , secure ) {
var cookie = [ ] ;
cookie . push ( name + "=" + encodeURIComponent ( value ) ) ;
if ( utils . isNumber ( expires ) ) {
cookie . push ( "expires=" + new Date ( expires ) . toGMTString ( ) ) ;
}
if ( utils . isString ( path ) ) {
cookie . push ( "path=" + path ) ;
}
if ( utils . isString ( domain ) ) {
cookie . push ( "domain=" + domain ) ;
}
if ( secure === true ) {
cookie . push ( "secure" ) ;
}
document . cookie = cookie . join ( "; " ) ;
} ,
read : function read ( name ) {
var match = document . cookie . match ( new RegExp ( "(^|;\\s*)(" + name + ")=([^;]*)" ) ) ;
return match ? decodeURIComponent ( match [ 3 ] ) : null ;
} ,
remove : function remove ( name ) {
this . write ( name , "" , Date . now ( ) - 864e5 ) ;
}
} ;
} ( ) : function nonStandardBrowserEnv ( ) {
return {
write : function write ( ) {
} ,
read : function read ( ) {
return null ;
} ,
remove : function remove ( ) {
}
} ;
} ( ) ;
}
} ) ;
// node_modules/axios/lib/helpers/isAbsoluteURL.js
var require _isAbsoluteURL = _ _commonJS ( {
"node_modules/axios/lib/helpers/isAbsoluteURL.js" ( exports , module2 ) {
"use strict" ;
module2 . exports = function isAbsoluteURL ( url ) {
return /^([a-z][a-z\d+\-.]*:)?\/\//i . test ( url ) ;
} ;
}
} ) ;
// node_modules/axios/lib/helpers/combineURLs.js
var require _combineURLs = _ _commonJS ( {
"node_modules/axios/lib/helpers/combineURLs.js" ( exports , module2 ) {
"use strict" ;
module2 . exports = function combineURLs ( baseURL , relativeURL ) {
return relativeURL ? baseURL . replace ( /\/+$/ , "" ) + "/" + relativeURL . replace ( /^\/+/ , "" ) : baseURL ;
} ;
}
} ) ;
// node_modules/axios/lib/core/buildFullPath.js
var require _buildFullPath = _ _commonJS ( {
"node_modules/axios/lib/core/buildFullPath.js" ( exports , module2 ) {
"use strict" ;
var isAbsoluteURL = require _isAbsoluteURL ( ) ;
var combineURLs = require _combineURLs ( ) ;
module2 . exports = function buildFullPath ( baseURL , requestedURL ) {
if ( baseURL && ! isAbsoluteURL ( requestedURL ) ) {
return combineURLs ( baseURL , requestedURL ) ;
}
return requestedURL ;
} ;
}
} ) ;
// node_modules/axios/lib/helpers/parseHeaders.js
var require _parseHeaders = _ _commonJS ( {
"node_modules/axios/lib/helpers/parseHeaders.js" ( exports , module2 ) {
"use strict" ;
var utils = require _utils ( ) ;
var ignoreDuplicateOf = [
"age" ,
"authorization" ,
"content-length" ,
"content-type" ,
"etag" ,
"expires" ,
"from" ,
"host" ,
"if-modified-since" ,
"if-unmodified-since" ,
"last-modified" ,
"location" ,
"max-forwards" ,
"proxy-authorization" ,
"referer" ,
"retry-after" ,
"user-agent"
] ;
module2 . exports = function parseHeaders ( headers ) {
var parsed = { } ;
var key ;
var val ;
var i ;
if ( ! headers ) {
return parsed ;
}
utils . forEach ( headers . split ( "\n" ) , function parser ( line ) {
i = line . indexOf ( ":" ) ;
key = utils . trim ( line . substr ( 0 , i ) ) . toLowerCase ( ) ;
val = utils . trim ( line . substr ( i + 1 ) ) ;
if ( key ) {
if ( parsed [ key ] && ignoreDuplicateOf . indexOf ( key ) >= 0 ) {
return ;
}
if ( key === "set-cookie" ) {
parsed [ key ] = ( parsed [ key ] ? parsed [ key ] : [ ] ) . concat ( [ val ] ) ;
} else {
parsed [ key ] = parsed [ key ] ? parsed [ key ] + ", " + val : val ;
}
}
} ) ;
return parsed ;
} ;
}
} ) ;
// node_modules/axios/lib/helpers/isURLSameOrigin.js
var require _isURLSameOrigin = _ _commonJS ( {
"node_modules/axios/lib/helpers/isURLSameOrigin.js" ( exports , module2 ) {
"use strict" ;
var utils = require _utils ( ) ;
module2 . exports = utils . isStandardBrowserEnv ( ) ? function standardBrowserEnv ( ) {
var msie = /(msie|trident)/i . test ( navigator . userAgent ) ;
var urlParsingNode = document . createElement ( "a" ) ;
var originURL ;
function resolveURL ( url ) {
var href = url ;
if ( msie ) {
urlParsingNode . setAttribute ( "href" , href ) ;
href = urlParsingNode . href ;
}
urlParsingNode . setAttribute ( "href" , href ) ;
return {
href : urlParsingNode . href ,
protocol : urlParsingNode . protocol ? urlParsingNode . protocol . replace ( /:$/ , "" ) : "" ,
host : urlParsingNode . host ,
search : urlParsingNode . search ? urlParsingNode . search . replace ( /^\?/ , "" ) : "" ,
hash : urlParsingNode . hash ? urlParsingNode . hash . replace ( /^#/ , "" ) : "" ,
hostname : urlParsingNode . hostname ,
port : urlParsingNode . port ,
pathname : urlParsingNode . pathname . charAt ( 0 ) === "/" ? urlParsingNode . pathname : "/" + urlParsingNode . pathname
} ;
}
originURL = resolveURL ( window . location . href ) ;
return function isURLSameOrigin ( requestURL ) {
var parsed = utils . isString ( requestURL ) ? resolveURL ( requestURL ) : requestURL ;
return parsed . protocol === originURL . protocol && parsed . host === originURL . host ;
} ;
} ( ) : function nonStandardBrowserEnv ( ) {
return function isURLSameOrigin ( ) {
return true ;
} ;
} ( ) ;
}
} ) ;
// node_modules/axios/lib/cancel/Cancel.js
var require _Cancel = _ _commonJS ( {
"node_modules/axios/lib/cancel/Cancel.js" ( exports , module2 ) {
"use strict" ;
function Cancel ( message ) {
this . message = message ;
}
Cancel . prototype . toString = function toString ( ) {
return "Cancel" + ( this . message ? ": " + this . message : "" ) ;
} ;
Cancel . prototype . _ _CANCEL _ _ = true ;
module2 . exports = Cancel ;
}
} ) ;
// node_modules/axios/lib/adapters/xhr.js
var require _xhr = _ _commonJS ( {
"node_modules/axios/lib/adapters/xhr.js" ( exports , module2 ) {
"use strict" ;
var utils = require _utils ( ) ;
var settle = require _settle ( ) ;
var cookies = require _cookies ( ) ;
var buildURL = require _buildURL ( ) ;
var buildFullPath = require _buildFullPath ( ) ;
var parseHeaders = require _parseHeaders ( ) ;
var isURLSameOrigin = require _isURLSameOrigin ( ) ;
var createError = require _createError ( ) ;
var transitionalDefaults = require _transitional ( ) ;
var Cancel = require _Cancel ( ) ;
module2 . exports = function xhrAdapter ( config ) {
return new Promise ( function dispatchXhrRequest ( resolve , reject ) {
var requestData = config . data ;
var requestHeaders = config . headers ;
var responseType = config . responseType ;
var onCanceled ;
function done ( ) {
if ( config . cancelToken ) {
config . cancelToken . unsubscribe ( onCanceled ) ;
}
if ( config . signal ) {
config . signal . removeEventListener ( "abort" , onCanceled ) ;
}
}
if ( utils . isFormData ( requestData ) ) {
delete requestHeaders [ "Content-Type" ] ;
}
var request2 = new XMLHttpRequest ( ) ;
if ( config . auth ) {
var username = config . auth . username || "" ;
var password = config . auth . password ? unescape ( encodeURIComponent ( config . auth . password ) ) : "" ;
requestHeaders . Authorization = "Basic " + btoa ( username + ":" + password ) ;
}
var fullPath = buildFullPath ( config . baseURL , config . url ) ;
request2 . open ( config . method . toUpperCase ( ) , buildURL ( fullPath , config . params , config . paramsSerializer ) , true ) ;
request2 . timeout = config . timeout ;
function onloadend ( ) {
if ( ! request2 ) {
return ;
}
var responseHeaders = "getAllResponseHeaders" in request2 ? parseHeaders ( request2 . getAllResponseHeaders ( ) ) : null ;
var responseData = ! responseType || responseType === "text" || responseType === "json" ? request2 . responseText : request2 . response ;
var response = {
data : responseData ,
status : request2 . status ,
statusText : request2 . statusText ,
headers : responseHeaders ,
config ,
request : request2
} ;
settle ( function _resolve ( value ) {
resolve ( value ) ;
done ( ) ;
} , function _reject ( err ) {
reject ( err ) ;
done ( ) ;
} , response ) ;
request2 = null ;
}
if ( "onloadend" in request2 ) {
request2 . onloadend = onloadend ;
} else {
request2 . onreadystatechange = function handleLoad ( ) {
if ( ! request2 || request2 . readyState !== 4 ) {
return ;
}
if ( request2 . status === 0 && ! ( request2 . responseURL && request2 . responseURL . indexOf ( "file:" ) === 0 ) ) {
return ;
}
setTimeout ( onloadend ) ;
} ;
}
request2 . onabort = function handleAbort ( ) {
if ( ! request2 ) {
return ;
}
reject ( createError ( "Request aborted" , config , "ECONNABORTED" , request2 ) ) ;
request2 = null ;
} ;
request2 . onerror = function handleError ( ) {
reject ( createError ( "Network Error" , config , null , request2 ) ) ;
request2 = null ;
} ;
request2 . ontimeout = function handleTimeout ( ) {
var timeoutErrorMessage = config . timeout ? "timeout of " + config . timeout + "ms exceeded" : "timeout exceeded" ;
var transitional = config . transitional || transitionalDefaults ;
if ( config . timeoutErrorMessage ) {
timeoutErrorMessage = config . timeoutErrorMessage ;
}
reject ( createError ( timeoutErrorMessage , config , transitional . clarifyTimeoutError ? "ETIMEDOUT" : "ECONNABORTED" , request2 ) ) ;
request2 = null ;
} ;
if ( utils . isStandardBrowserEnv ( ) ) {
var xsrfValue = ( config . withCredentials || isURLSameOrigin ( fullPath ) ) && config . xsrfCookieName ? cookies . read ( config . xsrfCookieName ) : void 0 ;
if ( xsrfValue ) {
requestHeaders [ config . xsrfHeaderName ] = xsrfValue ;
}
}
if ( "setRequestHeader" in request2 ) {
utils . forEach ( requestHeaders , function setRequestHeader ( val , key ) {
if ( typeof requestData === "undefined" && key . toLowerCase ( ) === "content-type" ) {
delete requestHeaders [ key ] ;
} else {
request2 . setRequestHeader ( key , val ) ;
}
} ) ;
}
if ( ! utils . isUndefined ( config . withCredentials ) ) {
request2 . withCredentials = ! ! config . withCredentials ;
}
if ( responseType && responseType !== "json" ) {
request2 . responseType = config . responseType ;
}
if ( typeof config . onDownloadProgress === "function" ) {
request2 . addEventListener ( "progress" , config . onDownloadProgress ) ;
}
if ( typeof config . onUploadProgress === "function" && request2 . upload ) {
request2 . upload . addEventListener ( "progress" , config . onUploadProgress ) ;
}
if ( config . cancelToken || config . signal ) {
onCanceled = function ( cancel ) {
if ( ! request2 ) {
return ;
}
reject ( ! cancel || cancel && cancel . type ? new Cancel ( "canceled" ) : cancel ) ;
request2 . abort ( ) ;
request2 = null ;
} ;
config . cancelToken && config . cancelToken . subscribe ( onCanceled ) ;
if ( config . signal ) {
config . signal . aborted ? onCanceled ( ) : config . signal . addEventListener ( "abort" , onCanceled ) ;
}
}
if ( ! requestData ) {
requestData = null ;
}
request2 . send ( requestData ) ;
} ) ;
} ;
}
} ) ;
// node_modules/axios/lib/defaults/index.js
var require _defaults = _ _commonJS ( {
"node_modules/axios/lib/defaults/index.js" ( exports , module2 ) {
"use strict" ;
var utils = require _utils ( ) ;
var normalizeHeaderName = require _normalizeHeaderName ( ) ;
var enhanceError = require _enhanceError ( ) ;
var transitionalDefaults = require _transitional ( ) ;
var DEFAULT _CONTENT _TYPE = {
"Content-Type" : "application/x-www-form-urlencoded"
} ;
function setContentTypeIfUnset ( headers , value ) {
if ( ! utils . isUndefined ( headers ) && utils . isUndefined ( headers [ "Content-Type" ] ) ) {
headers [ "Content-Type" ] = value ;
}
}
function getDefaultAdapter ( ) {
var adapter ;
if ( typeof XMLHttpRequest !== "undefined" ) {
adapter = require _xhr ( ) ;
} else if ( typeof process !== "undefined" && Object . prototype . toString . call ( process ) === "[object process]" ) {
adapter = require _xhr ( ) ;
}
return adapter ;
}
function stringifySafely ( rawValue , parser , encoder ) {
if ( utils . isString ( rawValue ) ) {
try {
( parser || JSON . parse ) ( rawValue ) ;
return utils . trim ( rawValue ) ;
} catch ( e ) {
if ( e . name !== "SyntaxError" ) {
throw e ;
}
}
}
return ( encoder || JSON . stringify ) ( rawValue ) ;
}
var defaults = {
transitional : transitionalDefaults ,
adapter : getDefaultAdapter ( ) ,
transformRequest : [ function transformRequest ( data , headers ) {
normalizeHeaderName ( headers , "Accept" ) ;
normalizeHeaderName ( headers , "Content-Type" ) ;
if ( utils . isFormData ( data ) || utils . isArrayBuffer ( data ) || utils . isBuffer ( data ) || utils . isStream ( data ) || utils . isFile ( data ) || utils . isBlob ( data ) ) {
return data ;
}
if ( utils . isArrayBufferView ( data ) ) {
return data . buffer ;
}
if ( utils . isURLSearchParams ( data ) ) {
setContentTypeIfUnset ( headers , "application/x-www-form-urlencoded;charset=utf-8" ) ;
return data . toString ( ) ;
}
if ( utils . isObject ( data ) || headers && headers [ "Content-Type" ] === "application/json" ) {
setContentTypeIfUnset ( headers , "application/json" ) ;
return stringifySafely ( data ) ;
}
return data ;
} ] ,
transformResponse : [ function transformResponse ( data ) {
var transitional = this . transitional || defaults . transitional ;
var silentJSONParsing = transitional && transitional . silentJSONParsing ;
var forcedJSONParsing = transitional && transitional . forcedJSONParsing ;
var strictJSONParsing = ! silentJSONParsing && this . responseType === "json" ;
if ( strictJSONParsing || forcedJSONParsing && utils . isString ( data ) && data . length ) {
try {
return JSON . parse ( data ) ;
} catch ( e ) {
if ( strictJSONParsing ) {
if ( e . name === "SyntaxError" ) {
throw enhanceError ( e , this , "E_JSON_PARSE" ) ;
}
throw e ;
}
}
}
return data ;
} ] ,
timeout : 0 ,
xsrfCookieName : "XSRF-TOKEN" ,
xsrfHeaderName : "X-XSRF-TOKEN" ,
maxContentLength : - 1 ,
maxBodyLength : - 1 ,
validateStatus : function validateStatus ( status ) {
return status >= 200 && status < 300 ;
} ,
headers : {
common : {
"Accept" : "application/json, text/plain, */*"
}
}
} ;
utils . forEach ( [ "delete" , "get" , "head" ] , function forEachMethodNoData ( method ) {
defaults . headers [ method ] = { } ;
} ) ;
utils . forEach ( [ "post" , "put" , "patch" ] , function forEachMethodWithData ( method ) {
defaults . headers [ method ] = utils . merge ( DEFAULT _CONTENT _TYPE ) ;
} ) ;
module2 . exports = defaults ;
}
} ) ;
// node_modules/axios/lib/core/transformData.js
var require _transformData = _ _commonJS ( {
"node_modules/axios/lib/core/transformData.js" ( exports , module2 ) {
"use strict" ;
var utils = require _utils ( ) ;
var defaults = require _defaults ( ) ;
module2 . exports = function transformData ( data , headers , fns ) {
var context = this || defaults ;
utils . forEach ( fns , function transform ( fn ) {
data = fn . call ( context , data , headers ) ;
} ) ;
return data ;
} ;
}
} ) ;
// node_modules/axios/lib/cancel/isCancel.js
var require _isCancel = _ _commonJS ( {
"node_modules/axios/lib/cancel/isCancel.js" ( exports , module2 ) {
"use strict" ;
module2 . exports = function isCancel ( value ) {
return ! ! ( value && value . _ _CANCEL _ _ ) ;
} ;
}
} ) ;
// node_modules/axios/lib/core/dispatchRequest.js
var require _dispatchRequest = _ _commonJS ( {
"node_modules/axios/lib/core/dispatchRequest.js" ( exports , module2 ) {
"use strict" ;
var utils = require _utils ( ) ;
var transformData = require _transformData ( ) ;
var isCancel = require _isCancel ( ) ;
var defaults = require _defaults ( ) ;
var Cancel = require _Cancel ( ) ;
function throwIfCancellationRequested ( config ) {
if ( config . cancelToken ) {
config . cancelToken . throwIfRequested ( ) ;
}
if ( config . signal && config . signal . aborted ) {
throw new Cancel ( "canceled" ) ;
}
}
module2 . exports = function dispatchRequest ( config ) {
throwIfCancellationRequested ( config ) ;
config . headers = config . headers || { } ;
config . data = transformData . call ( config , config . data , config . headers , config . transformRequest ) ;
config . headers = utils . merge ( config . headers . common || { } , config . headers [ config . method ] || { } , config . headers ) ;
utils . forEach ( [ "delete" , "get" , "head" , "post" , "put" , "patch" , "common" ] , function cleanHeaderConfig ( method ) {
delete config . headers [ method ] ;
} ) ;
var adapter = config . adapter || defaults . adapter ;
return adapter ( config ) . then ( function onAdapterResolution ( response ) {
throwIfCancellationRequested ( config ) ;
response . data = transformData . call ( config , response . data , response . headers , config . transformResponse ) ;
return response ;
} , function onAdapterRejection ( reason ) {
if ( ! isCancel ( reason ) ) {
throwIfCancellationRequested ( config ) ;
if ( reason && reason . response ) {
reason . response . data = transformData . call ( config , reason . response . data , reason . response . headers , config . transformResponse ) ;
}
}
return Promise . reject ( reason ) ;
} ) ;
} ;
}
} ) ;
// node_modules/axios/lib/core/mergeConfig.js
var require _mergeConfig = _ _commonJS ( {
"node_modules/axios/lib/core/mergeConfig.js" ( exports , module2 ) {
"use strict" ;
var utils = require _utils ( ) ;
module2 . exports = function mergeConfig ( config1 , config2 ) {
config2 = config2 || { } ;
var config = { } ;
function getMergedValue ( target , source ) {
if ( utils . isPlainObject ( target ) && utils . isPlainObject ( source ) ) {
return utils . merge ( target , source ) ;
} else if ( utils . isPlainObject ( source ) ) {
return utils . merge ( { } , source ) ;
} else if ( utils . isArray ( source ) ) {
return source . slice ( ) ;
}
return source ;
}
function mergeDeepProperties ( prop ) {
if ( ! utils . isUndefined ( config2 [ prop ] ) ) {
return getMergedValue ( config1 [ prop ] , config2 [ prop ] ) ;
} else if ( ! utils . isUndefined ( config1 [ prop ] ) ) {
return getMergedValue ( void 0 , config1 [ prop ] ) ;
}
}
function valueFromConfig2 ( prop ) {
if ( ! utils . isUndefined ( config2 [ prop ] ) ) {
return getMergedValue ( void 0 , config2 [ prop ] ) ;
}
}
function defaultToConfig2 ( prop ) {
if ( ! utils . isUndefined ( config2 [ prop ] ) ) {
return getMergedValue ( void 0 , config2 [ prop ] ) ;
} else if ( ! utils . isUndefined ( config1 [ prop ] ) ) {
return getMergedValue ( void 0 , config1 [ prop ] ) ;
}
}
function mergeDirectKeys ( prop ) {
if ( prop in config2 ) {
return getMergedValue ( config1 [ prop ] , config2 [ prop ] ) ;
} else if ( prop in config1 ) {
return getMergedValue ( void 0 , config1 [ prop ] ) ;
}
}
var mergeMap = {
"url" : valueFromConfig2 ,
"method" : valueFromConfig2 ,
"data" : valueFromConfig2 ,
"baseURL" : defaultToConfig2 ,
"transformRequest" : defaultToConfig2 ,
"transformResponse" : defaultToConfig2 ,
"paramsSerializer" : defaultToConfig2 ,
"timeout" : defaultToConfig2 ,
"timeoutMessage" : defaultToConfig2 ,
"withCredentials" : defaultToConfig2 ,
"adapter" : defaultToConfig2 ,
"responseType" : defaultToConfig2 ,
"xsrfCookieName" : defaultToConfig2 ,
"xsrfHeaderName" : defaultToConfig2 ,
"onUploadProgress" : defaultToConfig2 ,
"onDownloadProgress" : defaultToConfig2 ,
"decompress" : defaultToConfig2 ,
"maxContentLength" : defaultToConfig2 ,
"maxBodyLength" : defaultToConfig2 ,
"transport" : defaultToConfig2 ,
"httpAgent" : defaultToConfig2 ,
"httpsAgent" : defaultToConfig2 ,
"cancelToken" : defaultToConfig2 ,
"socketPath" : defaultToConfig2 ,
"responseEncoding" : defaultToConfig2 ,
"validateStatus" : mergeDirectKeys
} ;
utils . forEach ( Object . keys ( config1 ) . concat ( Object . keys ( config2 ) ) , function computeConfigValue ( prop ) {
var merge2 = mergeMap [ prop ] || mergeDeepProperties ;
var configValue = merge2 ( prop ) ;
utils . isUndefined ( configValue ) && merge2 !== mergeDirectKeys || ( config [ prop ] = configValue ) ;
} ) ;
return config ;
} ;
}
} ) ;
// node_modules/axios/lib/env/data.js
var require _data = _ _commonJS ( {
"node_modules/axios/lib/env/data.js" ( exports , module2 ) {
module2 . exports = {
"version" : "0.26.1"
} ;
}
} ) ;
// node_modules/axios/lib/helpers/validator.js
var require _validator = _ _commonJS ( {
"node_modules/axios/lib/helpers/validator.js" ( exports , module2 ) {
"use strict" ;
var VERSION6 = require _data ( ) . version ;
var validators = { } ;
[ "object" , "boolean" , "number" , "function" , "string" , "symbol" ] . forEach ( function ( type , i ) {
validators [ type ] = function validator ( thing ) {
return typeof thing === type || "a" + ( i < 1 ? "n " : " " ) + type ;
} ;
} ) ;
var deprecatedWarnings = { } ;
validators . transitional = function transitional ( validator , version2 , message ) {
function formatMessage ( opt , desc ) {
return "[Axios v" + VERSION6 + "] Transitional option '" + opt + "'" + desc + ( message ? ". " + message : "" ) ;
}
return function ( value , opt , opts ) {
if ( validator === false ) {
throw new Error ( formatMessage ( opt , " has been removed" + ( version2 ? " in " + version2 : "" ) ) ) ;
}
if ( version2 && ! deprecatedWarnings [ opt ] ) {
deprecatedWarnings [ opt ] = true ;
console . warn ( formatMessage ( opt , " has been deprecated since v" + version2 + " and will be removed in the near future" ) ) ;
}
return validator ? validator ( value , opt , opts ) : true ;
} ;
} ;
function assertOptions ( options , schema , allowUnknown ) {
if ( typeof options !== "object" ) {
throw new TypeError ( "options must be an object" ) ;
}
var keys = Object . keys ( options ) ;
var i = keys . length ;
while ( i -- > 0 ) {
var opt = keys [ i ] ;
var validator = schema [ opt ] ;
if ( validator ) {
var value = options [ opt ] ;
var result = value === void 0 || validator ( value , opt , options ) ;
if ( result !== true ) {
throw new TypeError ( "option " + opt + " must be " + result ) ;
}
continue ;
}
if ( allowUnknown !== true ) {
throw Error ( "Unknown option " + opt ) ;
}
}
}
module2 . exports = {
assertOptions ,
validators
} ;
}
} ) ;
// node_modules/axios/lib/core/Axios.js
var require _Axios = _ _commonJS ( {
"node_modules/axios/lib/core/Axios.js" ( exports , module2 ) {
"use strict" ;
var utils = require _utils ( ) ;
var buildURL = require _buildURL ( ) ;
var InterceptorManager = require _InterceptorManager ( ) ;
var dispatchRequest = require _dispatchRequest ( ) ;
var mergeConfig = require _mergeConfig ( ) ;
var validator = require _validator ( ) ;
var validators = validator . validators ;
function Axios ( instanceConfig ) {
this . defaults = instanceConfig ;
this . interceptors = {
request : new InterceptorManager ( ) ,
response : new InterceptorManager ( )
} ;
}
Axios . prototype . request = function request2 ( configOrUrl , config ) {
if ( typeof configOrUrl === "string" ) {
config = config || { } ;
config . url = configOrUrl ;
} else {
config = configOrUrl || { } ;
}
config = mergeConfig ( this . defaults , config ) ;
if ( config . method ) {
config . method = config . method . toLowerCase ( ) ;
} else if ( this . defaults . method ) {
config . method = this . defaults . method . toLowerCase ( ) ;
} else {
config . method = "get" ;
}
var transitional = config . transitional ;
if ( transitional !== void 0 ) {
validator . assertOptions ( transitional , {
silentJSONParsing : validators . transitional ( validators . boolean ) ,
forcedJSONParsing : validators . transitional ( validators . boolean ) ,
clarifyTimeoutError : validators . transitional ( validators . boolean )
} , false ) ;
}
var requestInterceptorChain = [ ] ;
var synchronousRequestInterceptors = true ;
this . interceptors . request . forEach ( function unshiftRequestInterceptors ( interceptor ) {
if ( typeof interceptor . runWhen === "function" && interceptor . runWhen ( config ) === false ) {
return ;
}
synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor . synchronous ;
requestInterceptorChain . unshift ( interceptor . fulfilled , interceptor . rejected ) ;
} ) ;
var responseInterceptorChain = [ ] ;
this . interceptors . response . forEach ( function pushResponseInterceptors ( interceptor ) {
responseInterceptorChain . push ( interceptor . fulfilled , interceptor . rejected ) ;
} ) ;
var promise ;
if ( ! synchronousRequestInterceptors ) {
var chain = [ dispatchRequest , void 0 ] ;
Array . prototype . unshift . apply ( chain , requestInterceptorChain ) ;
chain = chain . concat ( responseInterceptorChain ) ;
promise = Promise . resolve ( config ) ;
while ( chain . length ) {
promise = promise . then ( chain . shift ( ) , chain . shift ( ) ) ;
}
return promise ;
}
var newConfig = config ;
while ( requestInterceptorChain . length ) {
var onFulfilled = requestInterceptorChain . shift ( ) ;
var onRejected = requestInterceptorChain . shift ( ) ;
try {
newConfig = onFulfilled ( newConfig ) ;
} catch ( error ) {
onRejected ( error ) ;
break ;
}
}
try {
promise = dispatchRequest ( newConfig ) ;
} catch ( error ) {
return Promise . reject ( error ) ;
}
while ( responseInterceptorChain . length ) {
promise = promise . then ( responseInterceptorChain . shift ( ) , responseInterceptorChain . shift ( ) ) ;
}
return promise ;
} ;
Axios . prototype . getUri = function getUri ( config ) {
config = mergeConfig ( this . defaults , config ) ;
return buildURL ( config . url , config . params , config . paramsSerializer ) . replace ( /^\?/ , "" ) ;
} ;
utils . forEach ( [ "delete" , "get" , "head" , "options" ] , function forEachMethodNoData ( method ) {
Axios . prototype [ method ] = function ( url , config ) {
return this . request ( mergeConfig ( config || { } , {
method ,
url ,
data : ( config || { } ) . data
} ) ) ;
} ;
} ) ;
utils . forEach ( [ "post" , "put" , "patch" ] , function forEachMethodWithData ( method ) {
Axios . prototype [ method ] = function ( url , data , config ) {
return this . request ( mergeConfig ( config || { } , {
method ,
url ,
data
} ) ) ;
} ;
} ) ;
module2 . exports = Axios ;
}
} ) ;
// node_modules/axios/lib/cancel/CancelToken.js
var require _CancelToken = _ _commonJS ( {
"node_modules/axios/lib/cancel/CancelToken.js" ( exports , module2 ) {
"use strict" ;
var Cancel = require _Cancel ( ) ;
function CancelToken ( executor ) {
if ( typeof executor !== "function" ) {
throw new TypeError ( "executor must be a function." ) ;
}
var resolvePromise ;
this . promise = new Promise ( function promiseExecutor ( resolve ) {
resolvePromise = resolve ;
} ) ;
var token = this ;
this . promise . then ( function ( cancel ) {
if ( ! token . _listeners )
return ;
var i ;
var l = token . _listeners . length ;
for ( i = 0 ; i < l ; i ++ ) {
token . _listeners [ i ] ( cancel ) ;
}
token . _listeners = null ;
} ) ;
this . promise . then = function ( onfulfilled ) {
var _resolve ;
var promise = new Promise ( function ( resolve ) {
token . subscribe ( resolve ) ;
_resolve = resolve ;
} ) . then ( onfulfilled ) ;
promise . cancel = function reject ( ) {
token . unsubscribe ( _resolve ) ;
} ;
return promise ;
} ;
executor ( function cancel ( message ) {
if ( token . reason ) {
return ;
}
token . reason = new Cancel ( message ) ;
resolvePromise ( token . reason ) ;
} ) ;
}
CancelToken . prototype . throwIfRequested = function throwIfRequested ( ) {
if ( this . reason ) {
throw this . reason ;
}
} ;
CancelToken . prototype . subscribe = function subscribe ( listener ) {
if ( this . reason ) {
listener ( this . reason ) ;
return ;
}
if ( this . _listeners ) {
this . _listeners . push ( listener ) ;
} else {
this . _listeners = [ listener ] ;
}
} ;
CancelToken . prototype . unsubscribe = function unsubscribe ( listener ) {
if ( ! this . _listeners ) {
return ;
}
var index = this . _listeners . indexOf ( listener ) ;
if ( index !== - 1 ) {
this . _listeners . splice ( index , 1 ) ;
}
} ;
CancelToken . source = function source ( ) {
var cancel ;
var token = new CancelToken ( function executor ( c ) {
cancel = c ;
} ) ;
return {
token ,
cancel
} ;
} ;
module2 . exports = CancelToken ;
}
} ) ;
// node_modules/axios/lib/helpers/spread.js
var require _spread = _ _commonJS ( {
"node_modules/axios/lib/helpers/spread.js" ( exports , module2 ) {
"use strict" ;
module2 . exports = function spread ( callback ) {
return function wrap ( arr ) {
return callback . apply ( null , arr ) ;
} ;
} ;
}
} ) ;
// node_modules/axios/lib/helpers/isAxiosError.js
var require _isAxiosError = _ _commonJS ( {
"node_modules/axios/lib/helpers/isAxiosError.js" ( exports , module2 ) {
"use strict" ;
var utils = require _utils ( ) ;
module2 . exports = function isAxiosError ( payload ) {
return utils . isObject ( payload ) && payload . isAxiosError === true ;
} ;
}
} ) ;
// node_modules/axios/lib/axios.js
var require _axios = _ _commonJS ( {
"node_modules/axios/lib/axios.js" ( exports , module2 ) {
"use strict" ;
var utils = require _utils ( ) ;
var bind = require _bind ( ) ;
var Axios = require _Axios ( ) ;
var mergeConfig = require _mergeConfig ( ) ;
var defaults = require _defaults ( ) ;
function createInstance ( defaultConfig ) {
var context = new Axios ( defaultConfig ) ;
var instance = bind ( Axios . prototype . request , context ) ;
utils . extend ( instance , Axios . prototype , context ) ;
utils . extend ( instance , context ) ;
instance . create = function create ( instanceConfig ) {
return createInstance ( mergeConfig ( defaultConfig , instanceConfig ) ) ;
} ;
return instance ;
}
var axios2 = createInstance ( defaults ) ;
axios2 . Axios = Axios ;
axios2 . Cancel = require _Cancel ( ) ;
axios2 . CancelToken = require _CancelToken ( ) ;
axios2 . isCancel = require _isCancel ( ) ;
axios2 . VERSION = require _data ( ) . version ;
axios2 . all = function all ( promises ) {
return Promise . all ( promises ) ;
} ;
axios2 . spread = require _spread ( ) ;
axios2 . isAxiosError = require _isAxiosError ( ) ;
module2 . exports = axios2 ;
module2 . exports . default = axios2 ;
}
} ) ;
// node_modules/axios/index.js
var require _axios2 = _ _commonJS ( {
"node_modules/axios/index.js" ( exports , module2 ) {
module2 . exports = require _axios ( ) ;
}
} ) ;
// main.ts
_ _export ( exports , {
default : ( ) => DigitalGarden
} ) ;
var import _obsidian5 = _ _toModule ( require ( "obsidian" ) ) ;
// Publisher.ts
var import _obsidian2 = _ _toModule ( require ( "obsidian" ) ) ;
// node_modules/js-base64/base64.mjs
var version = "3.7.2" ;
var VERSION = version ;
var _hasatob = typeof atob === "function" ;
var _hasbtoa = typeof btoa === "function" ;
var _hasBuffer = typeof Buffer === "function" ;
var _TD = typeof TextDecoder === "function" ? new TextDecoder ( ) : void 0 ;
var _TE = typeof TextEncoder === "function" ? new TextEncoder ( ) : void 0 ;
var b64ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" ;
var b64chs = Array . prototype . slice . call ( b64ch ) ;
var b64tab = ( ( a ) => {
let tab = { } ;
a . forEach ( ( c , i ) => tab [ c ] = i ) ;
return tab ;
} ) ( b64chs ) ;
var b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/ ;
var _fromCC = String . fromCharCode . bind ( String ) ;
var _U8Afrom = typeof Uint8Array . from === "function" ? Uint8Array . from . bind ( Uint8Array ) : ( it , fn = ( x ) => x ) => new Uint8Array ( Array . prototype . slice . call ( it , 0 ) . map ( fn ) ) ;
var _mkUriSafe = ( src ) => src . replace ( /=/g , "" ) . replace ( /[+\/]/g , ( m0 ) => m0 == "+" ? "-" : "_" ) ;
var _tidyB64 = ( s ) => s . replace ( /[^A-Za-z0-9\+\/]/g , "" ) ;
var btoaPolyfill = ( bin ) => {
let u32 , c0 , c1 , c2 , asc = "" ;
const pad = bin . length % 3 ;
for ( let i = 0 ; i < bin . length ; ) {
if ( ( c0 = bin . charCodeAt ( i ++ ) ) > 255 || ( c1 = bin . charCodeAt ( i ++ ) ) > 255 || ( c2 = bin . charCodeAt ( i ++ ) ) > 255 )
throw new TypeError ( "invalid character found" ) ;
u32 = c0 << 16 | c1 << 8 | c2 ;
asc += b64chs [ u32 >> 18 & 63 ] + b64chs [ u32 >> 12 & 63 ] + b64chs [ u32 >> 6 & 63 ] + b64chs [ u32 & 63 ] ;
}
return pad ? asc . slice ( 0 , pad - 3 ) + "===" . substring ( pad ) : asc ;
} ;
var _btoa = _hasbtoa ? ( bin ) => btoa ( bin ) : _hasBuffer ? ( bin ) => Buffer . from ( bin , "binary" ) . toString ( "base64" ) : btoaPolyfill ;
var _fromUint8Array = _hasBuffer ? ( u8a ) => Buffer . from ( u8a ) . toString ( "base64" ) : ( u8a ) => {
const maxargs = 4096 ;
let strs = [ ] ;
for ( let i = 0 , l = u8a . length ; i < l ; i += maxargs ) {
strs . push ( _fromCC . apply ( null , u8a . subarray ( i , i + maxargs ) ) ) ;
}
return _btoa ( strs . join ( "" ) ) ;
} ;
var fromUint8Array = ( u8a , urlsafe = false ) => urlsafe ? _mkUriSafe ( _fromUint8Array ( u8a ) ) : _fromUint8Array ( u8a ) ;
var cb _utob = ( c ) => {
if ( c . length < 2 ) {
var cc = c . charCodeAt ( 0 ) ;
return cc < 128 ? c : cc < 2048 ? _fromCC ( 192 | cc >>> 6 ) + _fromCC ( 128 | cc & 63 ) : _fromCC ( 224 | cc >>> 12 & 15 ) + _fromCC ( 128 | cc >>> 6 & 63 ) + _fromCC ( 128 | cc & 63 ) ;
} else {
var cc = 65536 + ( c . charCodeAt ( 0 ) - 55296 ) * 1024 + ( c . charCodeAt ( 1 ) - 56320 ) ;
return _fromCC ( 240 | cc >>> 18 & 7 ) + _fromCC ( 128 | cc >>> 12 & 63 ) + _fromCC ( 128 | cc >>> 6 & 63 ) + _fromCC ( 128 | cc & 63 ) ;
}
} ;
var re _utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g ;
var utob = ( u ) => u . replace ( re _utob , cb _utob ) ;
var _encode = _hasBuffer ? ( s ) => Buffer . from ( s , "utf8" ) . toString ( "base64" ) : _TE ? ( s ) => _fromUint8Array ( _TE . encode ( s ) ) : ( s ) => _btoa ( utob ( s ) ) ;
var encode = ( src , urlsafe = false ) => urlsafe ? _mkUriSafe ( _encode ( src ) ) : _encode ( src ) ;
var encodeURI2 = ( src ) => encode ( src , true ) ;
var re _btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g ;
var cb _btou = ( cccc ) => {
switch ( cccc . length ) {
case 4 :
var cp = ( 7 & cccc . charCodeAt ( 0 ) ) << 18 | ( 63 & cccc . charCodeAt ( 1 ) ) << 12 | ( 63 & cccc . charCodeAt ( 2 ) ) << 6 | 63 & cccc . charCodeAt ( 3 ) , offset = cp - 65536 ;
return _fromCC ( ( offset >>> 10 ) + 55296 ) + _fromCC ( ( offset & 1023 ) + 56320 ) ;
case 3 :
return _fromCC ( ( 15 & cccc . charCodeAt ( 0 ) ) << 12 | ( 63 & cccc . charCodeAt ( 1 ) ) << 6 | 63 & cccc . charCodeAt ( 2 ) ) ;
default :
return _fromCC ( ( 31 & cccc . charCodeAt ( 0 ) ) << 6 | 63 & cccc . charCodeAt ( 1 ) ) ;
}
} ;
var btou = ( b ) => b . replace ( re _btou , cb _btou ) ;
var atobPolyfill = ( asc ) => {
asc = asc . replace ( /\s+/g , "" ) ;
if ( ! b64re . test ( asc ) )
throw new TypeError ( "malformed base64." ) ;
asc += "==" . slice ( 2 - ( asc . length & 3 ) ) ;
let u24 , bin = "" , r1 , r2 ;
for ( let i = 0 ; i < asc . length ; ) {
u24 = b64tab [ asc . charAt ( i ++ ) ] << 18 | b64tab [ asc . charAt ( i ++ ) ] << 12 | ( r1 = b64tab [ asc . charAt ( i ++ ) ] ) << 6 | ( r2 = b64tab [ asc . charAt ( i ++ ) ] ) ;
bin += r1 === 64 ? _fromCC ( u24 >> 16 & 255 ) : r2 === 64 ? _fromCC ( u24 >> 16 & 255 , u24 >> 8 & 255 ) : _fromCC ( u24 >> 16 & 255 , u24 >> 8 & 255 , u24 & 255 ) ;
}
return bin ;
} ;
var _atob = _hasatob ? ( asc ) => atob ( _tidyB64 ( asc ) ) : _hasBuffer ? ( asc ) => Buffer . from ( asc , "base64" ) . toString ( "binary" ) : atobPolyfill ;
var _toUint8Array = _hasBuffer ? ( a ) => _U8Afrom ( Buffer . from ( a , "base64" ) ) : ( a ) => _U8Afrom ( _atob ( a ) , ( c ) => c . charCodeAt ( 0 ) ) ;
var toUint8Array = ( a ) => _toUint8Array ( _unURI ( a ) ) ;
var _decode = _hasBuffer ? ( a ) => Buffer . from ( a , "base64" ) . toString ( "utf8" ) : _TD ? ( a ) => _TD . decode ( _toUint8Array ( a ) ) : ( a ) => btou ( _atob ( a ) ) ;
var _unURI = ( a ) => _tidyB64 ( a . replace ( /[-_]/g , ( m0 ) => m0 == "-" ? "+" : "/" ) ) ;
var decode = ( src ) => _decode ( _unURI ( src ) ) ;
var isValid = ( src ) => {
if ( typeof src !== "string" )
return false ;
const s = src . replace ( /\s+/g , "" ) . replace ( /={0,2}$/ , "" ) ;
return ! /[^\s0-9a-zA-Z\+/]/ . test ( s ) || ! /[^\s0-9a-zA-Z\-_]/ . test ( s ) ;
} ;
var _noEnum = ( v ) => {
return {
value : v ,
enumerable : false ,
writable : true ,
configurable : true
} ;
} ;
var extendString = function ( ) {
const _add = ( name , body ) => Object . defineProperty ( String . prototype , name , _noEnum ( body ) ) ;
_add ( "fromBase64" , function ( ) {
return decode ( this ) ;
} ) ;
_add ( "toBase64" , function ( urlsafe ) {
return encode ( this , urlsafe ) ;
} ) ;
_add ( "toBase64URI" , function ( ) {
return encode ( this , true ) ;
} ) ;
_add ( "toBase64URL" , function ( ) {
return encode ( this , true ) ;
} ) ;
_add ( "toUint8Array" , function ( ) {
return toUint8Array ( this ) ;
} ) ;
} ;
var extendUint8Array = function ( ) {
const _add = ( name , body ) => Object . defineProperty ( Uint8Array . prototype , name , _noEnum ( body ) ) ;
_add ( "toBase64" , function ( urlsafe ) {
return fromUint8Array ( this , urlsafe ) ;
} ) ;
_add ( "toBase64URI" , function ( ) {
return fromUint8Array ( this , true ) ;
} ) ;
_add ( "toBase64URL" , function ( ) {
return fromUint8Array ( this , true ) ;
} ) ;
} ;
var extendBuiltins = ( ) => {
extendString ( ) ;
extendUint8Array ( ) ;
} ;
var gBase64 = {
version ,
VERSION ,
atob : _atob ,
atobPolyfill ,
btoa : _btoa ,
btoaPolyfill ,
fromBase64 : decode ,
toBase64 : encode ,
encode ,
encodeURI : encodeURI2 ,
encodeURL : encodeURI2 ,
utob ,
btou ,
decode ,
isValid ,
fromUint8Array ,
toUint8Array ,
extendString ,
extendUint8Array ,
extendBuiltins
} ;
// node_modules/universal-user-agent/dist-web/index.js
function getUserAgent ( ) {
if ( typeof navigator === "object" && "userAgent" in navigator ) {
return navigator . userAgent ;
}
if ( typeof process === "object" && "version" in process ) {
return ` Node.js/ ${ process . version . substr ( 1 ) } ( ${ process . platform } ; ${ process . arch } ) ` ;
}
return "<environment undetectable>" ;
}
// node_modules/@octokit/core/dist-web/index.js
var import _before _after _hook = _ _toModule ( require _before _after _hook ( ) ) ;
// node_modules/is-plain-object/dist/is-plain-object.mjs
function isObject ( o ) {
return Object . prototype . toString . call ( o ) === "[object Object]" ;
}
function isPlainObject ( o ) {
var ctor , prot ;
if ( isObject ( o ) === false )
return false ;
ctor = o . constructor ;
if ( ctor === void 0 )
return true ;
prot = ctor . prototype ;
if ( isObject ( prot ) === false )
return false ;
if ( prot . hasOwnProperty ( "isPrototypeOf" ) === false ) {
return false ;
}
return true ;
}
// node_modules/@octokit/endpoint/dist-web/index.js
function lowercaseKeys ( object ) {
if ( ! object ) {
return { } ;
}
return Object . keys ( object ) . reduce ( ( newObj , key ) => {
newObj [ key . toLowerCase ( ) ] = object [ key ] ;
return newObj ;
} , { } ) ;
}
function mergeDeep ( defaults , options ) {
const result = Object . assign ( { } , defaults ) ;
Object . keys ( options ) . forEach ( ( key ) => {
if ( isPlainObject ( options [ key ] ) ) {
if ( ! ( key in defaults ) )
Object . assign ( result , { [ key ] : options [ key ] } ) ;
else
result [ key ] = mergeDeep ( defaults [ key ] , options [ key ] ) ;
} else {
Object . assign ( result , { [ key ] : options [ key ] } ) ;
}
} ) ;
return result ;
}
function removeUndefinedProperties ( obj ) {
for ( const key in obj ) {
if ( obj [ key ] === void 0 ) {
delete obj [ key ] ;
}
}
return obj ;
}
function merge ( defaults , route , options ) {
if ( typeof route === "string" ) {
let [ method , url ] = route . split ( " " ) ;
options = Object . assign ( url ? { method , url } : { url : method } , options ) ;
} else {
options = Object . assign ( { } , route ) ;
}
options . headers = lowercaseKeys ( options . headers ) ;
removeUndefinedProperties ( options ) ;
removeUndefinedProperties ( options . headers ) ;
const mergedOptions = mergeDeep ( defaults || { } , options ) ;
if ( defaults && defaults . mediaType . previews . length ) {
mergedOptions . mediaType . previews = defaults . mediaType . previews . filter ( ( preview ) => ! mergedOptions . mediaType . previews . includes ( preview ) ) . concat ( mergedOptions . mediaType . previews ) ;
}
mergedOptions . mediaType . previews = mergedOptions . mediaType . previews . map ( ( preview ) => preview . replace ( /-preview/ , "" ) ) ;
return mergedOptions ;
}
function addQueryParameters ( url , parameters ) {
const separator = /\?/ . test ( url ) ? "&" : "?" ;
const names = Object . keys ( parameters ) ;
if ( names . length === 0 ) {
return url ;
}
return url + separator + names . map ( ( name ) => {
if ( name === "q" ) {
return "q=" + parameters . q . split ( "+" ) . map ( encodeURIComponent ) . join ( "+" ) ;
}
return ` ${ name } = ${ encodeURIComponent ( parameters [ name ] ) } ` ;
} ) . join ( "&" ) ;
}
var urlVariableRegex = /\{[^}]+\}/g ;
function removeNonChars ( variableName ) {
return variableName . replace ( /^\W+|\W+$/g , "" ) . split ( /,/ ) ;
}
function extractUrlVariableNames ( url ) {
const matches = url . match ( urlVariableRegex ) ;
if ( ! matches ) {
return [ ] ;
}
return matches . map ( removeNonChars ) . reduce ( ( a , b ) => a . concat ( b ) , [ ] ) ;
}
function omit ( object , keysToOmit ) {
return Object . keys ( object ) . filter ( ( option ) => ! keysToOmit . includes ( option ) ) . reduce ( ( obj , key ) => {
obj [ key ] = object [ key ] ;
return obj ;
} , { } ) ;
}
function encodeReserved ( str ) {
return str . split ( /(%[0-9A-Fa-f]{2})/g ) . map ( function ( part ) {
if ( ! /%[0-9A-Fa-f]/ . test ( part ) ) {
part = encodeURI ( part ) . replace ( /%5B/g , "[" ) . replace ( /%5D/g , "]" ) ;
}
return part ;
} ) . join ( "" ) ;
}
function encodeUnreserved ( str ) {
return encodeURIComponent ( str ) . replace ( /[!'()*]/g , function ( c ) {
return "%" + c . charCodeAt ( 0 ) . toString ( 16 ) . toUpperCase ( ) ;
} ) ;
}
function encodeValue ( operator , value , key ) {
value = operator === "+" || operator === "#" ? encodeReserved ( value ) : encodeUnreserved ( value ) ;
if ( key ) {
return encodeUnreserved ( key ) + "=" + value ;
} else {
return value ;
}
}
function isDefined ( value ) {
return value !== void 0 && value !== null ;
}
function isKeyOperator ( operator ) {
return operator === ";" || operator === "&" || operator === "?" ;
}
function getValues ( context , operator , key , modifier ) {
var value = context [ key ] , result = [ ] ;
if ( isDefined ( value ) && value !== "" ) {
if ( typeof value === "string" || typeof value === "number" || typeof value === "boolean" ) {
value = value . toString ( ) ;
if ( modifier && modifier !== "*" ) {
value = value . substring ( 0 , parseInt ( modifier , 10 ) ) ;
}
result . push ( encodeValue ( operator , value , isKeyOperator ( operator ) ? key : "" ) ) ;
} else {
if ( modifier === "*" ) {
if ( Array . isArray ( value ) ) {
value . filter ( isDefined ) . forEach ( function ( value2 ) {
result . push ( encodeValue ( operator , value2 , isKeyOperator ( operator ) ? key : "" ) ) ;
} ) ;
} else {
Object . keys ( value ) . forEach ( function ( k ) {
if ( isDefined ( value [ k ] ) ) {
result . push ( encodeValue ( operator , value [ k ] , k ) ) ;
}
} ) ;
}
} else {
const tmp = [ ] ;
if ( Array . isArray ( value ) ) {
value . filter ( isDefined ) . forEach ( function ( value2 ) {
tmp . push ( encodeValue ( operator , value2 ) ) ;
} ) ;
} else {
Object . keys ( value ) . forEach ( function ( k ) {
if ( isDefined ( value [ k ] ) ) {
tmp . push ( encodeUnreserved ( k ) ) ;
tmp . push ( encodeValue ( operator , value [ k ] . toString ( ) ) ) ;
}
} ) ;
}
if ( isKeyOperator ( operator ) ) {
result . push ( encodeUnreserved ( key ) + "=" + tmp . join ( "," ) ) ;
} else if ( tmp . length !== 0 ) {
result . push ( tmp . join ( "," ) ) ;
}
}
}
} else {
if ( operator === ";" ) {
if ( isDefined ( value ) ) {
result . push ( encodeUnreserved ( key ) ) ;
}
} else if ( value === "" && ( operator === "&" || operator === "?" ) ) {
result . push ( encodeUnreserved ( key ) + "=" ) ;
} else if ( value === "" ) {
result . push ( "" ) ;
}
}
return result ;
}
function parseUrl ( template ) {
return {
expand : expand . bind ( null , template )
} ;
}
function expand ( template , context ) {
var operators = [ "+" , "#" , "." , "/" , ";" , "?" , "&" ] ;
return template . replace ( /\{([^\{\}]+)\}|([^\{\}]+)/g , function ( _ , expression , literal ) {
if ( expression ) {
let operator = "" ;
const values = [ ] ;
if ( operators . indexOf ( expression . charAt ( 0 ) ) !== - 1 ) {
operator = expression . charAt ( 0 ) ;
expression = expression . substr ( 1 ) ;
}
expression . split ( /,/g ) . forEach ( function ( variable ) {
var tmp = /([^:\*]*)(?::(\d+)|(\*))?/ . exec ( variable ) ;
values . push ( getValues ( context , operator , tmp [ 1 ] , tmp [ 2 ] || tmp [ 3 ] ) ) ;
} ) ;
if ( operator && operator !== "+" ) {
var separator = "," ;
if ( operator === "?" ) {
separator = "&" ;
} else if ( operator !== "#" ) {
separator = operator ;
}
return ( values . length !== 0 ? operator : "" ) + values . join ( separator ) ;
} else {
return values . join ( "," ) ;
}
} else {
return encodeReserved ( literal ) ;
}
} ) ;
}
function parse ( options ) {
let method = options . method . toUpperCase ( ) ;
let url = ( options . url || "/" ) . replace ( /:([a-z]\w+)/g , "{$1}" ) ;
let headers = Object . assign ( { } , options . headers ) ;
let body ;
let parameters = omit ( options , [
"method" ,
"baseUrl" ,
"url" ,
"headers" ,
"request" ,
"mediaType"
] ) ;
const urlVariableNames = extractUrlVariableNames ( url ) ;
url = parseUrl ( url ) . expand ( parameters ) ;
if ( ! /^http/ . test ( url ) ) {
url = options . baseUrl + url ;
}
const omittedParameters = Object . keys ( options ) . filter ( ( option ) => urlVariableNames . includes ( option ) ) . concat ( "baseUrl" ) ;
const remainingParameters = omit ( parameters , omittedParameters ) ;
const isBinaryRequest = /application\/octet-stream/i . test ( headers . accept ) ;
if ( ! isBinaryRequest ) {
if ( options . mediaType . format ) {
headers . accept = headers . accept . split ( /,/ ) . map ( ( preview ) => preview . replace ( /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/ , ` application/vnd $ 1 $ 2. ${ options . mediaType . format } ` ) ) . join ( "," ) ;
}
if ( options . mediaType . previews . length ) {
const previewsFromAcceptHeader = headers . accept . match ( /[\w-]+(?=-preview)/g ) || [ ] ;
headers . accept = previewsFromAcceptHeader . concat ( options . mediaType . previews ) . map ( ( preview ) => {
const format = options . mediaType . format ? ` . ${ options . mediaType . format } ` : "+json" ;
return ` application/vnd.github. ${ preview } -preview ${ format } ` ;
} ) . join ( "," ) ;
}
}
if ( [ "GET" , "HEAD" ] . includes ( method ) ) {
url = addQueryParameters ( url , remainingParameters ) ;
} else {
if ( "data" in remainingParameters ) {
body = remainingParameters . data ;
} else {
if ( Object . keys ( remainingParameters ) . length ) {
body = remainingParameters ;
} else {
headers [ "content-length" ] = 0 ;
}
}
}
if ( ! headers [ "content-type" ] && typeof body !== "undefined" ) {
headers [ "content-type" ] = "application/json; charset=utf-8" ;
}
if ( [ "PATCH" , "PUT" ] . includes ( method ) && typeof body === "undefined" ) {
body = "" ;
}
return Object . assign ( { method , url , headers } , typeof body !== "undefined" ? { body } : null , options . request ? { request : options . request } : null ) ;
}
function endpointWithDefaults ( defaults , route , options ) {
return parse ( merge ( defaults , route , options ) ) ;
}
function withDefaults ( oldDefaults , newDefaults ) {
const DEFAULTS2 = merge ( oldDefaults , newDefaults ) ;
const endpoint2 = endpointWithDefaults . bind ( null , DEFAULTS2 ) ;
return Object . assign ( endpoint2 , {
DEFAULTS : DEFAULTS2 ,
defaults : withDefaults . bind ( null , DEFAULTS2 ) ,
merge : merge . bind ( null , DEFAULTS2 ) ,
parse
} ) ;
}
var VERSION2 = "6.0.12" ;
var userAgent = ` octokit-endpoint.js/ ${ VERSION2 } ${ getUserAgent ( ) } ` ;
var DEFAULTS = {
method : "GET" ,
baseUrl : "https://api.github.com" ,
headers : {
accept : "application/vnd.github.v3+json" ,
"user-agent" : userAgent
} ,
mediaType : {
format : "" ,
previews : [ ]
}
} ;
var endpoint = withDefaults ( null , DEFAULTS ) ;
// node_modules/@octokit/request/dist-web/index.js
var import _node _fetch = _ _toModule ( require _browser ( ) ) ;
// node_modules/deprecation/dist-web/index.js
var Deprecation = class extends Error {
constructor ( message ) {
super ( message ) ;
if ( Error . captureStackTrace ) {
Error . captureStackTrace ( this , this . constructor ) ;
}
this . name = "Deprecation" ;
}
} ;
// node_modules/@octokit/request-error/dist-web/index.js
var import _once = _ _toModule ( require _once ( ) ) ;
var logOnceCode = ( 0 , import _once . default ) ( ( deprecation ) => console . warn ( deprecation ) ) ;
var logOnceHeaders = ( 0 , import _once . default ) ( ( deprecation ) => console . warn ( deprecation ) ) ;
var RequestError = class extends Error {
constructor ( message , statusCode , options ) {
super ( message ) ;
if ( Error . captureStackTrace ) {
Error . captureStackTrace ( this , this . constructor ) ;
}
this . name = "HttpError" ;
this . status = statusCode ;
let headers ;
if ( "headers" in options && typeof options . headers !== "undefined" ) {
headers = options . headers ;
}
if ( "response" in options ) {
this . response = options . response ;
headers = options . response . headers ;
}
const requestCopy = Object . assign ( { } , options . request ) ;
if ( options . request . headers . authorization ) {
requestCopy . headers = Object . assign ( { } , options . request . headers , {
authorization : options . request . headers . authorization . replace ( / .*$/ , " [REDACTED]" )
} ) ;
}
requestCopy . url = requestCopy . url . replace ( /\bclient_secret=\w+/g , "client_secret=[REDACTED]" ) . replace ( /\baccess_token=\w+/g , "access_token=[REDACTED]" ) ;
this . request = requestCopy ;
Object . defineProperty ( this , "code" , {
get ( ) {
logOnceCode ( new Deprecation ( "[@octokit/request-error] `error.code` is deprecated, use `error.status`." ) ) ;
return statusCode ;
}
} ) ;
Object . defineProperty ( this , "headers" , {
get ( ) {
logOnceHeaders ( new Deprecation ( "[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`." ) ) ;
return headers || { } ;
}
} ) ;
}
} ;
// node_modules/@octokit/request/dist-web/index.js
var VERSION3 = "5.6.3" ;
function getBufferResponse ( response ) {
return response . arrayBuffer ( ) ;
}
function fetchWrapper ( requestOptions ) {
const log = requestOptions . request && requestOptions . request . log ? requestOptions . request . log : console ;
if ( isPlainObject ( requestOptions . body ) || Array . isArray ( requestOptions . body ) ) {
requestOptions . body = JSON . stringify ( requestOptions . body ) ;
}
let headers = { } ;
let status ;
let url ;
const fetch = requestOptions . request && requestOptions . request . fetch || import _node _fetch . default ;
return fetch ( requestOptions . url , Object . assign ( {
method : requestOptions . method ,
body : requestOptions . body ,
headers : requestOptions . headers ,
redirect : requestOptions . redirect
} , requestOptions . request ) ) . then ( ( response ) => _ _async ( this , null , function * ( ) {
url = response . url ;
status = response . status ;
for ( const keyAndValue of response . headers ) {
headers [ keyAndValue [ 0 ] ] = keyAndValue [ 1 ] ;
}
if ( "deprecation" in headers ) {
const matches = headers . link && headers . link . match ( /<([^>]+)>; rel="deprecation"/ ) ;
const deprecationLink = matches && matches . pop ( ) ;
log . warn ( ` [@octokit/request] " ${ requestOptions . method } ${ requestOptions . url } " is deprecated. It is scheduled to be removed on ${ headers . sunset } ${ deprecationLink ? ` . See ${ deprecationLink } ` : "" } ` ) ;
}
if ( status === 204 || status === 205 ) {
return ;
}
if ( requestOptions . method === "HEAD" ) {
if ( status < 400 ) {
return ;
}
throw new RequestError ( response . statusText , status , {
response : {
url ,
status ,
headers ,
data : void 0
} ,
request : requestOptions
} ) ;
}
if ( status === 304 ) {
throw new RequestError ( "Not modified" , status , {
response : {
url ,
status ,
headers ,
data : yield getResponseData ( response )
} ,
request : requestOptions
} ) ;
}
if ( status >= 400 ) {
const data = yield getResponseData ( response ) ;
const error = new RequestError ( toErrorMessage ( data ) , status , {
response : {
url ,
status ,
headers ,
data
} ,
request : requestOptions
} ) ;
throw error ;
}
return getResponseData ( response ) ;
} ) ) . then ( ( data ) => {
return {
status ,
url ,
headers ,
data
} ;
} ) . catch ( ( error ) => {
if ( error instanceof RequestError )
throw error ;
throw new RequestError ( error . message , 500 , {
request : requestOptions
} ) ;
} ) ;
}
function getResponseData ( response ) {
return _ _async ( this , null , function * ( ) {
const contentType = response . headers . get ( "content-type" ) ;
if ( /application\/json/ . test ( contentType ) ) {
return response . json ( ) ;
}
if ( ! contentType || /^text\/|charset=utf-8$/ . test ( contentType ) ) {
return response . text ( ) ;
}
return getBufferResponse ( response ) ;
} ) ;
}
function toErrorMessage ( data ) {
if ( typeof data === "string" )
return data ;
if ( "message" in data ) {
if ( Array . isArray ( data . errors ) ) {
return ` ${ data . message } : ${ data . errors . map ( JSON . stringify ) . join ( ", " ) } ` ;
}
return data . message ;
}
return ` Unknown error: ${ JSON . stringify ( data ) } ` ;
}
function withDefaults2 ( oldEndpoint , newDefaults ) {
const endpoint2 = oldEndpoint . defaults ( newDefaults ) ;
const newApi = function ( route , parameters ) {
const endpointOptions = endpoint2 . merge ( route , parameters ) ;
if ( ! endpointOptions . request || ! endpointOptions . request . hook ) {
return fetchWrapper ( endpoint2 . parse ( endpointOptions ) ) ;
}
const request2 = ( route2 , parameters2 ) => {
return fetchWrapper ( endpoint2 . parse ( endpoint2 . merge ( route2 , parameters2 ) ) ) ;
} ;
Object . assign ( request2 , {
endpoint : endpoint2 ,
defaults : withDefaults2 . bind ( null , endpoint2 )
} ) ;
return endpointOptions . request . hook ( request2 , endpointOptions ) ;
} ;
return Object . assign ( newApi , {
endpoint : endpoint2 ,
defaults : withDefaults2 . bind ( null , endpoint2 )
} ) ;
}
var request = withDefaults2 ( endpoint , {
headers : {
"user-agent" : ` octokit-request.js/ ${ VERSION3 } ${ getUserAgent ( ) } `
}
} ) ;
// node_modules/@octokit/graphql/dist-web/index.js
var VERSION4 = "4.8.0" ;
function _buildMessageForResponseErrors ( data ) {
return ` Request failed due to following response errors:
` + data.errors.map((e) => ` - $ { e . message } ` ).join(" \n ");
}
var GraphqlResponseError = class extends Error {
constructor ( request2 , headers , response ) {
super ( _buildMessageForResponseErrors ( response ) ) ;
this . request = request2 ;
this . headers = headers ;
this . response = response ;
this . name = "GraphqlResponseError" ;
this . errors = response . errors ;
this . data = response . data ;
if ( Error . captureStackTrace ) {
Error . captureStackTrace ( this , this . constructor ) ;
}
}
} ;
var NON _VARIABLE _OPTIONS = [
"method" ,
"baseUrl" ,
"url" ,
"headers" ,
"request" ,
"query" ,
"mediaType"
] ;
var FORBIDDEN _VARIABLE _OPTIONS = [ "query" , "method" , "url" ] ;
var GHES _V3 _SUFFIX _REGEX = /\/api\/v3\/?$/ ;
function graphql ( request2 , query , options ) {
if ( options ) {
if ( typeof query === "string" && "query" in options ) {
return Promise . reject ( new Error ( ` [@octokit/graphql] "query" cannot be used as variable name ` ) ) ;
}
for ( const key in options ) {
if ( ! FORBIDDEN _VARIABLE _OPTIONS . includes ( key ) )
continue ;
return Promise . reject ( new Error ( ` [@octokit/graphql] " ${ key } " cannot be used as variable name ` ) ) ;
}
}
const parsedOptions = typeof query === "string" ? Object . assign ( { query } , options ) : query ;
const requestOptions = Object . keys ( parsedOptions ) . reduce ( ( result , key ) => {
if ( NON _VARIABLE _OPTIONS . includes ( key ) ) {
result [ key ] = parsedOptions [ key ] ;
return result ;
}
if ( ! result . variables ) {
result . variables = { } ;
}
result . variables [ key ] = parsedOptions [ key ] ;
return result ;
} , { } ) ;
const baseUrl = parsedOptions . baseUrl || request2 . endpoint . DEFAULTS . baseUrl ;
if ( GHES _V3 _SUFFIX _REGEX . test ( baseUrl ) ) {
requestOptions . url = baseUrl . replace ( GHES _V3 _SUFFIX _REGEX , "/api/graphql" ) ;
}
return request2 ( requestOptions ) . then ( ( response ) => {
if ( response . data . errors ) {
const headers = { } ;
for ( const key of Object . keys ( response . headers ) ) {
headers [ key ] = response . headers [ key ] ;
}
throw new GraphqlResponseError ( requestOptions , headers , response . data ) ;
}
return response . data . data ;
} ) ;
}
function withDefaults3 ( request$1 , newDefaults ) {
const newRequest = request$1 . defaults ( newDefaults ) ;
const newApi = ( query , options ) => {
return graphql ( newRequest , query , options ) ;
} ;
return Object . assign ( newApi , {
defaults : withDefaults3 . bind ( null , newRequest ) ,
endpoint : request . endpoint
} ) ;
}
var graphql$1 = withDefaults3 ( request , {
headers : {
"user-agent" : ` octokit-graphql.js/ ${ VERSION4 } ${ getUserAgent ( ) } `
} ,
method : "POST" ,
url : "/graphql"
} ) ;
function withCustomRequest ( customRequest ) {
return withDefaults3 ( customRequest , {
method : "POST" ,
url : "/graphql"
} ) ;
}
// node_modules/@octokit/auth-token/dist-web/index.js
var REGEX _IS _INSTALLATION _LEGACY = /^v1\./ ;
var REGEX _IS _INSTALLATION = /^ghs_/ ;
var REGEX _IS _USER _TO _SERVER = /^ghu_/ ;
function auth ( token ) {
return _ _async ( this , null , function * ( ) {
const isApp = token . split ( /\./ ) . length === 3 ;
const isInstallation = REGEX _IS _INSTALLATION _LEGACY . test ( token ) || REGEX _IS _INSTALLATION . test ( token ) ;
const isUserToServer = REGEX _IS _USER _TO _SERVER . test ( token ) ;
const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth" ;
return {
type : "token" ,
token ,
tokenType
} ;
} ) ;
}
function withAuthorizationPrefix ( token ) {
if ( token . split ( /\./ ) . length === 3 ) {
return ` bearer ${ token } ` ;
}
return ` token ${ token } ` ;
}
function hook ( token , request2 , route , parameters ) {
return _ _async ( this , null , function * ( ) {
const endpoint2 = request2 . endpoint . merge ( route , parameters ) ;
endpoint2 . headers . authorization = withAuthorizationPrefix ( token ) ;
return request2 ( endpoint2 ) ;
} ) ;
}
var createTokenAuth = function createTokenAuth2 ( token ) {
if ( ! token ) {
throw new Error ( "[@octokit/auth-token] No token passed to createTokenAuth" ) ;
}
if ( typeof token !== "string" ) {
throw new Error ( "[@octokit/auth-token] Token passed to createTokenAuth is not a string" ) ;
}
token = token . replace ( /^(token|bearer) +/i , "" ) ;
return Object . assign ( auth . bind ( null , token ) , {
hook : hook . bind ( null , token )
} ) ;
} ;
// node_modules/@octokit/core/dist-web/index.js
var VERSION5 = "3.5.1" ;
var Octokit = class {
constructor ( options = { } ) {
const hook2 = new import _before _after _hook . Collection ( ) ;
const requestDefaults = {
baseUrl : request . endpoint . DEFAULTS . baseUrl ,
headers : { } ,
request : Object . assign ( { } , options . request , {
hook : hook2 . bind ( null , "request" )
} ) ,
mediaType : {
previews : [ ] ,
format : ""
}
} ;
requestDefaults . headers [ "user-agent" ] = [
options . userAgent ,
` octokit-core.js/ ${ VERSION5 } ${ getUserAgent ( ) } `
] . filter ( Boolean ) . join ( " " ) ;
if ( options . baseUrl ) {
requestDefaults . baseUrl = options . baseUrl ;
}
if ( options . previews ) {
requestDefaults . mediaType . previews = options . previews ;
}
if ( options . timeZone ) {
requestDefaults . headers [ "time-zone" ] = options . timeZone ;
}
this . request = request . defaults ( requestDefaults ) ;
this . graphql = withCustomRequest ( this . request ) . defaults ( requestDefaults ) ;
this . log = Object . assign ( {
debug : ( ) => {
} ,
info : ( ) => {
} ,
warn : console . warn . bind ( console ) ,
error : console . error . bind ( console )
} , options . log ) ;
this . hook = hook2 ;
if ( ! options . authStrategy ) {
if ( ! options . auth ) {
this . auth = ( ) => _ _async ( this , null , function * ( ) {
return {
type : "unauthenticated"
} ;
} ) ;
} else {
const auth2 = createTokenAuth ( options . auth ) ;
hook2 . wrap ( "request" , auth2 . hook ) ;
this . auth = auth2 ;
}
} else {
const _a = options , { authStrategy } = _a , otherOptions = _ _objRest ( _a , [ "authStrategy" ] ) ;
const auth2 = authStrategy ( Object . assign ( {
request : this . request ,
log : this . log ,
octokit : this ,
octokitOptions : otherOptions
} , options . auth ) ) ;
hook2 . wrap ( "request" , auth2 . hook ) ;
this . auth = auth2 ;
}
const classConstructor = this . constructor ;
classConstructor . plugins . forEach ( ( plugin ) => {
Object . assign ( this , plugin ( this , options ) ) ;
} ) ;
}
static defaults ( defaults ) {
const OctokitWithDefaults = class extends this {
constructor ( ... args ) {
const options = args [ 0 ] || { } ;
if ( typeof defaults === "function" ) {
super ( defaults ( options ) ) ;
return ;
}
super ( Object . assign ( { } , defaults , options , options . userAgent && defaults . userAgent ? {
userAgent : ` ${ options . userAgent } ${ defaults . userAgent } `
} : null ) ) ;
}
} ;
return OctokitWithDefaults ;
}
static plugin ( ... newPlugins ) {
var _a ;
const currentPlugins = this . plugins ;
const NewOctokit = ( _a = class extends this {
} , _a . plugins = currentPlugins . concat ( newPlugins . filter ( ( plugin ) => ! currentPlugins . includes ( plugin ) ) ) , _a ) ;
return NewOctokit ;
}
} ;
Octokit . VERSION = VERSION5 ;
Octokit . plugins = [ ] ;
// utils.ts
var import _slugify = _ _toModule ( require _slugify ( ) ) ;
var import _sha1 = _ _toModule ( require _sha1 ( ) ) ;
function arrayBufferToBase64 ( buffer ) {
let binary = "" ;
const bytes = new Uint8Array ( buffer ) ;
const len = bytes . byteLength ;
for ( let i = 0 ; i < len ; i ++ ) {
binary += String . fromCharCode ( bytes [ i ] ) ;
}
return gBase64 . btoa ( binary ) ;
}
function extractBaseUrl ( url ) {
return url && url . replace ( "https://" , "" ) . replace ( "http://" , "" ) . replace ( /\/$/ , "" ) ;
}
function generateUrlPath ( filePath ) {
if ( ! filePath ) {
return filePath ;
}
const extensionLess = filePath . substring ( 0 , filePath . lastIndexOf ( "." ) ) ;
const noteUrlPath = extensionLess . split ( "/" ) . map ( ( x ) => ( 0 , import _slugify . default ) ( x ) ) . join ( "/" ) + "/" ;
return noteUrlPath ;
}
function generateBlobHash ( content ) {
const byteLength = new TextEncoder ( ) . encode ( content ) . byteLength ;
const header = ` blob ${ byteLength } \0 ` ;
const gitBlob = header + content ;
return ( 0 , import _sha1 . default ) ( gitBlob ) . toString ( ) ;
}
// Validator.ts
var import _obsidian = _ _toModule ( require ( "obsidian" ) ) ;
function vallidatePublishFrontmatter ( frontMatter ) {
if ( ! frontMatter || ! frontMatter [ "dg-publish" ] ) {
new import _obsidian . Notice ( "Note does not have the dg-publish: true set. Please add this and try again." ) ;
return false ;
}
return true ;
}
// constants.ts
var seedling = ` <g style="pointer-events:all"><title style="pointer-events: none" opacity="0.33">Layer 1</title><g id="hair" style="pointer-events: none" opacity="0.33"></g><g id="skin" style="pointer-events: none" opacity="0.33"></g><g id="skin-shadow" style="pointer-events: none" opacity="0.33"></g><g id="line"><path fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="2" d="M47.71119,35.9247" id="svg_3"></path><polyline fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" points="49.813106536865234,93.05191133916378 49.813106536865234,69.57996462285519 40.03312683105469,26.548054680228233 " id="svg_4"></polyline><line x1="49.81311" x2="59.59309" y1="69.57996" y2="50.02" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" id="svg_5"></line><path fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M27.99666,14.21103C35.9517,16.94766 39.92393,26.36911 39.92393,26.36911S30.99696,31.3526 23.04075,28.61655S11.11348,16.45847 11.11348,16.45847S20.04456,11.4789 27.99666,14.21103z" id="svg_6"></path><path fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M76.46266698455811,45.61669603088379 C84.67706698455811,47.43146603088379 89.6945869845581,56.34024603088379 89.6945869845581,56.34024603088379 S81.3917769845581,62.30603603088379 73.17639698455811,60.492046030883785 S59.94447698455811,49.768496030883796 59.94447698455811,49.768496030883796 S68.2515869845581,43.80622603088379 76.46266698455811,45.61669603088379 z" id="svg_7"></path></g></g> ` ;
var excaliDrawBundle = ` <style>
. container { font - family : sans - serif ; text - align : center ; }
. button - wrapper button { z - index : 1 ; height : 40 px ; width : 100 px ; margin : 10 px ; padding : 5 px ; }
. excalidraw . App - menu _top . buttonList { display : flex ; }
. excalidraw - wrapper { height : 800 px ; margin : 50 px ; position : relative ; }
: root [ dir = "ltr" ] . excalidraw . layer - ui _ _wrapper . zen - mode - transition . App - menu _bottom -- transition - left { transform : none ; }
< /style><script src="https:/ / unpkg . com / react @ 17 / umd / react . production . min . js "><\/script><script src=" https : //unpkg.com/react-dom@17/umd/react-dom.production.min.js"><\/script><script type="text/javascript" src="https://unpkg.com/@excalidraw/excalidraw/dist/excalidraw.production.min.js"><\/script>`;
var excalidraw = ( excaliDrawJson , drawingId ) => ` <div id=" ${ drawingId } "></div><script>(function(){const InitialData= ${ excaliDrawJson } ;InitialData.scrollToContent=true;App=()=>{const e=React.useRef(null),t=React.useRef(null),[n,i]=React.useState({width:void 0,height:void 0});return React.useEffect(()=>{i({width:t.current.getBoundingClientRect().width,height:t.current.getBoundingClientRect().height});const e=()=>{i({width:t.current.getBoundingClientRect().width,height:t.current.getBoundingClientRect().height})};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[t]),React.createElement(React.Fragment,null,React.createElement("div",{className:"excalidraw-wrapper",ref:t},React.createElement(Excalidraw.default,{ref:e,width:n.width,height:n.height,initialData:InitialData,viewModeEnabled:!0,zenModeEnabled:!0,gridModeEnabled:!1})))},excalidrawWrapper=document.getElementById(" ${ drawingId } ");ReactDOM.render(React.createElement(App),excalidrawWrapper);})();< \/ script> ` ;
// Publisher.ts
var Publisher = class {
constructor ( vault , metadataCache , settings ) {
this . vault = vault ;
this . metadataCache = metadataCache ;
this . settings = settings ;
}
getFilesMarkedForPublishing ( ) {
return _ _async ( this , null , function * ( ) {
const files = this . vault . getMarkdownFiles ( ) ;
const filesToPublish = [ ] ;
for ( const file of files ) {
try {
const frontMatter = this . metadataCache . getCache ( file . path ) . frontmatter ;
if ( frontMatter && frontMatter [ "dg-publish" ] === true ) {
filesToPublish . push ( file ) ;
}
} catch ( e ) {
}
}
return filesToPublish ;
} ) ;
}
delete ( vaultFilePath ) {
return _ _async ( this , null , function * ( ) {
if ( ! this . settings . githubRepo ) {
new import _obsidian2 . Notice ( "Config error: You need to define a GitHub repo in the plugin settings" ) ;
throw { } ;
}
if ( ! this . settings . githubUserName ) {
new import _obsidian2 . Notice ( "Config error: You need to define a GitHub Username in the plugin settings" ) ;
throw { } ;
}
if ( ! this . settings . githubToken ) {
new import _obsidian2 . Notice ( "Config error: You need to define a GitHub Token in the plugin settings" ) ;
throw { } ;
}
const octokit = new Octokit ( { auth : this . settings . githubToken } ) ;
const path = ` src/site/notes/ ${ vaultFilePath } ` ;
const payload = {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
path ,
message : ` Delete note ${ vaultFilePath } ` ,
sha : ""
} ;
try {
const response = yield octokit . request ( "GET /repos/{owner}/{repo}/contents/{path}" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
path
} ) ;
if ( response . status === 200 && response . data . type === "file" ) {
payload . sha = response . data . sha ;
}
} catch ( e ) {
console . log ( e ) ;
return false ;
}
try {
const response = yield octokit . request ( "DELETE /repos/{owner}/{repo}/contents/{path}" , payload ) ;
} catch ( e ) {
console . log ( e ) ;
return false ;
}
return true ;
} ) ;
}
publish ( file ) {
return _ _async ( this , null , function * ( ) {
if ( ! vallidatePublishFrontmatter ( this . metadataCache . getCache ( file . path ) . frontmatter ) ) {
return false ;
}
try {
const text = yield this . generateMarkdown ( file ) ;
yield this . uploadText ( file . path , text ) ;
return true ;
} catch ( e ) {
return false ;
}
} ) ;
}
generateMarkdown ( file ) {
return _ _async ( this , null , function * ( ) {
let text = yield this . vault . cachedRead ( file ) ;
text = yield this . convertFrontMatter ( text , file . path ) ;
text = yield this . createTranscludedText ( text , file . path ) ;
text = yield this . convertLinksToFullPath ( text , file . path ) ;
text = yield this . createBase64Images ( text , file . path ) ;
return text ;
} ) ;
}
uploadText ( filePath , content ) {
return _ _async ( this , null , function * ( ) {
if ( ! this . settings . githubRepo ) {
new import _obsidian2 . Notice ( "Config error: You need to define a GitHub repo in the plugin settings" ) ;
throw { } ;
}
if ( ! this . settings . githubUserName ) {
new import _obsidian2 . Notice ( "Config error: You need to define a GitHub Username in the plugin settings" ) ;
throw { } ;
}
if ( ! this . settings . githubToken ) {
new import _obsidian2 . Notice ( "Config error: You need to define a GitHub Token in the plugin settings" ) ;
throw { } ;
}
const octokit = new Octokit ( { auth : this . settings . githubToken } ) ;
const base64Content = gBase64 . encode ( content ) ;
const path = ` src/site/notes/ ${ filePath } ` ;
const payload = {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
path ,
message : ` Add note ${ filePath } ` ,
content : base64Content ,
sha : ""
} ;
try {
const response = yield octokit . request ( "GET /repos/{owner}/{repo}/contents/{path}" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
path
} ) ;
if ( response . status === 200 && response . data . type === "file" ) {
payload . sha = response . data . sha ;
}
} catch ( e ) {
console . log ( e ) ;
}
payload . message = ` Update note ${ filePath } ` ;
yield octokit . request ( "PUT /repos/{owner}/{repo}/contents/{path}" , payload ) ;
} ) ;
}
convertFrontMatter ( text , path ) {
return _ _async ( this , null , function * ( ) {
const cachedFrontMatter = this . metadataCache . getCache ( path ) . frontmatter ;
const frontMatter = _ _spreadValues ( { } , cachedFrontMatter ) ;
const publishedFrontMatter = { "dg-publish" : true } ;
if ( frontMatter && frontMatter [ "dg-permalink" ] ) {
publishedFrontMatter [ "dg-permalink" ] = frontMatter [ "dg-permalink" ] ;
publishedFrontMatter [ "permalink" ] = frontMatter [ "dg-permalink" ] ;
if ( ! publishedFrontMatter [ "permalink" ] . endsWith ( "/" ) ) {
publishedFrontMatter [ "permalink" ] += "/" ;
}
if ( ! publishedFrontMatter [ "permalink" ] . startsWith ( "/" ) ) {
publishedFrontMatter [ "permalink" ] = "/" + publishedFrontMatter [ "permalink" ] ;
}
} else {
const noteUrlPath = generateUrlPath ( path ) ;
publishedFrontMatter [ "permalink" ] = "/" + noteUrlPath ;
}
if ( frontMatter && frontMatter [ "dg-home" ] ) {
const tags = frontMatter [ "tags" ] ;
if ( tags ) {
if ( typeof tags === "string" ) {
publishedFrontMatter [ "tags" ] = [ tags , "gardenEntry" ] ;
} else {
publishedFrontMatter [ "tags" ] = [ ... tags , "gardenEntry" ] ;
}
} else {
publishedFrontMatter [ "tags" ] = "gardenEntry" ;
}
}
if ( frontMatter && frontMatter [ "dg-home-link" ] === false ) {
publishedFrontMatter [ "dgHomeLink" ] = false ;
}
const replaced = text . replace ( /^---\n([\s\S]*?)\n---/g , ( match , p1 ) => {
const frontMatterString = JSON . stringify ( publishedFrontMatter ) ;
return ` ---
$ { frontMatterString }
-- - ` ;
} ) ;
return replaced ;
} ) ;
}
convertLinksToFullPath ( text , filePath ) {
return _ _async ( this , null , function * ( ) {
let convertedText = text ;
const linkedFileRegex = /\[\[(.*?)\]\]/g ;
const linkedFileMatches = text . match ( linkedFileRegex ) ;
if ( linkedFileMatches ) {
for ( let i = 0 ; i < linkedFileMatches . length ; i ++ ) {
try {
const linkedFileMatch = linkedFileMatches [ i ] ;
const textInsideBrackets = linkedFileMatch . substring ( linkedFileMatch . indexOf ( "[" ) + 2 , linkedFileMatch . indexOf ( "]" ) ) ;
let [ linkedFileName , prettyName ] = textInsideBrackets . split ( "|" ) ;
prettyName = prettyName || linkedFileName ;
let headerPath = "" ;
if ( linkedFileName . includes ( "#" ) ) {
const headerSplit = linkedFileName . split ( "#" ) ;
linkedFileName = headerSplit [ 0 ] ;
headerPath = headerSplit . length > 1 ? ` # ${ headerSplit [ 1 ] } ` : "" ;
}
const fullLinkedFilePath = ( 0 , import _obsidian2 . getLinkpath ) ( linkedFileName ) ;
const linkedFile = this . metadataCache . getFirstLinkpathDest ( fullLinkedFilePath , filePath ) ;
if ( linkedFile . extension === "md" ) {
const extensionlessPath = linkedFile . path . substring ( 0 , linkedFile . path . lastIndexOf ( "." ) ) ;
convertedText = convertedText . replace ( linkedFileMatch , ` [[ ${ extensionlessPath } ${ headerPath } | ${ prettyName } ]] ` ) ;
}
} catch ( e ) {
continue ;
}
}
}
return convertedText ;
} ) ;
}
createTranscludedText ( text , filePath ) {
return _ _async ( this , null , function * ( ) {
let transcludedText = text ;
const transcludedRegex = /!\[\[(.*?)\]\]/g ;
const transclusionMatches = text . match ( transcludedRegex ) ;
let numberOfExcaliDraws = 0 ;
if ( transclusionMatches ) {
for ( let i = 0 ; i < transclusionMatches . length ; i ++ ) {
try {
const transclusionMatch = transclusionMatches [ i ] ;
let [ tranclusionFileName , headerName ] = transclusionMatch . substring ( transclusionMatch . indexOf ( "[" ) + 2 , transclusionMatch . indexOf ( "]" ) ) . split ( "|" ) ;
const tranclusionFilePath = ( 0 , import _obsidian2 . getLinkpath ) ( tranclusionFileName ) ;
const linkedFile = this . metadataCache . getFirstLinkpathDest ( tranclusionFilePath , filePath ) ;
if ( linkedFile . name . endsWith ( ".excalidraw.md" ) ) {
let fileText = yield this . vault . cachedRead ( linkedFile ) ;
const start = fileText . indexOf ( "```json" ) + "```json" . length ;
const end = fileText . lastIndexOf ( "```" ) ;
const excaliDrawJson = JSON . parse ( fileText . slice ( start , end ) ) ;
const drawingId = linkedFile . name . split ( " " ) . join ( "_" ) . replace ( "." , "" ) + numberOfExcaliDraws ;
let excaliDrawCode = "" ;
if ( ++ numberOfExcaliDraws === 1 ) {
excaliDrawCode += excaliDrawBundle ;
}
excaliDrawCode += excalidraw ( JSON . stringify ( excaliDrawJson ) , drawingId ) ;
transcludedText = transcludedText . replace ( transclusionMatch , excaliDrawCode ) ;
} else if ( linkedFile . extension === "md" ) {
let fileText = yield this . vault . cachedRead ( linkedFile ) ;
fileText = fileText . replace ( /^---\n([\s\S]*?)\n---/g , "" ) ;
const header = this . generateTransclusionHeader ( headerName , linkedFile ) ;
const headerSection = header ? ` ${ header }
` : "";
fileText = `
< div class = "transclusion internal-embed is-loaded" > < div class = "markdown-embed" >
< div class = "markdown-embed-title" >
$ { headerSection }
< / d i v >
` + fileText + " \n </div></div> \n ";
transcludedText = transcludedText . replace ( transclusionMatch , fileText ) ;
}
} catch ( e ) {
continue ;
}
}
}
return transcludedText ;
} ) ;
}
createBase64Images ( text , filePath ) {
return _ _async ( this , null , function * ( ) {
let imageText = text ;
const imageRegex = /!\[\[(.*?)(\.(png|jpg|jpeg|gif))\|(.*?)\]\]|!\[\[(.*?)(\.(png|jpg|jpeg|gif))\]\]/g ;
const imageMatches = text . match ( imageRegex ) ;
if ( imageMatches ) {
for ( let i = 0 ; i < imageMatches . length ; i ++ ) {
try {
const imageMatch = imageMatches [ i ] ;
let [ imageName , size ] = imageMatch . substring ( imageMatch . indexOf ( "[" ) + 2 , imageMatch . indexOf ( "]" ) ) . split ( "|" ) ;
const imagePath = ( 0 , import _obsidian2 . getLinkpath ) ( imageName ) ;
const linkedFile = this . metadataCache . getFirstLinkpathDest ( imagePath , filePath ) ;
const image = yield this . vault . readBinary ( linkedFile ) ;
const imageBase64 = arrayBufferToBase64 ( image ) ;
const name = size ? ` ${ imageName } | ${ size } ` : imageName ;
const imageMarkdown = ` ![ ${ name } ](data:image/ ${ linkedFile . extension } ;base64, ${ imageBase64 } ) ` ;
imageText = imageText . replace ( imageMatch , imageMarkdown ) ;
} catch ( e ) {
continue ;
}
}
}
return imageText ;
} ) ;
}
generateTransclusionHeader ( headerName , transcludedFile ) {
if ( ! headerName ) {
return headerName ;
}
const titleVariable = "{{title}}" ;
if ( headerName && headerName . indexOf ( titleVariable ) > - 1 ) {
headerName = headerName . replace ( titleVariable , transcludedFile . basename ) ;
}
if ( headerName && ! headerName . startsWith ( "#" ) ) {
headerName = "# " + headerName ;
} else if ( headerName ) {
const headerParts = headerName . split ( "#" ) ;
if ( ! headerParts . last ( ) . startsWith ( " " ) ) {
headerName = headerName . replace ( headerParts . last ( ) , " " + headerParts . last ( ) ) ;
}
}
return headerName ;
}
} ;
// DigitalGardenSiteManager.ts
var DigitalGardenSiteManager = class {
constructor ( metadataCache , settings ) {
this . settings = settings ;
this . metadataCache = metadataCache ;
}
getNoteUrl ( file ) {
const baseUrl = this . settings . gardenBaseUrl ? ` https:// ${ extractBaseUrl ( this . settings . gardenBaseUrl ) } ` : ` https:// ${ this . settings . githubRepo } .netlify.app ` ;
const noteUrlPath = generateUrlPath ( file . path ) ;
let urlPath = ` / ${ noteUrlPath } ` ;
const frontMatter = this . metadataCache . getCache ( file . path ) . frontmatter ;
if ( frontMatter && frontMatter . permalink ) {
urlPath = ` / ${ frontMatter . permalink } ` ;
} else if ( frontMatter && frontMatter [ "dg-permalink" ] ) {
urlPath = ` / ${ frontMatter [ "dg-permalink" ] } ` ;
}
return ` ${ baseUrl } ${ urlPath } ` ;
}
getNoteHashes ( ) {
return _ _async ( this , null , function * ( ) {
const octokit = new Octokit ( { auth : this . settings . githubToken } ) ;
const response = yield octokit . request ( ` GET /repos/{owner}/{repo}/git/trees/{tree_sha}?recursive= ${ Math . ceil ( Math . random ( ) * 1e3 ) } ` , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
tree _sha : "main"
} ) ;
const files = response . data . tree ;
const notes = files . filter ( ( x ) => x . path . startsWith ( "src/site/notes/" ) && x . type === "blob" && x . path !== "src/site/notes/notes.json" ) ;
const hashes = { } ;
for ( const note of notes ) {
const vaultPath = note . path . replace ( "src/site/notes/" , "" ) ;
hashes [ vaultPath ] = note . sha ;
}
return hashes ;
} ) ;
}
createPullRequestWithSiteChanges ( ) {
return _ _async ( this , null , function * ( ) {
const octokit = new Octokit ( { auth : this . settings . githubToken } ) ;
const latestRelease = yield octokit . request ( "GET /repos/{owner}/{repo}/releases/latest" , {
owner : "oleeskild" ,
repo : "digitalgarden"
} ) ;
const templateVersion = latestRelease . data . tag _name ;
const branchName = "update-template-to-v" + templateVersion ;
const latestCommit = yield octokit . request ( "GET /repos/{owner}/{repo}/commits/main" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo
} ) ;
yield this . createNewBranch ( octokit , branchName , latestCommit . data . sha ) ;
yield this . deleteFiles ( octokit , branchName ) ;
yield this . addFilesIfMissing ( octokit , branchName ) ;
yield this . modifyFiles ( octokit , branchName ) ;
const prUrl = yield this . createPullRequest ( octokit , branchName , templateVersion ) ;
return prUrl ;
} ) ;
}
createPullRequest ( octokit , branchName , templateVersion ) {
return _ _async ( this , null , function * ( ) {
try {
const pr = yield octokit . request ( "POST /repos/{owner}/{repo}/pulls" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
title : ` Update template to version ${ templateVersion } ` ,
head : branchName ,
base : "main" ,
body : ` Update to latest template version.
[ Release Notes ] ( https : //github.com/oleeskild/digitalgarden/releases/tag/${templateVersion})`
} ) ;
return pr . data . html _url ;
} catch ( e ) {
return null ;
}
} ) ;
}
deleteFiles ( octokit , branchName ) {
return _ _async ( this , null , function * ( ) {
const filesToDelete = [
"src/site/styles/style.css"
] ;
for ( const file of filesToDelete ) {
try {
const latestFile = yield octokit . request ( "GET /repos/{owner}/{repo}/contents/{path}" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
path : file ,
ref : branchName
} ) ;
yield octokit . request ( "DELETE /repos/{owner}/{repo}/contents/{path}" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
path : file ,
sha : latestFile . data . sha ,
message : ` Delete ${ file } ` ,
branch : branchName
} ) ;
} catch ( e ) {
}
}
} ) ;
}
modifyFiles ( octokit , branchName ) {
return _ _async ( this , null , function * ( ) {
var _a ;
const filesToModify = [
".eleventy.js" ,
"README.md" ,
"netlify.toml" ,
"package-lock.json" ,
"package.json" ,
"src/site/404.njk" ,
"src/site/index.njk" ,
"src/site/versionednote.njk" ,
"src/site/versionednote.njk" ,
"src/site/styles/style.scss" ,
"src/site/styles/digital-garden-base.scss" ,
"src/site/styles/obsidian-base.scss" ,
"src/site/notes/notes.json" ,
"src/site/_includes/layouts/note.njk" ,
"src/site/_includes/layouts/versionednote.njk" ,
"src/site/_includes/components/notegrowthhistory.njk" ,
"src/site/_includes/components/pageheader.njk" ,
"src/site/_data/versionednotes.js" ,
"src/site/_data/meta.js" ,
"src/site/img/outgoing.svg"
] ;
for ( const file of filesToModify ) {
const latestFile = yield octokit . request ( "GET /repos/{owner}/{repo}/contents/{path}" , {
owner : "oleeskild" ,
repo : "digitalgarden" ,
path : file
} ) ;
let currentFile = { } ;
let fileExists = true ;
try {
currentFile = yield octokit . request ( "GET /repos/{owner}/{repo}/contents/{path}" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
path : file ,
ref : branchName
} ) ;
} catch ( error ) {
fileExists = false ;
}
const fileHasChanged = latestFile . data . sha !== ( ( _a = currentFile == null ? void 0 : currentFile . data ) == null ? void 0 : _a . sha ) ;
if ( ! fileExists || fileHasChanged ) {
yield octokit . request ( "PUT /repos/{owner}/{repo}/contents/{path}" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
path : file ,
branch : branchName ,
message : ` Update file ${ file } ` ,
content : latestFile . data . content ,
sha : fileExists ? currentFile . data . sha : null
} ) ;
}
}
} ) ;
}
createNewBranch ( octokit , branchName , sha ) {
return _ _async ( this , null , function * ( ) {
try {
const branch = yield octokit . request ( "POST /repos/{owner}/{repo}/git/refs" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
ref : ` refs/heads/ ${ branchName } ` ,
sha
} ) ;
} catch ( e ) {
}
} ) ;
}
addFilesIfMissing ( octokit , branchName ) {
return _ _async ( this , null , function * ( ) {
const filesToAdd = [
"src/site/styles/custom-style.scss" ,
".env" ,
"src/site/favicon.svg"
] ;
for ( const filePath of filesToAdd ) {
try {
yield octokit . request ( "GET /repos/{owner}/{repo}/contents/{path}" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
path : filePath ,
ref : branchName
} ) ;
} catch ( e ) {
const initialFile = yield octokit . request ( "GET /repos/{owner}/{repo}/contents/{path}" , {
owner : "oleeskild" ,
repo : "digitalgarden" ,
path : filePath
} ) ;
yield octokit . request ( "PUT /repos/{owner}/{repo}/contents/{path}" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
path : filePath ,
branch : branchName ,
message : "Update template file" ,
content : initialFile . data . content
} ) ;
}
}
} ) ;
}
} ;
// SettingView.ts
var import _obsidian3 = _ _toModule ( require ( "obsidian" ) ) ;
var import _axios = _ _toModule ( require _axios2 ( ) ) ;
var SettingView = class {
constructor ( app , settingsRootElement , settings , saveSettings ) {
this . app = app ;
this . settingsRootElement = settingsRootElement ;
this . settings = settings ;
this . saveSettings = saveSettings ;
}
initialize ( prModal ) {
return _ _async ( this , null , function * ( ) {
this . settingsRootElement . empty ( ) ;
this . settingsRootElement . createEl ( "h2" , { text : "Settings " } ) ;
this . settingsRootElement . createEl ( "span" , { text : "Remember to read the setup guide if you haven't already. It can be found " } ) ;
this . settingsRootElement . createEl ( "a" , { text : "here." , href : "https://github.com/oleeskild/Obsidian-Digital-Garden" } ) ;
this . initializeGitHubRepoSetting ( ) ;
this . initializeGitHubUserNameSetting ( ) ;
this . initializeGitHubTokenSetting ( ) ;
this . initializeGitHubBaseURLSetting ( ) ;
this . initializeThemesSettings ( ) ;
prModal . titleEl . createEl ( "h1" , "Site template settings" ) ;
} ) ;
}
initializeThemesSettings ( ) {
return _ _async ( this , null , function * ( ) {
const themeModal = new import _obsidian3 . Modal ( this . app ) ;
themeModal . titleEl . createEl ( "h1" , { text : "Appearance Settings" } ) ;
new import _obsidian3 . Setting ( this . settingsRootElement ) . setName ( "Appearance" ) . setDesc ( "Manage themes and favicons on your site" ) . addButton ( ( cb ) => {
cb . setButtonText ( "Manage" ) ;
cb . onClick ( ( ) => _ _async ( this , null , function * ( ) {
themeModal . open ( ) ;
} ) ) ;
} ) ;
const themesListResponse = yield import _axios . default . get ( "https://raw.githubusercontent.com/obsidianmd/obsidian-releases/master/community-css-themes.json" ) ;
new import _obsidian3 . Setting ( themeModal . contentEl ) . setName ( "Theme" ) . addDropdown ( ( dd ) => {
dd . addOption ( '{"name": "default", "modes": ["dark"]}' , "Default" ) ;
themesListResponse . data . map ( ( x ) => {
dd . addOption ( JSON . stringify ( _ _spreadProps ( _ _spreadValues ( { } , x ) , { cssUrl : ` https://raw.githubusercontent.com/ ${ x . repo } / ${ x . branch || "master" } /obsidian.css ` } ) ) , x . name ) ;
dd . setValue ( this . settings . theme ) ;
dd . onChange ( ( val ) => _ _async ( this , null , function * ( ) {
this . settings . theme = val ;
yield this . saveSettings ( ) ;
} ) ) ;
} ) ;
} ) ;
new import _obsidian3 . Setting ( themeModal . contentEl ) . setName ( "Base theme" ) . addDropdown ( ( dd ) => {
dd . addOption ( "dark" , "Dark" ) ;
dd . addOption ( "light" , "Light" ) ;
dd . setValue ( this . settings . baseTheme ) ;
dd . onChange ( ( val ) => _ _async ( this , null , function * ( ) {
this . settings . baseTheme = val ;
yield this . saveSettings ( ) ;
} ) ) ;
} ) ;
new import _obsidian3 . Setting ( themeModal . contentEl ) . setName ( "Favicon" ) . setDesc ( "Path to an svg in your vault you wish to use as a favicon. Leave blank to use default." ) . addText ( ( tc ) => {
tc . setPlaceholder ( "myfavicon.svg" ) ;
tc . setValue ( this . settings . faviconPath ) ;
tc . onChange ( ( val ) => _ _async ( this , null , function * ( ) {
this . settings . faviconPath = val ;
yield this . saveSettings ( ) ;
} ) ) ;
} ) ;
new import _obsidian3 . Setting ( themeModal . contentEl ) . addButton ( ( cb ) => {
cb . setButtonText ( "Apply settings to site" ) ;
cb . onClick ( ( ev ) => _ _async ( this , null , function * ( ) {
const octokit = new Octokit ( { auth : this . settings . githubToken } ) ;
yield this . updateEnv ( octokit ) ;
yield this . addFavicon ( octokit ) ;
} ) ) ;
} ) ;
} ) ;
}
updateEnv ( octokit ) {
return _ _async ( this , null , function * ( ) {
const theme = JSON . parse ( this . settings . theme ) ;
const baseTheme = this . settings . baseTheme ;
if ( theme . modes . indexOf ( baseTheme ) < 0 ) {
new import _obsidian3 . Notice ( ` The ${ theme . name } theme doesn't support ${ baseTheme } mode. ` ) ;
return ;
}
let envSettings = "" ;
if ( theme . name !== "default" ) {
envSettings = ` THEME= ${ theme . cssUrl }
BASE _THEME = $ { baseTheme } ` ;
}
const base64Settings = gBase64 . encode ( envSettings ) ;
let fileExists = true ;
let currentFile = null ;
try {
currentFile = yield octokit . request ( "GET /repos/{owner}/{repo}/contents/{path}" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
path : ".env"
} ) ;
} catch ( error ) {
fileExists = false ;
}
yield octokit . request ( "PUT /repos/{owner}/{repo}/contents/{path}" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
path : ".env" ,
message : ` Update theme ` ,
content : base64Settings ,
sha : fileExists ? currentFile . data . sha : null
} ) ;
new import _obsidian3 . Notice ( "Successfully applied theme" ) ;
} ) ;
}
addFavicon ( octokit ) {
return _ _async ( this , null , function * ( ) {
let base64FaviconContent = "" ;
if ( this . settings . faviconPath ) {
const faviconFile = this . app . vault . getAbstractFileByPath ( this . settings . faviconPath ) ;
if ( ! ( faviconFile instanceof import _obsidian3 . TFile ) ) {
new import _obsidian3 . Notice ( ` ${ this . settings . faviconPath } is not a valid file. ` ) ;
return ;
}
const faviconContent = yield this . app . vault . readBinary ( faviconFile ) ;
base64FaviconContent = arrayBufferToBase64 ( faviconContent ) ;
} else {
const defaultFavicon = yield octokit . request ( "GET /repos/{owner}/{repo}/contents/{path}" , {
owner : "oleeskild" ,
repo : "digitalgarden" ,
path : "src/site/favicon.svg"
} ) ;
base64FaviconContent = defaultFavicon . data . content ;
}
let faviconExists = true ;
let currentFavicon = null ;
try {
currentFavicon = yield octokit . request ( "GET /repos/{owner}/{repo}/contents/{path}" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
path : "src/site/favicon.svg"
} ) ;
} catch ( error ) {
faviconExists = false ;
}
yield octokit . request ( "PUT /repos/{owner}/{repo}/contents/{path}" , {
owner : this . settings . githubUserName ,
repo : this . settings . githubRepo ,
path : "src/site/favicon.svg" ,
message : ` Update favicon.svg ` ,
content : base64FaviconContent ,
sha : faviconExists ? currentFavicon . data . sha : null
} ) ;
new import _obsidian3 . Notice ( ` Successfully set favicon ` ) ;
} ) ;
}
initializeGitHubRepoSetting ( ) {
new import _obsidian3 . Setting ( this . settingsRootElement ) . setName ( "GitHub repo name" ) . setDesc ( "The name of the GitHub repository" ) . addText ( ( text ) => text . setPlaceholder ( "mydigitalgarden" ) . setValue ( this . settings . githubRepo ) . onChange ( ( value ) => _ _async ( this , null , function * ( ) {
this . settings . githubRepo = value ;
yield this . saveSettings ( ) ;
} ) ) ) ;
}
initializeGitHubUserNameSetting ( ) {
new import _obsidian3 . Setting ( this . settingsRootElement ) . setName ( "GitHub Username" ) . setDesc ( "Your GitHub Username" ) . addText ( ( text ) => text . setPlaceholder ( "myusername" ) . setValue ( this . settings . githubUserName ) . onChange ( ( value ) => _ _async ( this , null , function * ( ) {
this . settings . githubUserName = value ;
yield this . saveSettings ( ) ;
} ) ) ) ;
}
initializeGitHubTokenSetting ( ) {
const desc = document . createDocumentFragment ( ) ;
desc . createEl ( "span" , null , ( span ) => {
span . innerText = "A GitHub token with repo permissions. You can generate it " ;
span . createEl ( "a" , null , ( link ) => {
link . href = "https://github.com/settings/tokens/new?scopes=repo" ;
link . innerText = "here!" ;
} ) ;
} ) ;
new import _obsidian3 . Setting ( this . settingsRootElement ) . setName ( "GitHub token" ) . setDesc ( desc ) . addText ( ( text ) => text . setPlaceholder ( "Secret Token" ) . setValue ( this . settings . githubToken ) . onChange ( ( value ) => _ _async ( this , null , function * ( ) {
this . settings . githubToken = value ;
yield this . saveSettings ( ) ;
} ) ) ) ;
}
initializeGitHubBaseURLSetting ( ) {
new import _obsidian3 . Setting ( this . settingsRootElement ) . setName ( "Base URL" ) . setDesc ( `
This is used for the "Copy Note URL" command and is optional .
If you leave it blank , the plugin will try to guess it from the repo name .
` ).addText((text) => text.setPlaceholder("my-garden.netlify.app").setValue(this.settings.gardenBaseUrl).onChange((value) => __async(this, null, function* () {
this . settings . gardenBaseUrl = value ;
yield this . saveSettings ( ) ;
} ) ) ) ;
}
renderCreatePr ( modal , handlePR ) {
new import _obsidian3 . Setting ( this . settingsRootElement ) . setName ( "Site Template" ) . setDesc ( "Manage updates to the base template. You should try updating the template when you update the plugin to make sure your garden support all features." ) . addButton ( ( button ) => {
button . setButtonText ( "Manage site template" ) ;
button . onClick ( ( ) => {
modal . open ( ) ;
} ) ;
} ) ;
new import _obsidian3 . Setting ( modal . contentEl ) . setName ( "Update site to latest template" ) . setDesc ( `
This will create a pull request with the latest template changes , which you ' ll need to use all plugin features .
It will not publish any changes before you approve them .
You can even test the changes first Netlify will automatically provide you with a test URL .
` ).addButton((button) => button.setButtonText("Create PR").onClick(() => handlePR(button)));
if ( ! this . progressViewTop ) {
this . progressViewTop = modal . contentEl . createEl ( "div" , { } ) ;
}
if ( ! this . loading ) {
this . loading = modal . contentEl . createEl ( "div" , { } ) ;
this . loading . hide ( ) ;
}
}
renderPullRequestHistory ( modal , previousPrUrls ) {
if ( previousPrUrls . length === 0 ) {
return ;
}
const header = modal . contentEl . createEl ( "h2" , { text : "\u2795 Recent Pull Request History" } ) ;
const prsContainer = modal . contentEl . createEl ( "ul" , { } ) ;
prsContainer . hide ( ) ;
header . onClickEvent ( ( ) => {
if ( prsContainer . isShown ( ) ) {
prsContainer . hide ( ) ;
header . textContent = "\u2795 Recent Pull Request History" ;
} else {
prsContainer . show ( ) ;
header . textContent = "\u2796 Recent Pull Request History" ;
}
} ) ;
previousPrUrls . map ( ( prUrl ) => {
const li = prsContainer . createEl ( "li" , { attr : { "style" : "margin-bottom: 10px" } } ) ;
const prUrlElement = document . createElement ( "a" ) ;
prUrlElement . href = prUrl ;
prUrlElement . textContent = prUrl ;
li . appendChild ( prUrlElement ) ;
} ) ;
}
renderLoading ( ) {
this . loading . show ( ) ;
const text = "Creating PR. This should take less than 1 minute" ;
const loadingText = this . loading . createEl ( "h2" , { text } ) ;
this . loadingInterval = setInterval ( ( ) => {
if ( loadingText . innerText === ` ${ text } ` ) {
loadingText . innerText = ` ${ text } . ` ;
} else if ( loadingText . innerText === ` ${ text } . ` ) {
loadingText . innerText = ` ${ text } .. ` ;
} else if ( loadingText . innerText === ` ${ text } .. ` ) {
loadingText . innerText = ` ${ text } ... ` ;
} else {
loadingText . innerText = ` ${ text } ` ;
}
} , 400 ) ;
}
renderSuccess ( prUrl ) {
this . loading . remove ( ) ;
clearInterval ( this . loadingInterval ) ;
const successmessage = prUrl ? { text : ` \u {1F389} Done! Approve your PR to make the changes go live. ` } : { text : "You already have the latest template \u{1F389} No need to create a PR." , attr : { } } ;
const linkText = { text : ` ${ prUrl } ` , href : prUrl } ;
this . progressViewTop . createEl ( "h2" , successmessage ) ;
if ( prUrl ) {
this . progressViewTop . createEl ( "a" , linkText ) ;
}
this . progressViewTop . createEl ( "br" ) ;
}
renderError ( ) {
this . loading . remove ( ) ;
clearInterval ( this . loadingInterval ) ;
const errorMsg = { text : "\u274C Something went wrong. Try deleting the branch in GitHub." , attr : { } } ;
this . progressViewTop . createEl ( "p" , errorMsg ) ;
}
} ;
// PublishStatusBar.ts
var PublishStatusBar = class {
constructor ( statusBarItem , numberOfNotesToPublish ) {
this . statusBarItem = statusBarItem ;
this . counter = 0 ;
this . numberOfNotesToPublish = numberOfNotesToPublish ;
this . statusBarItem . createEl ( "span" , { text : "Digital Garden: " } ) ;
this . status = this . statusBarItem . createEl ( "span" , { text : ` ${ this . numberOfNotesToPublish } files marked for publishing ` } ) ;
}
increment ( ) {
this . status . innerText = ` \u 231BPublishing Notes: ${ ++ this . counter } / ${ this . numberOfNotesToPublish } ` ;
}
finish ( displayDurationMillisec ) {
this . status . innerText = ` \u 2705 Published Notes: ${ this . counter } / ${ this . numberOfNotesToPublish } ` ;
setTimeout ( ( ) => {
this . statusBarItem . remove ( ) ;
} , displayDurationMillisec ) ;
}
error ( ) {
this . statusBarItem . remove ( ) ;
}
} ;
// PublishModal.ts
var import _obsidian4 = _ _toModule ( require ( "obsidian" ) ) ;
var PublishModal = class {
constructor ( app , publishStatusManager , publisher , settings ) {
this . modal = new import _obsidian4 . Modal ( app ) ;
this . settings = settings ;
this . publishStatusManager = publishStatusManager ;
this . publisher = publisher ;
this . initialize ( ) ;
}
createCollapsable ( title , buttonText , buttonCallback ) {
const headerContainer = this . modal . contentEl . createEl ( "div" , { attr : { style : "display: flex; justify-content: space-between; margin-bottom: 10px; align-items:center" } } ) ;
const toggleHeader = headerContainer . createEl ( "h3" , { text : ` \u 2795 \u FE0F ${ title } ` , attr : { class : "collapsable collapsed" } } ) ;
if ( buttonText && buttonCallback ) {
const button = new import _obsidian4 . ButtonComponent ( headerContainer ) . setButtonText ( buttonText ) . onClick ( ( ) => _ _async ( this , null , function * ( ) {
button . setDisabled ( true ) ;
yield buttonCallback ( ) ;
button . setDisabled ( false ) ;
} ) ) ;
}
const toggledList = this . modal . contentEl . createEl ( "ul" ) ;
toggledList . hide ( ) ;
headerContainer . onClickEvent ( ( ) => {
if ( toggledList . isShown ( ) ) {
toggleHeader . textContent = ` \u 2795 \u FE0F ${ title } ` ;
toggledList . hide ( ) ;
toggleHeader . removeClass ( "open" ) ;
toggleHeader . addClass ( "collapsed" ) ;
} else {
toggleHeader . textContent = ` \u 2796 ${ title } ` ;
toggledList . show ( ) ;
toggleHeader . removeClass ( "collapsed" ) ;
toggleHeader . addClass ( "open" ) ;
}
} ) ;
return toggledList ;
}
initialize ( ) {
return _ _async ( this , null , function * ( ) {
this . modal . titleEl . innerText = "\u{1F331} Digital Garden" ;
this . modal . contentEl . addClass ( "digital-garden-publish-status-view" ) ;
this . modal . contentEl . createEl ( "h2" , { text : "Publication Status" } ) ;
this . progressContainer = this . modal . contentEl . createEl ( "div" , { attr : { style : "height: 30px;" } } ) ;
this . publishedContainer = this . createCollapsable ( "Published" , null , null ) ;
this . changedContainer = this . createCollapsable ( "Changed" , "Update changed files" , ( ) => _ _async ( this , null , function * ( ) {
const publishStatus = yield this . publishStatusManager . getPublishStatus ( ) ;
const changed = publishStatus . changedNotes ;
let counter = 0 ;
for ( const note of changed ) {
this . progressContainer . innerText = ` \u 231BPublishing changed notes: ${ ++ counter } / ${ changed . length } ` ;
yield this . publisher . publish ( note ) ;
}
const publishedText = ` \u 2705 Published all changed notes: ${ counter } / ${ changed . length } ` ;
this . progressContainer . innerText = publishedText ;
setTimeout ( ( ) => {
if ( this . progressContainer . innerText === publishedText ) {
this . progressContainer . innerText = "" ;
}
} , 5e3 ) ;
yield this . refreshView ( ) ;
} ) ) ;
this . deletedContainer = this . createCollapsable ( "Deleted from vault" , "Delete notes from garden" , ( ) => _ _async ( this , null , function * ( ) {
const deletedNotes = yield this . publishStatusManager . getDeletedNotePaths ( ) ;
let counter = 0 ;
for ( const note of deletedNotes ) {
this . progressContainer . innerText = ` \u 231BDeleting Notes: ${ ++ counter } / ${ deletedNotes . length } ` ;
yield this . publisher . delete ( note ) ;
}
const deleteDoneText = ` \u 2705 Deleted all notes: ${ counter } / ${ deletedNotes . length } ` ;
this . progressContainer . innerText = deleteDoneText ;
setTimeout ( ( ) => {
if ( this . progressContainer . innerText === deleteDoneText ) {
this . progressContainer . innerText = "" ;
}
} , 5e3 ) ;
yield this . refreshView ( ) ;
} ) ) ;
this . unpublishedContainer = this . createCollapsable ( "Unpublished" , "Publish unpublished notes" , ( ) => _ _async ( this , null , function * ( ) {
const publishStatus = yield this . publishStatusManager . getPublishStatus ( ) ;
const unpublished = publishStatus . unpublishedNotes ;
let counter = 0 ;
for ( const note of unpublished ) {
this . progressContainer . innerText = ` \u 231BPublishing unpublished notes: ${ ++ counter } / ${ unpublished . length } ` ;
yield this . publisher . publish ( note ) ;
}
const publishDoneText = ` \u 2705 Published all unpublished notes: ${ counter } / ${ unpublished . length } ` ;
this . progressContainer . innerText = publishDoneText ;
setTimeout ( ( ) => {
if ( this . progressContainer . innerText === publishDoneText ) {
this . progressContainer . innerText = "" ;
}
} , 5e3 ) ;
yield this . refreshView ( ) ;
} ) ) ;
this . modal . onOpen = ( ) => this . refreshView ( ) ;
this . modal . onClose = ( ) => this . clearView ( ) ;
} ) ;
}
clearView ( ) {
return _ _async ( this , null , function * ( ) {
while ( this . publishedContainer . lastElementChild ) {
this . publishedContainer . removeChild ( this . publishedContainer . lastElementChild ) ;
}
while ( this . changedContainer . lastElementChild ) {
this . changedContainer . removeChild ( this . changedContainer . lastElementChild ) ;
}
while ( this . deletedContainer . lastElementChild ) {
this . deletedContainer . removeChild ( this . deletedContainer . lastElementChild ) ;
}
while ( this . unpublishedContainer . lastElementChild ) {
this . unpublishedContainer . removeChild ( this . unpublishedContainer . lastElementChild ) ;
}
} ) ;
}
populateWithNotes ( ) {
return _ _async ( this , null , function * ( ) {
const publishStatus = yield this . publishStatusManager . getPublishStatus ( ) ;
publishStatus . publishedNotes . map ( ( file ) => this . publishedContainer . createEl ( "li" , { text : file . path } ) ) ;
publishStatus . unpublishedNotes . map ( ( file ) => this . unpublishedContainer . createEl ( "li" , { text : file . path } ) ) ;
publishStatus . changedNotes . map ( ( file ) => this . changedContainer . createEl ( "li" , { text : file . path } ) ) ;
publishStatus . deletedNotePaths . map ( ( path ) => this . deletedContainer . createEl ( "li" , { text : path } ) ) ;
} ) ;
}
refreshView ( ) {
return _ _async ( this , null , function * ( ) {
this . clearView ( ) ;
yield this . populateWithNotes ( ) ;
} ) ;
}
open ( ) {
this . modal . open ( ) ;
}
} ;
// PublishStatusManager.ts
var PublishStatusManager = class {
constructor ( siteManager , publisher ) {
this . siteManager = siteManager ;
this . publisher = publisher ;
}
getDeletedNotePaths ( ) {
return _ _async ( this , null , function * ( ) {
const remoteNoteHashes = yield this . siteManager . getNoteHashes ( ) ;
const marked = yield this . publisher . getFilesMarkedForPublishing ( ) ;
return this . generateDeletedNotePaths ( remoteNoteHashes , marked ) ;
} ) ;
}
generateDeletedNotePaths ( remoteNoteHashes , marked ) {
const deletedNotePaths = [ ] ;
Object . keys ( remoteNoteHashes ) . forEach ( ( key ) => {
if ( ! marked . find ( ( f ) => f . path === key ) ) {
deletedNotePaths . push ( key ) ;
}
} ) ;
return deletedNotePaths ;
}
getPublishStatus ( ) {
return _ _async ( this , null , function * ( ) {
const unpublishedNotes = [ ] ;
const publishedNotes = [ ] ;
const changedNotes = [ ] ;
const remoteNoteHashes = yield this . siteManager . getNoteHashes ( ) ;
const marked = yield this . publisher . getFilesMarkedForPublishing ( ) ;
for ( const file of marked ) {
const content = yield this . publisher . generateMarkdown ( file ) ;
const localHash = generateBlobHash ( content ) ;
const remoteHash = remoteNoteHashes [ file . path ] ;
if ( ! remoteHash ) {
unpublishedNotes . push ( file ) ;
} else if ( remoteHash === localHash ) {
publishedNotes . push ( file ) ;
} else {
changedNotes . push ( file ) ;
}
}
const deletedNotePaths = this . generateDeletedNotePaths ( remoteNoteHashes , marked ) ;
unpublishedNotes . sort ( ( a , b ) => a . path > b . path ? 1 : - 1 ) ;
publishedNotes . sort ( ( a , b ) => a . path > b . path ? 1 : - 1 ) ;
changedNotes . sort ( ( a , b ) => a . path > b . path ? 1 : - 1 ) ;
deletedNotePaths . sort ( ( a , b ) => a > b ? 1 : - 1 ) ;
return { unpublishedNotes , publishedNotes , changedNotes , deletedNotePaths } ;
} ) ;
}
} ;
// main.ts
var DEFAULT _SETTINGS = {
githubRepo : "" ,
githubToken : "" ,
githubUserName : "" ,
gardenBaseUrl : "" ,
prHistory : [ ] ,
theme : "dark" ,
baseTheme : '{"name": "default", "modes": ["dark"]}' ,
faviconPath : ""
} ;
var DigitalGarden = class extends import _obsidian5 . Plugin {
onload ( ) {
return _ _async ( this , null , function * ( ) {
this . appVersion = "2.8.0" ;
console . log ( "Initializing DigitalGarden plugin v" + this . appVersion ) ;
yield this . loadSettings ( ) ;
this . addSettingTab ( new DigitalGardenSettingTab ( this . app , this ) ) ;
yield this . addCommands ( ) ;
( 0 , import _obsidian5 . addIcon ) ( "digital-garden-icon" , seedling ) ;
this . addRibbonIcon ( "digital-garden-icon" , "Digital Garden Publication Center" , ( ) => _ _async ( this , null , function * ( ) {
this . openPublishModal ( ) ;
} ) ) ;
} ) ;
}
onunload ( ) {
}
loadSettings ( ) {
return _ _async ( this , null , function * ( ) {
this . settings = Object . assign ( { } , DEFAULT _SETTINGS , yield this . loadData ( ) ) ;
} ) ;
}
saveSettings ( ) {
return _ _async ( this , null , function * ( ) {
yield this . saveData ( this . settings ) ;
} ) ;
}
addCommands ( ) {
return _ _async ( this , null , function * ( ) {
this . addCommand ( {
id : "publish-note" ,
name : "Publish Single Note" ,
callback : ( ) => _ _async ( this , null , function * ( ) {
try {
const { vault , workspace , metadataCache } = this . app ;
const currentFile = workspace . getActiveFile ( ) ;
if ( ! currentFile ) {
new import _obsidian5 . Notice ( "No file is open/active. Please open a file and try again." ) ;
return ;
}
if ( currentFile . extension !== "md" ) {
new import _obsidian5 . Notice ( "The current file is not a markdown file. Please open a markdown file and try again." ) ;
return ;
}
const publisher = new Publisher ( vault , metadataCache , this . settings ) ;
const publishSuccessful = yield publisher . publish ( currentFile ) ;
if ( publishSuccessful ) {
new import _obsidian5 . Notice ( ` Successfully published note to your garden. ` ) ;
}
} catch ( e ) {
console . error ( e ) ;
new import _obsidian5 . Notice ( "Unable to publish note, something went wrong." ) ;
}
} )
} ) ;
this . addCommand ( {
id : "publish-multiple-notes" ,
name : "Publish Multiple Notes" ,
callback : ( ) => _ _async ( this , null , function * ( ) {
const statusBarItem = this . addStatusBarItem ( ) ;
try {
const { vault , metadataCache } = this . app ;
const publisher = new Publisher ( vault , metadataCache , this . settings ) ;
const siteManager = new DigitalGardenSiteManager ( metadataCache , this . settings ) ;
const publishStatusManager = new PublishStatusManager ( siteManager , publisher ) ;
const publishStatus = yield publishStatusManager . getPublishStatus ( ) ;
const filesToPublish = publishStatus . changedNotes . concat ( publishStatus . unpublishedNotes ) ;
const filesToDelete = publishStatus . deletedNotePaths ;
const statusBar = new PublishStatusBar ( statusBarItem , filesToPublish . length + filesToDelete . length ) ;
let errorFiles = 0 ;
let errorDeleteFiles = 0 ;
for ( const file of filesToPublish ) {
try {
statusBar . increment ( ) ;
yield publisher . publish ( file ) ;
} catch ( e ) {
errorFiles ++ ;
new import _obsidian5 . Notice ( ` Unable to publish note ${ file . name } , skipping it. ` ) ;
}
}
for ( const filePath of filesToDelete ) {
try {
statusBar . increment ( ) ;
yield publisher . delete ( filePath ) ;
} catch ( e ) {
errorDeleteFiles ++ ;
new import _obsidian5 . Notice ( ` Unable to delete note ${ filePath } , skipping it. ` ) ;
}
}
statusBar . finish ( 8e3 ) ;
new import _obsidian5 . Notice ( ` Successfully published ${ filesToPublish . length - errorFiles } notes to your garden. ` ) ;
if ( filesToDelete . length > 0 ) {
new import _obsidian5 . Notice ( ` Successfully deleted ${ filesToDelete . length - errorDeleteFiles } notes from your garden. ` ) ;
}
} catch ( e ) {
statusBarItem . remove ( ) ;
console . error ( e ) ;
new import _obsidian5 . Notice ( "Unable to publish multiple notes, something went wrong." ) ;
}
} )
} ) ;
this . addCommand ( {
id : "copy-garden-url" ,
name : "Copy Garden URL" ,
callback : ( ) => _ _async ( this , null , function * ( ) {
try {
const { metadataCache , workspace } = this . app ;
const currentFile = workspace . getActiveFile ( ) ;
if ( ! currentFile ) {
new import _obsidian5 . Notice ( "No file is open/active. Please open a file and try again." ) ;
return ;
}
const siteManager = new DigitalGardenSiteManager ( metadataCache , this . settings ) ;
const fullUrl = siteManager . getNoteUrl ( currentFile ) ;
yield navigator . clipboard . writeText ( fullUrl ) ;
new import _obsidian5 . Notice ( ` Note URL copied to clipboard ` ) ;
} catch ( e ) {
console . log ( e ) ;
new import _obsidian5 . Notice ( "Unable to copy note URL to clipboard, something went wrong." ) ;
}
} )
} ) ;
this . addCommand ( {
id : "dg-open-publish-modal" ,
name : "Open Publication Center" ,
callback : ( ) => _ _async ( this , null , function * ( ) {
this . openPublishModal ( ) ;
} )
} ) ;
} ) ;
}
openPublishModal ( ) {
if ( ! this . publishModal ) {
const siteManager = new DigitalGardenSiteManager ( this . app . metadataCache , this . settings ) ;
const publisher = new Publisher ( this . app . vault , this . app . metadataCache , this . settings ) ;
const publishStatusManager = new PublishStatusManager ( siteManager , publisher ) ;
this . publishModal = new PublishModal ( this . app , publishStatusManager , publisher , this . settings ) ;
}
this . publishModal . open ( ) ;
}
} ;
var DigitalGardenSettingTab = class extends import _obsidian5 . PluginSettingTab {
constructor ( app , plugin ) {
super ( app , plugin ) ;
this . plugin = plugin ;
}
display ( ) {
return _ _async ( this , null , function * ( ) {
const { containerEl } = this ;
const settingView = new SettingView ( this . app , containerEl , this . plugin . settings , ( ) => _ _async ( this , null , function * ( ) {
return yield this . plugin . saveData ( this . plugin . settings ) ;
} ) ) ;
const prModal = new import _obsidian5 . Modal ( this . app ) ;
yield settingView . initialize ( prModal ) ;
const handlePR = ( button ) => _ _async ( this , null , function * ( ) {
settingView . renderLoading ( ) ;
button . setDisabled ( true ) ;
try {
const siteManager = new DigitalGardenSiteManager ( this . plugin . app . metadataCache , this . plugin . settings ) ;
const prUrl = yield siteManager . createPullRequestWithSiteChanges ( ) ;
if ( prUrl ) {
this . plugin . settings . prHistory . push ( prUrl ) ;
yield this . plugin . saveSettings ( ) ;
}
settingView . renderSuccess ( prUrl ) ;
button . setDisabled ( false ) ;
} catch ( e ) {
settingView . renderError ( ) ;
}
} ) ;
settingView . renderCreatePr ( prModal , handlePR ) ;
settingView . renderPullRequestHistory ( prModal , this . plugin . settings . prHistory . reverse ( ) . slice ( 0 , 10 ) ) ;
} ) ;
}
} ;
/ * !
* is - plain - object < https : //github.com/jonschlinkert/is-plain-object>
*
* Copyright ( c ) 2014 - 2017 , Jon Schlinkert .
* Released under the MIT License .
* /