@next-safe/middleware
Advanced tools
Comparing version
# @next-safe/middleware | ||
## 0.6.0 | ||
### Minor Changes | ||
- [#24](https://github.com/nibtime/next-safe-middleware/pull/24) [`af9b7ad`](https://github.com/nibtime/next-safe-middleware/commit/af9b7ad621f4ddbcfe584abbc1d66df99258ad8c) Thanks [@nibtime](https://github.com/nibtime)! - support exhaustive inline style hashing and noncing in `document` and `strictInlineStyles` middleware | ||
### Patch Changes | ||
- [#26](https://github.com/nibtime/next-safe-middleware/pull/26) [`8340307`](https://github.com/nibtime/next-safe-middleware/commit/83403072598b8d4fc02d268a238339830534dae3) Thanks [@nibtime](https://github.com/nibtime)! - update `getPreNextScripts` for the new `<Script strategy="worker>"` with [partytown](https://partytown.builder.io/#web-workers) introduced in [Next 12.1.1](https://github.com/vercel/next.js/releases/tag/v12.1.1). | ||
- follow https://nextjs.org/docs/basic-features/script#off-loading-scripts-to-a-web-worker-experimental to set it up. | ||
## 0.5.2 | ||
@@ -4,0 +16,0 @@ |
@@ -1,2 +0,3 @@ | ||
import Document, { DocumentProps, DocumentContext } from 'next/document'; | ||
import * as Document from 'next/document'; | ||
import Document__default, { DocumentProps, DocumentContext } from 'next/document'; | ||
import React from 'react'; | ||
@@ -9,6 +10,6 @@ | ||
declare const provideComponents: (props: DocumentProps) => Provided; | ||
declare class NextSafeDocument extends Document<{ | ||
declare class NextSafeDocument extends Document__default<{ | ||
nonce?: string; | ||
}> { | ||
static getInitialProps(ctx: DocumentContext): Promise<{ | ||
static getInitialProps(ctx: DocumentContext): Promise<Document.DocumentInitialProps | { | ||
nonce: string; | ||
@@ -15,0 +16,0 @@ html: string; |
@@ -1,2 +0,2 @@ | ||
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var Document=require('next/document');var React=require('react');var crypto=require('crypto');function _interopDefaultLegacy(e){return e&& typeof e==='object'&&'default'in e?e:{'default':e}}var Document__default=_interopDefaultLegacy(Document);var React__default=_interopDefaultLegacy(React);var crypto__default=_interopDefaultLegacy(crypto);function extends_(){extends_=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return extends_.apply(this,arguments)}function _extends(){return extends_.apply(this,arguments)}const integritySha256=inlineScriptCode=>{const hash=crypto__default["default"].createHash("sha256");hash.update(inlineScriptCode);return`sha256-${hash.digest("base64")}`};const getScriptValue=(attr,attrs)=>attrs.find(([a])=>attr===a)?.[1];const quoteIfString=value=>typeof value==="string"?`'${value}'`:value;const isKnownScriptAttr=attr=>["id","src","integrity","async","defer","noModule","crossOrigin","nonce",].includes(attr);const isJsxElement=el=>typeof el==="object"&&"props"in el;const isElementWithChildren=el=>isJsxElement(el)&&"children"in el.props;const isScriptElement=el=>isJsxElement(el)&&el.type==="script";const isStyleElement=el=>isJsxElement(el)&&el.type==="style";const iterableScriptFromProps=el=>{if(!isScriptElement(el))return[];return Object.entries(el.props).filter(([,value])=>typeof value==="string"|| typeof value==="boolean"|| typeof value==="number")};const createHashableScriptLoader=(scripts,id)=>{return scripts.length>0?`(function () { ${scripts.map((attrs,i)=>` | ||
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var Document=require('next/document');var React=require('react');var cheerio=require('cheerio');var crypto=require('crypto');function _interopDefaultLegacy(e){return e&& typeof e==='object'&&'default'in e?e:{'default':e}}var Document__default=_interopDefaultLegacy(Document);var React__default=_interopDefaultLegacy(React);var cheerio__default=_interopDefaultLegacy(cheerio);var crypto__default=_interopDefaultLegacy(crypto);const CSP_LOCATION_BUILD='.next/static/csp';const CSP_HEADER='content-security-policy';const CSP_HEADER_REPORT_ONLY='content-security-policy-report-only';const CSP_NONCE_HEADER='csp-nonce';function _isPlaceholder(a){return a!=null&& typeof a==='object'&&a['@@functional/placeholder']===true}function _curry1(fn){return function f1(a){if(arguments.length===0||_isPlaceholder(a)){return f1}else{return fn.apply(this,arguments)}}}function _curry2(fn){return function f2(a,b){switch(arguments.length){case 0:return f2;case 1:return _isPlaceholder(a)?f2:_curry1(function(_b){return fn(a,_b)});default:return _isPlaceholder(a)&&_isPlaceholder(b)?f2:_isPlaceholder(a)?_curry1(function(_a){return fn(_a,b)}):_isPlaceholder(b)?_curry1(function(_b){return fn(a,_b)}):fn(a,b)}}}function _arity(n,fn){switch(n){case 0:return function(){return fn.apply(this,arguments)};case 1:return function(a0){return fn.apply(this,arguments)};case 2:return function(a0,a1){return fn.apply(this,arguments)};case 3:return function(a0,a1,a2){return fn.apply(this,arguments)};case 4:return function(a0,a1,a2,a3){return fn.apply(this,arguments)};case 5:return function(a0,a1,a2,a3,a4){return fn.apply(this,arguments)};case 6:return function(a0,a1,a2,a3,a4,a5){return fn.apply(this,arguments)};case 7:return function(a0,a1,a2,a3,a4,a5,a6){return fn.apply(this,arguments)};case 8:return function(a0,a1,a2,a3,a4,a5,a6,a7){return fn.apply(this,arguments)};case 9:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8){return fn.apply(this,arguments)};case 10:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9){return fn.apply(this,arguments)};default:throw new Error('First argument to _arity must be a non-negative integer no greater than ten')}}function _curryN(length,received,fn){return function(){var combined=[];var argsIdx=0;var left=length;var combinedIdx=0;while(combinedIdx<received.length||argsIdx<arguments.length){var result;if(combinedIdx<received.length&&(!_isPlaceholder(received[combinedIdx])||argsIdx>=arguments.length)){result=received[combinedIdx]}else{result=arguments[argsIdx];argsIdx+=1}combined[combinedIdx]=result;if(!_isPlaceholder(result)){left-=1}combinedIdx+=1}return left<=0?fn.apply(this,combined):_arity(left,_curryN(length,combined,fn))}}var curryN=_curry2(function curryN(length,fn){if(length===1){return _curry1(fn)}return _arity(length,_curryN(length,[],fn))});function _curry3(fn){return function f3(a,b,c){switch(arguments.length){case 0:return f3;case 1:return _isPlaceholder(a)?f3:_curry2(function(_b,_c){return fn(a,_b,_c)});case 2:return _isPlaceholder(a)&&_isPlaceholder(b)?f3:_isPlaceholder(a)?_curry2(function(_a,_c){return fn(_a,b,_c)}):_isPlaceholder(b)?_curry2(function(_b,_c){return fn(a,_b,_c)}):_curry1(function(_c){return fn(a,b,_c)});default:return _isPlaceholder(a)&&_isPlaceholder(b)&&_isPlaceholder(c)?f3:_isPlaceholder(a)&&_isPlaceholder(b)?_curry2(function(_a,_b){return fn(_a,_b,c)}):_isPlaceholder(a)&&_isPlaceholder(c)?_curry2(function(_a,_c){return fn(_a,b,_c)}):_isPlaceholder(b)&&_isPlaceholder(c)?_curry2(function(_b,_c){return fn(a,_b,_c)}):_isPlaceholder(a)?_curry1(function(_a){return fn(_a,b,c)}):_isPlaceholder(b)?_curry1(function(_b){return fn(a,_b,c)}):_isPlaceholder(c)?_curry1(function(_c){return fn(a,b,_c)}):fn(a,b,c)}}}var _isArray=Array.isArray||function _isArray(val){return val!=null&&val.length>=0&&Object.prototype.toString.call(val)==='[object Array]'};function _isTransformer(obj){return obj!=null&& typeof obj['@@transducer/step']==='function'}function _dispatchable(methodNames,transducerCreator,fn){return function(){if(arguments.length===0){return fn()}var obj=arguments[arguments.length-1];if(!_isArray(obj)){var idx=0;while(idx<methodNames.length){if(typeof obj[methodNames[idx]]==='function'){return obj[methodNames[idx]].apply(obj,Array.prototype.slice.call(arguments,0,-1))}idx+=1}if(_isTransformer(obj)){var transducer=transducerCreator.apply(null,Array.prototype.slice.call(arguments,0,-1));return transducer(obj)}}return fn.apply(this,arguments)}}var _xfBase={init:function(){return this.xf['@@transducer/init']()},result:function(result){return this.xf['@@transducer/result'](result)}};var max=_curry2(function max(a,b){return b>a?b:a});function _map(fn,functor){var idx=0;var len=functor.length;var result=Array(len);while(idx<len){result[idx]=fn(functor[idx]);idx+=1}return result}function _isString(x){return Object.prototype.toString.call(x)==='[object String]'}var _isArrayLike=_curry1(function isArrayLike(x){if(_isArray(x)){return true}if(!x){return false}if(typeof x!=='object'){return false}if(_isString(x)){return false}if(x.length===0){return true}if(x.length>0){return x.hasOwnProperty(0)&&x.hasOwnProperty(x.length-1)}return false});var XWrap=function(){function XWrap1(fn){this.f=fn}XWrap1.prototype['@@transducer/init']=function(){throw new Error('init not implemented on XWrap')};XWrap1.prototype['@@transducer/result']=function(acc){return acc};XWrap1.prototype['@@transducer/step']=function(acc,x){return this.f(acc,x)};return XWrap1}();function _xwrap(fn){return new XWrap(fn)}var bind=_curry2(function bind(fn,thisObj){return _arity(fn.length,function(){return fn.apply(thisObj,arguments)})});function _arrayReduce(xf,acc,list){var idx=0;var len=list.length;while(idx<len){acc=xf['@@transducer/step'](acc,list[idx]);if(acc&&acc['@@transducer/reduced']){acc=acc['@@transducer/value'];break}idx+=1}return xf['@@transducer/result'](acc)}function _iterableReduce(xf,acc,iter){var step=iter.next();while(!step.done){acc=xf['@@transducer/step'](acc,step.value);if(acc&&acc['@@transducer/reduced']){acc=acc['@@transducer/value'];break}step=iter.next()}return xf['@@transducer/result'](acc)}function _methodReduce(xf,acc,obj,methodName){return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'],xf),acc))}var symIterator=typeof Symbol!=='undefined'?Symbol.iterator:'@@iterator';function _reduce(fn,acc,list){if(typeof fn==='function'){fn=_xwrap(fn)}if(_isArrayLike(list)){return _arrayReduce(fn,acc,list)}if(typeof list['fantasy-land/reduce']==='function'){return _methodReduce(fn,acc,list,'fantasy-land/reduce')}if(list[symIterator]!=null){return _iterableReduce(fn,acc,list[symIterator]())}if(typeof list.next==='function'){return _iterableReduce(fn,acc,list)}if(typeof list.reduce==='function'){return _methodReduce(fn,acc,list,'reduce')}throw new TypeError('reduce: list must be array or iterable')}var XMap=function(){function XMap1(f,xf){this.xf=xf;this.f=f}XMap1.prototype['@@transducer/init']=_xfBase.init;XMap1.prototype['@@transducer/result']=_xfBase.result;XMap1.prototype['@@transducer/step']=function(result,input){return this.xf['@@transducer/step'](result,this.f(input))};return XMap1}();var _xmap=_curry2(function _xmap(f,xf){return new XMap(f,xf)});function _has(prop1,obj){return Object.prototype.hasOwnProperty.call(obj,prop1)}var toString=Object.prototype.toString;var _isArguments=function(){return toString.call(arguments)==='[object Arguments]'?function _isArguments(x){return toString.call(x)==='[object Arguments]'}:function _isArguments(x){return _has('callee',x)}}();var hasEnumBug=!({toString:null}).propertyIsEnumerable('toString');var nonEnumerableProps=['constructor','valueOf','isPrototypeOf','toString','propertyIsEnumerable','hasOwnProperty','toLocaleString'];var hasArgsEnumBug=function(){return arguments.propertyIsEnumerable('length')}();var contains=function contains(list,item){var idx=0;while(idx<list.length){if(list[idx]===item){return true}idx+=1}return false};var keys=typeof Object.keys==='function'&&!hasArgsEnumBug?_curry1(function keys(obj){return Object(obj)!==obj?[]:Object.keys(obj)}):_curry1(function keys(obj){if(Object(obj)!==obj){return[]}var prop2,nIdx;var ks=[];var checkArgsLength=hasArgsEnumBug&&_isArguments(obj);for(prop2 in obj){if(_has(prop2,obj)&&(!checkArgsLength||prop2!=='length')){ks[ks.length]=prop2}}if(hasEnumBug){nIdx=nonEnumerableProps.length-1;while(nIdx>=0){prop2=nonEnumerableProps[nIdx];if(_has(prop2,obj)&&!contains(ks,prop2)){ks[ks.length]=prop2}nIdx-=1}}return ks});var map=_curry2(_dispatchable(['fantasy-land/map','map'],_xmap,function map(fn,functor){switch(Object.prototype.toString.call(functor)){case'[object Function]':return curryN(functor.length,function(){return fn.call(this,functor.apply(this,arguments))});case'[object Object]':return _reduce(function(acc,key){acc[key]=fn(functor[key]);return acc},{},keys(functor));default:return _map(fn,functor)}}));var _isInteger=Number.isInteger||function _isInteger(n){return n<<0===n};var nth=_curry2(function nth(offset,list){var idx=offset<0?list.length+offset:offset;return _isString(list)?list.charAt(idx):list[idx]});var prop=_curry2(function prop(p,obj){if(obj==null){return}return _isInteger(p)?nth(p,obj):obj[p]});var pluck=_curry2(function pluck(p,list){return map(prop(p),list)});var reduce=_curry3(_reduce);var reduce$1=reduce;function _makeFlat(recursive){return function flatt(list){var value,jlen,j;var result=[];var idx=0;var ilen=list.length;while(idx<ilen){if(_isArrayLike(list[idx])){value=recursive?flatt(list[idx]):list[idx];j=0;jlen=value.length;while(j<jlen){result[result.length]=value[j];j+=1}}else{result[result.length]=list[idx]}idx+=1}return result}}var type=_curry1(function type(val){return val===null?'Null':val===undefined?'Undefined':Object.prototype.toString.call(val).slice(8,-1)});function _pipe(f,g){return function(){return g.call(this,f.apply(this,arguments))}}function _checkForMethod(methodname,fn){return function(){var length=arguments.length;if(length===0){return fn()}var obj=arguments[length-1];return _isArray(obj)|| typeof obj[methodname]!=='function'?fn.apply(this,arguments):obj[methodname].apply(obj,Array.prototype.slice.call(arguments,0,length-1))}}var slice=_curry3(_checkForMethod('slice',function slice(fromIndex,toIndex,list){return Array.prototype.slice.call(list,fromIndex,toIndex)}));var tail=_curry1(_checkForMethod('tail',slice(1,Infinity)));var tail$1=tail;function pipe(){if(arguments.length===0){throw new Error('pipe requires at least one argument')}return _arity(arguments[0].length,reduce$1(_pipe,arguments[0],tail$1(arguments)))}function _identity(x){return x}var identity=_curry1(_identity);function _arrayFromIterator(iter){var list=[];var next;while(!(next=iter.next()).done){list.push(next.value)}return list}function _includesWith(pred,x,list){var idx=0;var len=list.length;while(idx<len){if(pred(x,list[idx])){return true}idx+=1}return false}function _functionName(f){var match=String(f).match(/^function (\w*)/);return match==null?'':match[1]}function _objectIs(a,b){if(a===b){return a!==0||1/a===1/b}else{return a!==a&&b!==b}}var _objectIs$1=typeof Object.is==='function'?Object.is:_objectIs;function _uniqContentEquals(aIterator,bIterator,stackA,stackB){var a=_arrayFromIterator(aIterator);var b1=_arrayFromIterator(bIterator);function eq(_a,_b){return _equals(_a,_b,stackA.slice(),stackB.slice())}return!_includesWith(function(b,aItem){return!_includesWith(eq,aItem,b)},b1,a)}function _equals(a,b,stackA,stackB){if(_objectIs$1(a,b)){return true}var typeA=type(a);if(typeA!==type(b)){return false}if(typeof a['fantasy-land/equals']==='function'|| typeof b['fantasy-land/equals']==='function'){return typeof a['fantasy-land/equals']==='function'&&a['fantasy-land/equals'](b)&& typeof b['fantasy-land/equals']==='function'&&b['fantasy-land/equals'](a)}if(typeof a.equals==='function'|| typeof b.equals==='function'){return typeof a.equals==='function'&&a.equals(b)&& typeof b.equals==='function'&&b.equals(a)}switch(typeA){case'Arguments':case'Array':case'Object':if(typeof a.constructor==='function'&&_functionName(a.constructor)==='Promise'){return a===b}break;case'Boolean':case'Number':case'String':if(!(typeof a===typeof b&&_objectIs$1(a.valueOf(),b.valueOf()))){return false}break;case'Date':if(!_objectIs$1(a.valueOf(),b.valueOf())){return false}break;case'Error':return a.name===b.name&&a.message===b.message;case'RegExp':if(!(a.source===b.source&&a.global===b.global&&a.ignoreCase===b.ignoreCase&&a.multiline===b.multiline&&a.sticky===b.sticky&&a.unicode===b.unicode)){return false}break}var idx=stackA.length-1;while(idx>=0){if(stackA[idx]===a){return stackB[idx]===b}idx-=1}switch(typeA){case'Map':if(a.size!==b.size){return false}return _uniqContentEquals(a.entries(),b.entries(),stackA.concat([a]),stackB.concat([b]));case'Set':if(a.size!==b.size){return false}return _uniqContentEquals(a.values(),b.values(),stackA.concat([a]),stackB.concat([b]));case'Arguments':case'Array':case'Object':case'Boolean':case'Number':case'String':case'Date':case'Error':case'RegExp':case'Int8Array':case'Uint8Array':case'Uint8ClampedArray':case'Int16Array':case'Uint16Array':case'Int32Array':case'Uint32Array':case'Float32Array':case'Float64Array':case'ArrayBuffer':break;default:return false}var keysA=keys(a);if(keysA.length!==keys(b).length){return false}var extendedStackA=stackA.concat([a]);var extendedStackB=stackB.concat([b]);idx=keysA.length-1;while(idx>=0){var key=keysA[idx];if(!(_has(key,b)&&_equals(b[key],a[key],extendedStackA,extendedStackB))){return false}idx-=1}return true}var equals=_curry2(function equals(a,b){return _equals(a,b,[],[])});function _indexOf(list,a,idx){var inf,item;if(typeof list.indexOf==='function'){switch(typeof a){case'number':if(a===0){inf=1/a;while(idx<list.length){item=list[idx];if(item===0&&1/item===inf){return idx}idx+=1}return-1}else if(a!==a){while(idx<list.length){item=list[idx];if(typeof item==='number'&&item!==item){return idx}idx+=1}return-1}return list.indexOf(a,idx);case'string':case'boolean':case'function':case'undefined':return list.indexOf(a,idx);case'object':if(a===null){return list.indexOf(a,idx)}}}while(idx<list.length){if(equals(list[idx],a)){return idx}idx+=1}return-1}function _includes(a,list){return _indexOf(list,a,0)>=0}function _complement(f){return function(){return!f.apply(this,arguments)}}function _filter(fn,list){var idx=0;var len=list.length;var result=[];while(idx<len){if(fn(list[idx])){result[result.length]=list[idx]}idx+=1}return result}function _isObject(x){return Object.prototype.toString.call(x)==='[object Object]'}var XFilter=function(){function XFilter1(f,xf){this.xf=xf;this.f=f}XFilter1.prototype['@@transducer/init']=_xfBase.init;XFilter1.prototype['@@transducer/result']=_xfBase.result;XFilter1.prototype['@@transducer/step']=function(result,input){return this.f(input)?this.xf['@@transducer/step'](result,input):result};return XFilter1}();var _xfilter=_curry2(function _xfilter(f,xf){return new XFilter(f,xf)});var filter=_curry2(_dispatchable(['fantasy-land/filter','filter'],_xfilter,function(pred,filterable){return _isObject(filterable)?_reduce(function(acc,key){if(pred(filterable[key])){acc[key]=filterable[key]}return acc},{},keys(filterable)):_filter(pred,filterable)}));var reject=_curry2(function reject(pred,filterable){return filter(_complement(pred),filterable)});var converge=_curry2(function converge(after,fns){return curryN(reduce$1(max,0,pluck('length',fns)),function(){var args=arguments;var context=this;return after.apply(context,_map(function(fn){return fn.apply(context,args)},fns))})});var _Set=function(){function _Set1(){this._nativeSet=typeof Set==='function'?new Set():null;this._items={}}_Set1.prototype.add=function(item){return!hasOrAdd(item,true,this)};_Set1.prototype.has=function(item){return hasOrAdd(item,false,this)};return _Set1}();function hasOrAdd(item,shouldAdd,set){var type1=typeof item;var prevSize,newSize;switch(type1){case'string':case'number':if(item===0&&1/item=== -Infinity){if(set._items['-0']){return true}else{if(shouldAdd){set._items['-0']=true}return false}}if(set._nativeSet!==null){if(shouldAdd){prevSize=set._nativeSet.size;set._nativeSet.add(item);newSize=set._nativeSet.size;return newSize===prevSize}else{return set._nativeSet.has(item)}}else{if(!(type1 in set._items)){if(shouldAdd){set._items[type1]={};set._items[type1][item]=true}return false}else if(item in set._items[type1]){return true}else{if(shouldAdd){set._items[type1][item]=true}return false}}case'boolean':if(type1 in set._items){var bIdx=item?1:0;if(set._items[type1][bIdx]){return true}else{if(shouldAdd){set._items[type1][bIdx]=true}return false}}else{if(shouldAdd){set._items[type1]=item?[false,true]:[true,false]}return false}case'function':if(set._nativeSet!==null){if(shouldAdd){prevSize=set._nativeSet.size;set._nativeSet.add(item);newSize=set._nativeSet.size;return newSize===prevSize}else{return set._nativeSet.has(item)}}else{if(!(type1 in set._items)){if(shouldAdd){set._items[type1]=[item]}return false}if(!_includes(item,set._items[type1])){if(shouldAdd){set._items[type1].push(item)}return false}return true}case'undefined':if(set._items[type1]){return true}else{if(shouldAdd){set._items[type1]=true}return false}case'object':if(item===null){if(!set._items['null']){if(shouldAdd){set._items['null']=true}return false}return true}default:type1=Object.prototype.toString.call(item);if(!(type1 in set._items)){if(shouldAdd){set._items[type1]=[item]}return false}if(!_includes(item,set._items[type1])){if(shouldAdd){set._items[type1].push(item)}return false}return true}}var difference=_curry2(function difference(first,second){var out=[];var idx=0;var firstLen=first.length;var secondLen=second.length;var toFilterOut=new _Set();for(var i=0;i<secondLen;i+=1){toFilterOut.add(second[i])}while(idx<firstLen){if(toFilterOut.add(first[idx])){out[out.length]=first[idx]}idx+=1}return out});var difference$1=difference;var flatten=_curry1(_makeFlat(true));var flatten$1=flatten;var XUniqBy=function(){function XUniqBy1(f,xf){this.xf=xf;this.f=f;this.set=new _Set()}XUniqBy1.prototype['@@transducer/init']=_xfBase.init;XUniqBy1.prototype['@@transducer/result']=_xfBase.result;XUniqBy1.prototype['@@transducer/step']=function(result,input){return this.set.add(this.f(input))?this.xf['@@transducer/step'](result,input):result};return XUniqBy1}();var _xuniqBy=_curry2(function _xuniqBy(f,xf){return new XUniqBy(f,xf)});var uniqBy=_curry2(_dispatchable([],_xuniqBy,function(fn,list){var set=new _Set();var result=[];var idx=0;var appliedItem,item;while(idx<list.length){item=list[idx];appliedItem=fn(item);if(set.add(appliedItem)){result.push(item)}idx+=1}return result}));var uniq=uniqBy(identity);var uniq$1=uniq;var juxt=_curry1(function juxt(fns){return converge(function(){return Array.prototype.slice.call(arguments,0)},fns)});var mergeWithKey=_curry3(function mergeWithKey(fn,l,r){var result={};var k;for(k in l){if(_has(k,l)){result[k]=_has(k,r)?fn(k,l[k],r[k]):l[k]}}for(k in r){if(_has(k,r)&&!_has(k,result)){result[k]=r[k]}}return result});var mergeWithKey$1=mergeWithKey;var partition=juxt([filter,reject]);var partition$1=partition;const arrayifyCspValues=values=>{if(typeof values!=="string"){return values}return values.trim().split(" ").map(v=>v.trim()).filter(Boolean)};const arrayifyCsp=csp=>{const arrayifiedEntries=Object.entries(csp).map(([directive,values])=>{return[directive,arrayifyCspValues(values)]});return Object.fromEntries(arrayifiedEntries.filter(([k,v])=>k&&v&&v.length))};const toCspContent=csp=>Object.entries(arrayifyCsp(csp)).map(([attr,values])=>`${attr} ${values.join(" ")}`).join(";");const fromCspContent=content=>Object.fromEntries(content.trim().split(";").filter(Boolean).map(line=>line.split(" ").map(lineItem=>lineItem.trim()).filter(Boolean)).filter(Boolean).map(line=>{const directive=line[0];const values=line.slice(1);return directive&&values.length?[directive,values]:[]}));const extendCsp=(csp,cspExtension,mode="prepend")=>{const concatValues=(_k,l,r)=>mode!=="override"?uniq$1(mode==="append"?[...l,...r]:[...r,...l]):r;return mergeWithKey$1(concatValues,arrayifyCsp(csp),arrayifyCsp(cspExtension))};function extends_(){extends_=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return extends_.apply(this,arguments)}function _extends(){return extends_.apply(this,arguments)}const integritySha256=inlineScriptCode=>{const hash=crypto__default["default"].createHash("sha256");hash.update(inlineScriptCode);return`sha256-${hash.digest("base64")}`};const getScriptValue=(attr,attrs)=>attrs.find(([a])=>attr===a)?.[1];const quoteIfString=value=>typeof value==="string"?`'${value}'`:value;const isKnownScriptAttr=attr=>["id","src","integrity","async","defer","noModule","crossOrigin","nonce",].includes(attr);const isJsxElement=el=>!!el&& typeof el==="object"&&"props"in el;const isElementWithChildren=el=>isJsxElement(el)&&"children"in el.props;const isScriptElement=el=>isJsxElement(el)&&el.type==="script";const isStyleElement=el=>isJsxElement(el)&&el.type==="style";const iterableScriptFromProps=el=>{if(!isScriptElement(el))return[];return Object.entries(el.props).filter(([,value])=>typeof value==="string"|| typeof value==="boolean"|| typeof value==="number")};const createHashableScriptLoader=(scripts,id)=>{return scripts.length>0?`(function () { ${scripts.map((attrs,i)=>` | ||
var s${i} = document.createElement('script'); | ||
@@ -10,2 +10,2 @@ ${attrs?.map(([attr,value])=>isKnownScriptAttr(attr)?`s${i}.${attr}=${quoteIfString(value)}`:`s${i}.setAttribute('${attr}', '${value}')`).join(";")}`).join(";")}; | ||
})() | ||
`:""};const createTrustedLoadingProxy=els=>{const iterableScripts=els.map(iterableScriptFromProps);const proxy=createHashableScriptLoader(iterableScripts,"proxy-self-7f10ba7a15bc0318e7dd56e8c7e1cff");const id=integritySha256(proxy).replace(/^sha256-/g,"");const inlineCode=proxy.replace(/proxy-self-7f10ba7a15bc0318e7dd56e8c7e1cff/g,id);const async=iterableScripts.every(s=>!!getScriptValue("async",s));const defer=iterableScripts.every(s=>!!getScriptValue("defer",s));return React__default["default"].createElement("script",{id:id,async:async||undefined,defer:defer||undefined},inlineCode)};const withHashIfInlineScript=s=>{if(!isScriptElement(s)){return s}const{children,dangerouslySetInnerHTML,...props}=s.props;let inlineScriptCode="";if(typeof children==="string"){inlineScriptCode=s.props.children}else if(dangerouslySetInnerHTML){inlineScriptCode=dangerouslySetInnerHTML.__html}if(!inlineScriptCode){return s}const integrity=integritySha256(inlineScriptCode);return React__default["default"].createElement("script",_extends({key:s.key},props,{src:null,integrity:integrity,dangerouslySetInnerHTML:{__html:inlineScriptCode}}))};const scriptWithPatchedCrossOrigin=s=>{if(!isScriptElement(s)||!(s.props.integrity&&s.props.src)||!s.props["data-crossorigin"]){return s}const setCrossOrigin={crossOrigin:s.props["data-crossorigin"]};return React__default["default"].createElement("script",_extends({key:s.key},s.props,setCrossOrigin))};function _isPlaceholder(a){return a!=null&& typeof a==='object'&&a['@@functional/placeholder']===true}function _curry1(fn){return function f1(a){if(arguments.length===0||_isPlaceholder(a)){return f1}else{return fn.apply(this,arguments)}}}function _curry2(fn){return function f2(a,b){switch(arguments.length){case 0:return f2;case 1:return _isPlaceholder(a)?f2:_curry1(function(_b){return fn(a,_b)});default:return _isPlaceholder(a)&&_isPlaceholder(b)?f2:_isPlaceholder(a)?_curry1(function(_a){return fn(_a,b)}):_isPlaceholder(b)?_curry1(function(_b){return fn(a,_b)}):fn(a,b)}}}function _arity(n,fn){switch(n){case 0:return function(){return fn.apply(this,arguments)};case 1:return function(a0){return fn.apply(this,arguments)};case 2:return function(a0,a1){return fn.apply(this,arguments)};case 3:return function(a0,a1,a2){return fn.apply(this,arguments)};case 4:return function(a0,a1,a2,a3){return fn.apply(this,arguments)};case 5:return function(a0,a1,a2,a3,a4){return fn.apply(this,arguments)};case 6:return function(a0,a1,a2,a3,a4,a5){return fn.apply(this,arguments)};case 7:return function(a0,a1,a2,a3,a4,a5,a6){return fn.apply(this,arguments)};case 8:return function(a0,a1,a2,a3,a4,a5,a6,a7){return fn.apply(this,arguments)};case 9:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8){return fn.apply(this,arguments)};case 10:return function(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9){return fn.apply(this,arguments)};default:throw new Error('First argument to _arity must be a non-negative integer no greater than ten')}}function _curryN(length,received,fn){return function(){var combined=[];var argsIdx=0;var left=length;var combinedIdx=0;while(combinedIdx<received.length||argsIdx<arguments.length){var result;if(combinedIdx<received.length&&(!_isPlaceholder(received[combinedIdx])||argsIdx>=arguments.length)){result=received[combinedIdx]}else{result=arguments[argsIdx];argsIdx+=1}combined[combinedIdx]=result;if(!_isPlaceholder(result)){left-=1}combinedIdx+=1}return left<=0?fn.apply(this,combined):_arity(left,_curryN(length,combined,fn))}}var curryN=_curry2(function curryN(length,fn){if(length===1){return _curry1(fn)}return _arity(length,_curryN(length,[],fn))});function _curry3(fn){return function f3(a,b,c){switch(arguments.length){case 0:return f3;case 1:return _isPlaceholder(a)?f3:_curry2(function(_b,_c){return fn(a,_b,_c)});case 2:return _isPlaceholder(a)&&_isPlaceholder(b)?f3:_isPlaceholder(a)?_curry2(function(_a,_c){return fn(_a,b,_c)}):_isPlaceholder(b)?_curry2(function(_b,_c){return fn(a,_b,_c)}):_curry1(function(_c){return fn(a,b,_c)});default:return _isPlaceholder(a)&&_isPlaceholder(b)&&_isPlaceholder(c)?f3:_isPlaceholder(a)&&_isPlaceholder(b)?_curry2(function(_a,_b){return fn(_a,_b,c)}):_isPlaceholder(a)&&_isPlaceholder(c)?_curry2(function(_a,_c){return fn(_a,b,_c)}):_isPlaceholder(b)&&_isPlaceholder(c)?_curry2(function(_b,_c){return fn(a,_b,_c)}):_isPlaceholder(a)?_curry1(function(_a){return fn(_a,b,c)}):_isPlaceholder(b)?_curry1(function(_b){return fn(a,_b,c)}):_isPlaceholder(c)?_curry1(function(_c){return fn(a,b,_c)}):fn(a,b,c)}}}var _isArray=Array.isArray||function _isArray(val){return val!=null&&val.length>=0&&Object.prototype.toString.call(val)==='[object Array]'};function _isTransformer(obj){return obj!=null&& typeof obj['@@transducer/step']==='function'}function _dispatchable(methodNames,transducerCreator,fn){return function(){if(arguments.length===0){return fn()}var obj=arguments[arguments.length-1];if(!_isArray(obj)){var idx=0;while(idx<methodNames.length){if(typeof obj[methodNames[idx]]==='function'){return obj[methodNames[idx]].apply(obj,Array.prototype.slice.call(arguments,0,-1))}idx+=1}if(_isTransformer(obj)){var transducer=transducerCreator.apply(null,Array.prototype.slice.call(arguments,0,-1));return transducer(obj)}}return fn.apply(this,arguments)}}var _xfBase={init:function(){return this.xf['@@transducer/init']()},result:function(result){return this.xf['@@transducer/result'](result)}};var max=_curry2(function max(a,b){return b>a?b:a});function _map(fn,functor){var idx=0;var len=functor.length;var result=Array(len);while(idx<len){result[idx]=fn(functor[idx]);idx+=1}return result}function _isString(x){return Object.prototype.toString.call(x)==='[object String]'}var _isArrayLike=_curry1(function isArrayLike(x){if(_isArray(x)){return true}if(!x){return false}if(typeof x!=='object'){return false}if(_isString(x)){return false}if(x.length===0){return true}if(x.length>0){return x.hasOwnProperty(0)&&x.hasOwnProperty(x.length-1)}return false});var XWrap=function(){function XWrap1(fn){this.f=fn}XWrap1.prototype['@@transducer/init']=function(){throw new Error('init not implemented on XWrap')};XWrap1.prototype['@@transducer/result']=function(acc){return acc};XWrap1.prototype['@@transducer/step']=function(acc,x){return this.f(acc,x)};return XWrap1}();function _xwrap(fn){return new XWrap(fn)}var bind=_curry2(function bind(fn,thisObj){return _arity(fn.length,function(){return fn.apply(thisObj,arguments)})});function _arrayReduce(xf,acc,list){var idx=0;var len=list.length;while(idx<len){acc=xf['@@transducer/step'](acc,list[idx]);if(acc&&acc['@@transducer/reduced']){acc=acc['@@transducer/value'];break}idx+=1}return xf['@@transducer/result'](acc)}function _iterableReduce(xf,acc,iter){var step=iter.next();while(!step.done){acc=xf['@@transducer/step'](acc,step.value);if(acc&&acc['@@transducer/reduced']){acc=acc['@@transducer/value'];break}step=iter.next()}return xf['@@transducer/result'](acc)}function _methodReduce(xf,acc,obj,methodName){return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'],xf),acc))}var symIterator=typeof Symbol!=='undefined'?Symbol.iterator:'@@iterator';function _reduce(fn,acc,list){if(typeof fn==='function'){fn=_xwrap(fn)}if(_isArrayLike(list)){return _arrayReduce(fn,acc,list)}if(typeof list['fantasy-land/reduce']==='function'){return _methodReduce(fn,acc,list,'fantasy-land/reduce')}if(list[symIterator]!=null){return _iterableReduce(fn,acc,list[symIterator]())}if(typeof list.next==='function'){return _iterableReduce(fn,acc,list)}if(typeof list.reduce==='function'){return _methodReduce(fn,acc,list,'reduce')}throw new TypeError('reduce: list must be array or iterable')}var XMap=function(){function XMap1(f,xf){this.xf=xf;this.f=f}XMap1.prototype['@@transducer/init']=_xfBase.init;XMap1.prototype['@@transducer/result']=_xfBase.result;XMap1.prototype['@@transducer/step']=function(result,input){return this.xf['@@transducer/step'](result,this.f(input))};return XMap1}();var _xmap=_curry2(function _xmap(f,xf){return new XMap(f,xf)});function _has(prop1,obj){return Object.prototype.hasOwnProperty.call(obj,prop1)}var toString=Object.prototype.toString;var _isArguments=function(){return toString.call(arguments)==='[object Arguments]'?function _isArguments(x){return toString.call(x)==='[object Arguments]'}:function _isArguments(x){return _has('callee',x)}}();var hasEnumBug=!({toString:null}).propertyIsEnumerable('toString');var nonEnumerableProps=['constructor','valueOf','isPrototypeOf','toString','propertyIsEnumerable','hasOwnProperty','toLocaleString'];var hasArgsEnumBug=function(){return arguments.propertyIsEnumerable('length')}();var contains=function contains(list,item){var idx=0;while(idx<list.length){if(list[idx]===item){return true}idx+=1}return false};var keys=typeof Object.keys==='function'&&!hasArgsEnumBug?_curry1(function keys(obj){return Object(obj)!==obj?[]:Object.keys(obj)}):_curry1(function keys(obj){if(Object(obj)!==obj){return[]}var prop2,nIdx;var ks=[];var checkArgsLength=hasArgsEnumBug&&_isArguments(obj);for(prop2 in obj){if(_has(prop2,obj)&&(!checkArgsLength||prop2!=='length')){ks[ks.length]=prop2}}if(hasEnumBug){nIdx=nonEnumerableProps.length-1;while(nIdx>=0){prop2=nonEnumerableProps[nIdx];if(_has(prop2,obj)&&!contains(ks,prop2)){ks[ks.length]=prop2}nIdx-=1}}return ks});var map=_curry2(_dispatchable(['fantasy-land/map','map'],_xmap,function map(fn,functor){switch(Object.prototype.toString.call(functor)){case'[object Function]':return curryN(functor.length,function(){return fn.call(this,functor.apply(this,arguments))});case'[object Object]':return _reduce(function(acc,key){acc[key]=fn(functor[key]);return acc},{},keys(functor));default:return _map(fn,functor)}}));var _isInteger=Number.isInteger||function _isInteger(n){return n<<0===n};var nth=_curry2(function nth(offset,list){var idx=offset<0?list.length+offset:offset;return _isString(list)?list.charAt(idx):list[idx]});var prop=_curry2(function prop(p,obj){if(obj==null){return}return _isInteger(p)?nth(p,obj):obj[p]});var pluck=_curry2(function pluck(p,list){return map(prop(p),list)});var reduce=_curry3(_reduce);var reduce$1=reduce;function _makeFlat(recursive){return function flatt(list){var value,jlen,j;var result=[];var idx=0;var ilen=list.length;while(idx<ilen){if(_isArrayLike(list[idx])){value=recursive?flatt(list[idx]):list[idx];j=0;jlen=value.length;while(j<jlen){result[result.length]=value[j];j+=1}}else{result[result.length]=list[idx]}idx+=1}return result}}var type=_curry1(function type(val){return val===null?'Null':val===undefined?'Undefined':Object.prototype.toString.call(val).slice(8,-1)});function _pipe(f,g){return function(){return g.call(this,f.apply(this,arguments))}}function _checkForMethod(methodname,fn){return function(){var length=arguments.length;if(length===0){return fn()}var obj=arguments[length-1];return _isArray(obj)|| typeof obj[methodname]!=='function'?fn.apply(this,arguments):obj[methodname].apply(obj,Array.prototype.slice.call(arguments,0,length-1))}}var slice=_curry3(_checkForMethod('slice',function slice(fromIndex,toIndex,list){return Array.prototype.slice.call(list,fromIndex,toIndex)}));var tail=_curry1(_checkForMethod('tail',slice(1,Infinity)));var tail$1=tail;function pipe(){if(arguments.length===0){throw new Error('pipe requires at least one argument')}return _arity(arguments[0].length,reduce$1(_pipe,arguments[0],tail$1(arguments)))}function _arrayFromIterator(iter){var list=[];var next;while(!(next=iter.next()).done){list.push(next.value)}return list}function _includesWith(pred,x,list){var idx=0;var len=list.length;while(idx<len){if(pred(x,list[idx])){return true}idx+=1}return false}function _functionName(f){var match=String(f).match(/^function (\w*)/);return match==null?'':match[1]}function _objectIs(a,b){if(a===b){return a!==0||1/a===1/b}else{return a!==a&&b!==b}}var _objectIs$1=typeof Object.is==='function'?Object.is:_objectIs;function _uniqContentEquals(aIterator,bIterator,stackA,stackB){var a=_arrayFromIterator(aIterator);var b1=_arrayFromIterator(bIterator);function eq(_a,_b){return _equals(_a,_b,stackA.slice(),stackB.slice())}return!_includesWith(function(b,aItem){return!_includesWith(eq,aItem,b)},b1,a)}function _equals(a,b,stackA,stackB){if(_objectIs$1(a,b)){return true}var typeA=type(a);if(typeA!==type(b)){return false}if(typeof a['fantasy-land/equals']==='function'|| typeof b['fantasy-land/equals']==='function'){return typeof a['fantasy-land/equals']==='function'&&a['fantasy-land/equals'](b)&& typeof b['fantasy-land/equals']==='function'&&b['fantasy-land/equals'](a)}if(typeof a.equals==='function'|| typeof b.equals==='function'){return typeof a.equals==='function'&&a.equals(b)&& typeof b.equals==='function'&&b.equals(a)}switch(typeA){case'Arguments':case'Array':case'Object':if(typeof a.constructor==='function'&&_functionName(a.constructor)==='Promise'){return a===b}break;case'Boolean':case'Number':case'String':if(!(typeof a===typeof b&&_objectIs$1(a.valueOf(),b.valueOf()))){return false}break;case'Date':if(!_objectIs$1(a.valueOf(),b.valueOf())){return false}break;case'Error':return a.name===b.name&&a.message===b.message;case'RegExp':if(!(a.source===b.source&&a.global===b.global&&a.ignoreCase===b.ignoreCase&&a.multiline===b.multiline&&a.sticky===b.sticky&&a.unicode===b.unicode)){return false}break}var idx=stackA.length-1;while(idx>=0){if(stackA[idx]===a){return stackB[idx]===b}idx-=1}switch(typeA){case'Map':if(a.size!==b.size){return false}return _uniqContentEquals(a.entries(),b.entries(),stackA.concat([a]),stackB.concat([b]));case'Set':if(a.size!==b.size){return false}return _uniqContentEquals(a.values(),b.values(),stackA.concat([a]),stackB.concat([b]));case'Arguments':case'Array':case'Object':case'Boolean':case'Number':case'String':case'Date':case'Error':case'RegExp':case'Int8Array':case'Uint8Array':case'Uint8ClampedArray':case'Int16Array':case'Uint16Array':case'Int32Array':case'Uint32Array':case'Float32Array':case'Float64Array':case'ArrayBuffer':break;default:return false}var keysA=keys(a);if(keysA.length!==keys(b).length){return false}var extendedStackA=stackA.concat([a]);var extendedStackB=stackB.concat([b]);idx=keysA.length-1;while(idx>=0){var key=keysA[idx];if(!(_has(key,b)&&_equals(b[key],a[key],extendedStackA,extendedStackB))){return false}idx-=1}return true}var equals=_curry2(function equals(a,b){return _equals(a,b,[],[])});function _indexOf(list,a,idx){var inf,item;if(typeof list.indexOf==='function'){switch(typeof a){case'number':if(a===0){inf=1/a;while(idx<list.length){item=list[idx];if(item===0&&1/item===inf){return idx}idx+=1}return-1}else if(a!==a){while(idx<list.length){item=list[idx];if(typeof item==='number'&&item!==item){return idx}idx+=1}return-1}return list.indexOf(a,idx);case'string':case'boolean':case'function':case'undefined':return list.indexOf(a,idx);case'object':if(a===null){return list.indexOf(a,idx)}}}while(idx<list.length){if(equals(list[idx],a)){return idx}idx+=1}return-1}function _includes(a,list){return _indexOf(list,a,0)>=0}function _complement(f){return function(){return!f.apply(this,arguments)}}function _filter(fn,list){var idx=0;var len=list.length;var result=[];while(idx<len){if(fn(list[idx])){result[result.length]=list[idx]}idx+=1}return result}function _isObject(x){return Object.prototype.toString.call(x)==='[object Object]'}var XFilter=function(){function XFilter1(f,xf){this.xf=xf;this.f=f}XFilter1.prototype['@@transducer/init']=_xfBase.init;XFilter1.prototype['@@transducer/result']=_xfBase.result;XFilter1.prototype['@@transducer/step']=function(result,input){return this.f(input)?this.xf['@@transducer/step'](result,input):result};return XFilter1}();var _xfilter=_curry2(function _xfilter(f,xf){return new XFilter(f,xf)});var filter=_curry2(_dispatchable(['fantasy-land/filter','filter'],_xfilter,function(pred,filterable){return _isObject(filterable)?_reduce(function(acc,key){if(pred(filterable[key])){acc[key]=filterable[key]}return acc},{},keys(filterable)):_filter(pred,filterable)}));var reject=_curry2(function reject(pred,filterable){return filter(_complement(pred),filterable)});var converge=_curry2(function converge(after,fns){return curryN(reduce$1(max,0,pluck('length',fns)),function(){var args=arguments;var context=this;return after.apply(context,_map(function(fn){return fn.apply(context,args)},fns))})});var _Set=function(){function _Set1(){this._nativeSet=typeof Set==='function'?new Set():null;this._items={}}_Set1.prototype.add=function(item){return!hasOrAdd(item,true,this)};_Set1.prototype.has=function(item){return hasOrAdd(item,false,this)};return _Set1}();function hasOrAdd(item,shouldAdd,set){var type1=typeof item;var prevSize,newSize;switch(type1){case'string':case'number':if(item===0&&1/item=== -Infinity){if(set._items['-0']){return true}else{if(shouldAdd){set._items['-0']=true}return false}}if(set._nativeSet!==null){if(shouldAdd){prevSize=set._nativeSet.size;set._nativeSet.add(item);newSize=set._nativeSet.size;return newSize===prevSize}else{return set._nativeSet.has(item)}}else{if(!(type1 in set._items)){if(shouldAdd){set._items[type1]={};set._items[type1][item]=true}return false}else if(item in set._items[type1]){return true}else{if(shouldAdd){set._items[type1][item]=true}return false}}case'boolean':if(type1 in set._items){var bIdx=item?1:0;if(set._items[type1][bIdx]){return true}else{if(shouldAdd){set._items[type1][bIdx]=true}return false}}else{if(shouldAdd){set._items[type1]=item?[false,true]:[true,false]}return false}case'function':if(set._nativeSet!==null){if(shouldAdd){prevSize=set._nativeSet.size;set._nativeSet.add(item);newSize=set._nativeSet.size;return newSize===prevSize}else{return set._nativeSet.has(item)}}else{if(!(type1 in set._items)){if(shouldAdd){set._items[type1]=[item]}return false}if(!_includes(item,set._items[type1])){if(shouldAdd){set._items[type1].push(item)}return false}return true}case'undefined':if(set._items[type1]){return true}else{if(shouldAdd){set._items[type1]=true}return false}case'object':if(item===null){if(!set._items['null']){if(shouldAdd){set._items['null']=true}return false}return true}default:type1=Object.prototype.toString.call(item);if(!(type1 in set._items)){if(shouldAdd){set._items[type1]=[item]}return false}if(!_includes(item,set._items[type1])){if(shouldAdd){set._items[type1].push(item)}return false}return true}}var difference=_curry2(function difference(first,second){var out=[];var idx=0;var firstLen=first.length;var secondLen=second.length;var toFilterOut=new _Set();for(var i=0;i<secondLen;i+=1){toFilterOut.add(second[i])}while(idx<firstLen){if(toFilterOut.add(first[idx])){out[out.length]=first[idx]}idx+=1}return out});var difference$1=difference;var flatten=_curry1(_makeFlat(true));var flatten$1=flatten;var juxt=_curry1(function juxt(fns){return converge(function(){return Array.prototype.slice.call(arguments,0)},fns)});var partition=juxt([filter,reject]);var partition$1=partition;const noncifyChildren=(nonce,children)=>{if(nonce){React__default["default"].Children.forEach(children,child=>{if(isScriptElement(child)){const newProps={...withHashIfInlineScript(child).props,nonce};child.props=newProps}else if(isStyleElement(child)){child.props.nonce=nonce}else if(isElementWithChildren(child)){noncifyChildren(nonce,child.props.children)}else if(Array.isArray(child)){noncifyChildren(nonce,child)}})}};class Head$1 extends Document.Head{getPreNextScripts(){return super.getPreNextScripts().map(pipe(withHashIfInlineScript,scriptWithPatchedCrossOrigin))}render(){const nonce=this.props.nonce;noncifyChildren(nonce,this.context.styles);noncifyChildren(nonce,this.props.children);return super.render()}}const CSP_LOCATION_BUILD='.next/static/csp';const CSP_NONCE_HEADER='csp-nonce';const collectedHashes=[];const pullHashes=()=>collectedHashes;const pickupScriptWithIntegrity=el=>{const integrity=el.props.integrity;if(!collectedHashes.includes(integrity)){collectedHashes.push(integrity)}return!!integrity};const trustify=els=>{const assert=Array.isArray(els)&&els.every(isScriptElement);console.assert(assert,"trustify: array of elements must be script elements",{elements:els});if(!assert){return els}const scripts=els;const withInlineHashed=scripts.map(withHashIfInlineScript);const[haveIntegrity,haveNoIntegrity]=partition$1(pickupScriptWithIntegrity,withInlineHashed);if(haveNoIntegrity.length){const proxyLoader=withHashIfInlineScript(createTrustedLoadingProxy(haveNoIntegrity));pickupScriptWithIntegrity(proxyLoader);return[...haveIntegrity,proxyLoader]}return haveIntegrity};const dotNextFolder=()=>`${process.cwd()}/.next`;const staticCspFolder=()=>`${process.cwd()}/${CSP_LOCATION_BUILD}`;const nextScriptWithInjectedIntegrity=el=>{try{const src=el.props.src;if(src.includes("Manifest")){return el}const filePath=decodeURI(src).replace("/_next",dotNextFolder());const fs=getFs();const assert=fs&&fs.existsSync(filePath);console.assert(assert,"nextScriptWithInjectedIntegrity: file not found, cannot set integrity",{filePath});if(!assert){return el}const scriptContent=fs.readFileSync(filePath,"utf8");const integrity=integritySha256(scriptContent);return React__default["default"].createElement("script",_extends({key:el.key},el.props,{integrity:integrity}))}catch(e){console.error("nextScriptWithInjectedIntegrity: something went wrong with loading script content from file",e);return el}};const getFs=()=>{try{return require("fs")}catch(e){return undefined}};const writeRouteHashesToJson=(route,hashesKind,hashes=[])=>{const dir=`${staticCspFolder()}${route}`;const filename=hashesKind;const filepath=`${dir}/${filename}`;const fs=getFs();try{if(!fs.existsSync(dir)){fs.mkdirSync(dir,{recursive:true})}}catch{return}if(!fs.existsSync(filepath)){fs.writeFileSync(filepath,hashes.join("\n"),"utf8");return}const oldHashes=[];try{oldHashes.push(...fs.readFileSync(filepath,"utf8").split("\n").map(line=>line.trim()).filter(Boolean))}catch{try{fs.appendFileSync(filepath,`\n${hashes.join("\n")}`,"utf8");return}catch{return}}const newHashes=difference$1(hashes,oldHashes);if(newHashes.length){fs.appendFileSync(filepath,`\n${newHashes.join("\n")}`)}};const trustifyNextScripts=els=>{const nextScripts=els.filter(isScriptElement);const nextProxyLoader=withHashIfInlineScript(createTrustedLoadingProxy(nextScripts));pickupScriptWithIntegrity(nextProxyLoader);return trustify(nextScripts.map(nextScriptWithInjectedIntegrity))};const pushNextInlineScriptHash=ctx=>{const nextInlineScript=Document.NextScript.getInlineScriptSource(ctx);const nextInlineScriptHash=nextInlineScript&&integritySha256(nextInlineScript);if(nextInlineScriptHash&&!collectedHashes.includes(nextInlineScriptHash)){collectedHashes.push(nextInlineScriptHash)}};const writeScriptHashesToJson=(ctx,newHashes)=>{const route=ctx.__NEXT_DATA__.page;pushNextInlineScriptHash(ctx);writeRouteHashesToJson(route,"script-hashes.txt",newHashes)};const collectStyleHashes=children=>{const recurse=child=>{if(isStyleElement(child)&&child.props.dangerouslySetInnerHTML){return[integritySha256(child.props.dangerouslySetInnerHTML.__html)]}if(isElementWithChildren(child)){return recurse(child.props.children)}if(Array.isArray(child)){return child.map(recurse)}return[]};return flatten$1(recurse(children))};const writeStyleHashesToJson=(ctx,hashes)=>{const route=ctx.__NEXT_DATA__.page;writeRouteHashesToJson(route,"style-hashes.txt",hashes)};const trustifyChildren=children=>{React__default["default"].Children.forEach(children,child=>{if(isScriptElement(child)){child.props=trustify([child])[0].props}else if(isElementWithChildren(child)&&Array.isArray(child.props.children)&&child.props.children.every(isScriptElement)){child.props.children=trustify(child.props.children)}else if(isElementWithChildren(child)){trustifyChildren(child.props.children)}else if(Array.isArray(child)){trustifyChildren(child)}})};class Head extends Document.Head{getDynamicChunks(files){return trustifyNextScripts(super.getDynamicChunks(files))}getPolyfillScripts(){return trustifyNextScripts(super.getPolyfillScripts())}getPreNextScripts(){return trustify(super.getPreNextScripts().map(scriptWithPatchedCrossOrigin))}getScripts(files){const scripts=trustifyNextScripts(super.getScripts(files));writeScriptHashesToJson(this.context,pullHashes());return scripts}render(){trustifyChildren(this.props.children);const styleHashes=[integritySha256(""),...collectStyleHashes(this.context.styles),...collectStyleHashes(this.props.children),];writeStyleHashesToJson(this.context,styleHashes);return super.render()}}const provideComponents=props=>{const NEXT_DATA=props.__NEXT_DATA__;const isDynamic=NEXT_DATA.gip||NEXT_DATA.gssp;const isStatic=NEXT_DATA.gsp;const isPure=!isDynamic&&!isStatic;const nonce=props.nonce;if(isDynamic&&!!nonce){return{Head:({children})=>React__default["default"].createElement(Head$1,{nonce:nonce},children),NextScript:()=>React__default["default"].createElement(Document.NextScript,{nonce:nonce})}}if((isStatic||isPure)&&process.env.NODE_ENV==='production'){return{Head:({children})=>React__default["default"].createElement(Head,null,children),NextScript:()=>React__default["default"].createElement(Document.NextScript,null)}}return{Head:({children})=>React__default["default"].createElement(Document.Head,null,children),NextScript:()=>React__default["default"].createElement(Document.NextScript,null)}};class NextSafeDocument extends Document__default["default"]{static async getInitialProps(ctx){const initialProps=await Document__default["default"].getInitialProps(ctx);const cspNonceHeader=ctx.res?.getHeader(CSP_NONCE_HEADER)||ctx.req?.headers?.[CSP_NONCE_HEADER];const nonce=cspNonceHeader?.toString();return{...initialProps,nonce}}}exports["default"]=NextSafeDocument;exports.provideComponents=provideComponents | ||
`:""};const createTrustedLoadingProxy=els=>{const iterableScripts=els.map(iterableScriptFromProps);const proxy=createHashableScriptLoader(iterableScripts,"proxy-self-7f10ba7a15bc0318e7dd56e8c7e1cff");const id=integritySha256(proxy).replace(/^sha256-/g,"");const inlineCode=proxy.replace(/proxy-self-7f10ba7a15bc0318e7dd56e8c7e1cff/g,id);const async=iterableScripts.every(s=>!!getScriptValue("async",s));const defer=iterableScripts.every(s=>!!getScriptValue("defer",s));return React__default["default"].createElement("script",{id:id,async:async||undefined,defer:defer||undefined},inlineCode)};const withHashIfInlineScript=s=>{if(!isScriptElement(s)){return s}const{children,dangerouslySetInnerHTML,...props}=s.props;let inlineScriptCode="";if(typeof children==="string"){inlineScriptCode=s.props.children}else if(dangerouslySetInnerHTML){inlineScriptCode=dangerouslySetInnerHTML.__html}if(!inlineScriptCode){return s}const integrity=integritySha256(inlineScriptCode);return React__default["default"].createElement("script",_extends({key:s.key},props,{src:null,integrity:integrity,dangerouslySetInnerHTML:{__html:inlineScriptCode}}))};const scriptWithPatchedCrossOrigin=s=>{if(!isScriptElement(s)||!(s.props.integrity&&s.props.src)||!s.props["data-crossorigin"]){return s}const setCrossOrigin={crossOrigin:s.props["data-crossorigin"]};return React__default["default"].createElement("script",_extends({key:s.key},s.props,setCrossOrigin))};const getCtxHeader=(ctx,header)=>{return(ctx.res?.getHeader(header)||ctx.req?.headers[header]||"").toString()};const setCtxHeader=(ctx,header,value)=>{ctx.res.setHeader(header,value);if(ctx.req.headers[header]){ctx.req.headers[header]=value}};const deleteCtxHeader=(ctx,header)=>{ctx.res.removeHeader(header);if(ctx.req.headers[header]){ctx.req.headers[header]=null}};const getCspHeader=ctx=>{return getCtxHeader(ctx,CSP_HEADER)||getCtxHeader(ctx,CSP_HEADER_REPORT_ONLY)};const setCspHeader=(cspContent,ctx)=>{const isReportOnly=!!getCtxHeader(ctx,CSP_HEADER_REPORT_ONLY);if(isReportOnly){deleteCtxHeader(ctx,CSP_HEADER);setCtxHeader(ctx,CSP_HEADER_REPORT_ONLY,cspContent)}else{deleteCtxHeader(ctx,CSP_HEADER_REPORT_ONLY);setCtxHeader(ctx,CSP_HEADER,cspContent)}};const noncifyChildren=(nonce,children)=>{if(nonce){React__default["default"].Children.forEach(children,child=>{if(isScriptElement(child)){const map1=pipe(withHashIfInlineScript,scriptWithPatchedCrossOrigin);const newProps=map1(child).props;child.props={...newProps,nonce}}else if(isStyleElement(child)){child.props.nonce=nonce}else if(isElementWithChildren(child)){noncifyChildren(nonce,child.props.children)}else if(Array.isArray(child)){noncifyChildren(nonce,child)}})}};class Head$1 extends Document.Head{getPreNextScripts(){const preNextScripts=super.getPreNextScripts();noncifyChildren(this.props.nonce,preNextScripts);return preNextScripts}render(){const nonce=this.props.nonce;noncifyChildren(nonce,this.context.styles);noncifyChildren(nonce,this.props.children);return super.render()}}const collectedScriptHashes=[];const collectScriptHashes=(...hashes)=>{collectedScriptHashes.push(...difference$1(hashes.filter(Boolean),collectedScriptHashes))};const pullScriptHashes=()=>collectedScriptHashes.slice();const collectedStyleElemHashes=[];const collectStyleElemHashes=(...hashes)=>{collectedStyleElemHashes.push(...difference$1(hashes.filter(Boolean),collectedStyleElemHashes))};const pullStyleElemHashes=()=>collectedStyleElemHashes.slice();const collectedStyleAttrHashes=[];const collectStyleAttrHashes=(...hashes)=>{collectedStyleAttrHashes.push(...difference$1(hashes.filter(Boolean),collectedStyleAttrHashes))};const pullStyleAttrHashes=()=>collectedStyleAttrHashes.slice();const pickupScriptWithIntegrity=el=>{const integrity=el.props.integrity;collectScriptHashes(integrity);return!!integrity};const trustify=els=>{const assert=Array.isArray(els)&&els.every(isScriptElement);console.assert(assert,"trustify: array of elements must be script elements",{elements:els});if(!assert){return els}const scripts=els;const mapper=pipe(withHashIfInlineScript,scriptWithPatchedCrossOrigin);const withInlineHashed=scripts.map(mapper);const[haveIntegrity,haveNoIntegrity]=partition$1(pickupScriptWithIntegrity,withInlineHashed);if(haveNoIntegrity.length){const proxyLoader=withHashIfInlineScript(createTrustedLoadingProxy(haveNoIntegrity));pickupScriptWithIntegrity(proxyLoader);return[...haveIntegrity,proxyLoader]}return haveIntegrity};const dotNextFolder=()=>`${process.cwd()}/.next`;const staticCspFolder=()=>`${process.cwd()}/${CSP_LOCATION_BUILD}`;const nextScriptWithInjectedIntegrity=el=>{try{const src=el.props.src;if(src.includes("Manifest")){return el}const filePath=decodeURI(src).replace("/_next",dotNextFolder());const fs=getFs();const assert=fs&&fs.existsSync(filePath);console.assert(assert,"nextScriptWithInjectedIntegrity: file not found, cannot set integrity",{filePath});if(!assert){return el}const scriptContent=fs.readFileSync(filePath,"utf8");const integrity=integritySha256(scriptContent);return React__default["default"].createElement("script",_extends({key:el.key},el.props,{integrity:integrity}))}catch(e){console.error("nextScriptWithInjectedIntegrity: something went wrong with loading script content from file",e);return el}};const getFs=()=>{try{return require("fs")}catch(e){return undefined}};const writeRouteHashesToJson=(route,hashesKind,hashes=[])=>{const dir=`${staticCspFolder()}${route}`;const filename=hashesKind;const filepath=`${dir}/${filename}`;const fs=getFs();try{if(!fs.existsSync(dir)){fs.mkdirSync(dir,{recursive:true})}}catch{return}if(!fs.existsSync(filepath)){fs.writeFileSync(filepath,hashes.join("\n"),"utf8");return}const oldHashes=[];try{oldHashes.push(...fs.readFileSync(filepath,"utf8").split("\n").map(line=>line.trim()).filter(Boolean))}catch{try{fs.appendFileSync(filepath,`\n${hashes.join("\n")}`,"utf8");return}catch{return}}const newHashes=difference$1(hashes,oldHashes);if(newHashes.length){fs.appendFileSync(filepath,`\n${newHashes.join("\n")}`)}};const trustifyNextScripts=els=>{const nextScripts=els.filter(isScriptElement);const nextProxyLoader=withHashIfInlineScript(createTrustedLoadingProxy(nextScripts));pickupScriptWithIntegrity(nextProxyLoader);return trustify(nextScripts.map(nextScriptWithInjectedIntegrity))};const pushNextInlineScriptHash=ctx=>{const nextInlineScript=Document.NextScript.getInlineScriptSource(ctx);const nextInlineScriptHash=nextInlineScript&&integritySha256(nextInlineScript);if(nextInlineScriptHash&&!collectedScriptHashes.includes(nextInlineScriptHash)){collectedScriptHashes.push(nextInlineScriptHash)}};const writeScriptHashesToJson=(ctx,newHashes)=>{const route=ctx.__NEXT_DATA__.page;pushNextInlineScriptHash(ctx);writeRouteHashesToJson(route,"script-hashes.txt",newHashes)};const collectStyleHashesFromChildren=children=>{const recurse=child=>{if(isStyleElement(child)&&child.props.dangerouslySetInnerHTML){return[integritySha256(child.props.dangerouslySetInnerHTML.__html)]}if(isElementWithChildren(child)){return recurse(child.props.children)}if(Array.isArray(child)){return child.map(recurse)}return[]};return flatten$1(recurse(children))};const writeStyleHashesToJson=hashes=>{writeRouteHashesToJson("/","style-hashes.txt",hashes)};const trustifyChildren=children=>{React__default["default"].Children.forEach(children,child=>{if(isScriptElement(child)){child.props=trustify([child])[0].props}else if(isElementWithChildren(child)&&Array.isArray(child.props.children)&&child.props.children.every(isScriptElement)){child.props.children=trustify(child.props.children)}else if(isElementWithChildren(child)){trustifyChildren(child.props.children)}else if(Array.isArray(child)){trustifyChildren(child)}})};class Head extends Document.Head{getDynamicChunks(files){return trustifyNextScripts(super.getDynamicChunks(files))}getPolyfillScripts(){return trustifyNextScripts(super.getPolyfillScripts())}getPreNextScripts(){const preNextScripts=super.getPreNextScripts();trustifyChildren(preNextScripts);return preNextScripts}getScripts(files){const scripts=trustifyNextScripts(super.getScripts(files));writeScriptHashesToJson(this.context,pullScriptHashes());return scripts}render(){trustifyChildren(this.props.children);const styleHashes=[...collectStyleHashesFromChildren(this.context.styles),...collectStyleHashesFromChildren(this.props.children),...pullStyleElemHashes(),...pullStyleAttrHashes(),];writeStyleHashesToJson(styleHashes);return super.render()}}const provideComponents=props=>{const NEXT_DATA=props.__NEXT_DATA__;const isDynamic=NEXT_DATA.gip||NEXT_DATA.gssp;const isStatic=NEXT_DATA.gsp;const isPure=!isDynamic&&!isStatic;const nonce=props.nonce;if(isDynamic&&!!nonce){return{Head:({children})=>React__default["default"].createElement(Head$1,{nonce:nonce},children),NextScript:()=>React__default["default"].createElement(Document.NextScript,{nonce:nonce})}}if((isStatic||isPure)&&process.env.NODE_ENV==="production"){return{Head:({children})=>React__default["default"].createElement(Head,null,children),NextScript:()=>React__default["default"].createElement(Document.NextScript,null)}}return{Head:({children})=>React__default["default"].createElement(Document.Head,null,children),NextScript:()=>React__default["default"].createElement(Document.NextScript,null)}};const trustifyHtml=(html,nonce)=>{const $=cheerio__default["default"].load(html);const scripts=$("script").get();const styleElements=$("style").get();if(nonce){scripts.forEach(s=>{s.attribs["nonce"]=nonce});styleElements.forEach(s=>{s.attribs["nonce"]=nonce})}const styleElemHashes=styleElements.map(el=>$.text(el.children)).filter(Boolean).map(integritySha256);const getStyleAttr=e=>e?.attribs["style"]||false;const styleAttrHashes=$("*").get().filter(getStyleAttr).map(e=>integritySha256(getStyleAttr(e)));collectStyleElemHashes(...styleElemHashes,integritySha256(""));collectStyleAttrHashes(...styleAttrHashes,integritySha256("display:block;width:0;height:0;border:0;visibility:hidden"));return $.html()};class NextSafeDocument extends Document__default["default"]{static async getInitialProps(ctx){const initialProps=await Document__default["default"].getInitialProps(ctx);const nonce=getCtxHeader(ctx,CSP_NONCE_HEADER);initialProps.html=trustifyHtml(initialProps.html,nonce);const htmlStyleHashes=[...pullStyleElemHashes(),...pullStyleAttrHashes(),];if(nonce){const cspContent=getCspHeader(ctx);if(cspContent){let csp=fromCspContent(cspContent);if(htmlStyleHashes.length){csp=extendCsp(csp,{"style-src":[...htmlStyleHashes.map(hash=>`'${hash}'`),`'unsafe-hashes'`,]})}csp=extendCsp(csp,{"style-src":`'nonce-${nonce}'`});setCspHeader(toCspContent(csp),ctx)}return{...initialProps,nonce}}return initialProps}}exports["default"]=NextSafeDocument;exports.provideComponents=provideComponents |
@@ -102,3 +102,3 @@ import { NextRequest, NextFetchEvent, NextResponse } from 'next/server'; | ||
declare const cspNonce: (res: Response, bits?: number) => string; | ||
declare const fetchHashes: (req: NextRequest, hashesKind: typeof SCRIPT_HASHES_FILENAME | typeof STYLE_HASHES_FILENAME) => Promise<string[]>; | ||
declare const fetchHashes: (req: NextRequest, hashesKind: typeof SCRIPT_HASHES_FILENAME | typeof STYLE_HASHES_FILENAME, overrideFetchpath?: string) => Promise<string[]>; | ||
@@ -226,3 +226,7 @@ declare const weAreChained: (...middlewares: (Middleware | Promise<Middleware>)[]) => (req: NextRequest, evt: NextFetchEvent) => Promise<void | Response>; | ||
* | ||
* Default: `true` | ||
* Default: `true`. This respects an existing `style-src` configuration | ||
* that relies on additonal stylesheets on top of inline styles. | ||
* | ||
* Set to `false` if you use a CSS-in-JS solution like Stitches that relies on | ||
* inline styles and don't need to include any further stylesheet for your app. | ||
*/ | ||
@@ -229,0 +233,0 @@ extendStyleSrc?: boolean; |
@@ -1,1 +0,1 @@ | ||
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var server=require('next/server');function _isPlaceholder(a){return a!=null&& typeof a==='object'&&a['@@functional/placeholder']===true}function _curry1(fn){return function f1(a){if(arguments.length===0||_isPlaceholder(a)){return f1}else{return fn.apply(this,arguments)}}}function _curry2(fn){return function f2(a,b){switch(arguments.length){case 0:return f2;case 1:return _isPlaceholder(a)?f2:_curry1(function(_b){return fn(a,_b)});default:return _isPlaceholder(a)&&_isPlaceholder(b)?f2:_isPlaceholder(a)?_curry1(function(_a){return fn(_a,b)}):_isPlaceholder(b)?_curry1(function(_b){return fn(a,_b)}):fn(a,b)}}}function _curry3(fn){return function f3(a,b,c){switch(arguments.length){case 0:return f3;case 1:return _isPlaceholder(a)?f3:_curry2(function(_b,_c){return fn(a,_b,_c)});case 2:return _isPlaceholder(a)&&_isPlaceholder(b)?f3:_isPlaceholder(a)?_curry2(function(_a,_c){return fn(_a,b,_c)}):_isPlaceholder(b)?_curry2(function(_b,_c){return fn(a,_b,_c)}):_curry1(function(_c){return fn(a,b,_c)});default:return _isPlaceholder(a)&&_isPlaceholder(b)&&_isPlaceholder(c)?f3:_isPlaceholder(a)&&_isPlaceholder(b)?_curry2(function(_a,_b){return fn(_a,_b,c)}):_isPlaceholder(a)&&_isPlaceholder(c)?_curry2(function(_a,_c){return fn(_a,b,_c)}):_isPlaceholder(b)&&_isPlaceholder(c)?_curry2(function(_b,_c){return fn(a,_b,_c)}):_isPlaceholder(a)?_curry1(function(_a){return fn(_a,b,c)}):_isPlaceholder(b)?_curry1(function(_b){return fn(a,_b,c)}):_isPlaceholder(c)?_curry1(function(_c){return fn(a,b,_c)}):fn(a,b,c)}}}var _isArray=Array.isArray||function _isArray(val){return val!=null&&val.length>=0&&Object.prototype.toString.call(val)==='[object Array]'};function _isTransformer(obj){return obj!=null&& typeof obj['@@transducer/step']==='function'}function _dispatchable(methodNames,transducerCreator,fn){return function(){if(arguments.length===0){return fn()}var obj=arguments[arguments.length-1];if(!_isArray(obj)){var idx=0;while(idx<methodNames.length){if(typeof obj[methodNames[idx]]==='function'){return obj[methodNames[idx]].apply(obj,Array.prototype.slice.call(arguments,0,-1))}idx+=1}if(_isTransformer(obj)){var transducer=transducerCreator.apply(null,Array.prototype.slice.call(arguments,0,-1));return transducer(obj)}}return fn.apply(this,arguments)}}var _xfBase={init:function(){return this.xf['@@transducer/init']()},result:function(result){return this.xf['@@transducer/result'](result)}};function _has(prop,obj){return Object.prototype.hasOwnProperty.call(obj,prop)}var toString=Object.prototype.toString;var _isArguments=function(){return toString.call(arguments)==='[object Arguments]'?function _isArguments(x){return toString.call(x)==='[object Arguments]'}:function _isArguments(x){return _has('callee',x)}}();var hasEnumBug=!({toString:null}).propertyIsEnumerable('toString');var nonEnumerableProps=['constructor','valueOf','isPrototypeOf','toString','propertyIsEnumerable','hasOwnProperty','toLocaleString'];var hasArgsEnumBug=function(){return arguments.propertyIsEnumerable('length')}();var contains=function contains(list,item){var idx=0;while(idx<list.length){if(list[idx]===item){return true}idx+=1}return false};var keys=typeof Object.keys==='function'&&!hasArgsEnumBug?_curry1(function keys(obj){return Object(obj)!==obj?[]:Object.keys(obj)}):_curry1(function keys(obj){if(Object(obj)!==obj){return[]}var prop,nIdx;var ks=[];var checkArgsLength=hasArgsEnumBug&&_isArguments(obj);for(prop in obj){if(_has(prop,obj)&&(!checkArgsLength||prop!=='length')){ks[ks.length]=prop}}if(hasEnumBug){nIdx=nonEnumerableProps.length-1;while(nIdx>=0){prop=nonEnumerableProps[nIdx];if(_has(prop,obj)&&!contains(ks,prop)){ks[ks.length]=prop}nIdx-=1}}return ks});var type=_curry1(function type(val){return val===null?'Null':val===undefined?'Undefined':Object.prototype.toString.call(val).slice(8,-1)});function _identity(x){return x}var identity=_curry1(_identity);function _arrayFromIterator(iter){var list=[];var next;while(!(next=iter.next()).done){list.push(next.value)}return list}function _includesWith(pred,x,list){var idx=0;var len=list.length;while(idx<len){if(pred(x,list[idx])){return true}idx+=1}return false}function _functionName(f){var match=String(f).match(/^function (\w*)/);return match==null?'':match[1]}function _objectIs(a,b){if(a===b){return a!==0||1/a===1/b}else{return a!==a&&b!==b}}var _objectIs$1=typeof Object.is==='function'?Object.is:_objectIs;function _uniqContentEquals(aIterator,bIterator,stackA,stackB){var a=_arrayFromIterator(aIterator);var b1=_arrayFromIterator(bIterator);function eq(_a,_b){return _equals(_a,_b,stackA.slice(),stackB.slice())}return!_includesWith(function(b,aItem){return!_includesWith(eq,aItem,b)},b1,a)}function _equals(a,b,stackA,stackB){if(_objectIs$1(a,b)){return true}var typeA=type(a);if(typeA!==type(b)){return false}if(typeof a['fantasy-land/equals']==='function'|| typeof b['fantasy-land/equals']==='function'){return typeof a['fantasy-land/equals']==='function'&&a['fantasy-land/equals'](b)&& typeof b['fantasy-land/equals']==='function'&&b['fantasy-land/equals'](a)}if(typeof a.equals==='function'|| typeof b.equals==='function'){return typeof a.equals==='function'&&a.equals(b)&& typeof b.equals==='function'&&b.equals(a)}switch(typeA){case'Arguments':case'Array':case'Object':if(typeof a.constructor==='function'&&_functionName(a.constructor)==='Promise'){return a===b}break;case'Boolean':case'Number':case'String':if(!(typeof a===typeof b&&_objectIs$1(a.valueOf(),b.valueOf()))){return false}break;case'Date':if(!_objectIs$1(a.valueOf(),b.valueOf())){return false}break;case'Error':return a.name===b.name&&a.message===b.message;case'RegExp':if(!(a.source===b.source&&a.global===b.global&&a.ignoreCase===b.ignoreCase&&a.multiline===b.multiline&&a.sticky===b.sticky&&a.unicode===b.unicode)){return false}break}var idx=stackA.length-1;while(idx>=0){if(stackA[idx]===a){return stackB[idx]===b}idx-=1}switch(typeA){case'Map':if(a.size!==b.size){return false}return _uniqContentEquals(a.entries(),b.entries(),stackA.concat([a]),stackB.concat([b]));case'Set':if(a.size!==b.size){return false}return _uniqContentEquals(a.values(),b.values(),stackA.concat([a]),stackB.concat([b]));case'Arguments':case'Array':case'Object':case'Boolean':case'Number':case'String':case'Date':case'Error':case'RegExp':case'Int8Array':case'Uint8Array':case'Uint8ClampedArray':case'Int16Array':case'Uint16Array':case'Int32Array':case'Uint32Array':case'Float32Array':case'Float64Array':case'ArrayBuffer':break;default:return false}var keysA=keys(a);if(keysA.length!==keys(b).length){return false}var extendedStackA=stackA.concat([a]);var extendedStackB=stackB.concat([b]);idx=keysA.length-1;while(idx>=0){var key=keysA[idx];if(!(_has(key,b)&&_equals(b[key],a[key],extendedStackA,extendedStackB))){return false}idx-=1}return true}var equals=_curry2(function equals(a,b){return _equals(a,b,[],[])});function _indexOf(list,a,idx){var inf,item;if(typeof list.indexOf==='function'){switch(typeof a){case'number':if(a===0){inf=1/a;while(idx<list.length){item=list[idx];if(item===0&&1/item===inf){return idx}idx+=1}return-1}else if(a!==a){while(idx<list.length){item=list[idx];if(typeof item==='number'&&item!==item){return idx}idx+=1}return-1}return list.indexOf(a,idx);case'string':case'boolean':case'function':case'undefined':return list.indexOf(a,idx);case'object':if(a===null){return list.indexOf(a,idx)}}}while(idx<list.length){if(equals(list[idx],a)){return idx}idx+=1}return-1}function _includes(a,list){return _indexOf(list,a,0)>=0}function _isObject(x){return Object.prototype.toString.call(x)==='[object Object]'}var _Set=function(){function _Set1(){this._nativeSet=typeof Set==='function'?new Set():null;this._items={}}_Set1.prototype.add=function(item){return!hasOrAdd(item,true,this)};_Set1.prototype.has=function(item){return hasOrAdd(item,false,this)};return _Set1}();function hasOrAdd(item,shouldAdd,set){var type1=typeof item;var prevSize,newSize;switch(type1){case'string':case'number':if(item===0&&1/item=== -Infinity){if(set._items['-0']){return true}else{if(shouldAdd){set._items['-0']=true}return false}}if(set._nativeSet!==null){if(shouldAdd){prevSize=set._nativeSet.size;set._nativeSet.add(item);newSize=set._nativeSet.size;return newSize===prevSize}else{return set._nativeSet.has(item)}}else{if(!(type1 in set._items)){if(shouldAdd){set._items[type1]={};set._items[type1][item]=true}return false}else if(item in set._items[type1]){return true}else{if(shouldAdd){set._items[type1][item]=true}return false}}case'boolean':if(type1 in set._items){var bIdx=item?1:0;if(set._items[type1][bIdx]){return true}else{if(shouldAdd){set._items[type1][bIdx]=true}return false}}else{if(shouldAdd){set._items[type1]=item?[false,true]:[true,false]}return false}case'function':if(set._nativeSet!==null){if(shouldAdd){prevSize=set._nativeSet.size;set._nativeSet.add(item);newSize=set._nativeSet.size;return newSize===prevSize}else{return set._nativeSet.has(item)}}else{if(!(type1 in set._items)){if(shouldAdd){set._items[type1]=[item]}return false}if(!_includes(item,set._items[type1])){if(shouldAdd){set._items[type1].push(item)}return false}return true}case'undefined':if(set._items[type1]){return true}else{if(shouldAdd){set._items[type1]=true}return false}case'object':if(item===null){if(!set._items['null']){if(shouldAdd){set._items['null']=true}return false}return true}default:type1=Object.prototype.toString.call(item);if(!(type1 in set._items)){if(shouldAdd){set._items[type1]=[item]}return false}if(!_includes(item,set._items[type1])){if(shouldAdd){set._items[type1].push(item)}return false}return true}}var XUniqBy=function(){function XUniqBy1(f,xf){this.xf=xf;this.f=f;this.set=new _Set()}XUniqBy1.prototype['@@transducer/init']=_xfBase.init;XUniqBy1.prototype['@@transducer/result']=_xfBase.result;XUniqBy1.prototype['@@transducer/step']=function(result,input){return this.set.add(this.f(input))?this.xf['@@transducer/step'](result,input):result};return XUniqBy1}();var _xuniqBy=_curry2(function _xuniqBy(f,xf){return new XUniqBy(f,xf)});var uniqBy=_curry2(_dispatchable([],_xuniqBy,function(fn,list){var set=new _Set();var result=[];var idx=0;var appliedItem,item;while(idx<list.length){item=list[idx];appliedItem=fn(item);if(set.add(appliedItem)){result.push(item)}idx+=1}return result}));var uniq=uniqBy(identity);var uniq$1=uniq;var mergeWithKey=_curry3(function mergeWithKey(fn,l,r){var result={};var k;for(k in l){if(_has(k,l)){result[k]=_has(k,r)?fn(k,l[k],r[k]):l[k]}}for(k in r){if(_has(k,r)&&!_has(k,result)){result[k]=r[k]}}return result});var mergeWithKey$1=mergeWithKey;var mergeDeepWithKey=_curry3(function mergeDeepWithKey1(fn,lObj,rObj){return mergeWithKey$1(function(k,lVal,rVal){if(_isObject(lVal)&&_isObject(rVal)){return mergeDeepWithKey1(fn,lVal,rVal)}else{return fn(k,lVal,rVal)}},lObj,rObj)});var mergeDeepWithKey$1=mergeDeepWithKey;const arrayifyCspValues=values=>{if(typeof values!=="string"){return values}return values.trim().split(" ").map(v=>v.trim()).filter(Boolean)};const arrayifyCsp=csp=>{const arrayifiedEntries=Object.entries(csp).map(([directive,values])=>{return[directive,arrayifyCspValues(values)]});return Object.fromEntries(arrayifiedEntries.filter(([k,v])=>k&&v&&v.length))};const toCspContent=csp=>Object.entries(arrayifyCsp(csp)).map(([attr,values])=>`${attr} ${values.join(" ")}`).join(";");const fromCspContent=content=>Object.fromEntries(content.trim().split(";").filter(Boolean).map(line=>line.split(" ").map(lineItem=>lineItem.trim()).filter(Boolean)).filter(Boolean).map(line=>{const directive=line[0];const values=line.slice(1);return directive&&values.length?[directive,values]:[]}));const extendCsp=(csp,cspExtension,mode="prepend")=>{const concatValues=(_k,l,r)=>mode!=="override"?uniq$1(mode==="append"?[...l,...r]:[...r,...l]):r;return mergeWithKey$1(concatValues,arrayifyCsp(csp),arrayifyCsp(cspExtension))};const filterCsp=(csp,cspFilter)=>{return Object.entries(arrayifyCsp(csp)).reduce((acc,[attr,values])=>{const directive=attr;const filter=cspFilter[directive];if(filter){acc[directive]=values.filter(v=>!filter.test(v))}else{acc[directive]=values}return acc},{})};const cspDirectiveHas=(csp,directive,value)=>{return!!arrayifyCsp(csp)[directive]?.find(v=>typeof value==="string"?v.includes(value):value.test(v))};const CSP_LOCATION_MIDDLEWARE='_next/static/csp';const CSP_HEADER='content-security-policy';const CSP_HEADER_REPORT_ONLY='content-security-policy-report-only';const CSP_NONCE_HEADER='csp-nonce';const setCspHeader=(cspContent,res,reportOnly)=>{const isReportOnly=reportOnly?? !!res.headers.get(CSP_HEADER_REPORT_ONLY);if(isReportOnly){res.headers.delete(CSP_HEADER);res.headers.set(CSP_HEADER_REPORT_ONLY,cspContent)}else{res.headers.delete(CSP_HEADER_REPORT_ONLY);res.headers.set(CSP_HEADER,cspContent)}};const getCspHeader=res=>{return res.headers.get(CSP_HEADER)||res.headers.get(CSP_HEADER_REPORT_ONLY)};const pullCspFromResponse=res=>{const cspContent=getCspHeader(res);if(cspContent){return fromCspContent(cspContent)}return undefined};const pushCspToResponse=(csp,res,reportOnly)=>{setCspHeader(toCspContent(csp),res,reportOnly)};const generateNonce=(bits=128)=>{const buffer=new Uint8Array(Math.floor(bits/8));const random=crypto.getRandomValues(buffer);return[...random].map(n=>n.toString(16)).join("")};const cspNonce=(res,bits=128)=>{let nonce=res.headers.get(CSP_NONCE_HEADER);if(!nonce){nonce=generateNonce(bits);res.headers.set(CSP_NONCE_HEADER,nonce)}return nonce};const singleQuotify=value=>`'${value}'`;const fetchHashes=async(req,hashesKind)=>{const{origin,pathname}=req.nextUrl;const baseUrl=`${origin}/${CSP_LOCATION_MIDDLEWARE}`;const route=req.page.name;let resHashes;const fetchPaths=[...!route?["/404"]:[],...route?route!==pathname?[pathname,route]:[route]:[],];const fetchUrls=fetchPaths.map(fetchPath=>encodeURI(`${baseUrl}${fetchPath}/${hashesKind}`));for(const url of fetchUrls){if(!resHashes?.ok){resHashes=await fetch(url)}}if(!resHashes?.ok){return undefined}const hashesText=await resHashes.text();const hashes=hashesText.split("\n").map(line=>line.trim()).filter(Boolean);return uniq$1(hashes).map(singleQuotify)};const weAreChained=(...middlewares)=>async(req,evt)=>{let res;const next=resp=>{res=resp};for await(const middleware of middlewares){const mwRes=await middleware(req,evt,res||undefined,next);if(mwRes){return mwRes}}return res};var commonjsGlobal=typeof globalThis!=='undefined'?globalThis:typeof window!=='undefined'?window:typeof global!=='undefined'?global:typeof self!=='undefined'?self:{};var crunchHeaderValue$1=function crunchHeaderValue(headerValue){return Object.entries(headerValue).reduce((accumulator,[key,value])=>{let serializedValue=value;if(!Array.isArray(value)){serializedValue=[value]}return`${accumulator}${key} ${serializedValue.join(' ')};`},'')};const crunchHeaderValue=crunchHeaderValue$1;const devDirectives={'connect-src':['webpack://*'],'script-src':["'unsafe-eval'"],'style-src':["'unsafe-inline'"]};function getCSPDirective(value,defaultValue){return[value||defaultValue].flat()}var buildCSPHeaders$1=function buildCSPHeaders(options={}){const{contentSecurityPolicy={},isDev}=options;if(contentSecurityPolicy===false){return[]}const directives1={'base-uri':getCSPDirective(contentSecurityPolicy['base-uri'],"'none'"),'child-src':getCSPDirective(contentSecurityPolicy['child-src'],"'none'"),'connect-src':getCSPDirective(contentSecurityPolicy['connect-src'],"'self'"),'default-src':getCSPDirective(contentSecurityPolicy['default-src'],"'self'"),'font-src':getCSPDirective(contentSecurityPolicy['font-src'],"'self'"),'form-action':getCSPDirective(contentSecurityPolicy['form-action'],"'self'"),'frame-ancestors':getCSPDirective(contentSecurityPolicy['frame-ancestors'],"'none'"),'frame-src':getCSPDirective(contentSecurityPolicy['frame-src'],"'none'"),'img-src':getCSPDirective(contentSecurityPolicy['img-src'],"'self'"),'manifest-src':getCSPDirective(contentSecurityPolicy['manifest-src'],"'self'"),'media-src':getCSPDirective(contentSecurityPolicy['media-src'],"'self'"),'object-src':getCSPDirective(contentSecurityPolicy['object-src'],"'none'"),'prefetch-src':getCSPDirective(contentSecurityPolicy['prefetch-src'],"'self'"),'script-src':getCSPDirective(contentSecurityPolicy['script-src'],"'self'"),'style-src':getCSPDirective(contentSecurityPolicy['style-src'],"'self'"),'worker-src':getCSPDirective(contentSecurityPolicy['worker-src'],"'self'")};const optionalDirectives=['block-all-mixed-content','plugin-types','navigate-to','require-sri-for','require-trusted-types-for','sandbox','script-src-attr','script-src-elem','style-src-attr','style-src-elem','trusted-types','upgrade-insecure-requests',];optionalDirectives.forEach(optionalDirective=>{if(contentSecurityPolicy[optionalDirective]){directives1[optionalDirective]=getCSPDirective(contentSecurityPolicy[optionalDirective])}});if(contentSecurityPolicy['report-to']||contentSecurityPolicy['report-uri']){const reportDirectiveValue=getCSPDirective(contentSecurityPolicy['report-to']||contentSecurityPolicy['report-uri']);directives1['report-uri']=reportDirectiveValue;directives1['report-to']=reportDirectiveValue}Object.entries(contentSecurityPolicy).forEach(([key,value])=>{if(value===false){delete directives1[key]}});if(isDev){Object.entries(devDirectives).forEach(([key,value])=>{if(directives1[key]){directives1[key]=directives1[key].concat(value)}else{directives1[key]=[...value]}})}const cspString=crunchHeaderValue(directives1);const cspHeaderNames=[`Content-Security-Policy${contentSecurityPolicy.reportOnly?'-Report-Only':''}`,`X-Content-Security-Policy${contentSecurityPolicy.reportOnly?'-Report-Only':''}`,'X-WebKit-CSP',];return cspHeaderNames.map(headerName=>({key:headerName,value:cspString}))};var crunchFeaturePolicyHeader$1=function crunchFeaturePolicyHeader(headerValue){return Object.entries(headerValue).reduce((accumulator,[key,value])=>{let serializedValue=value;if(!Array.isArray(value)){serializedValue=[value]}return`${accumulator}${key} ${serializedValue.join(' ')};`},'')};var crunchPermissionsPolicyHeader$1=function crunchPermissionsPolicyHeader(headerValue){return Object.entries(headerValue).reduce((accumulator,[key,value])=>{let serializedValue=value;if(!Array.isArray(value)){serializedValue=value.split(' ')}serializedValue=serializedValue.map(item=>{if(item.includes('*')){return'*'}if(item==="'self'"){return'self'}if(!['*','self'].includes(item)&&!/^['"].*['"]$/){return item.replace(/^['"]/,'"').replace(/['"]$/,'"')}return item});accumulator.push(`${key}=(${serializedValue.join(' ')})`);return accumulator},[]).join(',')};var experimentalDirectives$1=['conversion-measurement','focus-without-user-activation','hid','idle-detection','serial','sync-script','trust-token-redemption','vertical-scroll',];var legacyDirectives$1=['animations','document-write','image-compression','layout-animations','legacy-image-formats','max-downscaling-image','notifications','oversized-images','push','speaker','unsized-media','vibrate','vr','wake-lock','webauthn','web-share',];var proposedDirectives$1=['clipboard-read','clipboard-write','gamepad','speaker-selection',];var standardDirectives$1=['accelerometer','ambient-light-sensor','autoplay','battery','camera','cross-origin-isolated','display-capture','document-domain','encrypted-media','execution-while-not-rendered','execution-while-out-of-viewport','fullscreen','geolocation','gyroscope','magnetometer','microphone','midi','navigation-override','payment','picture-in-picture','publickey-credentials-get','screen-wake-lock','sync-xhr','usb','web-share','xr-spatial-tracking',];const experimentalDirectives=experimentalDirectives$1;const legacyDirectives=legacyDirectives$1;const proposedDirectives=proposedDirectives$1;const standardDirectives=standardDirectives$1;var PermissionsPolicy={experimental:experimentalDirectives,legacy:legacyDirectives,proposed:proposedDirectives,standard:standardDirectives};const crunchFeaturePolicyHeader=crunchFeaturePolicyHeader$1;const crunchPermissionsPolicyHeader=crunchPermissionsPolicyHeader$1;const directives=PermissionsPolicy;function reduceDirectives(supportedDirectives,permissionsPolicy,defaultValue){return supportedDirectives.reduce((accumulator,directive)=>{if(permissionsPolicy[directive]!==false){accumulator[directive]=permissionsPolicy[directive]||defaultValue}return accumulator},{})}var buildPermissionsPolicyHeaders$1=function buildPermissionsPolicyHeaders(options={}){const{permissionsPolicy={},permissionsPolicyDirectiveSupport=['proposed','standard']}=options;if(permissionsPolicy===false){return[]}const supportedDirectives=Array.from(new Set(permissionsPolicyDirectiveSupport.map(directiveSet=>directives[directiveSet]).flat()));return[{key:'Feature-Policy',value:crunchFeaturePolicyHeader(reduceDirectives(supportedDirectives,permissionsPolicy,"'none'"))},{key:'Permissions-Policy',value:crunchPermissionsPolicyHeader(reduceDirectives(supportedDirectives,permissionsPolicy,''))},]};const buildCSPHeaders=buildCSPHeaders$1;const buildPermissionsPolicyHeaders=buildPermissionsPolicyHeaders$1;function makeHeaderObj(key,value,defaultValue){if(key===false){return undefined}return{key,value:value||defaultValue}}function nextSafe$3(options={}){const{contentTypeOptions,contentSecurityPolicy={},frameOptions,permissionsPolicy={},permissionsPolicyDirectiveSupport,isDev=false,referrerPolicy,xssProtection}=options;return[...buildCSPHeaders({contentSecurityPolicy,isDev}),...buildPermissionsPolicyHeaders({permissionsPolicy,permissionsPolicyDirectiveSupport,isDev}),makeHeaderObj('Referrer-Policy',referrerPolicy,'no-referrer'),makeHeaderObj('X-Content-Type-Options',contentTypeOptions,'nosniff'),makeHeaderObj('X-Frame-Options',frameOptions,'DENY'),makeHeaderObj('X-XSS-Protection',xssProtection,'1; mode=block'),].filter(header=>Boolean(header))}var nextSafe_1=nextSafe$3;const nextSafe$2=nextSafe_1;var lib=nextSafe$2;const unpackConfig=async(req,res,cfg)=>{return typeof cfg==="function"?cfg(req,res):cfg};const mergeConfigs=(left,right,keyMerger=(k,l,r)=>r)=>async(req,res)=>{const leftCfg=await unpackConfig(req,res,left);const rightCfg=await unpackConfig(req,res,right);return mergeDeepWithKey$1(keyMerger,leftCfg,rightCfg)};const isTrue=x=>typeof x==="boolean"&&x;const isFalse=x=>typeof x==="boolean"&&!x;const isNonBool=x=>typeof x!=="boolean"&&!!x;const defaultConfigMergers=[(k,l,r)=>isTrue(r)&&isNonBool(l)?l:undefined,(k,l,r)=>isFalse(r)&&isNonBool(l)?null:undefined,(k,l,r)=>r,];const chainMergers=mergers=>(k,l,r)=>mergers.reduce((v,next)=>typeof v==="undefined"?next(k,l,r):v,undefined);const withDefaultConfig=(builder,defaultCfg,...keyMergers)=>cfg=>async(req,evt,res,next)=>{if(cfg){const unpackedCfg=await unpackConfig(req,res,cfg);return builder(mergeConfigs(typeof defaultCfg==="function"?defaultCfg(unpackedCfg):defaultCfg,unpackedCfg,chainMergers([...keyMergers,...defaultConfigMergers])))(req,evt,res,next)}else{return builder(typeof defaultCfg==="function"?defaultCfg({}):defaultCfg)(req,evt,res,next)}};const ensureChainContext=(middleware,ensureResponse=server.NextResponse.next)=>{return async(req,evt,res,next)=>{const ensuredRes=res||await ensureResponse(req);const ensuredNext=next||(()=>void 0);ensuredNext(ensuredRes);return middleware(req,evt,ensuredRes,ensuredNext)}};const nextSafe=lib;const nextSafeMiddleware=cfg=>ensureChainContext(async(req,evt,res)=>{const unpackedCfg=await unpackConfig(req,res,cfg);nextSafe(unpackedCfg).forEach(header=>res.headers.set(header.key,header.value))});var nextSafe$1=withDefaultConfig(nextSafeMiddleware,{});const stringifyReportTo=reportTo=>JSON.stringify(reportTo).replace(/\\"/g,'"');const reporting=cfg=>ensureChainContext(async(req,evt,res)=>{const{reportTo=[],csp:cspCfg}=await unpackConfig(req,res,cfg);const arrayReportTo=Array.isArray(reportTo)?reportTo:[reportTo];const withSubstitutedRelativePaths=arrayReportTo.map(r=>({...r,endpoints:r.endpoints.map(e=>({...e,...e.url.startsWith("/")?{url:`${req.nextUrl.origin}${e.url}`}:{}}))}));const reportToHeaderValue=withSubstitutedRelativePaths.map(r=>stringifyReportTo(r)).join(",");if(reportToHeaderValue){res.headers.set("report-to",reportToHeaderValue)}if(!cspCfg){return}const cspGroup=cspCfg.reportTo;const groupMatches=group=>!group&&cspGroup==="default"||(cspGroup?group===cspGroup:false);const reportToHasCspGroup=!!withSubstitutedRelativePaths.find(r=>groupMatches(r.group));let csp=pullCspFromResponse(res);if(!csp){return}else{const{reportUri="",reportSample}=cspCfg;const cspReportUri=reportUri.startsWith("/")?`${req.nextUrl.origin}${reportUri}`:reportUri;if(csp){csp=extendCsp(csp,{...cspReportUri?{"report-uri":cspReportUri}:{},...reportToHasCspGroup?{"report-to":cspGroup}:{}},"override");if(reportSample){csp=extendCsp(csp,{...csp["script-src"]?{"script-src":`'report-sample'`}:{},...csp["style-src"]?{"style-src":`'report-sample'`}:{}},"append")}}}pushCspToResponse(csp,res)});var reporting$1=withDefaultConfig(reporting,{csp:{reportSample:true,reportTo:"default"}});var uaParser={exports:{}};(function(module,exports){(function(window,undefined$1){var LIBVERSION='1.0.2',EMPTY='',UNKNOWN='?',FUNC_TYPE='function',UNDEF_TYPE='undefined',OBJ_TYPE='object',STR_TYPE='string',MAJOR='major',MODEL='model',NAME='name',TYPE='type',VENDOR='vendor',VERSION='version',ARCHITECTURE='architecture',CONSOLE='console',MOBILE='mobile',TABLET='tablet',SMARTTV='smarttv',WEARABLE='wearable',EMBEDDED='embedded',UA_MAX_LENGTH=255;var AMAZON='Amazon',APPLE='Apple',ASUS='ASUS',BLACKBERRY='BlackBerry',BROWSER='Browser',CHROME='Chrome',EDGE='Edge',FIREFOX='Firefox',GOOGLE='Google',HUAWEI='Huawei',LG='LG',MICROSOFT='Microsoft',MOTOROLA='Motorola',OPERA='Opera',SAMSUNG='Samsung',SONY='Sony',XIAOMI='Xiaomi',ZEBRA='Zebra',FACEBOOK='Facebook';var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i<arr.length;i++){enums[arr[i].toUpperCase()]=arr[i]}return enums},has=function(str1,str2){return typeof str1===STR_TYPE?lowerize(str2).indexOf(lowerize(str1))!== -1:false},lowerize=function(str){return str.toLowerCase()},majorize=function(version){return typeof version===STR_TYPE?version.replace(/[^\d\.]/g,EMPTY).split('.')[0]:undefined$1},trim=function(str,len){if(typeof str===STR_TYPE){str=str.replace(/^\s\s*/,EMPTY).replace(/\s\s*$/,EMPTY);return typeof len===UNDEF_TYPE?str:str.substring(0,UA_MAX_LENGTH)}};var rgxMapper=function(ua,arrays){var i=0,j,k,p,q,matches,match;while(i<arrays.length&&!matches){var regex=arrays[i],props=arrays[i+1];j=k=0;while(j<regex.length&&!matches){matches=regex[j++].exec(ua);if(!!matches){for(p=0;p<props.length;p++){match=matches[++k];q=props[p];if(typeof q===OBJ_TYPE&&q.length>0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined$1}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined$1}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined$1}}else{this[q]=match?match:undefined$1}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j<map[i].length;j++){if(has(map[i][j],str)){return i===UNKNOWN?undefined$1:i}}}else if(has(map[i],str)){return i===UNKNOWN?undefined$1:i}}return str};var oldSafariMap={'1.0':'/8','1.2':'/1','1.3':'/3','2.0':'/412','2.0.2':'/416','2.0.3':'/417','2.0.4':'/419','?':'/'},windowsVersionMap={'ME':'4.90','NT 3.11':'NT3.51','NT 4.0':'NT4.0','2000':'NT 5.0','XP':['NT 5.1','NT 5.2'],'Vista':'NT 6.0','7':'NT 6.1','8':'NT 6.2','8.1':'NT 6.3','10':['NT 6.4','NT 10.0'],'RT':'ARM'};var regexes1={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[VERSION,[NAME,'Chrome']],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[VERSION,[NAME,'Edge']],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[NAME,VERSION],[/opios[\/ ]+([\w\.]+)/i],[VERSION,[NAME,OPERA+' Mini']],[/\bopr\/([\w\.]+)/i],[VERSION,[NAME,OPERA]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i,/(weibo)__([\d\.]+)/i],[NAME,VERSION],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[VERSION,[NAME,'UC'+BROWSER]],[/\bqbcore\/([\w\.]+)/i],[VERSION,[NAME,'WeChat(Win) Desktop']],[/micromessenger\/([\w\.]+)/i],[VERSION,[NAME,'WeChat']],[/konqueror\/([\w\.]+)/i],[VERSION,[NAME,'Konqueror']],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[VERSION,[NAME,'IE']],[/yabrowser\/([\w\.]+)/i],[VERSION,[NAME,'Yandex']],[/(avast|avg)\/([\w\.]+)/i],[[NAME,/(.+)/,'$1 Secure '+BROWSER],VERSION],[/\bfocus\/([\w\.]+)/i],[VERSION,[NAME,FIREFOX+' Focus']],[/\bopt\/([\w\.]+)/i],[VERSION,[NAME,OPERA+' Touch']],[/coc_coc\w+\/([\w\.]+)/i],[VERSION,[NAME,'Coc Coc']],[/dolfin\/([\w\.]+)/i],[VERSION,[NAME,'Dolphin']],[/coast\/([\w\.]+)/i],[VERSION,[NAME,OPERA+' Coast']],[/miuibrowser\/([\w\.]+)/i],[VERSION,[NAME,'MIUI '+BROWSER]],[/fxios\/([-\w\.]+)/i],[VERSION,[NAME,FIREFOX]],[/\bqihu|(qi?ho?o?|360)browser/i],[[NAME,'360 '+BROWSER]],[/(oculus|samsung|sailfish)browser\/([\w\.]+)/i],[[NAME,/(.+)/,'$1 '+BROWSER],VERSION],[/(comodo_dragon)\/([\w\.]+)/i],[[NAME,/_/g,' '],VERSION],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[NAME,VERSION],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i],[NAME],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[NAME,FACEBOOK],VERSION],[/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[NAME,VERSION],[/\bgsa\/([\w\.]+) .*safari\//i],[VERSION,[NAME,'GSA']],[/headlesschrome(?:\/([\w\.]+)| )/i],[VERSION,[NAME,CHROME+' Headless']],[/ wv\).+(chrome)\/([\w\.]+)/i],[[NAME,CHROME+' WebView'],VERSION],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[VERSION,[NAME,'Android '+BROWSER]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[NAME,VERSION],[/version\/([\w\.]+) .*mobile\/\w+ (safari)/i],[VERSION,[NAME,'Mobile Safari']],[/version\/([\w\.]+) .*(mobile ?safari|safari)/i],[VERSION,NAME],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[NAME,[VERSION,strMapper,oldSafariMap]],[/(webkit|khtml)\/([\w\.]+)/i],[NAME,VERSION],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[NAME,'Netscape'],VERSION],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[VERSION,[NAME,FIREFOX+' Reality']],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[NAME,VERSION]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[ARCHITECTURE,'amd64']],[/(ia32(?=;))/i],[[ARCHITECTURE,lowerize]],[/((?:i[346]|x)86)[;\)]/i],[[ARCHITECTURE,'ia32']],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[ARCHITECTURE,'arm64']],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[ARCHITECTURE,'armhf']],[/windows (ce|mobile); ppc;/i],[[ARCHITECTURE,'arm']],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[ARCHITECTURE,/ower/,EMPTY,lowerize]],[/(sun4\w)[;\)]/i],[[ARCHITECTURE,'sparc']],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[ARCHITECTURE,lowerize]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,TABLET]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,MOBILE]],[/\((ip(?:hone|od)[\w ]*);/i],[MODEL,[VENDOR,APPLE],[TYPE,MOBILE]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[MODEL,[VENDOR,APPLE],[TYPE,TABLET]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,TABLET]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}-[atu]?[ln][01259x][012359][an]?)\b(?!.+d\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,MOBILE]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[MODEL,/_/g,' '],[VENDOR,XIAOMI],[TYPE,MOBILE]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[MODEL,/_/g,' '],[VENDOR,XIAOMI],[TYPE,TABLET]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[MODEL,[VENDOR,'OPPO'],[TYPE,MOBILE]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[MODEL,[VENDOR,'Vivo'],[TYPE,MOBILE]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[MODEL,[VENDOR,'Realme'],[TYPE,MOBILE]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,MOBILE]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[MODEL,[VENDOR,MOTOROLA],[TYPE,TABLET]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[MODEL,[VENDOR,LG],[TYPE,TABLET]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[MODEL,[VENDOR,LG],[TYPE,MOBILE]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[MODEL,[VENDOR,'Lenovo'],[TYPE,TABLET]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[MODEL,/_/g,' '],[VENDOR,'Nokia'],[TYPE,MOBILE]],[/(pixel c)\b/i],[MODEL,[VENDOR,GOOGLE],[TYPE,TABLET]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[MODEL,[VENDOR,GOOGLE],[TYPE,MOBILE]],[/droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[MODEL,[VENDOR,SONY],[TYPE,MOBILE]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[MODEL,'Xperia Tablet'],[VENDOR,SONY],[TYPE,TABLET]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[MODEL,[VENDOR,'OnePlus'],[TYPE,MOBILE]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[MODEL,[VENDOR,AMAZON],[TYPE,TABLET]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[MODEL,/(.+)/g,'Fire Phone $1'],[VENDOR,AMAZON],[TYPE,MOBILE]],[/(playbook);[-\w\),; ]+(rim)/i],[MODEL,VENDOR,[TYPE,TABLET]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[MODEL,[VENDOR,BLACKBERRY],[TYPE,MOBILE]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[MODEL,[VENDOR,ASUS],[TYPE,TABLET]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[MODEL,[VENDOR,ASUS],[TYPE,MOBILE]],[/(nexus 9)/i],[MODEL,[VENDOR,'HTC'],[TYPE,TABLET]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i],[VENDOR,[MODEL,/_/g,' '],[TYPE,MOBILE]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[MODEL,[VENDOR,'Acer'],[TYPE,TABLET]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[MODEL,[VENDOR,'Meizu'],[TYPE,MOBILE]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[MODEL,[VENDOR,'Sharp'],[TYPE,MOBILE]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(surface duo)/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,TABLET]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[MODEL,[VENDOR,'Fairphone'],[TYPE,MOBILE]],[/(u304aa)/i],[MODEL,[VENDOR,'AT&T'],[TYPE,MOBILE]],[/\bsie-(\w*)/i],[MODEL,[VENDOR,'Siemens'],[TYPE,MOBILE]],[/\b(rct\w+) b/i],[MODEL,[VENDOR,'RCA'],[TYPE,TABLET]],[/\b(venue[\d ]{2,7}) b/i],[MODEL,[VENDOR,'Dell'],[TYPE,TABLET]],[/\b(q(?:mv|ta)\w+) b/i],[MODEL,[VENDOR,'Verizon'],[TYPE,TABLET]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[MODEL,[VENDOR,'Barnes & Noble'],[TYPE,TABLET]],[/\b(tm\d{3}\w+) b/i],[MODEL,[VENDOR,'NuVision'],[TYPE,TABLET]],[/\b(k88) b/i],[MODEL,[VENDOR,'ZTE'],[TYPE,TABLET]],[/\b(nx\d{3}j) b/i],[MODEL,[VENDOR,'ZTE'],[TYPE,MOBILE]],[/\b(gen\d{3}) b.+49h/i],[MODEL,[VENDOR,'Swiss'],[TYPE,MOBILE]],[/\b(zur\d{3}) b/i],[MODEL,[VENDOR,'Swiss'],[TYPE,TABLET]],[/\b((zeki)?tb.*\b) b/i],[MODEL,[VENDOR,'Zeki'],[TYPE,TABLET]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[VENDOR,'Dragon Touch'],MODEL,[TYPE,TABLET]],[/\b(ns-?\w{0,9}) b/i],[MODEL,[VENDOR,'Insignia'],[TYPE,TABLET]],[/\b((nxa|next)-?\w{0,9}) b/i],[MODEL,[VENDOR,'NextBook'],[TYPE,TABLET]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[VENDOR,'Voice'],MODEL,[TYPE,MOBILE]],[/\b(lvtel\-)?(v1[12]) b/i],[[VENDOR,'LvTel'],MODEL,[TYPE,MOBILE]],[/\b(ph-1) /i],[MODEL,[VENDOR,'Essential'],[TYPE,MOBILE]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[MODEL,[VENDOR,'Envizen'],[TYPE,TABLET]],[/\b(trio[-\w\. ]+) b/i],[MODEL,[VENDOR,'MachSpeed'],[TYPE,TABLET]],[/\btu_(1491) b/i],[MODEL,[VENDOR,'Rotor'],[TYPE,TABLET]],[/(shield[\w ]+) b/i],[MODEL,[VENDOR,'Nvidia'],[TYPE,TABLET]],[/(sprint) (\w+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kin\.[onetw]{3})/i],[[MODEL,/\./g,' '],[VENDOR,MICROSOFT],[TYPE,MOBILE]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,TABLET]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,MOBILE]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[VENDOR,MODEL,[TYPE,CONSOLE]],[/droid.+; (shield) bui/i],[MODEL,[VENDOR,'Nvidia'],[TYPE,CONSOLE]],[/(playstation [345portablevi]+)/i],[MODEL,[VENDOR,SONY],[TYPE,CONSOLE]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,CONSOLE]],[/smart-tv.+(samsung)/i],[VENDOR,[TYPE,SMARTTV]],[/hbbtv.+maple;(\d+)/i],[[MODEL,/^/,'SmartTV'],[VENDOR,SAMSUNG],[TYPE,SMARTTV]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[VENDOR,LG],[TYPE,SMARTTV]],[/(apple) ?tv/i],[VENDOR,[MODEL,APPLE+' TV'],[TYPE,SMARTTV]],[/crkey/i],[[MODEL,CHROME+'cast'],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/droid.+aft(\w)( bui|\))/i],[MODEL,[VENDOR,AMAZON],[TYPE,SMARTTV]],[/\(dtv[\);].+(aquos)/i],[MODEL,[VENDOR,'Sharp'],[TYPE,SMARTTV]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[VENDOR,trim],[MODEL,trim],[TYPE,SMARTTV]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[TYPE,SMARTTV]],[/((pebble))app/i],[VENDOR,MODEL,[TYPE,WEARABLE]],[/droid.+; (glass) \d/i],[MODEL,[VENDOR,GOOGLE],[TYPE,WEARABLE]],[/droid.+; (wt63?0{2,3})\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,WEARABLE]],[/(quest( 2)?)/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,WEARABLE]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[VENDOR,[TYPE,EMBEDDED]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[MODEL,[TYPE,MOBILE]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[MODEL,[TYPE,TABLET]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[TYPE,TABLET]],[/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i],[[TYPE,MOBILE]],[/(android[-\w\. ]{0,9});.+buil/i],[MODEL,[VENDOR,'Generic']]],engine:[[/windows.+ edge\/([\w\.]+)/i],[VERSION,[NAME,EDGE+'HTML']],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[VERSION,[NAME,'Blink']],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i],[NAME,VERSION],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[VERSION,NAME]],os:[[/microsoft (windows) (vista|xp)/i],[NAME,VERSION],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[NAME,[VERSION,strMapper,windowsVersionMap]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[NAME,'Windows'],[VERSION,strMapper,windowsVersionMap]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i],[[VERSION,/_/g,'.'],[NAME,'iOS']],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[NAME,'Mac OS'],[VERSION,/_/g,'.']],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[VERSION,NAME],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[NAME,VERSION],[/\(bb(10);/i],[VERSION,[NAME,BLACKBERRY]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[VERSION,[NAME,'Symbian']],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[VERSION,[NAME,FIREFOX+' OS']],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[VERSION,[NAME,'webOS']],[/crkey\/([\d\.]+)/i],[VERSION,[NAME,CHROME+'cast']],[/(cros) [\w]+ ([\w\.]+\w)/i],[[NAME,'Chromium OS'],VERSION],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[NAME,VERSION],[/(sunos) ?([\w\.\d]*)/i],[[NAME,'Solaris'],VERSION],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\w\.]*)/i],[NAME,VERSION]]};var UAParser1=function(ua1,extensions){if(typeof ua1===OBJ_TYPE){extensions=ua1;ua1=undefined$1}if(!(this instanceof UAParser1)){return new UAParser1(ua1,extensions).getResult()}var _ua=ua1||(typeof window!==UNDEF_TYPE&&window.navigator&&window.navigator.userAgent?window.navigator.userAgent:EMPTY);var _rgxmap=extensions?extend(regexes1,extensions):regexes1;this.getBrowser=function(){var _browser={};_browser[NAME]=undefined$1;_browser[VERSION]=undefined$1;rgxMapper.call(_browser,_ua,_rgxmap.browser);_browser.major=majorize(_browser.version);return _browser};this.getCPU=function(){var _cpu={};_cpu[ARCHITECTURE]=undefined$1;rgxMapper.call(_cpu,_ua,_rgxmap.cpu);return _cpu};this.getDevice=function(){var _device={};_device[VENDOR]=undefined$1;_device[MODEL]=undefined$1;_device[TYPE]=undefined$1;rgxMapper.call(_device,_ua,_rgxmap.device);return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined$1;_engine[VERSION]=undefined$1;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined$1;_os[VERSION]=undefined$1;rgxMapper.call(_os,_ua,_rgxmap.os);return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser1.VERSION=LIBVERSION;UAParser1.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser1.CPU=enumerize([ARCHITECTURE]);UAParser1.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser1.ENGINE=UAParser1.OS=enumerize([NAME,VERSION]);{if(module.exports){exports=module.exports=UAParser1}exports.UAParser=UAParser1}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser1();$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window==='object'?window:commonjsGlobal)})(uaParser,uaParser.exports);var UAParser=uaParser.exports;const strictDynamic=cfg=>ensureChainContext(async(req,evt,res)=>{if(process.env.NODE_ENV==="development"){return}const csp=pullCspFromResponse(res)??{};const{fallbackScriptSrc,allowUnsafeEval,reportOnly,tellSupported:tellSupported1}=await unpackConfig(req,res,cfg);const fallbackSrcArray=arrayifyCspValues(fallbackScriptSrc);const withUnsafeEval=values=>allowUnsafeEval?[...values,`'unsafe-eval'`]:values;try{const uaParser1=new UAParser(req.headers.get("user-agent"));const{supportsSrcIntegrityCheck,supportsStrictDynamic}=tellSupported1(uaParser1);if(!supportsStrictDynamic){pushCspToResponse(extendCsp(csp,{"script-src":withUnsafeEval(fallbackSrcArray)},"override"),res,reportOnly);return}let extendedCsp;const getCsp=()=>extendedCsp||csp;const scriptSrcHashes=await fetchHashes(req,"script-hashes.txt");if(scriptSrcHashes){if(supportsSrcIntegrityCheck){extendedCsp=extendCsp(getCsp(),{"script-src":[`'strict-dynamic'`,...withUnsafeEval(fallbackSrcArray),...scriptSrcHashes,]},"override")}else{extendedCsp=extendCsp(getCsp(),{"script-src":withUnsafeEval(fallbackSrcArray)},"override")}}else{extendedCsp=extendCsp(getCsp(),{"script-src":[`'strict-dynamic' 'nonce-${cspNonce(res)}'`,...withUnsafeEval(fallbackSrcArray),]},"override")}if(extendedCsp){pushCspToResponse(extendedCsp,res,reportOnly)}}catch(err){const errorCsp=extendCsp(csp,{"script-src":[`'strict-dynamic'`,...withUnsafeEval(fallbackSrcArray),]},"override");pushCspToResponse(errorCsp,res,true);console.error("[strictDynamic]: Internal error. No hashes or nonce have been added to CSP. Switch to report-only mode to not break the app and to let you know about this.",{errorCsp,err})}});const tellSupported=ua=>{const browserName=ua.getBrowser().name||"";const isFirefox=browserName.includes("Firefox");const isSafari=browserName.includes("Safari");const supportsStrictDynamic=!isSafari;const supportsSrcIntegrityCheck=!isFirefox;return{supportsStrictDynamic,supportsSrcIntegrityCheck}};var strictDynamic$1=withDefaultConfig(strictDynamic,{fallbackScriptSrc:`https: 'unsafe-inline'`,tellSupported});const strictInlineStyles=cfg=>ensureChainContext(async(req,evt,res)=>{if(process.env.NODE_ENV==="development"){return}const{extendStyleSrc}=await unpackConfig(req,res,cfg);const mode=extendStyleSrc?"append":"override";const csp=pullCspFromResponse(res)??{};try{let extendedCsp;const getCsp=()=>extendedCsp||csp;const styleSrcHashes=await fetchHashes(req,"style-hashes.txt");if(styleSrcHashes){extendedCsp=extendCsp(getCsp(),{"style-src":styleSrcHashes},mode)}else{extendedCsp=extendCsp(getCsp(),{"style-src":`'nonce-${cspNonce(res)}'`},mode)}if(extendedCsp){pushCspToResponse(extendedCsp,res)}}catch(err){console.error("[strictStyles]: Internal error. Didn't add hashes or nonce to CSP",{err})}});var strictInlineStyles$1=withDefaultConfig(strictInlineStyles,{extendStyleSrc:true});const provideHashesOrNonce=strictDynamic$1();exports.arrayifyCsp=arrayifyCsp;exports.arrayifyCspValues=arrayifyCspValues;exports.chain=weAreChained;exports.cspDirectiveHas=cspDirectiveHas;exports.cspNonce=cspNonce;exports.extendCsp=extendCsp;exports.fetchHashes=fetchHashes;exports.filterCsp=filterCsp;exports.fromCspContent=fromCspContent;exports.generateNonce=generateNonce;exports.getCspHeader=getCspHeader;exports.nextSafe=nextSafe$1;exports.provideHashesOrNonce=provideHashesOrNonce;exports.pullCspFromResponse=pullCspFromResponse;exports.pushCspToResponse=pushCspToResponse;exports.reporting=reporting$1;exports.setCspHeader=setCspHeader;exports.strictDynamic=strictDynamic$1;exports.strictInlineStyles=strictInlineStyles$1;exports.toCspContent=toCspContent | ||
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var server=require('next/server');function _isPlaceholder(a){return a!=null&& typeof a==='object'&&a['@@functional/placeholder']===true}function _curry1(fn){return function f1(a){if(arguments.length===0||_isPlaceholder(a)){return f1}else{return fn.apply(this,arguments)}}}function _curry2(fn){return function f2(a,b){switch(arguments.length){case 0:return f2;case 1:return _isPlaceholder(a)?f2:_curry1(function(_b){return fn(a,_b)});default:return _isPlaceholder(a)&&_isPlaceholder(b)?f2:_isPlaceholder(a)?_curry1(function(_a){return fn(_a,b)}):_isPlaceholder(b)?_curry1(function(_b){return fn(a,_b)}):fn(a,b)}}}function _curry3(fn){return function f3(a,b,c){switch(arguments.length){case 0:return f3;case 1:return _isPlaceholder(a)?f3:_curry2(function(_b,_c){return fn(a,_b,_c)});case 2:return _isPlaceholder(a)&&_isPlaceholder(b)?f3:_isPlaceholder(a)?_curry2(function(_a,_c){return fn(_a,b,_c)}):_isPlaceholder(b)?_curry2(function(_b,_c){return fn(a,_b,_c)}):_curry1(function(_c){return fn(a,b,_c)});default:return _isPlaceholder(a)&&_isPlaceholder(b)&&_isPlaceholder(c)?f3:_isPlaceholder(a)&&_isPlaceholder(b)?_curry2(function(_a,_b){return fn(_a,_b,c)}):_isPlaceholder(a)&&_isPlaceholder(c)?_curry2(function(_a,_c){return fn(_a,b,_c)}):_isPlaceholder(b)&&_isPlaceholder(c)?_curry2(function(_b,_c){return fn(a,_b,_c)}):_isPlaceholder(a)?_curry1(function(_a){return fn(_a,b,c)}):_isPlaceholder(b)?_curry1(function(_b){return fn(a,_b,c)}):_isPlaceholder(c)?_curry1(function(_c){return fn(a,b,_c)}):fn(a,b,c)}}}var _isArray=Array.isArray||function _isArray(val){return val!=null&&val.length>=0&&Object.prototype.toString.call(val)==='[object Array]'};function _isTransformer(obj){return obj!=null&& typeof obj['@@transducer/step']==='function'}function _dispatchable(methodNames,transducerCreator,fn){return function(){if(arguments.length===0){return fn()}var obj=arguments[arguments.length-1];if(!_isArray(obj)){var idx=0;while(idx<methodNames.length){if(typeof obj[methodNames[idx]]==='function'){return obj[methodNames[idx]].apply(obj,Array.prototype.slice.call(arguments,0,-1))}idx+=1}if(_isTransformer(obj)){var transducer=transducerCreator.apply(null,Array.prototype.slice.call(arguments,0,-1));return transducer(obj)}}return fn.apply(this,arguments)}}var _xfBase={init:function(){return this.xf['@@transducer/init']()},result:function(result){return this.xf['@@transducer/result'](result)}};function _has(prop,obj){return Object.prototype.hasOwnProperty.call(obj,prop)}var toString=Object.prototype.toString;var _isArguments=function(){return toString.call(arguments)==='[object Arguments]'?function _isArguments(x){return toString.call(x)==='[object Arguments]'}:function _isArguments(x){return _has('callee',x)}}();var hasEnumBug=!({toString:null}).propertyIsEnumerable('toString');var nonEnumerableProps=['constructor','valueOf','isPrototypeOf','toString','propertyIsEnumerable','hasOwnProperty','toLocaleString'];var hasArgsEnumBug=function(){return arguments.propertyIsEnumerable('length')}();var contains=function contains(list,item){var idx=0;while(idx<list.length){if(list[idx]===item){return true}idx+=1}return false};var keys=typeof Object.keys==='function'&&!hasArgsEnumBug?_curry1(function keys(obj){return Object(obj)!==obj?[]:Object.keys(obj)}):_curry1(function keys(obj){if(Object(obj)!==obj){return[]}var prop,nIdx;var ks=[];var checkArgsLength=hasArgsEnumBug&&_isArguments(obj);for(prop in obj){if(_has(prop,obj)&&(!checkArgsLength||prop!=='length')){ks[ks.length]=prop}}if(hasEnumBug){nIdx=nonEnumerableProps.length-1;while(nIdx>=0){prop=nonEnumerableProps[nIdx];if(_has(prop,obj)&&!contains(ks,prop)){ks[ks.length]=prop}nIdx-=1}}return ks});var type=_curry1(function type(val){return val===null?'Null':val===undefined?'Undefined':Object.prototype.toString.call(val).slice(8,-1)});function _identity(x){return x}var identity=_curry1(_identity);function _arrayFromIterator(iter){var list=[];var next;while(!(next=iter.next()).done){list.push(next.value)}return list}function _includesWith(pred,x,list){var idx=0;var len=list.length;while(idx<len){if(pred(x,list[idx])){return true}idx+=1}return false}function _functionName(f){var match=String(f).match(/^function (\w*)/);return match==null?'':match[1]}function _objectIs(a,b){if(a===b){return a!==0||1/a===1/b}else{return a!==a&&b!==b}}var _objectIs$1=typeof Object.is==='function'?Object.is:_objectIs;function _uniqContentEquals(aIterator,bIterator,stackA,stackB){var a=_arrayFromIterator(aIterator);var b1=_arrayFromIterator(bIterator);function eq(_a,_b){return _equals(_a,_b,stackA.slice(),stackB.slice())}return!_includesWith(function(b,aItem){return!_includesWith(eq,aItem,b)},b1,a)}function _equals(a,b,stackA,stackB){if(_objectIs$1(a,b)){return true}var typeA=type(a);if(typeA!==type(b)){return false}if(typeof a['fantasy-land/equals']==='function'|| typeof b['fantasy-land/equals']==='function'){return typeof a['fantasy-land/equals']==='function'&&a['fantasy-land/equals'](b)&& typeof b['fantasy-land/equals']==='function'&&b['fantasy-land/equals'](a)}if(typeof a.equals==='function'|| typeof b.equals==='function'){return typeof a.equals==='function'&&a.equals(b)&& typeof b.equals==='function'&&b.equals(a)}switch(typeA){case'Arguments':case'Array':case'Object':if(typeof a.constructor==='function'&&_functionName(a.constructor)==='Promise'){return a===b}break;case'Boolean':case'Number':case'String':if(!(typeof a===typeof b&&_objectIs$1(a.valueOf(),b.valueOf()))){return false}break;case'Date':if(!_objectIs$1(a.valueOf(),b.valueOf())){return false}break;case'Error':return a.name===b.name&&a.message===b.message;case'RegExp':if(!(a.source===b.source&&a.global===b.global&&a.ignoreCase===b.ignoreCase&&a.multiline===b.multiline&&a.sticky===b.sticky&&a.unicode===b.unicode)){return false}break}var idx=stackA.length-1;while(idx>=0){if(stackA[idx]===a){return stackB[idx]===b}idx-=1}switch(typeA){case'Map':if(a.size!==b.size){return false}return _uniqContentEquals(a.entries(),b.entries(),stackA.concat([a]),stackB.concat([b]));case'Set':if(a.size!==b.size){return false}return _uniqContentEquals(a.values(),b.values(),stackA.concat([a]),stackB.concat([b]));case'Arguments':case'Array':case'Object':case'Boolean':case'Number':case'String':case'Date':case'Error':case'RegExp':case'Int8Array':case'Uint8Array':case'Uint8ClampedArray':case'Int16Array':case'Uint16Array':case'Int32Array':case'Uint32Array':case'Float32Array':case'Float64Array':case'ArrayBuffer':break;default:return false}var keysA=keys(a);if(keysA.length!==keys(b).length){return false}var extendedStackA=stackA.concat([a]);var extendedStackB=stackB.concat([b]);idx=keysA.length-1;while(idx>=0){var key=keysA[idx];if(!(_has(key,b)&&_equals(b[key],a[key],extendedStackA,extendedStackB))){return false}idx-=1}return true}var equals=_curry2(function equals(a,b){return _equals(a,b,[],[])});function _indexOf(list,a,idx){var inf,item;if(typeof list.indexOf==='function'){switch(typeof a){case'number':if(a===0){inf=1/a;while(idx<list.length){item=list[idx];if(item===0&&1/item===inf){return idx}idx+=1}return-1}else if(a!==a){while(idx<list.length){item=list[idx];if(typeof item==='number'&&item!==item){return idx}idx+=1}return-1}return list.indexOf(a,idx);case'string':case'boolean':case'function':case'undefined':return list.indexOf(a,idx);case'object':if(a===null){return list.indexOf(a,idx)}}}while(idx<list.length){if(equals(list[idx],a)){return idx}idx+=1}return-1}function _includes(a,list){return _indexOf(list,a,0)>=0}function _isObject(x){return Object.prototype.toString.call(x)==='[object Object]'}var _Set=function(){function _Set1(){this._nativeSet=typeof Set==='function'?new Set():null;this._items={}}_Set1.prototype.add=function(item){return!hasOrAdd(item,true,this)};_Set1.prototype.has=function(item){return hasOrAdd(item,false,this)};return _Set1}();function hasOrAdd(item,shouldAdd,set){var type1=typeof item;var prevSize,newSize;switch(type1){case'string':case'number':if(item===0&&1/item=== -Infinity){if(set._items['-0']){return true}else{if(shouldAdd){set._items['-0']=true}return false}}if(set._nativeSet!==null){if(shouldAdd){prevSize=set._nativeSet.size;set._nativeSet.add(item);newSize=set._nativeSet.size;return newSize===prevSize}else{return set._nativeSet.has(item)}}else{if(!(type1 in set._items)){if(shouldAdd){set._items[type1]={};set._items[type1][item]=true}return false}else if(item in set._items[type1]){return true}else{if(shouldAdd){set._items[type1][item]=true}return false}}case'boolean':if(type1 in set._items){var bIdx=item?1:0;if(set._items[type1][bIdx]){return true}else{if(shouldAdd){set._items[type1][bIdx]=true}return false}}else{if(shouldAdd){set._items[type1]=item?[false,true]:[true,false]}return false}case'function':if(set._nativeSet!==null){if(shouldAdd){prevSize=set._nativeSet.size;set._nativeSet.add(item);newSize=set._nativeSet.size;return newSize===prevSize}else{return set._nativeSet.has(item)}}else{if(!(type1 in set._items)){if(shouldAdd){set._items[type1]=[item]}return false}if(!_includes(item,set._items[type1])){if(shouldAdd){set._items[type1].push(item)}return false}return true}case'undefined':if(set._items[type1]){return true}else{if(shouldAdd){set._items[type1]=true}return false}case'object':if(item===null){if(!set._items['null']){if(shouldAdd){set._items['null']=true}return false}return true}default:type1=Object.prototype.toString.call(item);if(!(type1 in set._items)){if(shouldAdd){set._items[type1]=[item]}return false}if(!_includes(item,set._items[type1])){if(shouldAdd){set._items[type1].push(item)}return false}return true}}var XUniqBy=function(){function XUniqBy1(f,xf){this.xf=xf;this.f=f;this.set=new _Set()}XUniqBy1.prototype['@@transducer/init']=_xfBase.init;XUniqBy1.prototype['@@transducer/result']=_xfBase.result;XUniqBy1.prototype['@@transducer/step']=function(result,input){return this.set.add(this.f(input))?this.xf['@@transducer/step'](result,input):result};return XUniqBy1}();var _xuniqBy=_curry2(function _xuniqBy(f,xf){return new XUniqBy(f,xf)});var uniqBy=_curry2(_dispatchable([],_xuniqBy,function(fn,list){var set=new _Set();var result=[];var idx=0;var appliedItem,item;while(idx<list.length){item=list[idx];appliedItem=fn(item);if(set.add(appliedItem)){result.push(item)}idx+=1}return result}));var uniq=uniqBy(identity);var uniq$1=uniq;var mergeWithKey=_curry3(function mergeWithKey(fn,l,r){var result={};var k;for(k in l){if(_has(k,l)){result[k]=_has(k,r)?fn(k,l[k],r[k]):l[k]}}for(k in r){if(_has(k,r)&&!_has(k,result)){result[k]=r[k]}}return result});var mergeWithKey$1=mergeWithKey;var mergeDeepWithKey=_curry3(function mergeDeepWithKey1(fn,lObj,rObj){return mergeWithKey$1(function(k,lVal,rVal){if(_isObject(lVal)&&_isObject(rVal)){return mergeDeepWithKey1(fn,lVal,rVal)}else{return fn(k,lVal,rVal)}},lObj,rObj)});var mergeDeepWithKey$1=mergeDeepWithKey;const arrayifyCspValues=values=>{if(typeof values!=="string"){return values}return values.trim().split(" ").map(v=>v.trim()).filter(Boolean)};const arrayifyCsp=csp=>{const arrayifiedEntries=Object.entries(csp).map(([directive,values])=>{return[directive,arrayifyCspValues(values)]});return Object.fromEntries(arrayifiedEntries.filter(([k,v])=>k&&v&&v.length))};const toCspContent=csp=>Object.entries(arrayifyCsp(csp)).map(([attr,values])=>`${attr} ${values.join(" ")}`).join(";");const fromCspContent=content=>Object.fromEntries(content.trim().split(";").filter(Boolean).map(line=>line.split(" ").map(lineItem=>lineItem.trim()).filter(Boolean)).filter(Boolean).map(line=>{const directive=line[0];const values=line.slice(1);return directive&&values.length?[directive,values]:[]}));const extendCsp=(csp,cspExtension,mode="prepend")=>{const concatValues=(_k,l,r)=>mode!=="override"?uniq$1(mode==="append"?[...l,...r]:[...r,...l]):r;return mergeWithKey$1(concatValues,arrayifyCsp(csp),arrayifyCsp(cspExtension))};const filterCsp=(csp,cspFilter)=>{return Object.entries(arrayifyCsp(csp)).reduce((acc,[attr,values])=>{const directive=attr;const filter=cspFilter[directive];if(filter){acc[directive]=values.filter(v=>!filter.test(v))}else{acc[directive]=values}return acc},{})};const cspDirectiveHas=(csp,directive,value)=>{return!!arrayifyCsp(csp)[directive]?.find(v=>typeof value==="string"?v.includes(value):value.test(v))};const CSP_LOCATION_MIDDLEWARE='_next/static/csp';const CSP_HEADER='content-security-policy';const CSP_HEADER_REPORT_ONLY='content-security-policy-report-only';const CSP_NONCE_HEADER='csp-nonce';const setCspHeader=(cspContent,res,reportOnly)=>{const isReportOnly=reportOnly?? !!res.headers.get(CSP_HEADER_REPORT_ONLY);if(isReportOnly){res.headers.delete(CSP_HEADER);res.headers.set(CSP_HEADER_REPORT_ONLY,cspContent)}else{res.headers.delete(CSP_HEADER_REPORT_ONLY);res.headers.set(CSP_HEADER,cspContent)}};const getCspHeader=res=>{return res.headers.get(CSP_HEADER)||res.headers.get(CSP_HEADER_REPORT_ONLY)};const pullCspFromResponse=res=>{const cspContent=getCspHeader(res);if(cspContent){return fromCspContent(cspContent)}return undefined};const pushCspToResponse=(csp,res,reportOnly)=>{setCspHeader(toCspContent(csp),res,reportOnly)};const generateNonce=(bits=128)=>{const buffer=new Uint8Array(Math.floor(bits/8));const random=crypto.getRandomValues(buffer);return[...random].map(n=>n.toString(16)).join("")};const cspNonce=(res,bits=128)=>{let nonce=res.headers.get(CSP_NONCE_HEADER);if(!nonce){nonce=generateNonce(bits);res.headers.set(CSP_NONCE_HEADER,nonce)}return nonce};const singleQuotify=value=>`'${value}'`;const fetchHashes=async(req,hashesKind,overrideFetchpath)=>{const{origin,pathname}=req.nextUrl;const baseUrl=`${origin}/${CSP_LOCATION_MIDDLEWARE}`;const route=req.page.name;let resHashes;const fetchPaths=[...overrideFetchpath?[overrideFetchpath]:[],...!route?["/404"]:[],...route?route!==pathname?[pathname,route]:[route]:[],];const fetchUrls=fetchPaths.map(fetchPath=>encodeURI(`${baseUrl}${fetchPath}/${hashesKind}`));for(const url of fetchUrls){if(!resHashes?.ok){resHashes=await fetch(url)}}if(!resHashes?.ok){return undefined}const hashesText=await resHashes.text();const hashes=hashesText.split("\n").map(line=>line.trim()).filter(Boolean);return uniq$1(hashes).map(singleQuotify)};const weAreChained=(...middlewares)=>async(req,evt)=>{let res;const next=resp=>{res=resp};for await(const middleware of middlewares){const mwRes=await middleware(req,evt,res||undefined,next);if(mwRes){return mwRes}}return res};var commonjsGlobal=typeof globalThis!=='undefined'?globalThis:typeof window!=='undefined'?window:typeof global!=='undefined'?global:typeof self!=='undefined'?self:{};var crunchHeaderValue$1=function crunchHeaderValue(headerValue){return Object.entries(headerValue).reduce((accumulator,[key,value])=>{let serializedValue=value;if(!Array.isArray(value)){serializedValue=[value]}return`${accumulator}${key} ${serializedValue.join(' ')};`},'')};const crunchHeaderValue=crunchHeaderValue$1;const devDirectives={'connect-src':['webpack://*'],'script-src':["'unsafe-eval'"],'style-src':["'unsafe-inline'"]};function getCSPDirective(value,defaultValue){return[value||defaultValue].flat()}var buildCSPHeaders$1=function buildCSPHeaders(options={}){const{contentSecurityPolicy={},isDev}=options;if(contentSecurityPolicy===false){return[]}const directives1={'base-uri':getCSPDirective(contentSecurityPolicy['base-uri'],"'none'"),'child-src':getCSPDirective(contentSecurityPolicy['child-src'],"'none'"),'connect-src':getCSPDirective(contentSecurityPolicy['connect-src'],"'self'"),'default-src':getCSPDirective(contentSecurityPolicy['default-src'],"'self'"),'font-src':getCSPDirective(contentSecurityPolicy['font-src'],"'self'"),'form-action':getCSPDirective(contentSecurityPolicy['form-action'],"'self'"),'frame-ancestors':getCSPDirective(contentSecurityPolicy['frame-ancestors'],"'none'"),'frame-src':getCSPDirective(contentSecurityPolicy['frame-src'],"'none'"),'img-src':getCSPDirective(contentSecurityPolicy['img-src'],"'self'"),'manifest-src':getCSPDirective(contentSecurityPolicy['manifest-src'],"'self'"),'media-src':getCSPDirective(contentSecurityPolicy['media-src'],"'self'"),'object-src':getCSPDirective(contentSecurityPolicy['object-src'],"'none'"),'prefetch-src':getCSPDirective(contentSecurityPolicy['prefetch-src'],"'self'"),'script-src':getCSPDirective(contentSecurityPolicy['script-src'],"'self'"),'style-src':getCSPDirective(contentSecurityPolicy['style-src'],"'self'"),'worker-src':getCSPDirective(contentSecurityPolicy['worker-src'],"'self'")};const optionalDirectives=['block-all-mixed-content','plugin-types','navigate-to','require-sri-for','require-trusted-types-for','sandbox','script-src-attr','script-src-elem','style-src-attr','style-src-elem','trusted-types','upgrade-insecure-requests',];optionalDirectives.forEach(optionalDirective=>{if(contentSecurityPolicy[optionalDirective]){directives1[optionalDirective]=getCSPDirective(contentSecurityPolicy[optionalDirective])}});if(contentSecurityPolicy['report-to']||contentSecurityPolicy['report-uri']){const reportDirectiveValue=getCSPDirective(contentSecurityPolicy['report-to']||contentSecurityPolicy['report-uri']);directives1['report-uri']=reportDirectiveValue;directives1['report-to']=reportDirectiveValue}Object.entries(contentSecurityPolicy).forEach(([key,value])=>{if(value===false){delete directives1[key]}});if(isDev){Object.entries(devDirectives).forEach(([key,value])=>{if(directives1[key]){directives1[key]=directives1[key].concat(value)}else{directives1[key]=[...value]}})}const cspString=crunchHeaderValue(directives1);const cspHeaderNames=[`Content-Security-Policy${contentSecurityPolicy.reportOnly?'-Report-Only':''}`,`X-Content-Security-Policy${contentSecurityPolicy.reportOnly?'-Report-Only':''}`,'X-WebKit-CSP',];return cspHeaderNames.map(headerName=>({key:headerName,value:cspString}))};var crunchFeaturePolicyHeader$1=function crunchFeaturePolicyHeader(headerValue){return Object.entries(headerValue).reduce((accumulator,[key,value])=>{let serializedValue=value;if(!Array.isArray(value)){serializedValue=[value]}return`${accumulator}${key} ${serializedValue.join(' ')};`},'')};var crunchPermissionsPolicyHeader$1=function crunchPermissionsPolicyHeader(headerValue){return Object.entries(headerValue).reduce((accumulator,[key,value])=>{let serializedValue=value;if(!Array.isArray(value)){serializedValue=value.split(' ')}serializedValue=serializedValue.map(item=>{if(item.includes('*')){return'*'}if(item==="'self'"){return'self'}if(!['*','self'].includes(item)&&!/^['"].*['"]$/){return item.replace(/^['"]/,'"').replace(/['"]$/,'"')}return item});accumulator.push(`${key}=(${serializedValue.join(' ')})`);return accumulator},[]).join(',')};var experimentalDirectives$1=['conversion-measurement','focus-without-user-activation','hid','idle-detection','serial','sync-script','trust-token-redemption','vertical-scroll',];var legacyDirectives$1=['animations','document-write','image-compression','layout-animations','legacy-image-formats','max-downscaling-image','notifications','oversized-images','push','speaker','unsized-media','vibrate','vr','wake-lock','webauthn','web-share',];var proposedDirectives$1=['clipboard-read','clipboard-write','gamepad','speaker-selection',];var standardDirectives$1=['accelerometer','ambient-light-sensor','autoplay','battery','camera','cross-origin-isolated','display-capture','document-domain','encrypted-media','execution-while-not-rendered','execution-while-out-of-viewport','fullscreen','geolocation','gyroscope','magnetometer','microphone','midi','navigation-override','payment','picture-in-picture','publickey-credentials-get','screen-wake-lock','sync-xhr','usb','web-share','xr-spatial-tracking',];const experimentalDirectives=experimentalDirectives$1;const legacyDirectives=legacyDirectives$1;const proposedDirectives=proposedDirectives$1;const standardDirectives=standardDirectives$1;var PermissionsPolicy={experimental:experimentalDirectives,legacy:legacyDirectives,proposed:proposedDirectives,standard:standardDirectives};const crunchFeaturePolicyHeader=crunchFeaturePolicyHeader$1;const crunchPermissionsPolicyHeader=crunchPermissionsPolicyHeader$1;const directives=PermissionsPolicy;function reduceDirectives(supportedDirectives,permissionsPolicy,defaultValue){return supportedDirectives.reduce((accumulator,directive)=>{if(permissionsPolicy[directive]!==false){accumulator[directive]=permissionsPolicy[directive]||defaultValue}return accumulator},{})}var buildPermissionsPolicyHeaders$1=function buildPermissionsPolicyHeaders(options={}){const{permissionsPolicy={},permissionsPolicyDirectiveSupport=['proposed','standard']}=options;if(permissionsPolicy===false){return[]}const supportedDirectives=Array.from(new Set(permissionsPolicyDirectiveSupport.map(directiveSet=>directives[directiveSet]).flat()));return[{key:'Feature-Policy',value:crunchFeaturePolicyHeader(reduceDirectives(supportedDirectives,permissionsPolicy,"'none'"))},{key:'Permissions-Policy',value:crunchPermissionsPolicyHeader(reduceDirectives(supportedDirectives,permissionsPolicy,''))},]};const buildCSPHeaders=buildCSPHeaders$1;const buildPermissionsPolicyHeaders=buildPermissionsPolicyHeaders$1;function makeHeaderObj(key,value,defaultValue){if(key===false){return undefined}return{key,value:value||defaultValue}}function nextSafe$3(options={}){const{contentTypeOptions,contentSecurityPolicy={},frameOptions,permissionsPolicy={},permissionsPolicyDirectiveSupport,isDev=false,referrerPolicy,xssProtection}=options;return[...buildCSPHeaders({contentSecurityPolicy,isDev}),...buildPermissionsPolicyHeaders({permissionsPolicy,permissionsPolicyDirectiveSupport,isDev}),makeHeaderObj('Referrer-Policy',referrerPolicy,'no-referrer'),makeHeaderObj('X-Content-Type-Options',contentTypeOptions,'nosniff'),makeHeaderObj('X-Frame-Options',frameOptions,'DENY'),makeHeaderObj('X-XSS-Protection',xssProtection,'1; mode=block'),].filter(header=>Boolean(header))}var nextSafe_1=nextSafe$3;const nextSafe$2=nextSafe_1;var lib=nextSafe$2;const unpackConfig=async(req,res,cfg)=>{return typeof cfg==="function"?cfg(req,res):cfg};const mergeConfigs=(left,right,keyMerger=(k,l,r)=>r)=>async(req,res)=>{const leftCfg=await unpackConfig(req,res,left);const rightCfg=await unpackConfig(req,res,right);return mergeDeepWithKey$1(keyMerger,leftCfg,rightCfg)};const isTrue=x=>typeof x==="boolean"&&x;const isFalse=x=>typeof x==="boolean"&&!x;const isNonBool=x=>typeof x!=="boolean"&&!!x;const defaultConfigMergers=[(k,l,r)=>isTrue(r)&&isNonBool(l)?l:undefined,(k,l,r)=>isFalse(r)&&isNonBool(l)?null:undefined,(k,l,r)=>r,];const chainMergers=mergers=>(k,l,r)=>mergers.reduce((v,next)=>typeof v==="undefined"?next(k,l,r):v,undefined);const withDefaultConfig=(builder,defaultCfg,...keyMergers)=>cfg=>async(req,evt,res,next)=>{if(cfg){const unpackedCfg=await unpackConfig(req,res,cfg);return builder(mergeConfigs(typeof defaultCfg==="function"?defaultCfg(unpackedCfg):defaultCfg,unpackedCfg,chainMergers([...keyMergers,...defaultConfigMergers])))(req,evt,res,next)}else{return builder(typeof defaultCfg==="function"?defaultCfg({}):defaultCfg)(req,evt,res,next)}};const ensureChainContext=(middleware,ensureResponse=server.NextResponse.next)=>{return async(req,evt,res,next)=>{const ensuredRes=res||await ensureResponse(req);const ensuredNext=next||(()=>void 0);ensuredNext(ensuredRes);return middleware(req,evt,ensuredRes,ensuredNext)}};const nextSafe=lib;const nextSafeMiddleware=cfg=>ensureChainContext(async(req,evt,res)=>{const unpackedCfg=await unpackConfig(req,res,cfg);nextSafe(unpackedCfg).forEach(header=>res.headers.set(header.key,header.value))});var nextSafe$1=withDefaultConfig(nextSafeMiddleware,{});const stringifyReportTo=reportTo=>JSON.stringify(reportTo).replace(/\\"/g,'"');const reporting=cfg=>ensureChainContext(async(req,evt,res)=>{const{reportTo=[],csp:cspCfg}=await unpackConfig(req,res,cfg);const arrayReportTo=Array.isArray(reportTo)?reportTo:[reportTo];const withSubstitutedRelativePaths=arrayReportTo.map(r=>({...r,endpoints:r.endpoints.map(e=>({...e,...e.url.startsWith("/")?{url:`${req.nextUrl.origin}${e.url}`}:{}}))}));const reportToHeaderValue=withSubstitutedRelativePaths.map(r=>stringifyReportTo(r)).join(",");if(reportToHeaderValue){res.headers.set("report-to",reportToHeaderValue)}if(!cspCfg){return}const cspGroup=cspCfg.reportTo;const groupMatches=group=>!group&&cspGroup==="default"||(cspGroup?group===cspGroup:false);const reportToHasCspGroup=!!withSubstitutedRelativePaths.find(r=>groupMatches(r.group));let csp=pullCspFromResponse(res);if(!csp){return}else{const{reportUri="",reportSample}=cspCfg;const cspReportUri=reportUri.startsWith("/")?`${req.nextUrl.origin}${reportUri}`:reportUri;if(csp){csp=extendCsp(csp,{...cspReportUri?{"report-uri":cspReportUri}:{},...reportToHasCspGroup?{"report-to":cspGroup}:{}},"override");if(reportSample){csp=extendCsp(csp,{...csp["script-src"]?{"script-src":`'report-sample'`}:{},...csp["style-src"]?{"style-src":`'report-sample'`}:{}},"append")}}}pushCspToResponse(csp,res)});var reporting$1=withDefaultConfig(reporting,{csp:{reportSample:true,reportTo:"default"}});var uaParser={exports:{}};(function(module,exports){(function(window,undefined$1){var LIBVERSION='1.0.2',EMPTY='',UNKNOWN='?',FUNC_TYPE='function',UNDEF_TYPE='undefined',OBJ_TYPE='object',STR_TYPE='string',MAJOR='major',MODEL='model',NAME='name',TYPE='type',VENDOR='vendor',VERSION='version',ARCHITECTURE='architecture',CONSOLE='console',MOBILE='mobile',TABLET='tablet',SMARTTV='smarttv',WEARABLE='wearable',EMBEDDED='embedded',UA_MAX_LENGTH=255;var AMAZON='Amazon',APPLE='Apple',ASUS='ASUS',BLACKBERRY='BlackBerry',BROWSER='Browser',CHROME='Chrome',EDGE='Edge',FIREFOX='Firefox',GOOGLE='Google',HUAWEI='Huawei',LG='LG',MICROSOFT='Microsoft',MOTOROLA='Motorola',OPERA='Opera',SAMSUNG='Samsung',SONY='Sony',XIAOMI='Xiaomi',ZEBRA='Zebra',FACEBOOK='Facebook';var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i<arr.length;i++){enums[arr[i].toUpperCase()]=arr[i]}return enums},has=function(str1,str2){return typeof str1===STR_TYPE?lowerize(str2).indexOf(lowerize(str1))!== -1:false},lowerize=function(str){return str.toLowerCase()},majorize=function(version){return typeof version===STR_TYPE?version.replace(/[^\d\.]/g,EMPTY).split('.')[0]:undefined$1},trim=function(str,len){if(typeof str===STR_TYPE){str=str.replace(/^\s\s*/,EMPTY).replace(/\s\s*$/,EMPTY);return typeof len===UNDEF_TYPE?str:str.substring(0,UA_MAX_LENGTH)}};var rgxMapper=function(ua,arrays){var i=0,j,k,p,q,matches,match;while(i<arrays.length&&!matches){var regex=arrays[i],props=arrays[i+1];j=k=0;while(j<regex.length&&!matches){matches=regex[j++].exec(ua);if(!!matches){for(p=0;p<props.length;p++){match=matches[++k];q=props[p];if(typeof q===OBJ_TYPE&&q.length>0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined$1}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined$1}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined$1}}else{this[q]=match?match:undefined$1}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j<map[i].length;j++){if(has(map[i][j],str)){return i===UNKNOWN?undefined$1:i}}}else if(has(map[i],str)){return i===UNKNOWN?undefined$1:i}}return str};var oldSafariMap={'1.0':'/8','1.2':'/1','1.3':'/3','2.0':'/412','2.0.2':'/416','2.0.3':'/417','2.0.4':'/419','?':'/'},windowsVersionMap={'ME':'4.90','NT 3.11':'NT3.51','NT 4.0':'NT4.0','2000':'NT 5.0','XP':['NT 5.1','NT 5.2'],'Vista':'NT 6.0','7':'NT 6.1','8':'NT 6.2','8.1':'NT 6.3','10':['NT 6.4','NT 10.0'],'RT':'ARM'};var regexes1={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[VERSION,[NAME,'Chrome']],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[VERSION,[NAME,'Edge']],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[NAME,VERSION],[/opios[\/ ]+([\w\.]+)/i],[VERSION,[NAME,OPERA+' Mini']],[/\bopr\/([\w\.]+)/i],[VERSION,[NAME,OPERA]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i,/(weibo)__([\d\.]+)/i],[NAME,VERSION],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[VERSION,[NAME,'UC'+BROWSER]],[/\bqbcore\/([\w\.]+)/i],[VERSION,[NAME,'WeChat(Win) Desktop']],[/micromessenger\/([\w\.]+)/i],[VERSION,[NAME,'WeChat']],[/konqueror\/([\w\.]+)/i],[VERSION,[NAME,'Konqueror']],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[VERSION,[NAME,'IE']],[/yabrowser\/([\w\.]+)/i],[VERSION,[NAME,'Yandex']],[/(avast|avg)\/([\w\.]+)/i],[[NAME,/(.+)/,'$1 Secure '+BROWSER],VERSION],[/\bfocus\/([\w\.]+)/i],[VERSION,[NAME,FIREFOX+' Focus']],[/\bopt\/([\w\.]+)/i],[VERSION,[NAME,OPERA+' Touch']],[/coc_coc\w+\/([\w\.]+)/i],[VERSION,[NAME,'Coc Coc']],[/dolfin\/([\w\.]+)/i],[VERSION,[NAME,'Dolphin']],[/coast\/([\w\.]+)/i],[VERSION,[NAME,OPERA+' Coast']],[/miuibrowser\/([\w\.]+)/i],[VERSION,[NAME,'MIUI '+BROWSER]],[/fxios\/([-\w\.]+)/i],[VERSION,[NAME,FIREFOX]],[/\bqihu|(qi?ho?o?|360)browser/i],[[NAME,'360 '+BROWSER]],[/(oculus|samsung|sailfish)browser\/([\w\.]+)/i],[[NAME,/(.+)/,'$1 '+BROWSER],VERSION],[/(comodo_dragon)\/([\w\.]+)/i],[[NAME,/_/g,' '],VERSION],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[NAME,VERSION],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i],[NAME],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[NAME,FACEBOOK],VERSION],[/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[NAME,VERSION],[/\bgsa\/([\w\.]+) .*safari\//i],[VERSION,[NAME,'GSA']],[/headlesschrome(?:\/([\w\.]+)| )/i],[VERSION,[NAME,CHROME+' Headless']],[/ wv\).+(chrome)\/([\w\.]+)/i],[[NAME,CHROME+' WebView'],VERSION],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[VERSION,[NAME,'Android '+BROWSER]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[NAME,VERSION],[/version\/([\w\.]+) .*mobile\/\w+ (safari)/i],[VERSION,[NAME,'Mobile Safari']],[/version\/([\w\.]+) .*(mobile ?safari|safari)/i],[VERSION,NAME],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[NAME,[VERSION,strMapper,oldSafariMap]],[/(webkit|khtml)\/([\w\.]+)/i],[NAME,VERSION],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[NAME,'Netscape'],VERSION],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[VERSION,[NAME,FIREFOX+' Reality']],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[NAME,VERSION]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[ARCHITECTURE,'amd64']],[/(ia32(?=;))/i],[[ARCHITECTURE,lowerize]],[/((?:i[346]|x)86)[;\)]/i],[[ARCHITECTURE,'ia32']],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[ARCHITECTURE,'arm64']],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[ARCHITECTURE,'armhf']],[/windows (ce|mobile); ppc;/i],[[ARCHITECTURE,'arm']],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[ARCHITECTURE,/ower/,EMPTY,lowerize]],[/(sun4\w)[;\)]/i],[[ARCHITECTURE,'sparc']],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[ARCHITECTURE,lowerize]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,TABLET]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,MOBILE]],[/\((ip(?:hone|od)[\w ]*);/i],[MODEL,[VENDOR,APPLE],[TYPE,MOBILE]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[MODEL,[VENDOR,APPLE],[TYPE,TABLET]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,TABLET]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}-[atu]?[ln][01259x][012359][an]?)\b(?!.+d\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,MOBILE]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[MODEL,/_/g,' '],[VENDOR,XIAOMI],[TYPE,MOBILE]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[MODEL,/_/g,' '],[VENDOR,XIAOMI],[TYPE,TABLET]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[MODEL,[VENDOR,'OPPO'],[TYPE,MOBILE]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[MODEL,[VENDOR,'Vivo'],[TYPE,MOBILE]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[MODEL,[VENDOR,'Realme'],[TYPE,MOBILE]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,MOBILE]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[MODEL,[VENDOR,MOTOROLA],[TYPE,TABLET]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[MODEL,[VENDOR,LG],[TYPE,TABLET]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[MODEL,[VENDOR,LG],[TYPE,MOBILE]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[MODEL,[VENDOR,'Lenovo'],[TYPE,TABLET]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[MODEL,/_/g,' '],[VENDOR,'Nokia'],[TYPE,MOBILE]],[/(pixel c)\b/i],[MODEL,[VENDOR,GOOGLE],[TYPE,TABLET]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[MODEL,[VENDOR,GOOGLE],[TYPE,MOBILE]],[/droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[MODEL,[VENDOR,SONY],[TYPE,MOBILE]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[MODEL,'Xperia Tablet'],[VENDOR,SONY],[TYPE,TABLET]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[MODEL,[VENDOR,'OnePlus'],[TYPE,MOBILE]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[MODEL,[VENDOR,AMAZON],[TYPE,TABLET]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[MODEL,/(.+)/g,'Fire Phone $1'],[VENDOR,AMAZON],[TYPE,MOBILE]],[/(playbook);[-\w\),; ]+(rim)/i],[MODEL,VENDOR,[TYPE,TABLET]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[MODEL,[VENDOR,BLACKBERRY],[TYPE,MOBILE]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[MODEL,[VENDOR,ASUS],[TYPE,TABLET]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[MODEL,[VENDOR,ASUS],[TYPE,MOBILE]],[/(nexus 9)/i],[MODEL,[VENDOR,'HTC'],[TYPE,TABLET]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i],[VENDOR,[MODEL,/_/g,' '],[TYPE,MOBILE]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[MODEL,[VENDOR,'Acer'],[TYPE,TABLET]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[MODEL,[VENDOR,'Meizu'],[TYPE,MOBILE]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[MODEL,[VENDOR,'Sharp'],[TYPE,MOBILE]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(surface duo)/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,TABLET]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[MODEL,[VENDOR,'Fairphone'],[TYPE,MOBILE]],[/(u304aa)/i],[MODEL,[VENDOR,'AT&T'],[TYPE,MOBILE]],[/\bsie-(\w*)/i],[MODEL,[VENDOR,'Siemens'],[TYPE,MOBILE]],[/\b(rct\w+) b/i],[MODEL,[VENDOR,'RCA'],[TYPE,TABLET]],[/\b(venue[\d ]{2,7}) b/i],[MODEL,[VENDOR,'Dell'],[TYPE,TABLET]],[/\b(q(?:mv|ta)\w+) b/i],[MODEL,[VENDOR,'Verizon'],[TYPE,TABLET]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[MODEL,[VENDOR,'Barnes & Noble'],[TYPE,TABLET]],[/\b(tm\d{3}\w+) b/i],[MODEL,[VENDOR,'NuVision'],[TYPE,TABLET]],[/\b(k88) b/i],[MODEL,[VENDOR,'ZTE'],[TYPE,TABLET]],[/\b(nx\d{3}j) b/i],[MODEL,[VENDOR,'ZTE'],[TYPE,MOBILE]],[/\b(gen\d{3}) b.+49h/i],[MODEL,[VENDOR,'Swiss'],[TYPE,MOBILE]],[/\b(zur\d{3}) b/i],[MODEL,[VENDOR,'Swiss'],[TYPE,TABLET]],[/\b((zeki)?tb.*\b) b/i],[MODEL,[VENDOR,'Zeki'],[TYPE,TABLET]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[VENDOR,'Dragon Touch'],MODEL,[TYPE,TABLET]],[/\b(ns-?\w{0,9}) b/i],[MODEL,[VENDOR,'Insignia'],[TYPE,TABLET]],[/\b((nxa|next)-?\w{0,9}) b/i],[MODEL,[VENDOR,'NextBook'],[TYPE,TABLET]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[VENDOR,'Voice'],MODEL,[TYPE,MOBILE]],[/\b(lvtel\-)?(v1[12]) b/i],[[VENDOR,'LvTel'],MODEL,[TYPE,MOBILE]],[/\b(ph-1) /i],[MODEL,[VENDOR,'Essential'],[TYPE,MOBILE]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[MODEL,[VENDOR,'Envizen'],[TYPE,TABLET]],[/\b(trio[-\w\. ]+) b/i],[MODEL,[VENDOR,'MachSpeed'],[TYPE,TABLET]],[/\btu_(1491) b/i],[MODEL,[VENDOR,'Rotor'],[TYPE,TABLET]],[/(shield[\w ]+) b/i],[MODEL,[VENDOR,'Nvidia'],[TYPE,TABLET]],[/(sprint) (\w+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kin\.[onetw]{3})/i],[[MODEL,/\./g,' '],[VENDOR,MICROSOFT],[TYPE,MOBILE]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,TABLET]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,MOBILE]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[VENDOR,MODEL,[TYPE,CONSOLE]],[/droid.+; (shield) bui/i],[MODEL,[VENDOR,'Nvidia'],[TYPE,CONSOLE]],[/(playstation [345portablevi]+)/i],[MODEL,[VENDOR,SONY],[TYPE,CONSOLE]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,CONSOLE]],[/smart-tv.+(samsung)/i],[VENDOR,[TYPE,SMARTTV]],[/hbbtv.+maple;(\d+)/i],[[MODEL,/^/,'SmartTV'],[VENDOR,SAMSUNG],[TYPE,SMARTTV]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[VENDOR,LG],[TYPE,SMARTTV]],[/(apple) ?tv/i],[VENDOR,[MODEL,APPLE+' TV'],[TYPE,SMARTTV]],[/crkey/i],[[MODEL,CHROME+'cast'],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/droid.+aft(\w)( bui|\))/i],[MODEL,[VENDOR,AMAZON],[TYPE,SMARTTV]],[/\(dtv[\);].+(aquos)/i],[MODEL,[VENDOR,'Sharp'],[TYPE,SMARTTV]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[VENDOR,trim],[MODEL,trim],[TYPE,SMARTTV]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[TYPE,SMARTTV]],[/((pebble))app/i],[VENDOR,MODEL,[TYPE,WEARABLE]],[/droid.+; (glass) \d/i],[MODEL,[VENDOR,GOOGLE],[TYPE,WEARABLE]],[/droid.+; (wt63?0{2,3})\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,WEARABLE]],[/(quest( 2)?)/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,WEARABLE]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[VENDOR,[TYPE,EMBEDDED]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[MODEL,[TYPE,MOBILE]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[MODEL,[TYPE,TABLET]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[TYPE,TABLET]],[/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i],[[TYPE,MOBILE]],[/(android[-\w\. ]{0,9});.+buil/i],[MODEL,[VENDOR,'Generic']]],engine:[[/windows.+ edge\/([\w\.]+)/i],[VERSION,[NAME,EDGE+'HTML']],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[VERSION,[NAME,'Blink']],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i],[NAME,VERSION],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[VERSION,NAME]],os:[[/microsoft (windows) (vista|xp)/i],[NAME,VERSION],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[NAME,[VERSION,strMapper,windowsVersionMap]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[NAME,'Windows'],[VERSION,strMapper,windowsVersionMap]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i],[[VERSION,/_/g,'.'],[NAME,'iOS']],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[NAME,'Mac OS'],[VERSION,/_/g,'.']],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[VERSION,NAME],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[NAME,VERSION],[/\(bb(10);/i],[VERSION,[NAME,BLACKBERRY]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[VERSION,[NAME,'Symbian']],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[VERSION,[NAME,FIREFOX+' OS']],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[VERSION,[NAME,'webOS']],[/crkey\/([\d\.]+)/i],[VERSION,[NAME,CHROME+'cast']],[/(cros) [\w]+ ([\w\.]+\w)/i],[[NAME,'Chromium OS'],VERSION],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[NAME,VERSION],[/(sunos) ?([\w\.\d]*)/i],[[NAME,'Solaris'],VERSION],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\w\.]*)/i],[NAME,VERSION]]};var UAParser1=function(ua1,extensions){if(typeof ua1===OBJ_TYPE){extensions=ua1;ua1=undefined$1}if(!(this instanceof UAParser1)){return new UAParser1(ua1,extensions).getResult()}var _ua=ua1||(typeof window!==UNDEF_TYPE&&window.navigator&&window.navigator.userAgent?window.navigator.userAgent:EMPTY);var _rgxmap=extensions?extend(regexes1,extensions):regexes1;this.getBrowser=function(){var _browser={};_browser[NAME]=undefined$1;_browser[VERSION]=undefined$1;rgxMapper.call(_browser,_ua,_rgxmap.browser);_browser.major=majorize(_browser.version);return _browser};this.getCPU=function(){var _cpu={};_cpu[ARCHITECTURE]=undefined$1;rgxMapper.call(_cpu,_ua,_rgxmap.cpu);return _cpu};this.getDevice=function(){var _device={};_device[VENDOR]=undefined$1;_device[MODEL]=undefined$1;_device[TYPE]=undefined$1;rgxMapper.call(_device,_ua,_rgxmap.device);return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined$1;_engine[VERSION]=undefined$1;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined$1;_os[VERSION]=undefined$1;rgxMapper.call(_os,_ua,_rgxmap.os);return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser1.VERSION=LIBVERSION;UAParser1.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser1.CPU=enumerize([ARCHITECTURE]);UAParser1.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser1.ENGINE=UAParser1.OS=enumerize([NAME,VERSION]);{if(module.exports){exports=module.exports=UAParser1}exports.UAParser=UAParser1}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser1();$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window==='object'?window:commonjsGlobal)})(uaParser,uaParser.exports);var UAParser=uaParser.exports;const strictDynamic=cfg=>ensureChainContext(async(req,evt,res)=>{if(process.env.NODE_ENV==="development"){return}const csp=pullCspFromResponse(res)??{};const{fallbackScriptSrc,allowUnsafeEval,reportOnly,tellSupported:tellSupported1}=await unpackConfig(req,res,cfg);const fallbackSrcArray=arrayifyCspValues(fallbackScriptSrc);const withUnsafeEval=values=>allowUnsafeEval?[...values,`'unsafe-eval'`]:values;try{const uaParser1=new UAParser(req.headers.get("user-agent"));const{supportsSrcIntegrityCheck,supportsStrictDynamic}=tellSupported1(uaParser1);if(!supportsStrictDynamic){pushCspToResponse(extendCsp(csp,{"script-src":withUnsafeEval(fallbackSrcArray)},"override"),res,reportOnly);return}let extendedCsp;const getCsp=()=>extendedCsp||csp;const scriptSrcHashes=await fetchHashes(req,"script-hashes.txt");if(scriptSrcHashes){if(supportsSrcIntegrityCheck){extendedCsp=extendCsp(getCsp(),{"script-src":[`'strict-dynamic'`,...withUnsafeEval(fallbackSrcArray),...scriptSrcHashes,]},"override")}else{extendedCsp=extendCsp(getCsp(),{"script-src":withUnsafeEval(fallbackSrcArray)},"override")}}else{extendedCsp=extendCsp(getCsp(),{"script-src":[`'strict-dynamic' 'nonce-${cspNonce(res)}'`,...withUnsafeEval(fallbackSrcArray),]},"override")}if(extendedCsp){pushCspToResponse(extendedCsp,res,reportOnly)}}catch(err){const errorCsp=extendCsp(csp,{"script-src":[`'strict-dynamic'`,...withUnsafeEval(fallbackSrcArray),]},"override");pushCspToResponse(errorCsp,res,true);console.error("[strictDynamic]: Internal error. No hashes or nonce have been added to CSP. Switch to report-only mode to not break the app and to let you know about this.",{errorCsp,err})}});const tellSupported=ua=>{const browserName=ua.getBrowser().name||"";const isFirefox=browserName.includes("Firefox");const isSafari=browserName.includes("Safari");const supportsStrictDynamic=!isSafari;const supportsSrcIntegrityCheck=!isFirefox;return{supportsStrictDynamic,supportsSrcIntegrityCheck}};var strictDynamic$1=withDefaultConfig(strictDynamic,{fallbackScriptSrc:`https: 'unsafe-inline'`,tellSupported});const strictInlineStyles=cfg=>ensureChainContext(async(req,evt,res)=>{if(process.env.NODE_ENV==="development"){return}let fetchedHashes=[];try{fetchedHashes=await fetchHashes(req,"style-hashes.txt","/");if(fetchedHashes){const{extendStyleSrc}=await unpackConfig(req,res,cfg);const mode=extendStyleSrc?"append":"override";let csp=pullCspFromResponse(res)??{};csp=extendCsp(csp,{"style-src":[...fetchedHashes,"'unsafe-hashes'"]},mode);pushCspToResponse(csp,res)}}catch(err){console.error("[strictInlineStyles]: Internal error. No style hashes were added to CSP",{err,fetchedHashes})}finally{if(!fetchedHashes.length){console.log("[strictInlineStyles]: No styles. Is your app using any inline styles at all?. If yes, this is unexpected")}}});var strictInlineStyles$1=withDefaultConfig(strictInlineStyles,{extendStyleSrc:true});const provideHashesOrNonce=strictDynamic$1();exports.arrayifyCsp=arrayifyCsp;exports.arrayifyCspValues=arrayifyCspValues;exports.chain=weAreChained;exports.cspDirectiveHas=cspDirectiveHas;exports.cspNonce=cspNonce;exports.extendCsp=extendCsp;exports.fetchHashes=fetchHashes;exports.filterCsp=filterCsp;exports.fromCspContent=fromCspContent;exports.generateNonce=generateNonce;exports.getCspHeader=getCspHeader;exports.nextSafe=nextSafe$1;exports.provideHashesOrNonce=provideHashesOrNonce;exports.pullCspFromResponse=pullCspFromResponse;exports.pushCspToResponse=pushCspToResponse;exports.reporting=reporting$1;exports.setCspHeader=setCspHeader;exports.strictDynamic=strictDynamic$1;exports.strictInlineStyles=strictInlineStyles$1;exports.toCspContent=toCspContent |
{ | ||
"name": "@next-safe/middleware", | ||
"version": "0.5.2", | ||
"version": "0.6.0", | ||
"main": "dist/index.js", | ||
@@ -42,3 +42,3 @@ "module": "dist/index.mjs", | ||
"jest": "^27.5.1", | ||
"next": "^12.1.0", | ||
"next": "^12.1.4", | ||
"next-safe": "^3.2.1", | ||
@@ -63,3 +63,6 @@ "ramda": "^0.28.0", | ||
"url": "https://github.com/nibtime/next-safe-middleware/issues" | ||
}, | ||
"dependencies": { | ||
"cheerio": "^1.0.0-rc.10" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
197639
6.05%1011
4.44%3
50%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added