web-node
Version:
High level javaScript backend plugin system and configuration merger.
2 lines • 37.2 kB
JavaScript
"use strict";if("undefined"!=typeof module&&null!==module&&"undefined"!==eval("typeof require")&&null!==eval("require")&&"main"in eval("require")&&"undefined"!==eval("typeof require.main")&&null!==eval("require.main")){var ORIGINAL_MAIN_MODULE=module;module!==eval("require.main")&&"paths"in module&&"paths"in eval("require.main")&&"undefined"!=typeof __dirname&&null!==__dirname&&(module.paths=eval("require.main.paths").concat(module.paths.filter((function(path){return eval("require.main.paths").includes(path)}))))}module===eval("require.main")&&module.paths.unshift("/application/node_modules"),(()=>{var __webpack_modules__=[(module,__webpack_exports__,__webpack_require__)=>{var __dirname="/";__webpack_require__.d(__webpack_exports__,{Ad:()=>hotReloadFiles,Ay:()=>__WEBPACK_DEFAULT_EXPORT__,GH:()=>isInLocations,Gy:()=>determineInternalName,Hh:()=>load,MM:()=>pluginAPI,Vx:()=>hotReloadConfigurationFile,ZN:()=>loadFile,dw:()=>hotReloadAPIFile,gh:()=>loadAll,gl:()=>callStackSynchronous,i9:()=>loadConfigurations,lE:()=>currentRequire,lT:()=>_callStack,m7:()=>determineLocations,nQ:()=>loadAPI,u2:()=>evaluateConfiguration,vF:()=>loadConfiguration});var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(3),_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__),_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(4),_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__),_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(5),_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__),child_process__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(9),child_process__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(child_process__WEBPACK_IMPORTED_MODULE_3__),clientnode__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(6),clientnode__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(clientnode__WEBPACK_IMPORTED_MODULE_4__),fs__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(7),fs__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_5__),module__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(10),module__WEBPACK_IMPORTED_MODULE_6___default=__webpack_require__.n(module__WEBPACK_IMPORTED_MODULE_6__),path__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(8),path__WEBPACK_IMPORTED_MODULE_7___default=__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_7__),_configurator__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(1);function _createForOfIteratorHelperLoose(e,_){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=_unsupportedIterableToArray(e))||_&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,_){if(e){if("string"==typeof e)return _arrayLikeToArray(e,_);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,_):void 0}}function _arrayLikeToArray(e,_){(null==_||_>e.length)&&(_=e.length);for(var r=0,n=Array(_);r<_;r++)n[r]=e[r];return n}module=__webpack_require__.hmd(module);var currentRequire=eval("require"),oldResolveFilename=module__WEBPACK_IMPORTED_MODULE_6__.Module._resolveFilename;module__WEBPACK_IMPORTED_MODULE_6__.Module._resolveFilename=function(e,_,r){var n;return"web-node"===e&&null!=(n=currentRequire.main)&&n.id?oldResolveFilename(currentRequire.main.id,_,r):oldResolveFilename(e,_,r)};var _callStack=function(){var e=_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark((function e(_){var r,n,t,a,o,i,l,c,u,s,p,d,E,f,b,P,m,O,g=arguments;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},_,{pluginAPI}),n=r.configuration,t=r.hook,a=r.plugins,o=t.endsWith("ConfigurationLoaded")||t.endsWith("ConfigurationHotLoaded"),!n.core.plugin.hotReloading){e.next=3;break}if(o){e.next=2;break}if(!(i=hotReloadConfigurationFile(a,n.core.plugin.configuration.propertyNames)).length){e.next=2;break}return console.info('Configuration for "'+i.map((function(e){return e.name})).join('", "')+'" has been changed: reloading initialized.'),l=_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},r,{triggerHook:r.hook,pluginsWithChangedConfiguration:i}),e.next=1,_callStack(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},l,{hook:"preConfigurationHotLoaded"}));case 1:return loadConfigurations(a,n),e.next=2,_callStack(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},l,{hook:"postConfigurationHotLoaded"}));case 2:if("apiFileReloaded"===t){e.next=3;break}if(!(c=hotReloadAPIFile(a)).length){e.next=3;break}return console.info('API-file for "'+c.map((function(e){return e.name})).join('", "')+'" has been changed: reloading initialized.'),e.next=3,_callStack(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},r,{hook:"apiFileReloaded",pluginsWithChangedAPIFiles:c,triggerHook:r.hook}));case 3:for(u=_.data,s=g.length,p=Array(1<s?s-1:0),d=1;d<s;d++)p[d-1]=g[d];E=_createForOfIteratorHelperLoose(a);case 4:if((f=E()).done){e.next=11;break}if(!(b=f.value).api){e.next=10;break}return P=void 0,e.prev=5,e.next=6,b.api.apply(b,[r].concat(p));case 6:P=e.sent,e.next=9;break;case 7:if(e.prev=7,O=e.catch(5),null==(m=O.message)||!m.startsWith("NotImplemented:")){e.next=8;break}return e.abrupt("continue",10);case 8:throw new Error('Plugin "'+b.internalName+'" '+(b.internalName===b.name?"":"("+b.name+") ")+"throws: "+(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.represent)(O)+' during asynchronous hook "'+t+'".');case 9:u=P,console.info('Ran asynchronous hook "'+t+'" for plugin "'+b.name+'".');case 10:e.next=4;break;case 11:if(null===u||"object"!=typeof u||!("then"in u)){e.next=12;break}return e.abrupt("return",{promise:u});case 12:return e.abrupt("return",u);case 13:case"end":return e.stop()}}),e,null,[[5,7]])})));return function(){return e.apply(this,arguments)}}(),callStackSynchronous=function(e){for(var _=_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},e,{pluginAPI}),r=_.configuration,n=_.hook,t=_.plugins,a=e.data,o=arguments.length,i=Array(1<o?o-1:0),l=1;l<o;l++)i[l-1]=arguments[l];for(var c,u,s=_createForOfIteratorHelperLoose(t);!(c=s()).done;)if((u=c.value).api){var p=void 0;try{p=u.api.apply(u,[_].concat(i))}catch(e){var d;if(null!=(d=e.message)&&d.startsWith("NotImplemented:"))continue;throw new Error('Plugin "'+u.internalName+'" '+(u.internalName===u.name?"":"("+u.name+") ")+"throws: "+(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.represent)(e)+' during synchronous hook"'+n+'".')}a=p,r.core.debug&&console.info('Ran synchronous hook "'+n+'" for plugin "'+u.name+'".')}return a},determineInternalName=function(e,_){return(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.delimitedToCamelCase)(e.replace(_,(function(e,_){return"string"==typeof _?_:e})))},evaluateConfiguration=function(e){for(var _={},r=0,n=Object.entries(e);r<n.length;r++){var t=n[r],a=t[0],o=t[1];o.package&&(_[a]=o.package,delete o.package)}var i=new Date;e=(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.evaluateDynamicData)((0,clientnode__WEBPACK_IMPORTED_MODULE_4__.removeKeysInEvaluation)(e),_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},clientnode__WEBPACK_IMPORTED_MODULE_4__.UTILITY_SCOPE,{currentPath:process.cwd(),fs:fs__WEBPACK_IMPORTED_MODULE_5___default(),path:path__WEBPACK_IMPORTED_MODULE_7___default(),module,webNodePath:__dirname,now:i,nowUTCTimestamp:(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.getUTCTimestamp)(i)}));for(var l=0,c=Object.entries(_);l<c.length;l++){var u=c[l],s=u[0],p=u[1];e[s].package=p}return e},hotReloadAPIFile=function(e){for(var _,r=[],n=0,t=hotReloadFiles("api","scope",e);n<t.length;n++)if((_=t[n]).oldScope){for(var a=0,o=Object.entries(_.oldScope);a<o.length;a++){var i=o[a],l=i[0],c=i[1];if(Object.prototype.hasOwnProperty.call(_.newScope,l)&&!(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.isFunction)(_.newScope[l])){var u,s,p=Object.getOwnPropertyDescriptor(_.newScope,l),d=!0;if(p)d=!1!==p.writable,p.configurable&&!d&&Object.defineProperties(_.newScope,((s={})[l]={writable:!0},s));try{_.newScope[l]=c}catch(e){console.warn("Could not update new constant value for",'variable "'+l+'".')}!d&&null!=p&&p.configurable&&Object.defineProperties(_.newScope,((u={})[l]={writable:!1},u))}}r.push(_.plugin)}return r},hotReloadConfigurationFile=function(e,_){for(var r,n=[],t=0,a=hotReloadFiles("configuration","packageConfiguration",e);t<a.length;t++)(r=a[t]).plugin.configuration=loadConfiguration(r.plugin.internalName,r.plugin.packageConfiguration,_),n.push(r.plugin);return n},hotReloadFiles=function(e,_,r){for(var n,t,a=[],o=_createForOfIteratorHelperLoose(r);!(n=o()).done;)if((t=n.value)[_])for(var i,l=0,c=_createForOfIteratorHelperLoose(t[e+"FilePaths"]);!(i=c()).done;){var u=i.value,s=(0,fs__WEBPACK_IMPORTED_MODULE_5__.statSync)(u).mtime.getTime();if(t[e+"FileLoadTimestamps"][l]<s){console.info('Determined updated file "'+u+'".',"Doing a reload."),delete currentRequire.cache[currentRequire.resolve(u)];var p=t[_];t[_]=loadFile(u,t.name,t[_]),console.info('File "'+u+'" reloaded.'),a.push({newScope:t[_],oldScope:p,plugin:t,target:_})}t[e+"FileLoadTimestamps"][l]=s,l+=1}return a},load=function(){var e=_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark((function e(_,r,n,t,a,o){var i,l,c,u,s,p,d,E;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:void 0===o&&(o="utf8"),i=[],l={},c=_createForOfIteratorHelperLoose(t.fileNames);case 1:if((u=c()).done){e.next=4;break}return s=u.value,p=(0,path__WEBPACK_IMPORTED_MODULE_7__.resolve)(a,s),e.next=2,(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.isFile)(p);case 2:if(!e.sent){e.next=3;break}(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.extend)(!0,l,loadFile(p,_)),i.push(p);case 3:e.next=1;break;case 4:if(d=["index.js"],!Object.keys(l).length){e.next=6;break}return r=l.webNodeInternalName||r,(E=loadConfiguration(r,l,t.propertyNames))[r].package.main&&(d[0]=E[r].package.main),e.next=5,loadAPI(d,a,_,r,n,o,E,i);case 5:return e.abrupt("return",e.sent);case 6:return e.next=7,loadAPI(d,a,_,r,n,o);case 7:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),loadAPI=function(){var e=_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark((function e(_,r,n,t,a,o,i,l){var c,u,s,p,d,E,f,b,P,m,O;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===o&&(o="utf8"),void 0===i&&(i=null),void 0===l&&(l=[]),s=(0,path__WEBPACK_IMPORTED_MODULE_7__.resolve)(r,_[0]),e.next=1,(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.isFile)(s);case 1:if(e.sent){e.next=6;break}p=_createForOfIteratorHelperLoose((0,fs__WEBPACK_IMPORTED_MODULE_5__.readdirSync)(r));case 2:if((d=p()).done){e.next=6;break}if(E=d.value,m=!l.map((function(e){return(0,path__WEBPACK_IMPORTED_MODULE_7__.basename)(e)})).includes(E),!m){e.next=4;break}return e.next=3,(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.isFile)((0,path__WEBPACK_IMPORTED_MODULE_7__.resolve)(r,E));case 3:m=e.sent;case 4:if(!m){e.next=5;break}if(s=(0,path__WEBPACK_IMPORTED_MODULE_7__.resolve)(r,s),!["index","main"].includes((0,path__WEBPACK_IMPORTED_MODULE_7__.basename)(s,(0,path__WEBPACK_IMPORTED_MODULE_7__.extname)(E)))){e.next=5;break}return e.abrupt("continue",6);case 5:e.next=2;break;case 6:if(f=null,b=!1,!(O=i&&(1<Object.keys(i).length||Object.prototype.hasOwnProperty.call(i,t)&&1<Object.keys(i[t]).length))){e.next=8;break}return e.next=7,(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.isFile)(s);case 7:O=e.sent;case 8:if(!O){e.next=9;break}s.endsWith(".js")?(b=!0,f=function(e){for(var _,r=arguments.length,t=Array(1<r?r-1:0),o=1;o<r;o++)t[o-1]=arguments[o];if(a[n].scope&&e.hook in a[n].scope)return(_=a[n].scope)[e.hook].apply(_,[e].concat(t,[module]));throw new Error('NotImplemented: API method "'+e.hook+'" is not implemented in plugin "'+n+'".')}):f=function(e){for(var _=e.hook,r=e.data,n=arguments.length,t=Array(1<n?n-1:0),a=1;a<n;a++)t[a-1]=arguments[a];var i=(0,child_process__WEBPACK_IMPORTED_MODULE_3__.spawnSync)(s,[_].concat(t.map((function(e){return JSON.stringify(e)}))),{cwd:process.cwd(),encoding:o,env:process.env,input:JSON.stringify(r),shell:!0,stdio:"inherit"});return 404===i.status?r:i.stdout.startsWith("##!JSON!##")?JSON.parse(i.stdout.substring(10)):r};case 9:return P=null!==(c=i)&&void 0!==c?c:((u={})[t]={package:{}},u),e.abrupt("return",{api:f,apiFileLoadTimestamps:f?[(0,fs__WEBPACK_IMPORTED_MODULE_5__.statSync)(s).mtime.getTime()]:[],apiFilePaths:f?[s]:[],configuration:P,configurationFilePaths:l,configurationFileLoadTimestamps:l.map((function(e){return(0,fs__WEBPACK_IMPORTED_MODULE_5__.statSync)(e).mtime.getTime()})),dependencies:Object.prototype.hasOwnProperty.call(P,t)&&P[t].dependencies?P[t].dependencies:[],internalName:t,name:n,packageConfiguration:P[t].package,path:r,scope:b?loadFile(s,n):null});case 10:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),loadConfiguration=function(e,_,r){for(var n,t,a,o=(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.removeKeyPrefixes)((0,clientnode__WEBPACK_IMPORTED_MODULE_4__.copy)(_)),i=((n={})[e]={package:o},n),l=_createForOfIteratorHelperLoose(r);!(t=l()).done;)if(_[a=t.value]){(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.extend)(!0,i,_[a]),delete i[e].package[a];break}return i},loadConfigurations=function(e,_){for(var r=0,n=Object.keys(_);r<n.length;r++)delete _[n[r]];(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.extend)(_,(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.copy)(_configurator__WEBPACK_IMPORTED_MODULE_8__.A));for(var t,a,o=_createForOfIteratorHelperLoose(e);!(t=o()).done;)if(a=t.value,Object.prototype.hasOwnProperty.call(a,"configuration")){var i=(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.copy)(a.configuration);(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.extend)(!0,(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.modifyObject)(_,i),i),_.core.runtimeConfiguration&&(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.extend)(!0,_,_.core.runtimeConfiguration)}return evaluateConfiguration(_)},loadFile=function(e,_,r,n){var t,a;void 0===r&&(r=null),void 0===n&&(n=!0);try{t=currentRequire.resolve(e)}catch(e){}t&&t in currentRequire.cache&&delete currentRequire.cache[t];try{a=currentRequire(e)}catch(t){if(!r)throw new Error("Couldn't load plugin file \""+e+'" for plugin "'+_+'": '+(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.represent)(t));a=r,n&&console.warn("Couldn't load new api plugin file \""+e+'" for plugin "'+_+'": '+(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.represent)(t)+". Using fallback one.")}return Object.prototype.hasOwnProperty.call(a,"default")&&a.default?a.default:a},loadAll=function(){var e=_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark((function e(_){var r,n,t,a,o,i,l,c,u,s,p,d,E,f,b,P,m,O,g,M,h,D,A,I,v,T;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r={},"web-node"===_.name){e.next=2;break}return e.next=1,load(_.name,determineInternalName(_.name,new RegExp(_.core.plugin.directories.external.nameRegularExpressionPattern)),r,_.core.plugin.configuration,_.core.context.path,_.core.encoding);case 1:r[_.name]=e.sent;case 2:n=0,t=Object.values(_.core.plugin.directories);case 3:if(!(n<t.length)){e.next=10;break}return a=t[n],e.next=4,(0,clientnode__WEBPACK_IMPORTED_MODULE_4__.isDirectory)(a.path);case 4:if(!e.sent){e.next=9;break}o=new RegExp(a.nameRegularExpressionPattern),i=_createForOfIteratorHelperLoose((0,fs__WEBPACK_IMPORTED_MODULE_5__.readdirSync)(a.path));case 5:if((l=i()).done){e.next=9;break}if(c=l.value,o.test(c)){e.next=6;break}return e.abrupt("continue",8);case 6:return u=(0,path__WEBPACK_IMPORTED_MODULE_7__.resolve)(a.path,c),s=determineInternalName(c,o),e.next=7,load(c,s,r,_.core.plugin.configuration,u,_.core.encoding);case 7:r[c]=e.sent;case 8:e.next=5;break;case 9:n++,e.next=3;break;case 10:for(p={},d=0,E=Object.values(r);d<E.length;d++)if(f=E[d],p[f.internalName]=f.dependencies,Object.prototype.hasOwnProperty.call(_.core.interDependencies,f.internalName))for(b=_createForOfIteratorHelperLoose([].concat(_.core.interDependencies[f.internalName]));!(P=b()).done;)m=P.value,p[f.internalName].includes(m)||p[f.internalName].push(m);O=[],g=_createForOfIteratorHelperLoose((0,clientnode__WEBPACK_IMPORTED_MODULE_4__.sortTopological)(p));case 11:if((M=g()).done){e.next=15;break}h=M.value,D=0,A=Object.entries(r);case 12:if(!(D<A.length)){e.next=14;break}if(I=A[D],v=I[0],![(T=I[1]).internalName,v].includes(h)){e.next=13;break}return O.push(T),e.abrupt("continue",14);case 13:D++,e.next=12;break;case 14:e.next=11;break;case 15:return e.abrupt("return",{configuration:loadConfigurations(O,_),plugins:O});case 16:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),determineLocations=function(e,_){var r=e.core.context.path;return void 0===_&&(_=[]),(_=[].concat(_)).length?_.map((function(e){return(0,path__WEBPACK_IMPORTED_MODULE_7__.resolve)(r,e)})):[r]},isInLocations=function(e,_,r,n){for(var t,a,o=_.map((function(e){return e.path})),i=_createForOfIteratorHelperLoose([].concat(n));!(t=i()).done;)if((a=t.value).startsWith("/")){if(r.startsWith((0,path__WEBPACK_IMPORTED_MODULE_7__.join)(e.core.context.path,a)))return!0}else for(var l,c,u=_createForOfIteratorHelperLoose(o);!(l=u()).done;)if(c=l.value,r.startsWith((0,path__WEBPACK_IMPORTED_MODULE_7__.resolve)(c,a)))return!0;return!1},pluginAPI={callStack:_callStack,callStackSynchronous,determineInternalName,determineLocations,evaluateConfiguration,hotReloadAPIFile,hotReloadConfigurationFile,hotReloadFiles,isInLocations,load,loadAll,loadAPI,loadConfiguration,loadConfigurations,loadFile};const __WEBPACK_DEFAULT_EXPORT__=pluginAPI},(e,_,r)=>{r.d(_,{H:()=>M,A:()=>T});var n=r(3),t=r.n(n),a=r(6),o=r(7),i=r.n(o),l=r(8),c=r.n(l);const u=JSON.parse('{"name":"web-node","version":"1.0.547","description":"High level javaScript backend plugin system and configuration merger.","keywords":["api","backend","management","plugin","web"],"homepage":"https://torben.website/web-node","bugs":{"email":"info@torben.website","url":"https://github.com/thaibault/web-node/issues"},"license":"CC-BY-3.0","author":{"name":"Torben Sickert","email":"info@torben.website","url":"https://torben.website"},"files":["configurator.d.ts","index.d.ts","index.js","pluginAPI.d.ts","type.d.ts","unixCrypt.d.ts","unixCrypt.js"],"bin":"index.js","repository":{"type":"git","url":"https://github.com/thaibault/web-node.git"},"scripts":{"build":"yarn build:types; yarn build:plain","build:plain":"weboptimizer build","build:types":"weboptimizer build:types","check":"yarn check:types; yarn lint","check:types":"weboptimizer check:types","clear":"weboptimizer clear","document":"weboptimizer document","lint":"weboptimizer lint","prepare":"yarn build","serve":"yarn build:plain && yarn start","start":"./index.js \'{plugin: {hotReloading: true}}\'","prepare:test":"yarn clear && cd dummyPlugin && shx touch yarn.lock && yarn build && cd ..","test":"yarn prepare:test && weboptimizer test","test:coverage":"yarn prepare:test && weboptimizer test:coverage","test:coverage:report":"yarn prepare:test && weboptimizer test:coverage:report","update:documentation":"documentation-website","watch":"weboptimizer build --watch"},"runkitExample":"require(\'@babel/runtime/package.json\')\\nrequire(\'clientnode/package.json\')\\n\\nconst {loadFile} = require(\'web-node\')\\n\\nloadFile(\'./unixCrypt.js\', \'crypt\')(\'test\')","devDependencies":{"@babel/cli":"^7.27.2","@babel/eslint-parser":"^7.27.5","@babel/runtime":"^7.27.6","@stylistic/eslint-plugin":"^4.4.1","@types/node":"^24.0.0","@typescript-eslint/eslint-plugin":"^8.34.0","@typescript-eslint/parser":"^8.34.0","clientnode":"^3.0.1285","documentation-website":"^1.0.366","eslint":"^9.28.0","eslint-config-google":"^0.14.0","eslint-plugin-jsdoc":"^50.7.1","jest":"^29.7.0","jsdoc":"^4.0.4","shx":"^0.4.0","typescript-eslint":"^8.34.0","weboptimizer":"^2.0.1583"},"peerDependencies":{"@babel/runtime":"*","clientnode":"*"},"peerDependenciesMeta":{"@babel/runtime":{"optional":true}},"engines":{"node":">=20","npm":">=10","yarn":">=4"},"resolutions":{"colors":"1.4.0","globals@npm:^14.0.0":"patch:globals@npm%3A11.12.0#~/.yarn/patches/globals-npm-11.12.0-1fa7f41a6c.patch","globals@npm:^11.1.0":"patch:globals@npm%3A11.12.0#~/.yarn/patches/globals-npm-11.12.0-1fa7f41a6c.patch","globals@npm:^9.18.0":"patch:globals@npm%3A11.12.0#~/.yarn/patches/globals-npm-11.12.0-1fa7f41a6c.patch"},"sideEffects":true,"documentationWebsite":{"name":"web-node","trackingCode":"UA-40192634-9"},"webNode":{"core":{"context":{"path":"./","type":"relative"},"debug":false,"encoding":"utf8","interDependencies":{},"name":"web-node","plugin":{"configuration":{"fileNames":["package.json","private-package.json"],"propertyNames":["webNode","webnode","web-node"]},"directories":{"external":{"nameRegularExpressionPattern":"^([a-zA-Z0-9-]+?)-?[wW]eb-?[nN]ode-?[pP]lugin$","path":{"__evaluate__":"`${currentPath}/node_modules/`"}},"internal":{"nameRegularExpressionPattern":"^([a-zA-Z0-9-_].*)$","path":{"__evaluate__":"`${currentPath}/plugins/`"}}},"hotReloading":false}}},"webOptimizer":{"assetPattern":{"javaScript":{"includeFilePathRegularExpression":"^(.+/)?index\\\\.js$","pattern":{"#":"This is how we can make our main exported artefact executable.","__evaluate__":"`#!/usr/bin/env node\\n// -*- coding: utf-8 -*-\\n${self.generic.assetPattern.javaScript.pattern}if(module===eval(\'require.main\'))module.paths.unshift(\'/application/node_modules\');{1}`"}}},"exportFormat":{"external":"commonjs2","self":"commonjs2"},"injection":{"entry":{"__evaluate__":"2 < self.givenCommandLineArguments.length && self.givenCommandLineArguments[2].startsWith(\'test\') ? {testBundle: \'test\'} : {index: \'./index.ts\', unixCrypt: \'./unixCrypt.ts\'}"}},"module":{"optimizer":{"babelMinify":{"#":"To provide a logging output we need to exclude this feature.","__evaluate__":"self.debug ? {bundle: null, module: null} : {bundle: {transform: {removeConsole: false}}, module: {removeConsole: false}}"}}},"targetTechnology":{"boilerplate":"node","payload":"node"}},"packageManager":"yarn@4.9.2+sha512.1fc009bc09d13cfd0e19efa44cbfc2b9cf6ca61482725eb35bbc5e257e093ebf4130db6dfe15d604ff4b79efd8e1e8e99b25fa7d0a6197c9f9826358d4d65c3c"}');var s,p,d=r(0);function E(e,_){(null==_||_>e.length)&&(_=e.length);for(var r=0,n=Array(_);r<_;r++)n[r]=e[r];return n}u.webNode.core.context={path:"/",type:"relative"};for(var f=0;f<a.MAXIMAL_NUMBER_OF_ITERATIONS.value&&(u.webNode.core.context.path=(0,l.resolve)(u.webNode.core.context.path,"../../"),"node_modules"===(0,l.basename)((0,l.dirname)(u.webNode.core.context.path)));f++);if("/"===u.webNode.core.context.path||"node_modules"===(0,l.basename)((0,l.dirname)(process.cwd()))||".staging"===(0,l.basename)((0,l.dirname)(process.cwd()))&&"node_modules"===(0,l.basename)((0,l.dirname)((0,l.dirname)(process.cwd()))))u.webNode.core.context.path=process.cwd();else try{(0,o.lstatSync)((0,l.join)(process.cwd(),"node_modules")).isSymbolicLink()&&(u.webNode.core.context.path=process.cwd())}catch(e){}var b={name:"main"};try{b=(0,a.currentRequire)((0,l.join)(u.webNode.core.context.path,"package"))}catch(e){u.webNode.core.context.path=process.cwd()}var P=(null==(s=b.documentationWebsite)?void 0:s.name)||b.name||"main",m=b.webNode||((p={})[P]={name:P,package:b},p);u.webNode.core.name=u.documentationWebsite.name;var O=new Date,g=t()({},a.UTILITY_SCOPE,{currentPath:process.cwd(),fs:i(),path:c(),pluginAPI:d.Ay,webNodePath:"/",now:O,nowUTCTimestamp:(0,a.getUTCTimestamp)(O)}),M=(0,a.evaluateDynamicData)(u.webNode,g);delete u.webNode,(0,a.extend)(!0,(0,a.modifyObject)(M,m),m);for(var h,D={},A=function(e,_){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,_){if(e){if("string"==typeof e)return E(e,_);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?E(e,_):void 0}}(e))||_&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(process.argv.slice(1));!(h=A()).done;){var I=h.value,v=(0,a.parseEncodedObject)(I,M,"configuration");(0,a.isPlainObject)(v)&&(0,a.extend)(!0,D,v)}0<Object.keys(D).length&&((0,a.extend)(!0,(0,a.modifyObject)(M,D),D),M.core.runtimeConfiguration=D),(M=(0,a.evaluateDynamicData)((0,a.removeKeysInEvaluation)(M),g)).name=P,M.core.package=u;const T=M},(module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{callStack:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.lT,callStackSynchronous:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.gl,configuration:()=>_configurator__WEBPACK_IMPORTED_MODULE_3__.H,currentRequire:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.lE,default:()=>__WEBPACK_DEFAULT_EXPORT__,determineInternalName:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.Gy,determineLocations:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.m7,evaluateConfiguration:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.u2,hotReloadAPIFile:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.dw,hotReloadConfigurationFile:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.Vx,hotReloadFiles:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.Ad,isInLocations:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.GH,load:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.Hh,loadAPI:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.nQ,loadAll:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.gh,loadConfiguration:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.vF,loadConfigurations:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.i9,loadFile:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.ZN,main:()=>main,pluginAPI:()=>_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.MM});var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(3),_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__),_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(4),_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__),_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(5),_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__),_configurator__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(1),_pluginAPI__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(0),clientnode__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(6),clientnode__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(clientnode__WEBPACK_IMPORTED_MODULE_5__);function _createForOfIteratorHelperLoose(e,_){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=_unsupportedIterableToArray(e))||_&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,_){if(e){if("string"==typeof e)return _arrayLikeToArray(e,_);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,_):void 0}}function _arrayLikeToArray(e,_){(null==_||_>e.length)&&(_=e.length);for(var r=0,n=Array(_);r<_;r++)n[r]=e[r];return n}module=__webpack_require__.hmd(module);var handleError=function(){var e=_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark((function e(_){var r;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=1,(0,_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.lT)(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default()({},_,{hook:"error"}));case 1:e.next=4;break;case 2:if(e.prev=2,r=e.catch(0),!_.configuration.core.debug){e.next=3;break}throw r;case 3:console.error(r);case 4:case"end":return e.stop()}}),e,null,[[0,2]])})));return function(){return e.apply(this,arguments)}}(),main=function(){var e=_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark((function e(){var _,r,n,t,a,o,i,l,c,u,s,p,d,E,f,b,P,m,O,g,M,h,D,A,I,v,T,C,L,y,k,R;return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=1,(0,_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.gh)((0,clientnode__WEBPACK_IMPORTED_MODULE_5__.copy)(_configurator__WEBPACK_IMPORTED_MODULE_3__.A));case 1:return _=e.sent,r=_.configuration,n=_.plugins,e.next=2,(0,_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.lT)({configuration:r,data:void 0,hook:"initialize",plugins:n});case 2:n.length&&console.info('Loaded plugins: "'+n.map((function(e){return e.internalName})).join('", "')+'".'),t=n.filter((function(e){return!!e.configurationFilePaths.length})),a=_createForOfIteratorHelperLoose(["pre","post"]);case 3:if((o=a()).done){e.next=5;break}return i=o.value,e.next=4,(0,_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.lT)({configuration:r,data:void 0,hook:i+"ConfigurationLoaded",plugins:n,pluginsWithChangedConfiguration:t});case 4:e.next=3;break;case 5:return l={},c={},u=!1,e.prev=6,e.next=7,(0,_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.lT)({configuration:r,data:void 0,hook:"preLoadService",plugins:n,services:l});case 7:for(s=0,p=Object.keys(l);s<p.length;s++)d=p[s],console.info('Service "'+d+'" initialized.');E=_createForOfIteratorHelperLoose(n);case 8:if((f=E()).done){e.next=15;break}if(!(b=f.value).api){e.next=14;break}return e.next=9,(0,_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.lT)({configuration:r,data:void 0,hook:"preLoad"+(0,clientnode__WEBPACK_IMPORTED_MODULE_5__.capitalize)(b.internalName)+"Service",plugins:n,services:l});case 9:return P=null,e.prev=10,e.next=11,b.api({configuration:r,hook:"loadService",pluginAPI:_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.Ay,plugins:n,servicePromises:c,services:l});case 11:P=e.sent,e.next=13;break;case 12:if(e.prev=12,null!=(y=e.catch(10))&&null!=(m=y.message)&&m.startsWith("NotImplemented:")){e.next=13;break}throw new Error('Plugin "'+b.internalName+'" '+(b.internalName===b.name?"":"("+b.name+") ")+"throws: "+(0,clientnode__WEBPACK_IMPORTED_MODULE_5__.represent)(y)+' \'during asynchrone hook "loadService".');case 13:if(P)for(O=0,g=Object.entries(P);O<g.length;O++)M=g[O],h=M[0],D=M[1],(0,clientnode__WEBPACK_IMPORTED_MODULE_5__.isObject)(D)&&"then"in D?(console.info('Service "'+h+'" started.'),c[h]=D):console.info('Service "'+h+'" loaded.');return e.next=14,(0,_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.lT)({configuration:r,data:void 0,hook:"postLoad"+(0,clientnode__WEBPACK_IMPORTED_MODULE_5__.capitalize)(b.internalName)+"Service",plugins:n,servicePromises:c,services:l});case 14:e.next=8;break;case 15:return e.next=16,(0,_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.lT)({configuration:r,data:void 0,hook:"postLoadService",plugins:n,servicePromises:c,services:l});case 16:for(A=!1,I=function(){A||(0,_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.gl)({configuration:r,data:void 0,hook:"exit",plugins:n.slice().reverse(),servicePromises:c,services:l}),A=!0},v=_createForOfIteratorHelperLoose(clientnode__WEBPACK_IMPORTED_MODULE_5__.CLOSE_EVENT_NAMES);!(T=v()).done;)C=T.value,process.on(C,I);return L=!1,(0,clientnode__WEBPACK_IMPORTED_MODULE_5__.isFunction)(process.stdin.setRawMode)&&process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.setEncoding(r.core.encoding),process.stdin.on("data",(function(e){_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().mark((function _(){return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default().wrap((function(_){for(;;)switch(_.prev=_.next){case 0:if(""!==e){_.next=3;break}if(!L){_.next=1;break}console.warn("Stopping ungracefully."),_.next=2;break;case 1:return L=!0,console.info("You have requested to shut down all services. A second request will force to stop ungracefully."),_.next=2,(0,_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.lT)({configuration:r,data:void 0,hook:"shouldExit",plugins:n,servicePromises:c,services:l});case 2:process.exit();case 3:process.stdout.write(e);case 4:case"end":return _.stop()}}),_)})))()})),e.prev=17,e.next=18,Promise.all(Object.keys(c).map((function(e){return c[e]})));case 18:e.next=20;break;case 19:e.prev=19,e.catch(17);case 20:return u=!0,e.next=21,(0,_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.lT)({configuration:r,data:void 0,hook:"shouldExit",plugins:n,servicePromises:c,services:l});case 21:process.exit(),e.next=30;break;case 22:return e.prev=22,k=e.catch(6),e.next=23,handleError({configuration:r,data:k,plugins:n,servicePromises:c,services:l});case 23:if(u){e.next=27;break}return e.prev=24,e.next=25,(0,_pluginAPI__WEBPACK_IMPORTED_MODULE_4__.lT)({configuration:r,data:void 0,hook:"shouldExit",plugins:n,servicePromises:c,services:l});case 25:e.next=27;break;case 26:return e.prev=26,R=e.catch(24),e.next=27,handleError({configuration:r,data:R,plugins:n,servicePromises:c,services:l});case 27:if(!r.core.debug){e.next=28;break}throw k;case 28:console.error(k);case 29:process.exit(1);case 30:case"end":return e.stop()}}),e,null,[[6,22],[10,12],[17,19],[24,26]])})));return function(){return e.apply(this,arguments)}}();(__webpack_require__.c[__webpack_require__.s]===module||eval("require.main")!==__webpack_require__.c[__webpack_require__.s]&&void 0!==ORIGINAL_MAIN_MODULE&&ORIGINAL_MAIN_MODULE===eval("require.main"))&&main();const __WEBPACK_DEFAULT_EXPORT__=main},e=>{e.exports=require("@babel/runtime/helpers/extends")},e=>{e.exports=require("@babel/runtime/helpers/asyncToGenerator")},e=>{e.exports=require("@babel/runtime/regenerator")},e=>{e.exports=require("clientnode")},e=>{e.exports=require("fs")},e=>{e.exports=require("path")},e=>{e.exports=require("child_process")},e=>{e.exports=require("module")}],__webpack_module_cache__={};function __webpack_require__(e){var _=__webpack_module_cache__[e];if(void 0!==_)return _.exports;var r=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e](r,r.exports,__webpack_require__),r.loaded=!0,r.exports}__webpack_require__.c=__webpack_module_cache__,__webpack_require__.n=e=>{var _=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(_,{a:_}),_},__webpack_require__.d=(e,_)=>{for(var r in _)__webpack_require__.o(_,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:_[r]})},__webpack_require__.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),__webpack_require__.o=(e,_)=>Object.prototype.hasOwnProperty.call(e,_),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__=__webpack_require__(__webpack_require__.s=2);module.exports=__webpack_exports__})();