From 705ca2db4e80604418131ef196889c082799a6ed Mon Sep 17 00:00:00 2001 From: thevpc Date: Wed, 13 Oct 2021 00:31:47 +0100 Subject: [PATCH] [FIXED] Fixed repo/website generation --- METADATA | 2 +- docs/358635ad.4afa5302.js | 1 + docs/404.html | 8 +- docs/7803a678.a41263b1.js | 1 + docs/7803a678.e8a847fc.js | 1 - docs/METADATA | 2 +- docs/b63ebb90.2ab8355b.js | 1 + .../index.html | 8 +- docs/blog/Version 0.8.3 published/index.html | 29 ++ docs/blog/index.html | 8 +- docs/blog/tags/index.html | 8 +- docs/blog/tags/nuts/index.html | 8 +- docs/docs/cmd/Commands/index.html | 8 +- docs/docs/cmd/cmds/index.html | 8 +- docs/docs/cmd/exec-cmd/index.html | 8 +- docs/docs/cmd/fetch-cmd/index.html | 8 +- docs/docs/cmd/help-cmd/index.html | 8 +- docs/docs/cmd/info-cmd/index.html | 8 +- docs/docs/cmd/install-cmd/index.html | 8 +- docs/docs/cmd/license-cmd/index.html | 8 +- docs/docs/cmd/search-cmds/index.html | 8 +- docs/docs/cmd/version-cmd/index.html | 8 +- docs/docs/cmd/welcome-cmd/index.html | 8 +- docs/docs/concepts/NutsConcepts/index.html | 8 +- docs/docs/concepts/aliases/index.html | 8 +- docs/docs/concepts/automation/index.html | 8 +- docs/docs/concepts/commandline/index.html | 8 +- docs/docs/concepts/doc1/index.html | 8 +- docs/docs/concepts/filesystem/index.html | 8 +- .../contributing/NutsContributing/index.html | 8 +- docs/docs/contributing/building/index.html | 8 +- docs/docs/contributing/projects/index.html | 8 +- docs/docs/dev/ApplicationFramework/index.html | 8 +- docs/docs/dev/nutsApp/index.html | 8 +- docs/docs/dev/nutsPath/index.html | 8 +- docs/docs/dev/nutsStream/index.html | 8 +- docs/docs/index.html | 8 +- docs/docs/info/GettingStarted/index.html | 8 +- docs/docs/info/faq/index.html | 8 +- docs/docs/info/running/index.html | 8 +- docs/docs/info/troubleshooting/index.html | 8 +- docs/docs/intro/Introduction/index.html | 8 +- docs/docs/intro/changelog/index.html | 14 +- docs/docs/intro/installation/index.html | 8 +- docs/docs/intro/license/index.html | 8 +- docs/docs/intro/nutsAndMaven/index.html | 8 +- .../javadocs/API-Documentation/index.html | 8 +- docs/docs/root/index.html | 8 +- docs/index.html | 8 +- docs/main.4a824e13.js | 2 + docs/main.4a824e13.js.LICENSE.txt | 44 +++ docs/nuts.jar | Bin 516325 -> 534032 bytes docs/pdf/nuts-documentation.pdf | Bin 2010243 -> 2015235 bytes docs/runtime~main.e238f33d.js | 1 + nuts-build-website | 2 +- nuts-build-website.nsh | 2 +- .../toolbox/docusaurus/DocusaurusCtrl.java | 5 +- .../thevpc/nuts/toolbox/nsh/NshEvaluator.java | 6 +- .../bundles/jshell/AbstractJShellContext.java | 289 +++++++++++++++ .../bundles/jshell/DefaultJShellContext.java | 345 +----------------- .../jshell/DefaultJShellEvaluator.java | 8 +- .../toolbox/nsh/bundles/jshell/JShell.java | 23 +- .../nsh/bundles/jshell/JShellContext.java | 18 +- .../jshell/JShellContextForSource.java | 147 ++++++++ .../nsh/bundles/jshell/WatcherImpl.java | 19 + .../nsh/bundles/jshell/parser/Yaccer.java | 6 +- .../nuts/toolbox/nsh/cmds/SourceCommand.java | 13 +- .../nuts/toolbox/ntemplate/NTemplateMain.java | 8 +- website/docusaurus.config.js | 2 +- website/static/METADATA | 2 +- website/static/nuts.jar | Bin 516325 -> 534032 bytes website/static/pdf/nuts-documentation.pdf | Bin 2010243 -> 2015235 bytes 72 files changed, 766 insertions(+), 555 deletions(-) create mode 100644 docs/358635ad.4afa5302.js create mode 100644 docs/7803a678.a41263b1.js delete mode 100644 docs/7803a678.e8a847fc.js create mode 100644 docs/b63ebb90.2ab8355b.js create mode 100644 docs/blog/Version 0.8.3 published/index.html create mode 100644 docs/main.4a824e13.js create mode 100644 docs/main.4a824e13.js.LICENSE.txt create mode 100644 docs/runtime~main.e238f33d.js create mode 100644 toolbox/nsh/src/main/java/net/thevpc/nuts/toolbox/nsh/bundles/jshell/JShellContextForSource.java create mode 100644 toolbox/nsh/src/main/java/net/thevpc/nuts/toolbox/nsh/bundles/jshell/WatcherImpl.java diff --git a/METADATA b/METADATA index 26925177a..36f9c693b 100644 --- a/METADATA +++ b/METADATA @@ -7,4 +7,4 @@ latestJarLocation=http://thevpc.net/maven/net/thevpc/nuts/nuts/0.8.3/nuts-0.8.3. apiVersion=0.8.3 implVersion=0.8.3.0 jarLocation=http://thevpc.net/maven/net/thevpc/nuts/nuts/0.8.3/nuts-0.8.3.jar -buildTime=Fri Sep 17 10:04:27 PM +0000 2021 +buildTime=Tue Oct 12 11:29:11 PM +0000 2021 diff --git a/docs/358635ad.4afa5302.js b/docs/358635ad.4afa5302.js new file mode 100644 index 000000000..e1a0c8c35 --- /dev/null +++ b/docs/358635ad.4afa5302.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{113:function(e,t,r){"use strict";r.d(t,"a",(function(){return p})),r.d(t,"b",(function(){return h}));var n=r(0),o=r.n(n);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=o.a.createContext({}),l=function(e){var t=o.a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):u(u({},t),e)),r},p=function(e){var t=l(e.components);return o.a.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},b=o.a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,a=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=l(r),b=n,h=p["".concat(a,".").concat(b)]||p[b]||f[b]||i;return r?o.a.createElement(h,u(u({ref:t},c),{},{components:r})):o.a.createElement(h,u({ref:t},c))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,a=new Array(i);a[0]=b;var u={};for(var s in t)hasOwnProperty.call(t,s)&&(u[s]=t[s]);u.originalType=e,u.mdxType="string"==typeof e?e:n,a[1]=u;for(var c=2;c Page Not Found | Nuts, the Java Package Manager - - + +

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/docs/7803a678.a41263b1.js b/docs/7803a678.a41263b1.js new file mode 100644 index 000000000..1ecff53da --- /dev/null +++ b/docs/7803a678.a41263b1.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{113:function(e,t,a){"use strict";a.d(t,"a",(function(){return u})),a.d(t,"b",(function(){return d}));var n=a(0),i=a.n(n);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var p=i.a.createContext({}),c=function(e){var t=i.a.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},u=function(e){var t=c(e.components);return i.a.createElement(p.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},m=i.a.forwardRef((function(e,t){var a=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(a),m=n,d=u["".concat(l,".").concat(m)]||u[m]||b[m]||r;return a?i.a.createElement(d,o(o({ref:t},p),{},{components:a})):i.a.createElement(d,o({ref:t},p))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=a.length,l=new Array(r);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o.mdxType="string"==typeof e?e:n,l[1]=o;for(var p=2;pNutsUser "),Object(r.b)("li",{parentName:"ul"},"CHANGED : Renamed NutsRight->NutsPermission (and all subsequent methods) "),Object(r.b)("li",{parentName:"ul"},"CHANGED : NutsExtensionInfo->NutsExtensionInformation"),Object(r.b)("li",{parentName:"ul"},"CHANGED : NutsHttpConnectionFacade->NutsHttpConnection "),Object(r.b)("li",{parentName:"ul"},"CHANGED : Added java.io.Serializable anchor when applicable"),Object(r.b)("li",{parentName:"ul"},"REMOVED : NutsDefaultRepositoriesProvider,NutsSingletonClassLoaderProvider,NutsDefaultClassLoaderProvider,NutsWorkspaceSPI "),Object(r.b)("li",{parentName:"ul"},"REMOVED : NutsRepositoryListener.onInstall(...) "),Object(r.b)("li",{parentName:"ul"},"REMOVED : 'alternative' concept, and added NutsClassifierMapping so that classifier can be resolved according to env ")),Object(r.b)("h2",{id:"nuts-0560"},"nuts 0.5.6.0"),Object(r.b)("p",null,"WARNING: this version is not deployed to maven-central"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"2019/06/23 \tnuts 0.5.6.0")," released ",Object(r.b)("a",Object(n.a)({parentName:"li"},{href:"https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/nuts/nuts/0.5.6/nuts-0.5.6.jar"}),"download nuts-0.5.6.jar")," "),Object(r.b)("li",{parentName:"ul"},"ADDED : Implements XDG Base Directory Specification"),Object(r.b)("li",{parentName:"ul"},"ADDED : Added Json Path support"),Object(r.b)("li",{parentName:"ul"},"ADDED : Added NutsQuestionParser and NutsQuestionFormat "),Object(r.b)("li",{parentName:"ul"},"CHANGED : Extensions are loaded by boot instead of impl so that one can change default impl behavour"),Object(r.b)("li",{parentName:"ul"},"CHANGED : All repositories are now cache aware."),Object(r.b)("li",{parentName:"ul"},"CHANGED : Refactored *Format to extends the very same interface."),Object(r.b)("li",{parentName:"ul"},"CHANGED : Using to java.time package instead of older Date class"),Object(r.b)("li",{parentName:"ul"},"CHANGED : Improved Documentation (still to much to go though)"),Object(r.b)("li",{parentName:"ul"},"CHANGED : Prefer https repository urls"),Object(r.b)("li",{parentName:"ul"},"FIXED : Fixed several issues"),Object(r.b)("li",{parentName:"ul"},"REMOVED : ","[CommandLine]"," IMMEDIATE"),Object(r.b)("li",{parentName:"ul"},"REMOVED : ","[Options]"," --term"),Object(r.b)("li",{parentName:"ul"},"REMOVED : ","[Extensions]"," add/remove extensions from extension manager (should use install/uninstall commands)")),Object(r.b)("h2",{id:"nuts-0550"},"nuts 0.5.5.0"),Object(r.b)("p",null,"WARNING: this version is not deployed to maven-central"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"2019/06/08 \tnuts 0.5.5.0")," released ",Object(r.b)("a",Object(n.a)({parentName:"li"},{href:"https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/nuts/nuts/0.5.5/nuts-0.5.5.jar"}),"download nuts-0.5.5.jar")," "),Object(r.b)("li",{parentName:"ul"},"REMOVED : Removed Nsh commands Console Deploy Info Install Fetch Uninstall,Push Update Exec Which"),Object(r.b)("li",{parentName:"ul"},"REMOVED : Removed maven-github repository type support (web API)"),Object(r.b)("li",{parentName:"ul"},"REMOVED : Removed nuts-cmd-app project dependency. A built-in NutsApplication is included in the api the help simplify extension."),Object(r.b)("li",{parentName:"ul"},"ADDED : Added support for XML,TABLE and TREE (along with JSON, PROPS and PLAIN) printing format to help automate result parsing"),Object(r.b)("li",{parentName:"ul"},"ADDED : Added Better api in Nuts IO to handle SHA and MD5"),Object(r.b)("li",{parentName:"ul"},"ADDED : json and xml nsh commands to help manipulating json and xml in commands outputs"),Object(r.b)("li",{parentName:"ul"},'FIXED : Fixed fprint issue with "" (empty string)'),Object(r.b)("li",{parentName:"ul"},"FIXED : Fixed Update indexes/stats command"),Object(r.b)("li",{parentName:"ul"},"FIXED : When installing nuts, lookup latest core implementation"),Object(r.b)("li",{parentName:"ul"},"CHANGED : Renamed FindCommand to SearchCommand (and some of their methods too)"),Object(r.b)("li",{parentName:"ul"},"CHANGED : NutsIdFilter.accept accepts workspace as a second argument"),Object(r.b)("li",{parentName:"ul"},"CHANGED : Improved Help text"),Object(r.b)("li",{parentName:"ul"},"CHANGED : Improved Documentation (still to much to go through)"),Object(r.b)("li",{parentName:"ul"},"ADDED : (nsh) Builtin nsh commands basename and dirname "),Object(r.b)("li",{parentName:"ul"},"CHANGED : (nsh) Builtin nsh command who renamed to whoami "),Object(r.b)("li",{parentName:"ul"},"REMOVED : (nfind) Removed nfind companion (the built-in search command is a better replacement)")),Object(r.b)("h2",{id:"nuts-0540-change-log"},"nuts 0.5.4.0 Change Log"),Object(r.b)("p",null,"WARNING: this version is not deployed to maven-central"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"2019/04/21 \tnuts 0.5.4.0 (*)")," released ",Object(r.b)("a",Object(n.a)({parentName:"li"},{href:"https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/nuts/nuts/0.5.4/nuts-0.5.4.jar"}),"download nuts-0.5.4.jar"),"\n-Added lucene indexing facility (thanks to the excellent work of nasreddine bac ali)"),Object(r.b)("li",{parentName:"ul"},"Removed dependencies to common,strings, io and utils (utility classes)."),Object(r.b)("li",{parentName:"ul"},"Removed dependencies to asm (bytecode manipulation)."),Object(r.b)("li",{parentName:"ul"},"From Now on only gson and jansi are retained."),Object(r.b)("li",{parentName:"ul"},"Layout changes",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"from now on configuration will be version specific. some migration should be done to import previous configs"),Object(r.b)("li",{parentName:"ul"},"system (global) repo is no more created under the workspace. Only a link to is is registered in nuts-workspace.json"),Object(r.b)("li",{parentName:"ul"},"added MacOs Layout. Help is needed for testing this !"))),Object(r.b)("li",{parentName:"ul"},"Better support for JDK 8+ (New IO,Predicates, Streams, ...)"),Object(r.b)("li",{parentName:"ul"},"Added Comprehensive implementation of Iterator (Stream Like) to better handle result iteration while search is in progress"),Object(r.b)("li",{parentName:"ul"},"Speed improvements"),Object(r.b)("li",{parentName:"ul"},"Added JUnit test battery"),Object(r.b)("li",{parentName:"ul"},"Added support to JSON,PROPS and PLAIN result, implemented in version and info. Should continue implementing in other commands."),Object(r.b)("li",{parentName:"ul"},'Removed --license, --update, --install, ... options, replaced by workspace "internal" commands new concept.'),Object(r.b)("li",{parentName:"ul"},'Workspaces handle several type of executables that will be resolved in that order : "internal command","aliases : aka workspace command aliases", "components",\n"path/unmanaged components" and system/native commands.'),Object(r.b)("li",{parentName:"ul"},"Several Fixes",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"Fixed Problem with Layout"),Object(r.b)("li",{parentName:"ul"},"Fixed Problem coloring (fprint embedded library)"),Object(r.b)("li",{parentName:"ul"},'All System properties now start with "nuts."'),Object(r.b)("li",{parentName:"ul"},'System properties starting with "nuts.export." are exported to children processes'),Object(r.b)("li",{parentName:"ul"},"Added watch dog agains infinite child process creation")))),Object(r.b)("h2",{id:"nuts-0530-change-log"},"nuts 0.5.3.0 Change Log"),Object(r.b)("p",null,"WARNING: this version is not deployed to maven-central"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"2019/01/05 \tnuts 0.5.3.0")," released ",Object(r.b)("a",Object(n.a)({parentName:"li"},{href:"https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/nuts/nuts/0.5.3/nuts-0.5.3.jar"}),"download nuts-0.5.3.jar")),Object(r.b)("li",{parentName:"ul"},"(WINDOWS) First support to Windows platform",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"Support for Console coloring on windows"),Object(r.b)("li",{parentName:"ul"},"Storing to AppData","\\","Local and AppData","\\","Roaming folders"),Object(r.b)("li",{parentName:"ul"},"ndi is not yet supported!"))),Object(r.b)("li",{parentName:"ul"},"(LINUX,UNIX) ndi no more stores to ~/bin but instead it updates .bashrc to point to current workspace added a confirmation question."),Object(r.b)("li",{parentName:"ul"},"API Change",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"Moved getStoreRoot from NutsWorkspace to NutsWorkspaceConfigManager"),Object(r.b)("li",{parentName:"ul"},"Added StoreType : CACHE,LIB"),Object(r.b)("li",{parentName:"ul"},"Introduced NutsDeploymentBuilder,NutsIoManager,NutsParseManager,NutsFormatManager,DescriptorFormat"),Object(r.b)("li",{parentName:"ul"},"Introduced NutsSessionTerminal,NutsSystemTerminal"),Object(r.b)("li",{parentName:"ul"},"Added description, alternative (to support multi architecture nuts) descriptor properties"),Object(r.b)("li",{parentName:"ul"},"Removed descriptor/id 'ext' and 'file' parameters. 'packaging' should be more than enough"),Object(r.b)("li",{parentName:"ul"},"Removed Maps from config. Replaced by plain arrays"),Object(r.b)("li",{parentName:"ul"},"Removed workspace.cwd"),Object(r.b)("li",{parentName:"ul"},"Removed Temp File/Folder support"))),Object(r.b)("li",{parentName:"ul"},'Added Archetype "standalone" to help bundling and application with all its dependencies'),Object(r.b)("li",{parentName:"ul"},"Several fixes",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"Fixed Log configuration, introduced --log-inherited to enable inherited log-handlers"),Object(r.b)("li",{parentName:"ul"},"Fixed support for install/uninstall hooks"),Object(r.b)("li",{parentName:"ul"},"Fixed Repository Layout where ref repo folder is created twice"),Object(r.b)("li",{parentName:"ul"},"Fixed Multiple pom download issue"),Object(r.b)("li",{parentName:"ul"},"Fixed Gson parsing issue"),Object(r.b)("li",{parentName:"ul"},"Fixed autocomplete support"),Object(r.b)("li",{parentName:"ul"},"Fixed bad json format recovery"))),Object(r.b)("li",{parentName:"ul"},"nsh ",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"introduced pwd,set unset,alias,unalias,autocomplete commands"),Object(r.b)("li",{parentName:"ul"},"fixed support to autocomplete"))),Object(r.b)("li",{parentName:"ul"},"TODO ",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"Code Comments"),Object(r.b)("li",{parentName:"ul"},"Help files")))),Object(r.b)("h2",{id:"nuts-0520-change-log"},"nuts 0.5.2.0 Change Log"),Object(r.b)("p",null,"WARNING: this version is not deployed to maven-central"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"2018/12/28 \tnuts 0.5.2.0")," released ",Object(r.b)("a",Object(n.a)({parentName:"li"},{href:"https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/nuts/nuts/0.5.2/nuts-0.5.2.jar"}),"download nuts-0.5.2.jar")," "),Object(r.b)("li",{parentName:"ul"},"Global refactoring",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"Introduced NutsCommandExecBuilder, NutsDependencyBuilder, NutsDeploymentBuilder, NutsIdBuilder, NutsClassLoaderBuilder"))),Object(r.b)("li",{parentName:"ul"},'Extracted nsh commands as regular nuts package (nadmin, nfind)\nWORKING-ON : Fixing "mvn" start from nuts (handling, exclude, pom import and classifiers from maven)')),Object(r.b)("h2",{id:"nuts-0510-change-log"},"nuts 0.5.1.0 Change Log"),Object(r.b)("p",null,"WARNING: this version is not deployed to maven-central"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"2018/12/18 \tnuts 0.5.1.0 released")," ",Object(r.b)("a",Object(n.a)({parentName:"li"},{href:"https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/nuts/nuts/0.5.1/nuts-0.5.1.jar"}),"download nuts-0.5.1.jar")," "),Object(r.b)("li",{parentName:"ul"},"FIXED : Fixed problem with inheritIO from child process (added InputStreamTransparentAdapter and OutputStreamTransparentAdapter interfaces)"),Object(r.b)("li",{parentName:"ul"},"FIXED : Added distinction between workspace config and runtime boot api/runtime values"),Object(r.b)("li",{parentName:"ul"},"FIXED : Do not read workspace version and dependency config from child process (because it may require distinct version of nuts)"),Object(r.b)("li",{parentName:"ul"},"FIXED : Mkdir,cp, etc... used incorrectly cwd. Fixed."),Object(r.b)("li",{parentName:"ul"},"CHANGED : Optimized pom.xml parse execution time (using DOM instead of SAX)"),Object(r.b)("li",{parentName:"ul"},"CHANGED : moved cache from bootstrap folder to default-workspace/cache")),Object(r.b)("h2",{id:"nuts-0500-change-log"},"nuts 0.5.0.0 Change Log"),Object(r.b)("p",null,"WARNING: this version is not deployed to maven-central"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"2018/11/25 \tnuts 0.5.0.0 released")," ",Object(r.b)("a",Object(n.a)({parentName:"li"},{href:"https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/nuts/nuts/0.5.0/nuts-0.5.0.jar"}),"download nuts-0.5.0.jar")," "),Object(r.b)("li",{parentName:"ul"},"Very first published version. older ones were used internally for internal projects only.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/docs/7803a678.e8a847fc.js b/docs/7803a678.e8a847fc.js deleted file mode 100644 index a2706f330..000000000 --- a/docs/7803a678.e8a847fc.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{113:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return d}));var a=n(0),i=n.n(a);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=i.a.createContext({}),c=function(e){var t=i.a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=c(e.components);return i.a.createElement(p.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},m=i.a.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(n),m=a,d=u["".concat(l,".").concat(m)]||u[m]||b[m]||r;return n?i.a.createElement(d,o(o({ref:t},p),{},{components:n})):i.a.createElement(d,o({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,l=new Array(r);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o.mdxType="string"==typeof e?e:a,l[1]=o;for(var p=2;pNutsUser "),Object(r.b)("li",{parentName:"ul"},"CHANGED : Renamed NutsRight->NutsPermission (and all subsequent methods) "),Object(r.b)("li",{parentName:"ul"},"CHANGED : NutsExtensionInfo->NutsExtensionInformation"),Object(r.b)("li",{parentName:"ul"},"CHANGED : NutsHttpConnectionFacade->NutsHttpConnection "),Object(r.b)("li",{parentName:"ul"},"CHANGED : Added java.io.Serializable anchor when applicable"),Object(r.b)("li",{parentName:"ul"},"REMOVED : NutsDefaultRepositoriesProvider,NutsSingletonClassLoaderProvider,NutsDefaultClassLoaderProvider,NutsWorkspaceSPI "),Object(r.b)("li",{parentName:"ul"},"REMOVED : NutsRepositoryListener.onInstall(...) "),Object(r.b)("li",{parentName:"ul"},"REMOVED : 'alternative' concept, and added NutsClassifierMapping so that classifier can be resolved according to env ")),Object(r.b)("h2",{id:"nuts-0560"},"nuts 0.5.6.0"),Object(r.b)("p",null,"WARNING: this version is not deployed to maven-central"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"2019/06/23 \tnuts 0.5.6.0")," released ",Object(r.b)("a",Object(a.a)({parentName:"li"},{href:"https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/nuts/nuts/0.5.6/nuts-0.5.6.jar"}),"download nuts-0.5.6.jar")," "),Object(r.b)("li",{parentName:"ul"},"ADDED : Implements XDG Base Directory Specification"),Object(r.b)("li",{parentName:"ul"},"ADDED : Added Json Path support"),Object(r.b)("li",{parentName:"ul"},"ADDED : Added NutsQuestionParser and NutsQuestionFormat "),Object(r.b)("li",{parentName:"ul"},"CHANGED : Extensions are loaded by boot instead of impl so that one can change default impl behavour"),Object(r.b)("li",{parentName:"ul"},"CHANGED : All repositories are now cache aware."),Object(r.b)("li",{parentName:"ul"},"CHANGED : Refactored *Format to extends the very same interface."),Object(r.b)("li",{parentName:"ul"},"CHANGED : Using to java.time package instead of older Date class"),Object(r.b)("li",{parentName:"ul"},"CHANGED : Improved Documentation (still to much to go though)"),Object(r.b)("li",{parentName:"ul"},"CHANGED : Prefer https repository urls"),Object(r.b)("li",{parentName:"ul"},"FIXED : Fixed several issues"),Object(r.b)("li",{parentName:"ul"},"REMOVED : ","[CommandLine]"," IMMEDIATE"),Object(r.b)("li",{parentName:"ul"},"REMOVED : ","[Options]"," --term"),Object(r.b)("li",{parentName:"ul"},"REMOVED : ","[Extensions]"," add/remove extensions from extension manager (should use install/uninstall commands)")),Object(r.b)("h2",{id:"nuts-0550"},"nuts 0.5.5.0"),Object(r.b)("p",null,"WARNING: this version is not deployed to maven-central"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"2019/06/08 \tnuts 0.5.5.0")," released ",Object(r.b)("a",Object(a.a)({parentName:"li"},{href:"https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/nuts/nuts/0.5.5/nuts-0.5.5.jar"}),"download nuts-0.5.5.jar")," "),Object(r.b)("li",{parentName:"ul"},"REMOVED : Removed Nsh commands Console Deploy Info Install Fetch Uninstall,Push Update Exec Which"),Object(r.b)("li",{parentName:"ul"},"REMOVED : Removed maven-github repository type support (web API)"),Object(r.b)("li",{parentName:"ul"},"REMOVED : Removed nuts-cmd-app project dependency. A built-in NutsApplication is included in the api the help simplify extension."),Object(r.b)("li",{parentName:"ul"},"ADDED : Added support for XML,TABLE and TREE (along with JSON, PROPS and PLAIN) printing format to help automate result parsing"),Object(r.b)("li",{parentName:"ul"},"ADDED : Added Better api in Nuts IO to handle SHA and MD5"),Object(r.b)("li",{parentName:"ul"},"ADDED : json and xml nsh commands to help manipulating json and xml in commands outputs"),Object(r.b)("li",{parentName:"ul"},'FIXED : Fixed fprint issue with "" (empty string)'),Object(r.b)("li",{parentName:"ul"},"FIXED : Fixed Update indexes/stats command"),Object(r.b)("li",{parentName:"ul"},"FIXED : When installing nuts, lookup latest core implementation"),Object(r.b)("li",{parentName:"ul"},"CHANGED : Renamed FindCommand to SearchCommand (and some of their methods too)"),Object(r.b)("li",{parentName:"ul"},"CHANGED : NutsIdFilter.accept accepts workspace as a second argument"),Object(r.b)("li",{parentName:"ul"},"CHANGED : Improved Help text"),Object(r.b)("li",{parentName:"ul"},"CHANGED : Improved Documentation (still to much to go through)"),Object(r.b)("li",{parentName:"ul"},"ADDED : (nsh) Builtin nsh commands basename and dirname "),Object(r.b)("li",{parentName:"ul"},"CHANGED : (nsh) Builtin nsh command who renamed to whoami "),Object(r.b)("li",{parentName:"ul"},"REMOVED : (nfind) Removed nfind companion (the built-in search command is a better replacement)")),Object(r.b)("h2",{id:"nuts-0540-change-log"},"nuts 0.5.4.0 Change Log"),Object(r.b)("p",null,"WARNING: this version is not deployed to maven-central"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"2019/04/21 \tnuts 0.5.4.0 (*)")," released ",Object(r.b)("a",Object(a.a)({parentName:"li"},{href:"https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/nuts/nuts/0.5.4/nuts-0.5.4.jar"}),"download nuts-0.5.4.jar"),"\n-Added lucene indexing facility (thanks to the excellent work of nasreddine bac ali)"),Object(r.b)("li",{parentName:"ul"},"Removed dependencies to common,strings, io and utils (utility classes)."),Object(r.b)("li",{parentName:"ul"},"Removed dependencies to asm (bytecode manipulation)."),Object(r.b)("li",{parentName:"ul"},"From Now on only gson and jansi are retained."),Object(r.b)("li",{parentName:"ul"},"Layout changes",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"from now on configuration will be version specific. some migration should be done to import previous configs"),Object(r.b)("li",{parentName:"ul"},"system (global) repo is no more created under the workspace. Only a link to is is registered in nuts-workspace.json"),Object(r.b)("li",{parentName:"ul"},"added MacOs Layout. Help is needed for testing this !"))),Object(r.b)("li",{parentName:"ul"},"Better support for JDK 8+ (New IO,Predicates, Streams, ...)"),Object(r.b)("li",{parentName:"ul"},"Added Comprehensive implementation of Iterator (Stream Like) to better handle result iteration while search is in progress"),Object(r.b)("li",{parentName:"ul"},"Speed improvements"),Object(r.b)("li",{parentName:"ul"},"Added JUnit test battery"),Object(r.b)("li",{parentName:"ul"},"Added support to JSON,PROPS and PLAIN result, implemented in version and info. Should continue implementing in other commands."),Object(r.b)("li",{parentName:"ul"},'Removed --license, --update, --install, ... options, replaced by workspace "internal" commands new concept.'),Object(r.b)("li",{parentName:"ul"},'Workspaces handle several type of executables that will be resolved in that order : "internal command","aliases : aka workspace command aliases", "components",\n"path/unmanaged components" and system/native commands.'),Object(r.b)("li",{parentName:"ul"},"Several Fixes",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"Fixed Problem with Layout"),Object(r.b)("li",{parentName:"ul"},"Fixed Problem coloring (fprint embedded library)"),Object(r.b)("li",{parentName:"ul"},'All System properties now start with "nuts."'),Object(r.b)("li",{parentName:"ul"},'System properties starting with "nuts.export." are exported to children processes'),Object(r.b)("li",{parentName:"ul"},"Added watch dog agains infinite child process creation")))),Object(r.b)("h2",{id:"nuts-0530-change-log"},"nuts 0.5.3.0 Change Log"),Object(r.b)("p",null,"WARNING: this version is not deployed to maven-central"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"2019/01/05 \tnuts 0.5.3.0")," released ",Object(r.b)("a",Object(a.a)({parentName:"li"},{href:"https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/nuts/nuts/0.5.3/nuts-0.5.3.jar"}),"download nuts-0.5.3.jar")),Object(r.b)("li",{parentName:"ul"},"(WINDOWS) First support to Windows platform",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"Support for Console coloring on windows"),Object(r.b)("li",{parentName:"ul"},"Storing to AppData","\\","Local and AppData","\\","Roaming folders"),Object(r.b)("li",{parentName:"ul"},"ndi is not yet supported!"))),Object(r.b)("li",{parentName:"ul"},"(LINUX,UNIX) ndi no more stores to ~/bin but instead it updates .bashrc to point to current workspace added a confirmation question."),Object(r.b)("li",{parentName:"ul"},"API Change",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"Moved getStoreRoot from NutsWorkspace to NutsWorkspaceConfigManager"),Object(r.b)("li",{parentName:"ul"},"Added StoreType : CACHE,LIB"),Object(r.b)("li",{parentName:"ul"},"Introduced NutsDeploymentBuilder,NutsIoManager,NutsParseManager,NutsFormatManager,DescriptorFormat"),Object(r.b)("li",{parentName:"ul"},"Introduced NutsSessionTerminal,NutsSystemTerminal"),Object(r.b)("li",{parentName:"ul"},"Added description, alternative (to support multi architecture nuts) descriptor properties"),Object(r.b)("li",{parentName:"ul"},"Removed descriptor/id 'ext' and 'file' parameters. 'packaging' should be more than enough"),Object(r.b)("li",{parentName:"ul"},"Removed Maps from config. Replaced by plain arrays"),Object(r.b)("li",{parentName:"ul"},"Removed workspace.cwd"),Object(r.b)("li",{parentName:"ul"},"Removed Temp File/Folder support"))),Object(r.b)("li",{parentName:"ul"},'Added Archetype "standalone" to help bundling and application with all its dependencies'),Object(r.b)("li",{parentName:"ul"},"Several fixes",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"Fixed Log configuration, introduced --log-inherited to enable inherited log-handlers"),Object(r.b)("li",{parentName:"ul"},"Fixed support for install/uninstall hooks"),Object(r.b)("li",{parentName:"ul"},"Fixed Repository Layout where ref repo folder is created twice"),Object(r.b)("li",{parentName:"ul"},"Fixed Multiple pom download issue"),Object(r.b)("li",{parentName:"ul"},"Fixed Gson parsing issue"),Object(r.b)("li",{parentName:"ul"},"Fixed autocomplete support"),Object(r.b)("li",{parentName:"ul"},"Fixed bad json format recovery"))),Object(r.b)("li",{parentName:"ul"},"nsh ",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"introduced pwd,set unset,alias,unalias,autocomplete commands"),Object(r.b)("li",{parentName:"ul"},"fixed support to autocomplete"))),Object(r.b)("li",{parentName:"ul"},"TODO ",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"Code Comments"),Object(r.b)("li",{parentName:"ul"},"Help files")))),Object(r.b)("h2",{id:"nuts-0520-change-log"},"nuts 0.5.2.0 Change Log"),Object(r.b)("p",null,"WARNING: this version is not deployed to maven-central"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"2018/12/28 \tnuts 0.5.2.0")," released ",Object(r.b)("a",Object(a.a)({parentName:"li"},{href:"https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/nuts/nuts/0.5.2/nuts-0.5.2.jar"}),"download nuts-0.5.2.jar")," "),Object(r.b)("li",{parentName:"ul"},"Global refactoring",Object(r.b)("ul",{parentName:"li"},Object(r.b)("li",{parentName:"ul"},"Introduced NutsCommandExecBuilder, NutsDependencyBuilder, NutsDeploymentBuilder, NutsIdBuilder, NutsClassLoaderBuilder"))),Object(r.b)("li",{parentName:"ul"},'Extracted nsh commands as regular nuts package (nadmin, nfind)\nWORKING-ON : Fixing "mvn" start from nuts (handling, exclude, pom import and classifiers from maven)')),Object(r.b)("h2",{id:"nuts-0510-change-log"},"nuts 0.5.1.0 Change Log"),Object(r.b)("p",null,"WARNING: this version is not deployed to maven-central"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"2018/12/18 \tnuts 0.5.1.0 released")," ",Object(r.b)("a",Object(a.a)({parentName:"li"},{href:"https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/nuts/nuts/0.5.1/nuts-0.5.1.jar"}),"download nuts-0.5.1.jar")," "),Object(r.b)("li",{parentName:"ul"},"FIXED : Fixed problem with inheritIO from child process (added InputStreamTransparentAdapter and OutputStreamTransparentAdapter interfaces)"),Object(r.b)("li",{parentName:"ul"},"FIXED : Added distinction between workspace config and runtime boot api/runtime values"),Object(r.b)("li",{parentName:"ul"},"FIXED : Do not read workspace version and dependency config from child process (because it may require distinct version of nuts)"),Object(r.b)("li",{parentName:"ul"},"FIXED : Mkdir,cp, etc... used incorrectly cwd. Fixed."),Object(r.b)("li",{parentName:"ul"},"CHANGED : Optimized pom.xml parse execution time (using DOM instead of SAX)"),Object(r.b)("li",{parentName:"ul"},"CHANGED : moved cache from bootstrap folder to default-workspace/cache")),Object(r.b)("h2",{id:"nuts-0500-change-log"},"nuts 0.5.0.0 Change Log"),Object(r.b)("p",null,"WARNING: this version is not deployed to maven-central"),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("inlineCode",{parentName:"li"},"2018/11/25 \tnuts 0.5.0.0 released")," ",Object(r.b)("a",Object(a.a)({parentName:"li"},{href:"https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/nuts/nuts/0.5.0/nuts-0.5.0.jar"}),"download nuts-0.5.0.jar")," "),Object(r.b)("li",{parentName:"ul"},"Very first published version. older ones were used internally for internal projects only.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/docs/METADATA b/docs/METADATA index 26925177a..36f9c693b 100644 --- a/docs/METADATA +++ b/docs/METADATA @@ -7,4 +7,4 @@ latestJarLocation=http://thevpc.net/maven/net/thevpc/nuts/nuts/0.8.3/nuts-0.8.3. apiVersion=0.8.3 implVersion=0.8.3.0 jarLocation=http://thevpc.net/maven/net/thevpc/nuts/nuts/0.8.3/nuts-0.8.3.jar -buildTime=Fri Sep 17 10:04:27 PM +0000 2021 +buildTime=Tue Oct 12 11:29:11 PM +0000 2021 diff --git a/docs/b63ebb90.2ab8355b.js b/docs/b63ebb90.2ab8355b.js new file mode 100644 index 000000000..7cf1c77ad --- /dev/null +++ b/docs/b63ebb90.2ab8355b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{113:function(e,t,r){"use strict";r.d(t,"a",(function(){return p})),r.d(t,"b",(function(){return h}));var n=r(0),o=r.n(n);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=o.a.createContext({}),l=function(e){var t=o.a.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):u(u({},t),e)),r},p=function(e){var t=l(e.components);return o.a.createElement(c.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},b=o.a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,a=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=l(r),b=n,h=p["".concat(a,".").concat(b)]||p[b]||f[b]||i;return r?o.a.createElement(h,u(u({ref:t},c),{},{components:r})):o.a.createElement(h,u({ref:t},c))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,a=new Array(i);a[0]=b;var u={};for(var s in t)hasOwnProperty.call(t,s)&&(u[s]=t[s]);u.originalType=e,u.mdxType="string"==typeof e?e:n,a[1]=u;for(var c=2;c Publishing the first version of Nuts website | Nuts, the Java Package Manager - - + + @@ -18,8 +18,8 @@

Publishing the first version of Nuts website

thevpc

thevpc

Criticize the world casually

This is the first version of the Nuts website.

- - + + diff --git a/docs/blog/Version 0.8.3 published/index.html b/docs/blog/Version 0.8.3 published/index.html new file mode 100644 index 000000000..9cb7c419f --- /dev/null +++ b/docs/blog/Version 0.8.3 published/index.html @@ -0,0 +1,29 @@ + + + + + + +Version 0.8.3 published | Nuts, the Java Package Manager + + + + + + + + + + +
+

Version 0.8.3 published

thevpc

thevpc

Nuts embraces Docusaurus

We are thrilled to announce v0.8.3 release of #nuts, the open source #java package manager intended to be #devops friendly. In the following article, we quickly explain how you can benefit of using nuts as your primary package manager in your java application.

https://thevpc.github.io/nuts/docs/dev/nutsApp
+ + + + + + + + + + \ No newline at end of file diff --git a/docs/blog/index.html b/docs/blog/index.html index 183ff38eb..8ff59e625 100644 --- a/docs/blog/index.html +++ b/docs/blog/index.html @@ -6,8 +6,8 @@ Blog | Nuts, the Java Package Manager - - + + @@ -20,8 +20,8 @@

Version 0.8.3 published

thevpc

thevpc

Nuts embraces Docusaurus

We are thrilled to announce v0.8.3 release of #nuts, the open source #java package manager intended to be #devops friendly. In the following article, we quickly explain how you can benefit of using nuts as your primary package manager in your java application.

https://thevpc.github.io/nuts/docs/dev/nutsApp
- - + + diff --git a/docs/blog/tags/index.html b/docs/blog/tags/index.html index 3d4679417..3f9d17fbf 100644 --- a/docs/blog/tags/index.html +++ b/docs/blog/tags/index.html @@ -6,8 +6,8 @@ Tags | Nuts, the Java Package Manager - - + + @@ -17,8 +17,8 @@ - - + + diff --git a/docs/blog/tags/nuts/index.html b/docs/blog/tags/nuts/index.html index 145bab00e..a798f4b38 100644 --- a/docs/blog/tags/nuts/index.html +++ b/docs/blog/tags/nuts/index.html @@ -6,8 +6,8 @@ Posts tagged "nuts" | Nuts, the Java Package Manager - - + + @@ -20,8 +20,8 @@

2 posts tagged with "nuts"

View All Tags

Version 0.8.3 published

thevpc

thevpc

Nuts embraces Docusaurus

We are thrilled to announce v0.8.3 release of #nuts, the open source #java package manager intended to be #devops friendly. In the following article, we quickly explain how you can benefit of using nuts as your primary package manager in your java application.

https://thevpc.github.io/nuts/docs/dev/nutsApp
- - + + diff --git a/docs/docs/cmd/Commands/index.html b/docs/docs/cmd/Commands/index.html index 5b3ffd960..703099f69 100644 --- a/docs/docs/cmd/Commands/index.html +++ b/docs/docs/cmd/Commands/index.html @@ -6,8 +6,8 @@ Commands | Nuts, the Java Package Manager - - + + @@ -21,8 +21,8 @@

Commands

nuts exposes a set of commands :

  • exec : execute an artifact or a command
  • which : detect the proper artifact or system command to execute
  • install, uninstall : install/uninstall an artifact (using its fetched/deployed installer)
  • update,check-updates : search for updates
  • deploy, undeploy : manage artifacts (artifact installers) on the local repositories
  • fetch, push : download from, upload to remote repositories
  • search : search for existing/installable artifacts
  • welcome : a command that does nothing but bootstrapping nuts and showing a welcome message.
- - + + diff --git a/docs/docs/cmd/cmds/index.html b/docs/docs/cmd/cmds/index.html index 251df43ee..e9ea08729 100644 --- a/docs/docs/cmd/cmds/index.html +++ b/docs/docs/cmd/cmds/index.html @@ -6,8 +6,8 @@ Nuts Commands | Nuts, the Java Package Manager - - + + @@ -21,8 +21,8 @@

Nuts Commands

Nuts supports multiple types of commands (internal , external), multiple types of execution (embedded, spawn, and system execution) and multiple modes of execution (effective, dry).

Internal Commands include:

  • welcome
  • help
  • version
  • info
  • license
  • search
  • fetch
  • which
  • exec
  • install
  • uninstall
  • update
  • reinstall
  • check-updates
  • deploy
  • push

1.1.7 search command

1.1.8 fetch command

fetch command is used to download content of an artifact when you exactly know of it's nuts long id (which is required). This will download a cached version of the artifact in the local machine (the artifact passes to 'fetched' status)

me@linux:~> nuts fetch net.vpc.app:netbeans-launcher#1.2.2

update and check-updates commands

deploy and push commands

- - + + diff --git a/docs/docs/cmd/exec-cmd/index.html b/docs/docs/cmd/exec-cmd/index.html index 7aa86d08d..735bee977 100644 --- a/docs/docs/cmd/exec-cmd/index.html +++ b/docs/docs/cmd/exec-cmd/index.html @@ -6,8 +6,8 @@ Exec and Which Commands | Nuts, the Java Package Manager - - + + @@ -23,8 +23,8 @@ For what concerns which command, it does not really execute the command, it just resolves the command execution

me@linux:~> nuts which version ls
version : internal command
ls : nuts alias (owner maven-local://net.vpc.app.nuts.toolbox:nsh#0.5.7.0 ) : maven-local://net.vpc.app.nuts.toolbox:nsh#0.5.7.0 -c ls

Here which returns that version is an internal command while ls is an alias to an artifact based command (nsh -c ls) which is called a "nuts alias". As you can see, ls is actually a sub command of nsh artifact.

1.2 External Commands

External commands are commands that will invoke another artifact. for instance

nuts netbeans-command

is running an external command which is net.vpc.app:netbeans-launcher#1.2.2 artifact.

1.2 External Files & URLs

You can run any jar file using nuts as far as it fulfills two points : the files must contain a supported descriptor (if it is compiled with maven, it already has the supported descriptor) and the file should be typed as a path (it must contain a '/' or '\' separator)

wget -N https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/netbeans-launcher/1.2.2/netbeans-launcher-1.2.2.jar
nuts ./netbeans-launcher-1.2.2.jar

You can even run a remove file using its url format :

nuts https://github.com/thevpc/vpc-public-maven/raw/master/net/vpc/app/netbeans-launcher/1.2.2/netbeans-launcher-1.2.2.jar

2. Execution types

2.1 spawn

This is the default execution type where any external command will spawn a new process to execute within. Internal commands are not affected by this mode and are executed, always, in the current vm process (with embedded type).

me@linux:~> nuts --spawn ls

2.2 embedded

In this type the command will try not to spawn a new process but load in the current vm the commmand to run (as far as it is a java command)

me@linux:~> nuts --embedded ls

2.3 syscall

In this type, the command execution is delegated to the underlying operating system end hence will also swan a new process.

me@linux:~> nuts --syscall ls

3 Execution modes

3.1 effective execution

This is the default execution mode where the command is really and effectively ran.

3.2 dry execution

In this mode, the command will be ran in dry mode with no side effects which implies a "simulation" of the execution.

me@linux:~> nuts --dry version
[dry] internal version
- - + + diff --git a/docs/docs/cmd/fetch-cmd/index.html b/docs/docs/cmd/fetch-cmd/index.html index 58136e4b6..1e422a7fd 100644 --- a/docs/docs/cmd/fetch-cmd/index.html +++ b/docs/docs/cmd/fetch-cmd/index.html @@ -6,8 +6,8 @@ Fetch Command | Nuts, the Java Package Manager - - + + @@ -21,8 +21,8 @@ - - + + diff --git a/docs/docs/cmd/help-cmd/index.html b/docs/docs/cmd/help-cmd/index.html index 273dd6806..4ea79afb1 100644 --- a/docs/docs/cmd/help-cmd/index.html +++ b/docs/docs/cmd/help-cmd/index.html @@ -6,8 +6,8 @@ Help Command | Nuts, the Java Package Manager - - + + @@ -22,8 +22,8 @@

Help Command

This command, as you should have guessed, show. help manual of your favorite command or of nuts it self.

me@linux:~> nuts help version
version :
nuts version
nuts --version
nuts -version
nuts -v
show version and exit
...

will show help of the version command.

Usually, all nuts commands support the '--help' option command that should also show this very same help. So the latter command is equivalent to

me@linux:~> nuts version --help
- - + + diff --git a/docs/docs/cmd/info-cmd/index.html b/docs/docs/cmd/info-cmd/index.html index 3d7fdd891..e4ca82e3f 100644 --- a/docs/docs/cmd/info-cmd/index.html +++ b/docs/docs/cmd/info-cmd/index.html @@ -6,8 +6,8 @@ Info Command | Nuts, the Java Package Manager - - + + @@ -21,8 +21,8 @@

Info Command

info command is a more verbose command than version. It shows a lot of other nuts properties that describe the booted workspace, such as the workspace name, the store locations (artifacts, caches, ....)

me@linux:~> nuts info
name = default-workspace
nuts-api-version = 0.5.7
nuts-api-id = net.vpc.app.nuts:nuts#0.5.7
nuts-runtime-id = net.vpc.app.nuts:nuts-core#0.5.7.0
nuts-runtime-path = ~/.cache/nuts/default-workspace/boot/net/vpc/app/nuts/nuts-core/0.5.7.0/nuts-core-0.5.7.0.jar;~/.cache/nuts/default-workspace/boot/net/vpc/app/nuts/nuts/0.5.7/nuts-0.5.7.jar;~/.cache/nuts/default-workspace/boot/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar;~/.cache/nuts/default-workspace/boot/org/fusesource/jansi/jansi/1.17.1/jansi-1.17.1.jar
nuts-workspace-id = 99b73002-804d-4e4c-9a13-f57ac1f40b3d
nuts-store-layout = linux
nuts-store-strategy = exploded
nuts-repo-store-strategy = exploded
nuts-global = false
nuts-workspace = ~/.config/nuts/default-workspace
nuts-workspace-apps = ~/.local/share/nuts/apps/default-workspace
nuts-workspace-config = ~/.config/nuts/default-workspace/config
nuts-workspace-var = ~/.local/share/nuts/var/default-workspace
nuts-workspace-log = ~/.local/log/nuts/default-workspace
nuts-workspace-temp = ~/nuts/default-workspace
nuts-workspace-cache = ~/.cache/nuts/default-workspace
nuts-workspace-lib = ~/.local/share/nuts/lib/default-workspace
nuts-workspace-run = /run/user/1000/nuts/default-workspace
nuts-open-mode = open-or-create
nuts-secure = false
nuts-gui = false
nuts-inherited = false
nuts-recover = false
nuts-reset = false
nuts-debug = false
nuts-trace = true
nuts-read-only = false
nuts-skip-companions = false
nuts-skip-welcome = false
java-version = 1.8.0_222
platform = java#1.8.0_222
java-home = /usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre
java-executable = /usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre/bin/java
java-classpath = ~/.m2/repository/net/vpc/app/nuts/nuts/0.5.7/nuts-0.5.7.jar
java-library-path = /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
os-name = linux#4.12.14-lp151.28.13-default
os-family = linux
os-dist = opensuse-leap#15.1
os-arch = x86_64
user-name = me
user-home = /home/me
user-dir = /home/me
command-line-long = --color=system --trace --open-or-create --exec info
command-line-short = -t info
inherited = false
inherited-nuts-boot-args =
inherited-nuts-args =
creation-started = 2019-08-26 00:02:10.903
creation-finished = 2019-08-26 00:02:11.223
creation-within = 320ms
repositories-count = 5
- - + + diff --git a/docs/docs/cmd/install-cmd/index.html b/docs/docs/cmd/install-cmd/index.html index dfffcf80d..024c905a1 100644 --- a/docs/docs/cmd/install-cmd/index.html +++ b/docs/docs/cmd/install-cmd/index.html @@ -6,8 +6,8 @@ Install Command | Nuts, the Java Package Manager - - + + @@ -23,8 +23,8 @@ to install an application just type

nuts install <your-artifact-query-here>

For example

nuts install net.vpc.app:netbeans-launcher#1.2.2

you may use any artifact query (see search command section) to install a command.

nuts install net.vpc.app:netbeans-*

if the artifact is already installed, you should use the force flag (--force)

nuts install net.vpc.app:netbeans-launcher#1.2.2
#this second time we have to force install
nuts install -- force net.vpc.app:netbeans-launcher#1.2.2

One exception is when you want to switch between multiple versions installed to set the default one, you can omit the --force flag. Actually, when multiple version of the same artifact are installed all of them are executable directly by specifying the right version. When you specify no version, the default one is selected for you. And to make is simple, the default one is the last one you ran an install command for it.

me@linux:~> nuts install net.vpc.app:netbeans-launcher#1.2.2
me@linux:~> nuts netbeans-launcher
1.2.2
me@linux:~> nuts install net.vpc.app:netbeans-launcher#1.2.1
me@linux:~> nuts netbeans-launcher
1.2.1
me@linux:~> nuts install net.vpc.app:netbeans-launcher#1.2.2
1.2.2

You can find all installed artifacts using 'nuts search --installed' command

Purpose

The install command is used to install or reinstall packages.

  • A+B : read A main package and B dependencies
  • A+B? : ask, if confirmed, read A main package and B dependencies.
  • require : deploy package as 'required'
  • install : deploy package as 'installed'
  • nothing : do nothing

The available strategies are

  • require : install the package and all of its dependencies as required class installed package
  • install : install the package and all of its dependencies as first class installed package
  • reinstall : re-install or re-required the package and all of its dependencies
  • repair : repair (re-install or re-required) the given dependency

"required class installed package" can be removed (uninstalled automatically by nuts when none of the depending package is nomore installed.

Status/Strategy -> StatusREQUIREINSTALLREINSTALLREPAIR
NOT_INSTALLEDREQUIREDINSTALLEDINSTALLED?ERROR
INSTALLEDINSTALLED REQUIREDINSTALLED?INSTALLEDINSTALLED
INSTALLED REQUIREDINSTALLED REQUIREDINSTALLED REQUIREDINSTALLED REQUIREDINSTALLED REQUIRED
REQUIREDREQUIREDINSTALLED REQUIREDREQUIREDREQUIRED
INSTALLED OBSOLETEINSTALLED REQUIRED OBSOLETEINSTALLEDINSTALLEDINSTALLED
INSTALLED REQUIRED OBSOLETEINSTALLED REQUIREDINSTALLED REQUIREDINSTALLED REQUIREDINSTALLED REQUIRED
REQUIRED OBSOLETEREQUIRED OBSOLETEINSTALLED REQUIREDREQUIREDREQUIRED
Status/Strategy -> actionREQUIREINSTALLREINSTALLREPAIR
NOT_INSTALLEDrequire+requireinstall+requireinstall+require?error
INSTALLEDnothing+nothinginstall+require?install+requireinstall+nothing
INSTALLED REQUIREDnothing+nothinginstall+require?install+requireinstall+nothing
REQUIREDnothing+nothinginstall+nothingrequire+requirerequire+nothing
INSTALLED OBSOLETEinstall+requireinstall+requireinstall+requireinstall+nothing
INSTALLED REQUIRED OBSOLETEinstall+requireinstall+requireinstall+requireinstall+nothing
REQUIRED OBSOLETErequire+requireinstall+requirerequire+requirerequire+nothing
- - + + diff --git a/docs/docs/cmd/license-cmd/index.html b/docs/docs/cmd/license-cmd/index.html index 57ea0b242..d94b10cce 100644 --- a/docs/docs/cmd/license-cmd/index.html +++ b/docs/docs/cmd/license-cmd/index.html @@ -6,8 +6,8 @@ License Command | Nuts, the Java Package Manager - - + + @@ -24,8 +24,8 @@
Is a new Open Source Package Manager to help install packages
and libraries for runtime execution. Nuts is the ultimate companion for
maven (and other build managers) as it helps installing all package
dependencies at runtime. Nuts is not tied to java and is a good choice
to share shell scripts and other 'Things' . It is based on an extensible
architecture to help supporting a large range of sub managers / repositories.
Copyright (C) 2016-2019 Taha BEN SALAH
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
- - + + diff --git a/docs/docs/cmd/search-cmds/index.html b/docs/docs/cmd/search-cmds/index.html index cee373ef4..9ff5390e0 100644 --- a/docs/docs/cmd/search-cmds/index.html +++ b/docs/docs/cmd/search-cmds/index.html @@ -6,8 +6,8 @@ Search Command | Nuts, the Java Package Manager - - + + @@ -30,8 +30,8 @@
# all netbeans launcher version that are greater than 1.2.0 (including 1.2.0)
# nuts search netbeans-launcher#[1.2.0,[

You can then use the these flags to tighten your search :

  • --installed (or -i) : search only for installed artifacts
  • --local : search only for fetched artifacts
  • --remote : search only for non fetched artifacts
  • --online : search in installed then in local then in remote, stop when you first find a result.
  • --anywhere (or -a) : search in installed and local and remote, return all results.

You can also change the output layout using --long (or -l) flag

me@linux:~> nuts search -i -l
I-X 2019-08-26 09:53:53.141 anonymous vpc-public-maven net.vpc.app:netbeans-launcher#1.2.1
IcX 2019-08-24 11:05:49.591 admin maven-local net.vpc.app.nuts.toolbox:nsh#0.5.7.0
IcX 2019-08-24 11:05:58.143 admin maven-local net.vpc.app.nuts.toolbox:ndi#0.5.7.0
IcX 2019-08-24 11:05:49.927 admin maven-local net.vpc.app.nuts.toolbox:nadmin#0.5.7.0
I-x 2019-08-26 09:50:03.423 anonymous vpc-public-maven net.vpc.app:kifkif#1.3.3

you can even change the output format

me@linux:~> nuts search -i -l --json
[
{
"id": "vpc-public-maven://net.vpc.app:netbeans-launcher#1.2.1",
"descriptor": {
"id": "net.vpc.app:netbeans-launcher#1.2.1",
"parents": [],
"packaging": "jar",
"executable": true,
...
}
}
]

Indeed, all of nuts commands support the following formats : plain, json, xml, table and tree because nuts adds support to multi format output by default. You can switch to any of them for any command by adding the right option in nuts (typically --plain, --json, --xml, --table and --tree). I know this is awesome!.

search is a very versatile command, you are welcome to run "nuts search --help" to get more information.

- - + + diff --git a/docs/docs/cmd/version-cmd/index.html b/docs/docs/cmd/version-cmd/index.html index a44c34284..9c608b126 100644 --- a/docs/docs/cmd/version-cmd/index.html +++ b/docs/docs/cmd/version-cmd/index.html @@ -6,8 +6,8 @@ Version Command | Nuts, the Java Package Manager - - + + @@ -22,8 +22,8 @@

Version Command

This command will show nuts version. It is helpful to note that nuts has a couple of components : api and impl. api is the nuts bootstrap jar (actually nuts-*.jar, <300Ko of size) that contains only the minimum code to use nuts and to download the full implementation (1.5Mo of size) : impl component. Usually, the implementation version starts with the api version but this should be no rule.

me@linux:~> nuts version
0.5.7/0.5.7.0

Here the version command show api version (0.5.7) and the impl version (0.5.7.0)

- - + + diff --git a/docs/docs/cmd/welcome-cmd/index.html b/docs/docs/cmd/welcome-cmd/index.html index ee76df7cb..08900f089 100644 --- a/docs/docs/cmd/welcome-cmd/index.html +++ b/docs/docs/cmd/welcome-cmd/index.html @@ -6,8 +6,8 @@ Welcome Command | Nuts, the Java Package Manager - - + + @@ -24,8 +24,8 @@
SYNOPSIS:
nuts [<options>]... <command> <args> ...
For Help, type nuts help
- - + + diff --git a/docs/docs/concepts/NutsConcepts/index.html b/docs/docs/concepts/NutsConcepts/index.html index 2be6cd769..13a544d9f 100644 --- a/docs/docs/concepts/NutsConcepts/index.html +++ b/docs/docs/concepts/NutsConcepts/index.html @@ -6,8 +6,8 @@ Nuts Concepts | Nuts, the Java Package Manager - - + + @@ -22,8 +22,8 @@

Nuts Concepts

Nuts Concepts

nuts introduces a set of unique concepts that are important to leverage. These concepts are mainly introduced for portability and repeatability.

- - + + diff --git a/docs/docs/concepts/aliases/index.html b/docs/docs/concepts/aliases/index.html index 64ae90d9f..da09cfb4f 100644 --- a/docs/docs/concepts/aliases/index.html +++ b/docs/docs/concepts/aliases/index.html @@ -6,8 +6,8 @@ Aliases, Imports & Launchers | Nuts, the Java Package Manager - - + + @@ -23,8 +23,8 @@ import 'com.my-company' and as a result any artifact under 'com.mycompany' is resolved automatically. Actually 'com.my-company:my-app' and 'com.my-company.my-app:my-app' are

nuts net.thevpc.toolbox.nsh:nsh#0.8.3.0
# becomes
nuts settings add import net.thevpc.toolbox
# now call it simply with
nuts nsh#0.8.3.0
# or even simpler with
nuts nsh

As a matter of fact, there are a couple of imports automatically defined 'net.thevpc' and 'net.thevpc.toolbox'

Aliases

Aliases help you define your own command by calling existing artifacts and defining some arguments as well. It is very similar to shell aliases where you define ll as an alias to /bin/ls -l for example.

nuts net.thevpc.toolbox.nsh:nsh#0.8.3.0
# becomes
nuts settings add alias ll='net.thevpc.toolbox.nsh:nsh#0.8.3.0 -c ls -l'
# now call it simply with
nuts ll

Launchers

Launchers help you define your own system command by calling nuts with existing artifacts and even creating Desktop Environment Shortcuts and Icons (whenever GUI is applicable).

nuts net.thevpc.toolbox.nsh:nsh#0.8.3.0
# becomes
nuts settings add launcher --menu --desktop 'net.thevpc.toolbox.nsh:nsh#0.8.3.0'
# now call it simply click on the desktop icon or open via system menu
- - + + diff --git a/docs/docs/concepts/automation/index.html b/docs/docs/concepts/automation/index.html index 637db96dc..f35e7a0ea 100644 --- a/docs/docs/concepts/automation/index.html +++ b/docs/docs/concepts/automation/index.html @@ -6,8 +6,8 @@ Automation | Nuts, the Java Package Manager - - + + @@ -26,8 +26,8 @@ Think of this as a general pattern for any and all commands you can run via nuts.

Besides, automation includes dynamic classloading of on-the-fly dependencies (remotely resolved and downloaded) to make usage of a feature you need such as installing a tomcat version that is compatible with the jre version you run.

Automation requires also partitioning, isolation, sand-boxing, security reinforcements and portability. This is ensured by workspace feature that helps isolating the application dependencies from other applications, authentication and authorisation mechanisms to limit access to nuts configurations (and hence available repositories used for dependency resolution) and to system resources (running with or without elevated privileges) and finally environment adaptability to handle appropriate support for each architecture (x86_32,itanium_64,...), operating system (linux, windows,...), shell (bash, zsh,...), platform (java, dotnet, ...) and desktop environment.

Install Automation

TODO...

Structured Output

TODO...

Environment Sensitive

TODO...

Multi Platform

TODO...

Workspace Isolation

TODO...

Security Mechanisms

TODO...

- - + + diff --git a/docs/docs/concepts/commandline/index.html b/docs/docs/concepts/commandline/index.html index 7fc00a37d..e0a1d181f 100644 --- a/docs/docs/concepts/commandline/index.html +++ b/docs/docs/concepts/commandline/index.html @@ -6,8 +6,8 @@ Command Line Arguments | Nuts, the Java Package Manager - - + + @@ -25,8 +25,8 @@ Hence, "--skip-companions=false", "--!skip-companions" and "--~skip-companions" are all equivalent.

Combo Simple Options

Simple options can be grouped in a single word. "-ls" is equivalent to "-l -s". So one should be careful. One exception though. For portability reasons, "-version" is considered a single short option.

Ignoring Options, Comments

Options starting with "-//" and "--//" are simply ignored by the command line parser.

Nuts Option Types

Options in nuts are regrouped in multiple categories. An option can belong to multiple categories though.

  • Create Options : such options are only relevant when creating a new workspace. They define the configuration of the workspace to create. They will be ignored when the workspace already exists. Examples include

    • --skip-companions
    • --archetype
    • --store-strategy
    • --standalone
  • Open Options : such options are relevant when creating a new workspace or when opening an existing workspace. They define the way commands are executed. Examples include

    • --workspace
    • --bot
    • --reset
  • Exported Options : are passed to sub-nuts-processes that will be created by nuts. For instance when nuts will call the nsh command it will spawn a new process. In such case, these options are passed to the sub-process as environment variable.

    • --workspace
    • --bot
    • --no-color
  • Application Options : are options that are by default supported by Applications using NAF (Nuts Application Framework) (as well as Nuts it self).

    • --help
    • --version

all nuts options are described in the command help. Just type :

nuts --help
- - + + diff --git a/docs/docs/concepts/doc1/index.html b/docs/docs/concepts/doc1/index.html index 8311b0cae..4c05e4322 100644 --- a/docs/docs/concepts/doc1/index.html +++ b/docs/docs/concepts/doc1/index.html @@ -6,8 +6,8 @@ Nuts Text Format | Nuts, the Java Package Manager - - + + @@ -25,8 +25,8 @@ see nuts API documentation). NTF will be translated to the underlying terminal implementation using ANSI escape code on linux/windows terminals if available.

Here after a showcase of available NTF syntax.

text-coloring-format

text-coloring-format

text-coloring-format

text-coloring-format

- - + + diff --git a/docs/docs/concepts/filesystem/index.html b/docs/docs/concepts/filesystem/index.html index 6075797b9..d3aff8ff8 100644 --- a/docs/docs/concepts/filesystem/index.html +++ b/docs/docs/concepts/filesystem/index.html @@ -6,8 +6,8 @@ File system | Nuts, the Java Package Manager - - + + @@ -23,8 +23,8 @@ nuts File System defines the following folders :

  • config : defines the base directory relative to which application specific configuration files should be stored.
  • apps : defines the base directory relative to which application executable binaries should be stored
  • lib : defines the base directory relative to which application non executable binaries should be stored
  • var : defines the base directory relative to which application specific data files (other than config) should be stored
  • log : defines the base directory relative to which application specific log and trace files should be stored
  • temp : defines the base directory relative to which application specific temporary files should be stored
  • cache : defines the base directory relative to which application non-essential data and binary files should be stored to optimize bandwidth or performance
  • run : defines the base directory relative to which application-specific non-essential runtime files and other file objects (such as sockets, named pipes, ...) should be stored

nuts defines such distinct folders (named Store Locations) for storing different types of application data according to your operating system.

On Windows Systems the default locations are :

* apps : "$HOME/AppData/Roaming/nuts/apps"
* lib : "$HOME/AppData/Roaming/nuts/lib"
* config : "$HOME/AppData/Roaming/nuts/config"
* var : "$HOME/AppData/Roaming/nuts/var"
* log : "$HOME/AppData/Roaming/nuts/log"
* temp : "$HOME/AppData/Local/nuts/temp"
* cache : "$HOME/AppData/Local/nuts/cache"
* run : "$HOME/AppData/Local/nuts/run"

On Linux, Unix, MacOS and any POSIX System the default locations are :

* config : "$HOME/.config/nuts"
* apps : "$HOME/.local/share/nuts/apps"
* lib : "$HOME/.local/share/nuts/lib"
* var : "$HOME/.local/share/nuts/var"
* log : "$HOME/.local/log/nuts"
* cache : "$HOME/.cache/nuts"
* temp : "$java.io.tmpdir/$username/nuts"
* run : "/run/user/$USER_ID/nuts"

As an example, the configuration folder for the artifact net.vpc.app:netbeans-launcher#1.2.4 in the default workspace in a Linux environment is

home/me/.config/nuts/default-workspace/config/id/net/vpc/app/netbeans-launcher/1.2.4/

And the log file "app.log" for the same artifact in the workspace named "personal" in a Windows environment is located at

C:/Users/me/AppData/Roaming/nuts/log/nuts/personal/config/id/net/vpc/app/netbeans-launcher/1.2.4/app.log

Store Location Strategies

When you install any application using the nuts command a set of specific folders for the presented Store Locations are created. For that, two strategies exist : Exploded strategy (the default) and Standalone strategy.

In Exploded strategy nuts defines top level folders (in linux ~/.config for config Store Location etc), and then creates withing each top level Store Location a sub folder for the given application (or application version to be more specific). This helps putting all your config files in a SSD partition for instance and make nuts run faster. However if you are interested in the backup or roaming of your workspace, this may be not the best approach.

The Standalone strategy is indeed provided mainly for Roaming workspaces that can be shared, copied, moved to other locations. A single root folder will contain all of the Store Locations.

As an example, in "Standalone Strategy", the configuration folder for the artifact net.vpc.app:netbeans-launcher#1.2.4 in the default workspace in a Linux environment is

home/me/.config/nuts/default-workspace/config/id/net/vpc/app/netbeans-launcher/1.2.4/

And the log file "app.log" for the same artifact in the workspace named "personal" in the same Linux environment is located at

/home/me/.config/nuts/default-workspace/log/id/net/vpc/app/netbeans-launcher/1.2.4/

You can see here that the following folder will contain ALL the data files of the workspace.

/home/me/.config/nuts/default-workspace

whereas in the Exploded strategy the Store Location are "exploded" into multiple root folders.

Custom Store Locations

Of course, you are able to configure separately each Store Location to meet your needs.

Selecting strategies

The following command will create an exploded workspace

nuts -w my-workspace --exploded

The following command will create a standalone workspace

nuts -w my-workspace --standalone

Finer Customization

The following command will create an exploded workspace and moves all config files to the SSD partition folder /myssd/myconfig

nuts -w my-workspace --system-config-home=/myssd/myconfig

You can type help for more details.

nuts help
- - + + diff --git a/docs/docs/contributing/NutsContributing/index.html b/docs/docs/contributing/NutsContributing/index.html index 7e0fc45e1..c86997202 100644 --- a/docs/docs/contributing/NutsContributing/index.html +++ b/docs/docs/contributing/NutsContributing/index.html @@ -6,8 +6,8 @@ Contributing | Nuts, the Java Package Manager - - + + @@ -22,8 +22,8 @@

Contributing

Contributing

This section is reserved to developers and content authors who want to know the internal of nuts package manager and/or are tempted to contribute to the project.

- - + + diff --git a/docs/docs/contributing/building/index.html b/docs/docs/contributing/building/index.html index dc2136081..fc21d4287 100644 --- a/docs/docs/contributing/building/index.html +++ b/docs/docs/contributing/building/index.html @@ -6,8 +6,8 @@ Building | Nuts, the Java Package Manager - - + + @@ -23,8 +23,8 @@ To do so we will need to install locally nuts and nsh and run a In the root directory issue the following command

./nuts-build-website
- - + + diff --git a/docs/docs/contributing/projects/index.html b/docs/docs/contributing/projects/index.html index 3a2b1871f..08b371d68 100644 --- a/docs/docs/contributing/projects/index.html +++ b/docs/docs/contributing/projects/index.html @@ -6,8 +6,8 @@ Repository Structure | Nuts, the Java Package Manager - - + + @@ -43,8 +43,8 @@ All you have to do is to add this library to your application and configure your pom.xml accordingly.

nlib-servlet

Basically this is the simplest way to include nserver into your web application.

nlib-template

This library provides helper methods to manipulate maven pom.xml and generate simple Java files while supporting nuts concepts. It is used in other tools that are meant to generate maven projects.

nlib-talkagent

This library provides support for client to client communication

Extensions

Extensions provide extra feature to nuts.

next-term

This library provides rich terminal support (auto-complete, history) based on the JLine library

Other Projects

Other projects you may encounter in the repository are WIP projects that may be continued or discontinued. This includes : nutsc (a native c bootstrapper) and nuts-installer (a nuts installer tool)

Honorable mentions

Although not included in this Git repository some other tools are based on nuts and hence are installable using nuts install the-app command. Those tools are published in other repositories.

netbeans-launcher

this tool supports installation and launch of multiple netbeans instances in parallel. See Netbeans Launcher GitHub Repository

pnote

this tool is a multi purpose, developer oriented, Note taking application. See Pangaea Note

upa-box

this tool supports creation of UPA aware projects. UPA is a non structured ORM for the Java Language. See Netbeans Launcher GitHub Repository

vr-box

this tool supports creation of VR aware projects. VR is a web portal framework. See Netbeans Launcher GitHub Repository

- - + + diff --git a/docs/docs/dev/ApplicationFramework/index.html b/docs/docs/dev/ApplicationFramework/index.html index efed87f94..c72d213ca 100644 --- a/docs/docs/dev/ApplicationFramework/index.html +++ b/docs/docs/dev/ApplicationFramework/index.html @@ -6,8 +6,8 @@ Application Framework | Nuts, the Java Package Manager - - + + @@ -21,8 +21,8 @@

Application Framework

nuts is a package manager that can be embedded in your application and hence present a solid Application Framework and tooling to make the applicable more robust and more portable.

- - + + diff --git a/docs/docs/dev/nutsApp/index.html b/docs/docs/dev/nutsApp/index.html index 19adf5f95..abebbf97b 100644 --- a/docs/docs/dev/nutsApp/index.html +++ b/docs/docs/dev/nutsApp/index.html @@ -6,8 +6,8 @@ Your first Application using nuts | Nuts, the Java Package Manager - - + + @@ -52,8 +52,8 @@
@Override
public void onUpdateApplication(NutsApplicationContext applicationContext) {
NutsSession s = applicationContext.getSession();
s.out().printf("we are updating My Application : %s%n", applicationContext.getId());
}
}

Now we can install or uninstall the application and see the expected messages.

nuts -y install com.mycompany.app:my-app
nuts -y uninstall com.mycompany.app:my-app
- - + + diff --git a/docs/docs/dev/nutsPath/index.html b/docs/docs/dev/nutsPath/index.html index 443871862..e0c31e05b 100644 --- a/docs/docs/dev/nutsPath/index.html +++ b/docs/docs/dev/nutsPath/index.html @@ -6,8 +6,8 @@ Nuts Path | Nuts, the Java Package Manager - - + + @@ -21,8 +21,8 @@

Nuts Path

nuts introduces a concept very similar to java's URL but with better extension builtin mechanisms and helper methods : NutsPath

supported formats/protocols are:

  • file format /path/to/to/resource or c:\\path\\to\\resource
  • file URL file:/path/to/to/resource or file:c:/path/to/resource
  • http/https URLs (or any other Java supported URL) http://some-url or https://some-url
  • classpath classpath:/path/to/to/resource (you must provide the used classpath upon creation)
  • resource Path nuts-resource://groupId1:artifactId1#version1;groupId2:artifactId2#version2;/path/to/resource or nuts-resource://(groupId1:artifactId1#version1;groupId2:artifactId2#version2)/path/to/resource in that case the resource is lookup in any of the artifact classpaths (including dependencies)
- - + + diff --git a/docs/docs/dev/nutsStream/index.html b/docs/docs/dev/nutsStream/index.html index 9684776ff..daca7f231 100644 --- a/docs/docs/dev/nutsStream/index.html +++ b/docs/docs/dev/nutsStream/index.html @@ -6,8 +6,8 @@ Nuts Stream | Nuts, the Java Package Manager - - + + @@ -21,8 +21,8 @@ - - + + diff --git a/docs/docs/index.html b/docs/docs/index.html index c378bc207..00276695e 100644 --- a/docs/docs/index.html +++ b/docs/docs/index.html @@ -6,8 +6,8 @@ Introduction | Nuts, the Java Package Manager - - + + @@ -27,8 +27,8 @@ same artifact to be installed. nuts is not exclusive for Java/Scala/Kotlin and other Java Platform Languages, by design it supports multiple artifact formats other than jars and wars and is able to select the appropriate artifacts and dependencies according to the current OS, architecture and even Desktop Environment.

nuts common verbs are:

  • exec : execute an artifact or a command
  • which : detect the proper artifact or system command to execute
  • install, uninstall : install/uninstall an artifact (using its fetched/deployed installer)
  • update,check-updates : search for updates
  • deploy, undeploy : manage artifacts (artifact installers) on the local repositories
  • fetch, push : download from, upload to remote repositories
  • search : search for existing/installable artifacts
  • welcome : a command that does nothing but bootstrapping nuts and showing a welcome message.
- - + + diff --git a/docs/docs/info/GettingStarted/index.html b/docs/docs/info/GettingStarted/index.html index d6eadec11..bf2de6f0a 100644 --- a/docs/docs/info/GettingStarted/index.html +++ b/docs/docs/info/GettingStarted/index.html @@ -6,8 +6,8 @@ Getting Started | Nuts, the Java Package Manager - - + + @@ -21,8 +21,8 @@

Getting Started

In this section we will consider the simplest usage of nuts package manager.

- - + + diff --git a/docs/docs/info/faq/index.html b/docs/docs/info/faq/index.html index b3b410556..ee8e8e113 100644 --- a/docs/docs/info/faq/index.html +++ b/docs/docs/info/faq/index.html @@ -6,8 +6,8 @@ Frequently Asked Questions | Nuts, the Java Package Manager - - + + @@ -38,8 +38,8 @@ Indeed, implementing your application using NAF will provide you a clean way to :

  • seamless integration with nuts and all other NAF applications (obviously!)

  • support standard file system layout (XDG) where config files and log files are not necessarily in the same folder see Nuts File System for more details.

  • support application life cycle events (onInstall, onUninstall, onUpdate),

  • standard support of command line arguments

  • dynamic dependency aware class loading

  • terminal coloring, and terminal components (progress bar, etc...)

  • json, yaml, xml, table, tree and plain format support out of the box as output to all your commands

  • pipe manipulation when calling sub processes

  • advanced io features (persistence Locks, monitored downloads, compression, file hashing....)

  • standard ways to support and use installed platforms (installed JRE, JDK, ...)

  • and lots more...

Can I use NAF for non terminal applications, Swing or JavaFX perhaps

Sure, you will be able to benefit of all the items in the preceding question but terminal coloring wont be relevant of course. Check netbeans-launcher in github. It's a good example of how interesting is to use NAF in non terminal applications.

What is the License used in Nuts

nuts is published under Licensed under the Apache License, Version 2.0.

- - + + diff --git a/docs/docs/info/running/index.html b/docs/docs/info/running/index.html index f681c5eb6..748ad7342 100644 --- a/docs/docs/info/running/index.html +++ b/docs/docs/info/running/index.html @@ -6,8 +6,8 @@ Running Nuts | Nuts, the Java Package Manager - - + + @@ -34,8 +34,8 @@ If more than one class is detected with a main method, nuts will ask for the current class to run.

When you run a local file, nuts will behave as if the app is installed (in the given path, an no need to invoke install command). Local files are detected if they are denoted by a valid path (containing '/' or '\' depending on the underlying operating system). Dependencies will be downloaded as well (and cached in the workspace)

nuts ./my-app.jar some-argument-of-my-app

If you need to pass JVM arguments you have to prefix them with "--exec". So if you want to fix maximum heap size use

nuts --exec -Xms1G -Xmx2G ./my-app.jar argument-1 argument-2
- - + + diff --git a/docs/docs/info/troubleshooting/index.html b/docs/docs/info/troubleshooting/index.html index 349c9bc34..691f13d4b 100644 --- a/docs/docs/info/troubleshooting/index.html +++ b/docs/docs/info/troubleshooting/index.html @@ -6,8 +6,8 @@ Troubleshooting | Nuts, the Java Package Manager - - + + @@ -30,8 +30,8 @@ invoke it unless you are really knowing what you are doing. To run nuts in kill mode type :

To run nuts in kill mode type :

nuts -ZQ

After invoking reset mode

After invoking reset mode, nuts shell launchers (installed by nuts settings) will not be available anymore. PATH environment will point (temporarily) to a non existing folder. You should use the jar based invocation at least once to reinstall these commands.

java -jar nuts-0.5.7.jar
- - + + diff --git a/docs/docs/intro/Introduction/index.html b/docs/docs/intro/Introduction/index.html index ad839ac35..64729b0f5 100644 --- a/docs/docs/intro/Introduction/index.html +++ b/docs/docs/intro/Introduction/index.html @@ -6,8 +6,8 @@ Introduction | Nuts, the Java Package Manager - - + + @@ -22,8 +22,8 @@

Introduction

nuts is a package manager for the Java Platform. Basically, it is what npm is for Javascript and pip for Python. However, nuts presents several concepts that make it suitable for other technologies as well.

- - + + diff --git a/docs/docs/intro/changelog/index.html b/docs/docs/intro/changelog/index.html index 768f8d1de..67fb46b96 100644 --- a/docs/docs/intro/changelog/index.html +++ b/docs/docs/intro/changelog/index.html @@ -6,8 +6,8 @@ Change Log | Nuts, the Java Package Manager - - + + @@ -15,12 +15,12 @@ - +

Change Log

View Official releases here : -Starred releases are most stable ones.

nuts 0.8.3.0 (DEVELOPMENT VERSION)

  • 2021/XX/XX nuts 0.8.3.0 (*) not released yet download nuts-0.8.3.jar
  • WARNING : {api} API has evolved with incompatibilities with previous versions
  • ADDED : {api} added 'NutsPath.isDirectory' and 'NutsPath.isRegularFile'
  • CHANGED : {api} NutsResultList renamed to NutsStream and revamped with handy stream features and added ws.util.streamOf(...)
  • CHANGED : {api} ws.io.expandPath replaced by NutsPath.builder.setExpanded(true)
  • REMOVED : {api} removed deprecated ClassifierMapping
  • REMOVED : {api} removed NutsTokenFilter (little to no interest)
  • REMOVED : {api} removed deprecated feature inheritedLog
  • ADDED : {api} NutsVal, a simple wrapper for strings and objects with helpful converters used in args, env, options and properties.
  • CHANGED : {api} changed descriptor to add maven profiles support, mainly added platform for dependency and added os/platform etc to property
  • ADDED : {api} added NutsShellFamily to support bash, csh, and other shell families
  • ADDED : {pom } add Manifest Entry 'Automatic-Module-Name' in all projects to support j9+ module technology
  • FIXED : {impl} NutsFormat now creates any missing parent folder when calling print(Path/File) or println(Path/File)

nuts 0.8.2.0 (PUBLISHED VERSION)

  • 2021/09/04 nuts 0.8.2.0 (*) released download nuts-0.8.2.jar
  • WARNING: API has evolved with multiple incompatibilities with previous versions
  • FIXED: Fixed problem that requires reinstalling nuts each time we have a new version
  • FIXED: Fixed some Documentation issues (still fixing)

nuts 0.8.1.0 (PUBLISHED VERSION)

  • 2021/08/24 nuts 0.8.1.0 (*) released download nuts-0.8.1.jar
  • WARNING: API has evolved with multiple incompatibilities with previous versions
  • ADDED: {api} added static methods of() in interfaces to simplify instantiation
  • ADDED: {api} parseLenient to all NutsEnum classes
  • CHANGED: {nadmin} removed nadmin and merged into runtime (tight coupling!!)
  • REMOVED: {api} removed session.formatObject() as the session is now propagated silently
  • CHANGED: {api} removed NutsApplicationLifeCycle and replaced with NutsApplication (an interface instead of a class)
  • ADDED : {api} added support for parsing pom.xml (MAVEN) along with *.nuts (nuts descriptors)
  • ADDED : {api} added io killProcess support
  • CHANGED: {api} added path API, implemented via nlib-ssh to add ssh support for paths
  • CHANGED: {all} remove dependencies, runtime has no dependencies, and others have the bare minimum
  • CHANGED: {api} session is from now on mandatory to perform any operation. A simple way to make it simple to use is to get a "session aware" workspace with session.getWorkspace()
  • ADDED : {api} added support for Yaml with minimal implementation
  • ADDED : {api} element now supports complex keys in Map Entries (Objects)
  • ADDED : {api}{cmdline} added support for History and implemented in JLine extension
  • ADDED : {api}{cmdline} added support for readline syntax coloring (using jline)
  • ADDED : {api}{cmdline} added --locale option to support multi languages. The option is reflected to Session as well
  • ADDED : {api}{cmdline} added ---key=value options to support extra properties
  • ADDED : {api}{cmdline} added -S short option, equivalent to --standalone
  • ADDED : {api}{cmdline} added NutsFormattedMessage to support formatted messages in a uniform manner (C-style, {} positional)
  • CHANGED: {api}{cmdline} both list and tree dependencies are now accessible as NutsDependencies
  • ADDED : {runtime} added support to community maven repositories : jcenter, jboss, spring, clojars, atlassian, atlassian-snapshot, google, oracle +Starred releases are most stable ones.

    nuts 0.8.3.0 (DEVELOPMENT VERSION)

    • 2021/XX/XX nuts 0.8.3.0 (*) not released yet download nuts-0.8.3.jar
    • WARNING : {api} API has evolved with incompatibilities with previous versions
    • ADDED : {api} added NutsIOCopyAction.setSource(byte[]) and NutsIOHashAction.setSource(byte[])
    • ADDED : {api} removed NutsId.compatFilter and NutsVersion.compatFilter and replaced by compatNewer/compatOlder
    • ADDED : {api} replaced string messages with NutsMessage in NutsLogger
    • ADDED : {api} removed 'NutsInput' and 'NutsOutput'
    • ADDED : {api} removed 'NutsCommandlineFamily' and replaced by 'NutsShellFamily'
    • ADDED : {api} added 'NutsBootTerminal' to help nuts bootstrap using custom stdin/out end err
    • CHANGED : {api} added 'NutsHomeLocation' to replace compound key NutsOSFamily and NutsStoreLocation
    • ADDED : {api} added 'NutsPath.isDirectory' and 'NutsPath.isRegularFile'
    • CHANGED : {api} removed commandline options '-C' and '--no-color', you can use '--!color' instead
    • CHANGED : {api} removed commandline options '--no-switch' and '--no-progress', you can use '--!switch' and '--!progress' instead
    • CHANGED : {api} NutsResultList renamed to NutsStream and revamped with handy stream features and added ws.util.streamOf(...)
    • CHANGED : {api} ws.io.expandPath replaced by NutsPath.builder.setExpanded(true)
    • REMOVED : {api} removed deprecated ClassifierMapping
    • REMOVED : {api} removed NutsTokenFilter (little to no interest)
    • REMOVED : {api} removed deprecated feature inheritedLog
    • ADDED : {api} NutsVal, a simple wrapper for strings and objects with helpful converters used in args, env, options and properties.
    • CHANGED : {api} changed descriptor to add maven profiles support, mainly added platform for dependency and added os/platform etc to property
    • ADDED : {api} added NutsShellFamily to support bash, csh, and other shell families
    • ADDED : {pom } add Manifest Entry 'Automatic-Module-Name' in all projects to support j9+ module technology
    • FIXED : {impl} NutsFormat now creates any missing parent folder when calling print(Path/File) or println(Path/File)

    nuts 0.8.2.0 (PUBLISHED VERSION)

    • 2021/09/04 nuts 0.8.2.0 (*) released download nuts-0.8.2.jar
    • WARNING: API has evolved with multiple incompatibilities with previous versions
    • FIXED: Fixed problem that requires reinstalling nuts each time we have a new version
    • FIXED: Fixed some Documentation issues (still fixing)

    nuts 0.8.1.0 (PUBLISHED VERSION)

    • 2021/08/24 nuts 0.8.1.0 (*) released download nuts-0.8.1.jar
    • WARNING: API has evolved with multiple incompatibilities with previous versions
    • ADDED: {api} added static methods of() in interfaces to simplify instantiation
    • ADDED: {api} parseLenient to all NutsEnum classes
    • CHANGED: {nadmin} removed nadmin and merged into runtime (tight coupling!!)
    • REMOVED: {api} removed session.formatObject() as the session is now propagated silently
    • CHANGED: {api} removed NutsApplicationLifeCycle and replaced with NutsApplication (an interface instead of a class)
    • ADDED : {api} added support for parsing pom.xml (MAVEN) along with *.nuts (nuts descriptors)
    • ADDED : {api} added io killProcess support
    • CHANGED: {api} added path API, implemented via nlib-ssh to add ssh support for paths
    • CHANGED: {all} remove dependencies, runtime has no dependencies, and others have the bare minimum
    • CHANGED: {api} session is from now on mandatory to perform any operation. A simple way to make it simple to use is to get a "session aware" workspace with session.getWorkspace()
    • ADDED : {api} added support for Yaml with minimal implementation
    • ADDED : {api} element now supports complex keys in Map Entries (Objects)
    • ADDED : {api}{cmdline} added support for History and implemented in JLine extension
    • ADDED : {api}{cmdline} added support for readline syntax coloring (using jline)
    • ADDED : {api}{cmdline} added --locale option to support multi languages. The option is reflected to Session as well
    • ADDED : {api}{cmdline} added ---key=value options to support extra properties
    • ADDED : {api}{cmdline} added -S short option, equivalent to --standalone
    • ADDED : {api}{cmdline} added NutsFormattedMessage to support formatted messages in a uniform manner (C-style, {} positional)
    • CHANGED: {api}{cmdline} both list and tree dependencies are now accessible as NutsDependencies
    • ADDED : {runtime} added support to community maven repositories : jcenter, jboss, spring, clojars, atlassian, atlassian-snapshot, google, oracle to use the repository you can add it as a permanent repository or temporary. here are some examples:
      • nuts nadmin add repository jcenter // add permanently the repository
      • nuts -r jcenter my-command // use temporarily the repository top run my-command
    • FIXED : {runtime} extension support (for JLine)
    • ADDED : {runtime} added minimal implementation for YAM
    • ADDED : {runtime} added fast implementation for JSON and removed gson dependency
    • CHANGED: {runtime} revamped Nuts Text Format to support simplified syntax but more verbose styles. Now supports #), ##), ###) and so on as Title Nodes. It supports as well the common markdown 'code' format with anti-quotes such as @@ -34,8 +34,8 @@ "path/unmanaged components" and system/native commands.
    • Several Fixes
      • Fixed Problem with Layout
      • Fixed Problem coloring (fprint embedded library)
      • All System properties now start with "nuts."
      • System properties starting with "nuts.export." are exported to children processes
      • Added watch dog agains infinite child process creation

    nuts 0.5.3.0 Change Log

    WARNING: this version is not deployed to maven-central

    • 2019/01/05 nuts 0.5.3.0 released download nuts-0.5.3.jar
    • (WINDOWS) First support to Windows platform
      • Support for Console coloring on windows
      • Storing to AppData\Local and AppData\Roaming folders
      • ndi is not yet supported!
    • (LINUX,UNIX) ndi no more stores to ~/bin but instead it updates .bashrc to point to current workspace added a confirmation question.
    • API Change
      • Moved getStoreRoot from NutsWorkspace to NutsWorkspaceConfigManager
      • Added StoreType : CACHE,LIB
      • Introduced NutsDeploymentBuilder,NutsIoManager,NutsParseManager,NutsFormatManager,DescriptorFormat
      • Introduced NutsSessionTerminal,NutsSystemTerminal
      • Added description, alternative (to support multi architecture nuts) descriptor properties
      • Removed descriptor/id 'ext' and 'file' parameters. 'packaging' should be more than enough
      • Removed Maps from config. Replaced by plain arrays
      • Removed workspace.cwd
      • Removed Temp File/Folder support
    • Added Archetype "standalone" to help bundling and application with all its dependencies
    • Several fixes
      • Fixed Log configuration, introduced --log-inherited to enable inherited log-handlers
      • Fixed support for install/uninstall hooks
      • Fixed Repository Layout where ref repo folder is created twice
      • Fixed Multiple pom download issue
      • Fixed Gson parsing issue
      • Fixed autocomplete support
      • Fixed bad json format recovery
    • nsh
      • introduced pwd,set unset,alias,unalias,autocomplete commands
      • fixed support to autocomplete
    • TODO
      • Code Comments
      • Help files

    nuts 0.5.2.0 Change Log

    WARNING: this version is not deployed to maven-central

    • 2018/12/28 nuts 0.5.2.0 released download nuts-0.5.2.jar
    • Global refactoring
      • Introduced NutsCommandExecBuilder, NutsDependencyBuilder, NutsDeploymentBuilder, NutsIdBuilder, NutsClassLoaderBuilder
    • Extracted nsh commands as regular nuts package (nadmin, nfind) WORKING-ON : Fixing "mvn" start from nuts (handling, exclude, pom import and classifiers from maven)

    nuts 0.5.1.0 Change Log

    WARNING: this version is not deployed to maven-central

    • 2018/12/18 nuts 0.5.1.0 released download nuts-0.5.1.jar
    • FIXED : Fixed problem with inheritIO from child process (added InputStreamTransparentAdapter and OutputStreamTransparentAdapter interfaces)
    • FIXED : Added distinction between workspace config and runtime boot api/runtime values
    • FIXED : Do not read workspace version and dependency config from child process (because it may require distinct version of nuts)
    • FIXED : Mkdir,cp, etc... used incorrectly cwd. Fixed.
    • CHANGED : Optimized pom.xml parse execution time (using DOM instead of SAX)
    • CHANGED : moved cache from bootstrap folder to default-workspace/cache

    nuts 0.5.0.0 Change Log

    WARNING: this version is not deployed to maven-central

    • 2018/11/25 nuts 0.5.0.0 released download nuts-0.5.0.jar
    • Very first published version. older ones were used internally for internal projects only.
- - + + @@ -43,6 +43,6 @@ - + \ No newline at end of file diff --git a/docs/docs/intro/installation/index.html b/docs/docs/intro/installation/index.html index 936fd5a9c..6860a5484 100644 --- a/docs/docs/intro/installation/index.html +++ b/docs/docs/intro/installation/index.html @@ -6,8 +6,8 @@ Installation | Nuts, the Java Package Manager - - + + @@ -30,8 +30,8 @@ All tests where performed on OpenSuse Tumbleweed.

tip

Any bash terminal application is a nuts-aware terminal.

Yous should then see some log like the following :

install-log-example

As you can see, installation upon first launch, will also trigger installation of other optional programs called "companion tools". The main recommended helpful is nsh (stands for Nuts Shell), is a bash compatible shell implementation application that will run equally on linux and windows systems.

important

After installation, you need to restart the terminal application for the configuration to take effect.

Test Installation

To test installation the simplest way is to open a nuts-aware terminal and type :

nuts --version

It should show a result in the format : nuts-api-version/nuts-impl-version

0.8.2/0.8.2.1

Run a command

To run a command using nuts just type

nuts <command>

Several commands are available, and you can always manually run any java and non java application.

- - + + diff --git a/docs/docs/intro/license/index.html b/docs/docs/intro/license/index.html index 71609424d..49808bf23 100644 --- a/docs/docs/intro/license/index.html +++ b/docs/docs/intro/license/index.html @@ -6,8 +6,8 @@ License | Nuts, the Java Package Manager - - + + @@ -29,8 +29,8 @@ this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Copyright (C) 2016-2020 thevpc

- - + + diff --git a/docs/docs/intro/nutsAndMaven/index.html b/docs/docs/intro/nutsAndMaven/index.html index e8c0191f7..58bd80c6a 100644 --- a/docs/docs/intro/nutsAndMaven/index.html +++ b/docs/docs/intro/nutsAndMaven/index.html @@ -6,8 +6,8 @@ Nuts and Maven | Nuts, the Java Package Manager - - + + @@ -89,8 +89,8 @@ The last command will start tomcat. Let's check tomcat status now

nuts tomcat status

Now we will do the same with derby database. We will install it and run it.

nuts install nderby
nuts nderby start

As you can see, simple commands are all you need to download, install, configure and run tomcat or derby or any application that is deployed in the maven repository.

So please visit nuts website or github repository for more information.

- - + + diff --git a/docs/docs/javadocs/API-Documentation/index.html b/docs/docs/javadocs/API-Documentation/index.html index 4a4e7dd98..6ee7e6e0b 100644 --- a/docs/docs/javadocs/API-Documentation/index.html +++ b/docs/docs/javadocs/API-Documentation/index.html @@ -6,8 +6,8 @@ API Documentation | Nuts, the Java Package Manager - - + + @@ -21,8 +21,8 @@

API Documentation

API Documentation

This is an introduction of API Documentation

- - + + diff --git a/docs/docs/root/index.html b/docs/docs/root/index.html index f9d7cd12d..811cb28aa 100644 --- a/docs/docs/root/index.html +++ b/docs/docs/root/index.html @@ -6,8 +6,8 @@ Document | Nuts, the Java Package Manager - - + + @@ -21,8 +21,8 @@

Document

Introduction

This is an introduction of Document

- - + + diff --git a/docs/index.html b/docs/index.html index 398a887fc..598fe3d46 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,8 +6,8 @@ Nuts, the Java Package Manager, the Java Package Manager | Nuts, the Java Package Manager - - + + @@ -16,8 +16,8 @@

Nuts, the Java Package Manager

The Java Package Manager

Get Started     Download
[object Object]

Open Source

Nuts Package manager is an Open Source package manager for the Java © ecosystem. Nuts is your best companion for your maven built applications.

[object Object]

Any application, All applications

install, run and manage all the versions of your applications in parallel.

[object Object]

Automate your operations

Take advantage of the Nuts toolbox that offers GNU binutils equivalent tools (bash,ls, cp, and more), and extend them to support json and xml outputs to help automation.

- - + + diff --git a/docs/main.4a824e13.js b/docs/main.4a824e13.js new file mode 100644 index 000000000..2ed735d7b --- /dev/null +++ b/docs/main.4a824e13.js @@ -0,0 +1,2 @@ +/*! For license information please see main.4a824e13.js.LICENSE.txt */ +(window.webpackJsonp=window.webpackJsonp||[]).push([[55],[function(e,t,n){"use strict";e.exports=n(31)},function(e,t,n){"use strict";n.d(t,"a",(function(){return v})),n.d(t,"b",(function(){return w})),n.d(t,"c",(function(){return x})),n.d(t,"d",(function(){return O})),n.d(t,"e",(function(){return b})),n.d(t,"f",(function(){return L})),n.d(t,"g",(function(){return D})),n.d(t,"h",(function(){return g})),n.d(t,"i",(function(){return S})),n.d(t,"j",(function(){return _})),n.d(t,"k",(function(){return M})),n.d(t,"l",(function(){return z})),n.d(t,"m",(function(){return U})),n.d(t,"n",(function(){return $})),n.d(t,"o",(function(){return j}));var r=n(3),o=n(0),a=n.n(o),i=(n(7),n(5)),l=n(18),u=n(4),s=n(2),c=n(19),d=n.n(c),f=(n(23),n(6)),p=n(28),m=n.n(p),h=function(e){var t=Object(l.a)();return t.displayName=e,t}("Router-History"),g=function(e){var t=Object(l.a)();return t.displayName=e,t}("Router"),b=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._isMounted?n.setState({location:e}):n._pendingLocation=e}))),n}Object(r.a)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&this.unlisten()},n.render=function(){return a.a.createElement(g.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.a.createElement(h.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.a.Component);var v=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o=0;f--){var p=i[f];"."===p?a(i,f):".."===p?(a(i,f),d++):d&&(a(i,f),d--)}if(!s)for(;d--;d)i.unshift("..");!s||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};function l(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var u=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=l(t),o=l(n);return r!==t||o!==n?e(r,o):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1},s=n(4);function c(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function f(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function m(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function h(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e)).state=t:(void 0===(a=Object(r.a)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&u(e.state,t.state)}function b(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,r):n.push(r),d({action:"PUSH",location:r,index:t,entries:n})}}))},replace:function(e,t){var r=h(e,t,f(),w.location);c.confirmTransitionTo(r,"REPLACE",n,(function(e){e&&(w.entries[w.index]=r,d({action:"REPLACE",location:r}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t=0||(o[n]=e[n]);return o}n.d(t,"a",(function(){return r}))},function(e,t,n){e.exports=n(35)()},function(e,t,n){"use strict";n.d(t,"a",(function(){return l})),n.d(t,"b",(function(){return u}));var r=n(1),o=n(2),a=n(0),i=n.n(a);function l(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?Object(r.j)(t,e):n.length?n[n.length-1].match:r.e.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&l(e.routes,t,n)),o})),n}function u(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?i.a.createElement(r.g,n,e.map((function(e,n){return i.a.createElement(r.d,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render(Object(o.a)({},n,{},t,{route:e})):i.a.createElement(e.component,Object(o.a)({},n,t,{route:e}))}})}))):null}},function(e,t,n){"use strict";n.r(t),t.default={title:"Nuts, the Java Package Manager",tagline:"The Java Package Manager",url:"https://thevpc.github.io/nuts",baseUrl:"/nuts/",onBrokenLinks:"log",favicon:"img/favicon.ico",organizationName:"thevpc",projectName:"nuts",themeConfig:{navbar:{title:"Nuts Package Manager",logo:{alt:"Nuts Package Manager",src:"img/shuriken.png"},items:[{to:"docs",activeBasePath:"docs",label:"Docs",position:"left"},{to:"blog",label:"Blog",position:"left"},{href:"https://github.com/thevpc/nuts",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Documentation",to:"docs/"},{label:"FAQ",to:"docs/info/faq"},{label:"Change Log",to:"docs/info/changelog"},{label:"PDF Documentation",to:"pdf/nuts-documentation.pdf",target:"_blank"}]},{title:"Community",items:[{label:"Stack Overflow",href:"https://stackoverflow.com/questions/tagged/nuts"},{label:"Features Request",href:"https://github.com/thevpc/nuts/issues"},{label:"Issues Tracker",href:"https://github.com/thevpc/nuts/issues"}]},{title:"More",items:[{label:"Blog",to:"blog"},{label:"GitHub",href:"https://github.com/thevpc/nuts"}]}],copyright:"Copyright \xa9 2021 Nuts Package Manager Team."},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1,switchConfig:{darkIcon:"\ud83c\udf1c",darkIconStyle:{},lightIcon:"\ud83c\udf1e",lightIconStyle:{}}}},presets:[["@docusaurus/preset-classic",{docs:{homePageId:"intro/introduction",sidebarPath:"/data/git/nuts/website/sidebars.js",editUrl:"https://github.com/thevpc/nuts/edit/master/website/"},blog:{showReadingTime:!0,editUrl:"https://github.com/thevpc/nuts/edit/master/website/blog/"},theme:{customCss:"/data/git/nuts/website/src/css/custom.css"}}]],customFields:{copyBuildPath:"../docs",docusaurus:{generateSidebarMenu:!0},asciidoctor:{path:"asciidoctor",pdf:{headers:[":source-highlighter: pygments",":icons: font",":icon-set: pf",":doctype: book",":revnumber: v0.8.3",":revdate: Tue Oct 12 11:29:11 PM +0000 2021",":toc:",":toclevels: 4",":appendix-caption: Appx",":sectnums:",":sectnumlevels: 6"],command:{bin:"asciidoctor-pdf.ruby2.7",args:["-a","pdf-themesdir=${asciidoctor.baseDir}/resources/themes","-a","pdf-theme=custom","-a","pdf-fontsdir=${asciidoctor.baseDir}/resources/fonts/;GEM_FONTS_DIR"]},output:"static/pdf/nuts-documentation.pdf"}}},onDuplicateRoutes:"warn",plugins:[],themes:[]}},function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&!!window.screen};t.a=o},function(e){e.exports=JSON.parse('{"/nuts/-13b":{"component":"c4f5d8e4","config":"5e9f5e1a"},"/nuts/blog-55d":{"component":"a6aa9e1f","items":[{"content":"807319db"},{"content":"358635ad"}],"metadata":"53baeae1"},"/nuts/blog/Publishing the first version of Nuts website-052":{"component":"ccc49370","content":"b63ebb90"},"/nuts/blog/tags-2ec":{"component":"01a85c17","tags":"1010ef7d"},"/nuts/blog/tags/nuts-f7e":{"component":"6875c492","items":[{"content":"807319db"},{"content":"358635ad"}],"metadata":"6b55986e"},"/nuts/blog/Version 0.8.3 published-0b8":{"component":"ccc49370","content":"a918627e"},"/nuts/docs-05b":{"component":"1be78505","docsMetadata":"a1e23ae7"},"/nuts/docs/-def":{"component":"17896441","content":"62aa0aea"},"/nuts/docs/cmd/cmds-899":{"component":"17896441","content":"79cb2bfa"},"/nuts/docs/cmd/Commands-f7c":{"component":"17896441","content":"8398ca08"},"/nuts/docs/cmd/exec-cmd-cef":{"component":"17896441","content":"5269c9b3"},"/nuts/docs/cmd/fetch-cmd-3d0":{"component":"17896441","content":"1adfd26a"},"/nuts/docs/cmd/help-cmd-d1a":{"component":"17896441","content":"ec2602c6"},"/nuts/docs/cmd/info-cmd-60d":{"component":"17896441","content":"89ceb67e"},"/nuts/docs/cmd/install-cmd-f5d":{"component":"17896441","content":"93aa6ebb"},"/nuts/docs/cmd/license-cmd-d9e":{"component":"17896441","content":"a5c4b0bc"},"/nuts/docs/cmd/search-cmds-f4a":{"component":"17896441","content":"48ec161f"},"/nuts/docs/cmd/version-cmd-15a":{"component":"17896441","content":"7f2b7796"},"/nuts/docs/cmd/welcome-cmd-249":{"component":"17896441","content":"13dc2b6c"},"/nuts/docs/concepts/aliases-c88":{"component":"17896441","content":"7d8897cb"},"/nuts/docs/concepts/automation-342":{"component":"17896441","content":"08795d9c"},"/nuts/docs/concepts/commandline-10e":{"component":"17896441","content":"72897102"},"/nuts/docs/concepts/doc1-983":{"component":"17896441","content":"3f011494"},"/nuts/docs/concepts/filesystem-4c1":{"component":"17896441","content":"9222fa59"},"/nuts/docs/concepts/NutsConcepts-599":{"component":"17896441","content":"e99edd2b"},"/nuts/docs/contributing/building-11d":{"component":"17896441","content":"388c35b1"},"/nuts/docs/contributing/NutsContributing-26e":{"component":"17896441","content":"e7400746"},"/nuts/docs/contributing/projects-1de":{"component":"17896441","content":"c19251b7"},"/nuts/docs/dev/ApplicationFramework-33b":{"component":"17896441","content":"4563d2e7"},"/nuts/docs/dev/nutsApp-452":{"component":"17896441","content":"2a2b9575"},"/nuts/docs/dev/nutsPath-0c5":{"component":"17896441","content":"5493e8fd"},"/nuts/docs/dev/nutsStream-6cf":{"component":"17896441","content":"fe4413ab"},"/nuts/docs/info/faq-15e":{"component":"17896441","content":"0da90fb9"},"/nuts/docs/info/GettingStarted-609":{"component":"17896441","content":"cfff7291"},"/nuts/docs/info/running-5e7":{"component":"17896441","content":"0e3ec128"},"/nuts/docs/info/troubleshooting-e34":{"component":"17896441","content":"84850d64"},"/nuts/docs/intro/changelog-fdb":{"component":"17896441","content":"7803a678"},"/nuts/docs/intro/installation-7e4":{"component":"17896441","content":"39ddb24d"},"/nuts/docs/intro/Introduction-aab":{"component":"17896441","content":"7029ca4a"},"/nuts/docs/intro/license-bb9":{"component":"17896441","content":"3151bb86"},"/nuts/docs/intro/nutsAndMaven-424":{"component":"17896441","content":"cf25734a"},"/nuts/docs/javadocs/API-Documentation-dda":{"component":"17896441","content":"6b1ecf8f"},"/nuts/docs/root-6ac":{"component":"17896441","content":"9f79f399"}}')},function(e,t,n){var r,o;void 0===(o="function"==typeof(r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var u=n.render(!t),s=u.querySelector(r.barSelector),c=r.speed,d=r.easing;return u.offsetWidth,i((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(s,function(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}(e,c,d)),1===e?(l(u,{transition:"none",opacity:1}),u.offsetWidth,setTimeout((function(){l(u,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");s(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),u=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+u+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&s(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){c(document.documentElement,"nprogress-busy"),c(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var i=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()})),t[n]||(t[n]=function(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}(n))}function r(e,t,r){t=n(t),e.style[t]=r}return function(e,t){var n,o,a=arguments;if(2==a.length)for(n in t)void 0!==(o=t[n])&&t.hasOwnProperty(n)&&r(e,n,o);else r(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function s(e,t){var n=d(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function c(e,t){var n,r=d(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n})?r.call(t,n,t,e):r)||(e.exports=o)},function(e,t,n){"use strict";n.d(t,"a",(function(){return d})),n.d(t,"b",(function(){return f})),n.d(t,"c",(function(){return v})),n.d(t,"e",(function(){return k}));var r=n(1);n.d(t,"d",(function(){return r.a})),n.d(t,"f",(function(){return r.b})),n.d(t,"g",(function(){return r.c})),n.d(t,"h",(function(){return r.d})),n.d(t,"i",(function(){return r.e})),n.d(t,"j",(function(){return r.f})),n.d(t,"k",(function(){return r.g})),n.d(t,"l",(function(){return r.i})),n.d(t,"m",(function(){return r.j})),n.d(t,"n",(function(){return r.k})),n.d(t,"o",(function(){return r.l})),n.d(t,"p",(function(){return r.m})),n.d(t,"q",(function(){return r.n})),n.d(t,"r",(function(){return r.o}));var o=n(3),a=n(0),i=n.n(a),l=n(5),u=(n(7),n(2)),s=n(6),c=n(4),d=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;oe.length)return;if(!(k instanceof u)){if(h&&y!=t.length-1){if(f.lastIndex=w,!(_=f.exec(e)))break;for(var E=_.index+(m?_[1].length:0),S=_.index+_[0].length,x=y,T=w,C=t.length;x=(T+=t[x].length)&&(++y,w=T);if(t[y]instanceof u)continue;O=x-y,k=e.slice(w,T),_.index-=w}else{f.lastIndex=0;var _=f.exec(k),O=1}if(_){m&&(g=_[1]?_[1].length:0),S=(E=_.index+g)+(_=_[0].slice(g)).length;var P=k.slice(0,E),A=k.slice(S),R=[y,O];P&&(++y,w+=P.length,R.push(P));var N=new u(s,p?o.tokenize(_,p):_,b,_,h);if(R.push(N),A&&R.push(A),Array.prototype.splice.apply(t,R),1!=O&&o.matchGrammar(e,t,n,y,w,!0,s),i)break}else if(i)break}}}}},hooks:{add:function(){}},tokenize:function(e,t,n){var r=[e],a=t.rest;if(a){for(var i in a)t[i]=a[i];delete t.rest}return o.matchGrammar(e,r,t,0,0,!1),r}},(a=o.Token=function(e,t,n,r,o){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length,this.greedy=!!o}).stringify=function(e,t,n){if("string"==typeof e)return e;if("Array"===o.util.type(e))return e.map((function(n){return a.stringify(n,t,e)})).join("");var r={type:e.type,content:a.stringify(e.content,t,n),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:n};if(e.alias){var i="Array"===o.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(r.classes,i)}var l=Object.keys(r.attributes).map((function(e){return e+'="'+(r.attributes[e]||"").replace(/"/g,""")+'"'})).join(" ");return"<"+r.tag+' class="'+r.classes.join(" ")+'"'+(l?" "+l:"")+">"+r.content+""},o);i.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},i.languages.markup.tag.inside["attr-value"].inside.entity=i.languages.markup.entity,i.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(i.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:i.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:i.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[\s\S]*?>)(?:\s*|[\s\S])*?(?=<\/__>)/.source.replace(/__/g,e),"i"),lookbehind:!0,greedy:!0,inside:r},i.languages.insertBefore("markup","cdata",o)}}),i.languages.xml=i.languages.extend("markup",{}),i.languages.html=i.languages.markup,i.languages.mathml=i.languages.markup,i.languages.svg=i.languages.markup,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)\w+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b\w+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+?)\s*(?:\r?\n|\r)(?:[\s\S])*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:n},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s*(?:\r?\n|\r)(?:[\s\S])*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0},{pattern:/(["'])(?:\\[\s\S]|\$\([^)]+\)|`[^`]+`|(?!\1)[^\\])*\1/,greedy:!0,inside:n}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:n.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}};for(var r=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=n.variable[1].inside,a=0;a=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},i.languages.c=i.languages.extend("clike",{"class-name":{pattern:/(\b(?:enum|struct)\s+)\w+/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/,number:/(?:\b0x(?:[\da-f]+\.?[\da-f]*|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ful]*/i}),i.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z]+(?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,alias:"property",inside:{string:{pattern:/(#\s*include\s*)(?:<.+?>|("|')(?:\\?.)+?\2)/,lookbehind:!0},directive:{pattern:/(#\s*)\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\b/,lookbehind:!0,alias:"keyword"}}},constant:/\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/}),delete i.languages.c.boolean,i.languages.cpp=i.languages.extend("c",{"class-name":{pattern:/(\b(?:class|enum|struct)\s+)\w+/,lookbehind:!0},keyword:/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+\.?[\da-f']*|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+\.?[\d']*|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]*/i,greedy:!0},operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:true|false)\b/}),i.languages.insertBefore("cpp","string",{"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/,inside:{rule:/@[\w-]+/}},url:{pattern:RegExp("url\\((?:"+t.source+"|[^\n\r()]*)\\)","i"),inside:{function:/^url/i,punctuation:/^\(|\)$/}},selector:RegExp("[^{}\\s](?:[^{};\"']|"+t.source+")*?(?=\\s*\\{)"),string:{pattern:t,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),e.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:n.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:e.languages.css}},alias:"language-css"}},n.tag))}(i),i.languages.css.selector={pattern:i.languages.css.selector,inside:{"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-:.\w]+/,id:/#[-:.\w]+/,attribute:{pattern:/\[(?:[^[\]"']|("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1)*\]/,greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)[-*\w\xA0-\uFFFF]*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},attribute:{pattern:/^(\s*)[-\w\xA0-\uFFFF]+/,lookbehind:!0},value:[/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,{pattern:/(=\s*)[-\w\xA0-\uFFFF]+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],punctuation:/[()]/}},i.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*/i,lookbehind:!0}}),i.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:/#[\da-f]{3,8}/i,entity:/\\[\da-f]{1,8}/i,unit:{pattern:/(\d)(?:%|[a-z]+)/,lookbehind:!0},number:/-?[\d.]+/}),i.languages.javascript=i.languages.extend("clike",{"class-name":[i.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),i.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,i.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:i.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:i.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:i.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:i.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),i.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:i.languages.javascript}},string:/[\s\S]+/}}}),i.languages.markup&&i.languages.markup.tag.addInlined("script","javascript"),i.languages.js=i.languages.javascript,function(e){var t=e.util.clone(e.languages.javascript);e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=/<\/?(?:[\w.:-]+\s*(?:\s+(?:[\w.:-]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s{'">=]+|\{(?:\{(?:\{[^}]*\}|[^{}])*\}|[^{}])+\}))?|\{\.{3}[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\}))*\s*\/?)?>/i,e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/i,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">]+)/i,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.insertBefore("inside","attr-name",{spread:{pattern:/\{\.{3}[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\}/,inside:{punctuation:/\.{3}|[{}.]/,"attr-value":/\w+/}}},e.languages.jsx.tag),e.languages.insertBefore("inside","attr-value",{script:{pattern:/=(\{(?:\{(?:\{[^}]*\}|[^}])*\}|[^}])+\})/i,inside:{"script-punctuation":{pattern:/^=(?={)/,alias:"punctuation"},rest:e.languages.jsx},alias:"language-javascript"}},e.languages.jsx.tag);var n=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(n).join(""):""},r=function(t){for(var o=[],a=0;a0&&o[o.length-1].tagName===n(i.content[0].content[1])&&o.pop():"/>"===i.content[i.content.length-1].content||o.push({tagName:n(i.content[0].content[1]),openedBraces:0}):o.length>0&&"punctuation"===i.type&&"{"===i.content?o[o.length-1].openedBraces++:o.length>0&&o[o.length-1].openedBraces>0&&"punctuation"===i.type&&"}"===i.content?o[o.length-1].openedBraces--:l=!0),(l||"string"==typeof i)&&o.length>0&&0===o[o.length-1].openedBraces){var u=n(i);a0&&("string"==typeof t[a-1]||"plain-text"===t[a-1].type)&&(u=n(t[a-1])+u,t.splice(a-1,1),a--),t[a]=new e.Token("plain-text",u,null,u)}i.content&&"string"!=typeof i.content&&r(i.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||r(e.tokens)}))}(i),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^\s*(?:\/{3}|\*|\/\*\*)\s*@(?:param|arg|arguments)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^\s*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){"string"==typeof t&&(t=[t]),t.forEach((function(t){!function(t,n){var r=e.languages[t];if(r){var o=r["doc-comment"];if(!o){var a={"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,alias:"comment"}};o=(r=e.languages.insertBefore(t,"comment",a))["doc-comment"]}if(o instanceof RegExp&&(o=r["doc-comment"]={pattern:o}),Array.isArray(o))for(var i=0,l=o.length;i>>?=?|->|([-+&|])\2|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","class-name",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0},namespace:{pattern:/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)[a-z]\w*(\.[a-z]\w*)+/,lookbehind:!0,inside:{punctuation:/\./}},generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":n,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})}(i),function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var u=0;u=a.length);u++){var s=l[u];if("string"==typeof s||s.content&&"string"==typeof s.content){var c=a[o],d=n.tokenStack[c],f="string"==typeof s?s:s.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++o;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=f.substring(m+p.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof s?l.splice.apply(l,[u,1].concat(v)):s.content=v}}else s.content&&i(s.content)}return l}(n.tokens)}}}})}(i),function(e){e.languages.php=e.languages.extend("clike",{keyword:/\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|new|or|parent|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,boolean:{pattern:/\b(?:false|true)\b/i,alias:"constant"},constant:[/\b[A-Z_][A-Z0-9_]*\b/,/\b(?:null)\b/i],comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0}}),e.languages.insertBefore("php","string",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),e.languages.insertBefore("php","comment",{delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"}}),e.languages.insertBefore("php","keyword",{variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),e.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}});var t={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/,lookbehind:!0,inside:{rest:e.languages.php}};e.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:t}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:t}}}),delete e.languages.php.string,e.hooks.add("before-tokenize",(function(t){if(/<\?/.test(t.code)){e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#)(?:[^?\n\r]|\?(?!>))*|\/\*[\s\S]*?(?:\*\/|$))*?(?:\?>|$)/gi)}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(i),function(e){var t=e.languages.javascript,n=/{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})+}/.source,r="(@(?:param|arg|argument|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/[$\w\xA0-\uFFFF.]+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[[$\w\xA0-\uFFFF.]+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{punctuation:/[.,:?=<>|{}()[\]]/}},{pattern:/(@(?:augments|extends|class|interface|memberof!?|this)\s+)[A-Z]\w*(?:\.[A-Z]\w*)*/,lookbehind:!0,inside:{punctuation:/\./}}],example:{pattern:/(@example\s+)[^@]+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^(\s*(?:\*\s*)?).+$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(i),i.languages.actionscript=i.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),i.languages.actionscript["class-name"].alias="function",i.languages.markup&&i.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:{rest:i.languages.markup}}}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},rest:e.languages.javascript}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(i),function(e){e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:/(\.\s*)#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*/,lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|location|navigator|performance|(?:local|session)Storage|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var t=["function","function-variable","method","method-variable","property-access"],n=0;n))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:type|opaque|declare|Class)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\b(?!\$)/,lookbehind:!0})}(i),i.languages.n4js=i.languages.extend("javascript",{keyword:/\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),i.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),i.languages.n4jsd=i.languages.n4js,i.languages.typescript=i.languages.extend("javascript",{keyword:/\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/}),i.languages.ts=i.languages.typescript,function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function u(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function s(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,u(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function c(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,c={},d=u(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=o,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=f[i],a="string"==typeof r?r:r.content,l=a.indexOf(o);if(-1!==l){++i;var u=a.substring(0,l),d=s(c[o]),p=a.substring(l+o.length),m=[];if(u&&m.push(u),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:md|markdown)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r/g,t),n&&(e=e+"|"+e.replace(/_/g,"\\*")),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``.+?``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\r?\n|\r)|$)/.source.replace(/__/g,r),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\r?\n|\r)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/(^[ \t]*(?:\r?\n|\r))(?: {4}|\t).+(?:(?:\r?\n|\r)(?: {4}|\t).+)*/m,lookbehind:!0,alias:"keyword"},{pattern:/``.+?``|`[^`\r\n]+`/,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\r?\n|\r))[\s\S]+?(?=(?:\r?\n|\r)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\r?\n|\r)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#+.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/__(?:(?!_)|_(?:(?!_))+_)+__/.source,!0),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/_(?:(?!_)|__(?:(?!_))+__)+_/.source,!0),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+?\2/.source,!1),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[(?:(?!\]))+\])/.source,!1),lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(\[)[^\]]+(?=\]$)/,lookbehind:!0},content:{pattern:/(^!?\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},string:{pattern:/"(?:\\.|[^"\\])*"(?=\)$)/}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(i),i.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/m}},coord:/^@@.*@@$/m,commit_sha1:/^commit \w{40}$/m},i.languages.go=i.languages.extend("clike",{keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/,boolean:/\b(?:_|iota|nil|true|false)\b/,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,number:/(?:\b0x[a-f\d]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[-+]?\d+)?)i?/i,string:{pattern:/(["'`])(\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0}}),delete i.languages.go["class-name"],function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/i,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:true|false)\b/,block:{pattern:/^(\s*~?\s*)[#\/]\S+?(?=\s*~?\s*$|\s)/i,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")}))}(i),i.languages.json={property:{pattern:/"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,greedy:!0},string:{pattern:/"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,greedy:!0},comment:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,number:/-?\d+\.?\d*(e[+-]?\d+)?/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},i.languages.less=i.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-]+?(?:\([^{}]+\)|[^(){};])*?(?=\s*\{)/i,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\([^{}]*\)|[^{};@])*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,operator:/[+\-*\/]/}),i.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-]+.*?(?=[(;])/,lookbehind:!0,alias:"function"}}),i.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,symbol:{pattern:/^[^:=\r\n]+(?=\s*:(?!=))/m,inside:{variable:/\$+(?:[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:[/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,{pattern:/(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/,lookbehind:!0}],operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},i.languages.objectivec=i.languages.extend("c",{keyword:/\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,string:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete i.languages.objectivec["class-name"],i.languages.ocaml={comment:/\(\*[\s\S]*?\*\)/,string:[{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},{pattern:/(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i,greedy:!0}],number:/\b(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*\.?[\d_]*(?:e[+-]?[\d_]+)?)/i,type:{pattern:/\B['`]\w*/,alias:"variable"},directive:{pattern:/\B#\w+/,alias:"function"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|prefix|private|rec|then|sig|struct|to|try|type|val|value|virtual|where|while|with)\b/,boolean:/\b(?:false|true)\b/,operator:/:=|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lxor|lsl|lsr|mod|nor|or)\b/,punctuation:/[(){}\[\]|_.,:;]/},i.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"string-interpolation":{pattern:/(?:f|rf|fr)(?:("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|rb|br)?("""|''')[\s\S]+?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^\s*)@\w+(?:\.\w+)*/i,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},i.languages.python["string-interpolation"].inside.interpolation.inside.rest=i.languages.python,i.languages.py=i.languages.python,i.languages.reason=i.languages.extend("clike",{comment:{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:mod|land|lor|lxor|lsl|lsr|asr)\b/}),i.languages.insertBefore("reason","class-name",{character:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,alias:"string"},constructor:{pattern:/\b[A-Z]\w*\b(?!\s*\.)/,alias:"variable"},label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete i.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t]+.+)*/m,lookbehind:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,inside:{atrule:/(?:@[\w-]+|[+=])/m}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/,{pattern:/(\s+)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s]+.*)/m,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/([ \t]*)\S(?:,?[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,?[^,\r\n]+)*)*/,lookbehind:!0}})}(i),i.languages.scss=i.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-]+(?:\([^()]+\)|[^(])*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()]|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}]+[:{][^}]+))/m,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[\w-]|\$[-\w]+|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),i.languages.insertBefore("scss","atrule",{keyword:[/@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,{pattern:/( +)(?:from|through)(?= )/,lookbehind:!0}]}),i.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),i.languages.insertBefore("scss","function",{placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,lookbehind:!0}}),i.languages.scss.atrule.inside.rest=i.languages.scss,i.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/i,number:/\b0x[\da-f]+\b|\b\d+\.?\d*|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t={url:/url\((["']?).*?\1\)/i,string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:if|else|for|return|unless)(?=\s+|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,number:/\b\d+(?:\.\d+)?%?/,boolean:/\b(?:true|false)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.+|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],punctuation:/[{}()\[\];:,]/};t.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^{|}$/,alias:"punctuation"},rest:t}},t.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:t}},e.languages.stylus={comment:{pattern:/(^|[^\\])(\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},"atrule-declaration":{pattern:/(^\s*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:t}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:(?:\{[^}]*\}|.+)|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:t}},statement:{pattern:/(^[ \t]*)(?:if|else|for|return|unless)[ \t]+.+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:t}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)[^{\r\n]*(?:;|[^{\r\n,](?=$)(?!(\r?\n|\r)(?:\{|\2[ \t]+)))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:t.interpolation}},rest:t}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t]+)))/m,lookbehind:!0,inside:{interpolation:t.interpolation,punctuation:/[{},]/}},func:t.func,string:t.string,interpolation:t.interpolation,punctuation:/[{}()\[\];:.]/}}(i);var l=i.util.clone(i.languages.typescript);i.languages.tsx=i.languages.extend("jsx",l),i.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^_`|~]+/i,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/},i.languages.yaml={scalar:{pattern:/([\-:]\s*(?:![^\s]+)?[ \t]*[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)[^\r\n]+(?:\2[^\r\n]+)*)/,lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:/(\s*(?:^|[:\-,[{\r\n?])[ \t]*(?:![^\s]+)?[ \t]*)[^\r\n{[\]},#\s]+?(?=\s*:\s)/,lookbehind:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?)?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?)(?=[ \t]*(?:$|,|]|}))/m,lookbehind:!0,alias:"number"},boolean:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:true|false)[ \t]*(?=$|,|]|})/im,lookbehind:!0,alias:"important"},null:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:null|~)[ \t]*(?=$|,|]|})/im,lookbehind:!0,alias:"important"},string:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)("|')(?:(?!\2)[^\\\r\n]|\\.)*\2(?=[ \t]*(?:$|,|]|}|\s*#))/m,lookbehind:!0,greedy:!0},number:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+\.?\d*|\.?\d+)(?:e[+-]?\d+)?|\.inf|\.nan)[ \t]*(?=$|,|]|})/im,lookbehind:!0},tag:/![^\s]+/,important:/[&*][\w]+/,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},i.languages.yml=i.languages.yaml,t.a=i},function(e,t,n){"use strict";var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,t){for(var n,l,u=i(e),s=1;sA.length&&A.push(e)}function I(e,t,n){return null==e?0:function e(t,n,r,o){var l=typeof t;"undefined"!==l&&"boolean"!==l||(t=null);var u=!1;if(null===t)u=!0;else switch(l){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case a:case i:u=!0}}if(u)return r(o,t,""===n?"."+L(t,0):n),1;if(u=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;s