Skip to content
Snippets Groups Projects
Commit a4432b8e authored by Volker Schukai's avatar Volker Schukai :alien:
Browse files

Merge branch 'MONSTER/INIT/a2f41565-779f-4abc-8642-fa936302659f' into 'master'

Monster/init/a2f41565 779f 4abc 8642 fa936302659f

See merge request oss/libraries/javascript/monster!1
parents 474d8aff fbbea27a
No related branches found
No related tags found
No related merge requests found
Showing
with 1142 additions and 0 deletions
{}
\ No newline at end of file
[ignore]
.*/playground
.*/node_modules
[include]
[libs]
[lints]
[options]
[strict]
#####################ALLGEMEINER TEIL
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
.cache
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# Logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Cloud9 IDE - http://c9.io
.c9revisions
.c9
##Exclipse
.metadata
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath
.recommenders
# External tool builders
.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
*.launch
# PyDev specific (Python IDE for Eclipse)
*.pydevproject
# CDT-specific (C/C++ Development Tooling)
.cproject
# CDT- autotools
.autotools
# Java annotation processor (APT)
.factorypath
# PDT-specific (PHP Development Tools)
.buildpath
# sbteclipse plugin
.target
# Tern plugin
.tern-project
# TeXlipse plugin
.texlipse
# STS (Spring Tool Suite)
.springBeans
# Code Recommenders
.recommenders/
# Annotation Processing
.apt_generated/
.apt_generated_test/
# Scala IDE specific (Scala & Java development for Eclipse)
.cache-main
.scala_dependencies
.worksheet
# Uncomment this line if you wish to ignore the project description file.
# Typically, this file would be tracked if it contains build/dependency configurations:
#.project
##Kate
# Swap Files #
.*.kate-swp
.swp.*
## KDEDevelop
*.kdev4
.kdev4/
## LibreOffice
# LibreOffice locks
.~lock.*#
### LINUX
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
## Patches
*.orig
*.rej
# Private key
*.ppk
## Sublime
# Cache files for Sublime Text
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache
# Workspace files are user-specific
*.sublime-workspace
# Project files should be checked into the repository, unless a significant
# proportion of contributors will probably not be using Sublime Text
# *.sublime-project
# SFTP configuration file
sftp-config.json
sftp-config-alt*.json
# Package control specific files
Package Control.last-run
Package Control.ca-list
Package Control.ca-bundle
Package Control.system-ca-bundle
Package Control.cache/
Package Control.ca-certs/
Package Control.merged-ca-bundle
Package Control.user-ca-bundle
oscrypto-ca-bundle.crt
bh_unicode_properties.cache
# Sublime-github package stores a github token in this file
# https://packagecontrol.io/packages/sublime-github
GitHub.sublime-settings
## VIM
# Swap
[._]*.s[a-v][a-z]
!*.svg # comment out if you don't need vector files
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Session
Session.vim
Sessionx.vim
# Temporary
.netrwhist
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
# gitignore template for AWS Serverless Application Model project
# website: https://docs.aws.amazon.com/serverless-application-model
# Ignore build folder
.aws-sam/
# Netbeans
**/nbproject/private/
**/nbproject/Makefile-*.mk
**/nbproject/Package-*.bash
build/
nbbuild/
nbdist/
.nb-gradle/
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
<!---
USE THIS TEMPLATE TO DESCRIBE AN ERROR.
- Check whether the error has already been documented.
- Be as precise as possible.
- Write in such a way that someone else can understand the error.
- Describe only one bug per ticket.
- Separate facts from assumptions.
--->
### Current bug
<!--
- Describe the misbehaviour as precisely as possible.
- What is not working, how does the misbehaviour manifest itself.
- What is the expected *correct* behaviour?
- Can you add screenshots?
- How can you reproduce the error?
- Describe the steps that lead to the error.
-->
### Affected environment
<!--
- Which components are affected?
- On which operating system in which version did the error occur?
- Which version of PHP, browser, operating system is affected?
-->
- (No environment documented yet)
### Possible solutions
<!--
- Suggest bug fixes here
- If you have code, submit a merge request
-->
- (no solution defined yet)
### References
<!--
- Link to solutions (stackoverflow, documentation, etc)
- Link to related tickets, quotes, lines of code.
-->
- (no links yet)
<!-- Commands -->
/label ~bug
<!---
WITH THIS TEMPLATE YOU DESCRIBE AN IMPROVEMENT OF AN EXISTING FUNCTION.
- Check if the improvement is already documented.
- Be as precise as possible.
- Write in such a way that someone else understands the improvement.
- Describe only one improvement per ticket.
--->
### Objectives & requirements
<!--
- Describe as precisely as possible what should be improved.
- Also describe what should not be implemented.
- Name the target group of the improvement: developer, customer, user ...
- If possible, create a sketch or UML diagram of the improvement.
-->
### Conception & implementation
<!--
- How can the improvement be achieved.
- If possible, create a wireframe, UML diagrams or sketches.
-
-->
### Dependencies & side effects
<!--
- Is this an overarching function?
- Are other projects affected?
-->
- (No dependencies defined yet)
### References
<!--
- Link to solutions (stackoverflow, documentation, etc)
- Link to related tickets, quotes, lines of code.
-->
- (no links yet)
<!-- Commands -->
/label ~enhancement
<!---
WITH THIS TEMPLATE YOU DESCRIBE A NEW FUNCTION THAT DOES NOT YET EXIST.
- Check whether the new function is already documented.
- Be as precise as possible.
- Write in a way that someone else will understand the new feature.
- Describe only one feature per ticket, if you are describing something bigger use the
the story template
--->
### Objectives & requirements
<!--
- Describe as precisely as possible what you intend to do.
- Also write what is not to be implemented.
- Name the target group of the new function: developer, customer, user ...
- If possible, create a sketch or UML diagram of the function.
-->
### Conception & implementation
<!--
- How can the function be implemented.
- If possible, create a wireframe, UML diagrams or sketches.
-
-->
### Dependencies & side effects
<!--
- Is this an overarching function?
- Are other projects affected?
-->
- (No dependencies defined yet)
### References
<!--
- Link to solutions (stackoverflow, documentation, etc)
- Link to related tickets, quotes, lines of code.
-->
- (no links yet)
<!-- Commands -->
/label ~feature
## References
<!--
Every merge request needs at least one reference!
Mention the ticket, include links to
further information, processes, etc.
-->
- (no link inserted yet)
## Author's checklist (required)
- [ ] **In the "References" section above, link to at least one issue, ticket or process.
- [ ] Confirm that your merge request contains an appropriate test case.
- [ ] Confirm that you have followed the [Code Style Guide](https://about.schukai.com/de/intern/handbuch/referenzen/best-practices-code-styleguide/).
- [ ] Confirm that you have followed the [Documentation Style Guide](https://about.schukai.com/de/intern/handbuch/leitfaden/uebersicht/).
## Checklist for the reviewer (if possible)
- [ ] Confirm that the merge request meets the requirements of the linked issues.
- [ ] Confirm that the merge request contains appropriate test cases.
- [ ] Code analysis has been performed.
- [ ] Set the merge request to approved.
## Release Manager Checklist (required)
- [ ] Assign this merge request to a milestone.
- [ ] Record the changes in the changelog (changelog.md).
<!-- Commands -->
/label ~bugfix
## References
<!--
Every merge request needs at least one reference!
Mention the ticket, include links to
further information, processes, etc.
-->
- (no link inserted yet)
## Author's checklist (required)
- [ ] **In the "References" section above, link to at least one issue, ticket or process.
- [ ] Confirm that your merge request contains an appropriate test case.
- [ ] Confirm that you have followed the [Code Style Guide](https://about.schukai.com/de/intern/handbuch/referenzen/best-practices-code-styleguide/).
- [ ] Confirm that you have documented the change.
- [ ] Confirm that you have followed the [Documentation Style Guide](https://about.schukai.com/de/intern/handbuch/leitfaden/uebersicht/).
## Checklist for the reviewer (if possible)
- [ ] Confirm that the merge request meets the requirements of the linked issues.
- [ ] Confirm that the merge request contains appropriate test cases.
- [ ] Code analysis has been performed.
- [ ] Set the merge request to approved.
## Release Manager Checklist (required)
- [ ] Assign this merge request to a milestone.
- [ ] Record the changes in the changelog (changelog.md).
<!-- Commands -->
/label ~enhancement
## References
<!--
Every merge request needs at least one reference!
Mention the ticket, include links to
further information, processes, etc.
-->
- (no link inserted yet)
## Author's checklist (required)
- [ ] **In the "References" section above, link to at least one issue, ticket or process.
- [ ] Confirm that your merge request contains an appropriate test case.
- [ ] Confirm that you have followed the [Code Style Guide](https://about.schukai.com/de/intern/handbuch/referenzen/best-practices-code-styleguide/).
- [ ] Confirm that you have documented the function.
- [ ] Confirm that you have followed the [Documentation Style Guide](https://about.schukai.com/de/intern/handbuch/leitfaden/uebersicht/).
## Checklist for the reviewer (if possible)
- [ ] Confirm that the merge request meets the requirements of the linked issues.
- [ ] Confirm that the merge request contains appropriate test cases.
- [ ] Code analysis has been performed.
- [ ] Set the merge request to approved.
## Release Manager Checklist (required)
- [ ] Assign this merge request to a milestone.
- [ ] Record the changes in the changelog (changelog.md).
<!-- Commands -->
/label ~feature
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="accountSettings">
<option name="activeProfile" value="profile:default" />
<option name="activeRegion" value="eu-west-1" />
<option name="recentlyUsedProfiles">
<list>
<option value="profile:default" />
</list>
</option>
<option name="recentlyUsedRegions">
<list>
<option value="eu-west-1" />
</list>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MarkdownEnhProjectSettings">
<AnnotatorSettings targetHasSpaces="true" linkCaseMismatch="true" wikiCaseMismatch="true" wikiLinkHasDashes="true" notUnderWikiHome="true" targetNotWikiPageExt="true" notUnderSourceWikiHome="true" targetNameHasAnchor="true" targetPathHasAnchor="true" wikiLinkHasSlash="true" wikiLinkHasSubdir="true" wikiLinkHasOnlyAnchor="true" linkTargetsWikiHasExt="true" linkTargetsWikiHasBadExt="true" notUnderSameRepo="true" targetNotUnderVcs="false" linkNeedsExt="true" linkHasBadExt="true" linkTargetNeedsExt="true" linkTargetHasBadExt="true" wikiLinkNotInWiki="true" imageTargetNotInRaw="true" repoRelativeAcrossVcsRoots="true" multipleWikiTargetsMatch="true" unresolvedLinkReference="true" linkIsIgnored="true" anchorIsIgnored="true" anchorIsUnresolved="true" anchorLineReferenceIsUnresolved="true" anchorLineReferenceFormat="true" anchorHasDuplicates="true" abbreviationDuplicates="true" abbreviationNotUsed="true" attributeIdDuplicateDefinition="true" attributeIdNotUsed="true" footnoteDuplicateDefinition="true" footnoteUnresolved="true" footnoteDuplicates="true" footnoteNotUsed="true" macroDuplicateDefinition="true" macroUnresolved="true" macroDuplicates="true" macroNotUsed="true" referenceDuplicateDefinition="true" referenceUnresolved="true" referenceDuplicates="true" referenceNotUsed="true" referenceUnresolvedNumericId="true" enumRefDuplicateDefinition="true" enumRefUnresolved="true" enumRefDuplicates="true" enumRefNotUsed="true" enumRefLinkUnresolved="true" enumRefLinkDuplicates="true" simTocUpdateNeeded="true" simTocTitleSpaceNeeded="true" />
<HtmlExportSettings updateOnSave="false" parentDir="" targetDir="" cssDir="css" scriptDir="js" plainHtml="false" imageDir="" copyLinkedImages="false" imagePathType="0" targetPathType="2" targetExt="" useTargetExt="false" noCssNoScripts="false" useElementStyleAttribute="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" />
<LinkMapSettings>
<textMaps />
</LinkMapSettings>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MarkdownProjectSettings">
<PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" synchronizePreviewPosition="true" highlightPreviewType="LINE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="true" showSelectionInPreview="true" lastLayoutSetsDefault="false">
<PanelProvider>
<provider providerId="com.vladsch.md.nav.editor.swing.html.panel" providerName="Default - Swing" />
</PanelProvider>
</PreviewSettings>
<ParserSettings gitHubSyntaxChange="false" correctedInvalidSettings="false" emojiShortcuts="1" emojiImages="0">
<PegdownExtensions>
<option name="ATXHEADERSPACE" value="true" />
<option name="FENCED_CODE_BLOCKS" value="true" />
<option name="INTELLIJ_DUMMY_IDENTIFIER" value="true" />
<option name="RELAXEDHRULES" value="true" />
<option name="STRIKETHROUGH" value="true" />
<option name="TABLES" value="true" />
<option name="TASKLISTITEMS" value="true" />
</PegdownExtensions>
<ParserOptions>
<option name="COMMONMARK_LISTS" value="true" />
<option name="EMOJI_SHORTCUTS" value="true" />
<option name="GFM_TABLE_RENDERING" value="true" />
<option name="PRODUCTION_SPEC_PARSER" value="true" />
<option name="SIM_TOC_BLANK_LINE_SPACER" value="true" />
</ParserOptions>
</ParserSettings>
<HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" addPageHeader="false" addAnchorLinks="false" anchorLinksWrapText="false" imageUriSerials="false" addDocTypeHtml="true" noParaTags="false" defaultUrlTitle="false" migratedPlantUml="true" migratedAnchorLinks="true" plantUmlConversion="0">
<GeneratorProvider>
<provider providerId="com.vladsch.md.nav.editor.text.html.generator" providerName="Unmodified HTML Generator" />
</GeneratorProvider>
<headerTop />
<headerBottom />
<bodyTop />
<bodyBottom />
<fencedCodeConversions>
<option name="c4plantuml" value="NONE" />
<option name="ditaa" value="NONE" />
<option name="erd" value="NONE" />
<option name="graphviz" value="NONE" />
<option name="latex" value="KATEX" />
<option name="math" value="KATEX" />
<option name="mermaid" value="NONE" />
<option name="nomnoml" value="NONE" />
<option name="plantuml" value="NONE" />
<option name="puml" value="NONE" />
<option name="svgbob" value="NONE" />
<option name="umlet" value="NONE" />
<option name="vega" value="NONE" />
<option name="vegalite" value="NONE" />
<option name="wavedrom" value="NONE" />
</fencedCodeConversions>
</HtmlSettings>
<CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssUriSerial="true" isCssTextEnabled="false" isDynamicPageWidth="true">
<StylesheetProvider>
<provider providerId="com.vladsch.md.nav.editor.text.html.css" providerName="No Stylesheet" />
</StylesheetProvider>
<ScriptProviders />
<cssText />
<cssUriHistory />
</CssSettings>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="FLOW" />
</component>
<component name="ProjectRootManager">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/../../../../alvine/frontend/alvine.frontend.framework/alvine.frontend.alvine.alvine-frontend-framework.iml" filepath="$PROJECT_DIR$/../../../../alvine/frontend/alvine.frontend.framework/alvine.frontend.alvine.alvine-frontend-framework.iml" />
<module fileurl="file://$PROJECT_DIR$/monster.iml" filepath="$PROJECT_DIR$/monster.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PhpProjectSharedConfiguration" php_language_level="7">
<option name="suggestChangeDefaultLanguageLevel" value="false" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
LICENSE
* All content residing under the "docs/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license".
* All content that resides under the "packages/" directory of this repository, if that directory exists, is licensed under the license defined in "packages/*/LICENSE".
* All third-party components that are integrated into our software are licensed under the original licence provided by the owner of the respective component.
* Content outside the above directories or restrictions is available under the "AGPL 3.0" licence as defined here: https://www.gnu.org/licenses/agpl-3.0.en.html
Makefile 0 → 100644
#############################################################################################
#############################################################################################
##
## PROJECT-DEFINITIONS
##
#############################################################################################
#############################################################################################
COPYRIGHT_TEXT := © 2021 schukai GmbH, Released under the AGPL 3.0 License.
#############################################################################################
#############################################################################################
##
## more general block with standard definitions
##
#############################################################################################
#############################################################################################
# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)/
THIS_MAKEFILE:=$(THIS_DIR)$(THIS_MAKEFILE_PATH)
# colors
BLACK := $(shell tput -Txterm setaf 0)
RED := $(shell tput -Txterm setaf 1)
GREEN := $(shell tput -Txterm setaf 2)
YELLOW := $(shell tput -Txterm setaf 3)
LIGHTPURPLE := $(shell tput -Txterm setaf 4)
PURPLE := $(shell tput -Txterm setaf 5)
BLUE := $(shell tput -Txterm setaf 6)
WHITE := $(shell tput -Txterm setaf 7)
RESET := $(shell tput -Txterm sgr0)
INFO := $(GREEN)
COMMENT := $(YELLOW)
# Output control and standard outputs
MARKER := $(BLUE)[+]$(RESET)
ERRORMARKER := $(RED)[-]$(RESET)
## Deactivate the quite mode by overwriting the value with space
ifndef DEBUG
QUIET = @
else
QUIET =
endif
ECHO := @echo
ECHOMARKER := @echo "$(MARKER) $0"
ECHOERRORMARKER := @echo "$(ERRORMARKER) $0"
# Use bash instead of sh
## Sets the shell used
SHELL = bash
# path and binaries
AWK := awk
PHP := php
CP := cp
CD := cd
KILL := /bin/kill
M4 := m4
MV := mv
RM := rm -f
MKDIR := mkdir -p
SED := sed
FIND := find
SORT := sort
TOUCH := touch
WGET := wget
CHMOD := chmod
RSYNC := rsync
DOCKER := docker
NPX := npx
AWS := aws
XARGS := xargs
GREP := grep
NPM := npm
# Executable Programs the Installed be have to
EXECUTABLES = $(AWK) $(CP) $(KILL) $(M4) $(MV) rm mkdir $(PHP) $(SED) $(SORT) $(TOUCH) $(WGET) $(CHMOD) $(NPX) $(FIND) $(XARGS) $(GREP) $(NPM)
K := $(foreach exec,$(EXECUTABLES),\
$(if $(shell which $(exec)),some string,$(error "Missing $(exec) in PATH; please install")))
#############################################################################################
#############################################################################################
##
## DEFAULT-TARGETS
##
#############################################################################################
#############################################################################################
# @see .PHONY https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html#Phony-Targets
.DEFAULT_GOAL := help
.PHONY: print
print:
$(ECHO) "THIS_MAKEFILE: $(THIS_MAKEFILE)"
$(ECHO) "THIS_MAKEFILE_PATH: $(THIS_MAKEFILE_PATH)"
$(ECHO) "THIS_DIR: $(THIS_DIR)"
# Add a comment to the public targets so that it appears
# in this help Use two # characters for a help comment
.PHONY: help
help:
@printf "${COMMENT}Usage:${RESET}\n"
@printf " make [target] [arg=\"val\"...]\n\n"
@printf "${COMMENT}Available targets:${RESET}\n"
@awk '/^[a-zA-Z\-\_0-9\.@]+:/ { \
helpMessage = match(lastLine, /^## (.*)/); \
if (helpMessage) { \
helpCommand = substr($$1, 0, index($$1, ":")); \
helpMessage = substr(lastLine, RSTART + 3, RLENGTH); \
printf " ${INFO}%-22s${RESET} %s\n", helpCommand, helpMessage; \
} \
} \
{ lastLine = $$0 }' $(MAKEFILE_LIST)
@printf "\n${COMMENT}Available arguments:${RESET}\n\n"
@awk '/^(([a-zA-Z\-\_0-9\.@]+)\s=)/ { \
helpMessage = match(lastLine, /^## (.*)/); \
if (helpMessage) { \
helpMessage = substr(lastLine, RSTART + 3, RLENGTH); \
printf " ${INFO}%-22s${RESET} %s (Default: %s)\n", $$1, helpMessage, $$3; \
} \
} \
{ lastLine = $$0 }' $(MAKEFILE_LIST)
.PHONY: variables
## Print all Variables
variables:
@$(foreach v, $(.VARIABLES), $(if $(filter file,$(origin $(v))), $(info $(INFO)$(v)$(RESET)=$($(v))$(RESET))))
#############################################################################################
#############################################################################################
##
## DIRECTORIES
##
#############################################################################################
#############################################################################################
SOURCE_PATH := $(THIS_DIR)source/
DIST_PATH := $(THIS_DIR)dist/
TEST_PATH := $(THIS_DIR)test
#############################################################################################
#############################################################################################
##
## GIT-TARGETS
##
#############################################################################################
#############################################################################################
## Current Branch-Tag
TAG := -
## Git Commit Message for git-push
MESSAGE := current status
.PHONY: git-branch
## create new branch (use TAG-Variable)
git-branch:
ifeq (, $(shell command -v uuidgen))
$(error "No uuidgen in PATH, consider doing apt-get install uuidgen")
endif
export BRANCH="MONSTER/$(TAG)/$(shell uuidgen --random)" ; \
git checkout -b $${BRANCH} && \
RESULT=$$(git push origin $$BRANCH 2>&1) && \
RESULT2=$$(git branch --set-upstream-to=origin/$$BRANCH $$BRANCH) && \
GITLABURL=$$(echo "$$RESULT" | tr '\n' '\#' | grep -o 'remote\:\s*https:\/\/gitlab\.schukai\.com[^ ]*' | cut -d " " -f2-9 | sed -e 's/^[ \t]*//') && \
google-chrome --profile-directory="Default" $$GITLABURL
.PHONY: git-to-master
## git checkout master, fetch and merge
git-to-master:
git checkout master && git fetch -pP && git merge
.PHONY: git-push-to-server
## git push changes to server
git-push-to-server:
git add -A
git commit -m"$(MESSAGE)"
git push
.PHONY: git-push
## git create branch and push changes to server
git-push: git-branch git-push-to-server
#############################################################################################
#############################################################################################
##
## DEFAULT-DEFINITIONS
##
#############################################################################################
#############################################################################################
NODE_MODULES_DIR := $(THIS_DIR)node_modules/
NODE_MODULES_BIN_DIR := $(NODE_MODULES_DIR).bin/
BROWSERIFY := $(NODE_MODULES_BIN_DIR)browserify
BABEL := $(NODE_MODULES_BIN_DIR)babel
EXORCIST := $(NODE_MODULES_BIN_DIR)exorcist
UGLIFYJS := $(NODE_MODULES_BIN_DIR)uglifyjs
MOCHA := $(NODE_MODULES_BIN_DIR)mocha
JSDOC := $(NODE_MODULES_BIN_DIR)jsdoc
$(NODE_MODULES_DIR): $(THIS_DIR)package.json
$(QUIET) $(NPM) install
#############################################################################################
## MONSTER CORE #############################################################################
#############################################################################################
MONSTER_DIR := $(THIS_DIR)packages/monster/
MONSTER_SOURCE_DIR := $(THIS_DIR)packages/monster/source/
MONSTER_SOURCE_FILES := $(shell find $(MONSTER_SOURCE_DIR) -name '*.js')
MONSTER_DIST_DIR := $(THIS_DIR)packages/monster/dist/
MONSTER_DIST_MODULE_DIR := $(THIS_DIR)packages/monster/dist/modules/
MONSTER_DIST_MODULES_FILES := $(subst $(MONSTER_SOURCE_DIR), $(MONSTER_DIST_MODULE_DIR), $(MONSTER_SOURCE_FILES))
MONSTER_TEST_DIR := $(THIS_DIR)packages/monster/test/
MONSTER_TEST_CASE_DIR := $(MONSTER_TEST_DIR)cases/
MONSTER_FILES_WITHVERSION := $(shell grep -l -r -E "monster@[0-9]\.[0-9]\.[0-9]" $(MONSTER_SOURCE_FILES))
MONSTER_VERSION := $(shell jq -r ".version" $(MONSTER_DIR)package.json)
LICENSE_C_COMMENT := Monster $(MONSTER_VERSION), $(COPYRIGHT_TEXT)
$(MONSTER_DIST_DIR):
$(ECHOMARKER) "make directory $(MONSTER_DIST_DIR)"
$(QUIET) $(MKDIR) $(MONSTER_DIST_DIR)
.PHONY: version-monster
version-monster: $(MONSTER_TEST_CASE_DIR)monster.js $(MONSTER_DIR)README.md $(MONSTER_FILES_WITHVERSION)
$(MONSTER_TEST_CASE_DIR)monster.js: $(MONSTER_DIR)package.json
$(ECHOMARKER) "write test/monster.js version $(MONSTER_VERSION)"
$(QUIET) $(AWK) -i inplace -v start='/**#@+' -v end='/**#@-*/' -v repl=" /**#@+ dont touch, replaced by make with package.json version */\n monsterVersion = new Version('$(MONSTER_VERSION)')\n /**#@-*/" '$$1 == start{del=2} $$1 == end{$$1 = repl; del=0} !del' $(MONSTER_TEST_CASE_DIR)monster.js
$(MONSTER_DIR)README.md: $(MONSTER_DIR)package.json
$(ECHOMARKER) "write README.md monster version $(MONSTER_VERSION)"
$(QUITE) $(SED) -i -E "s/(\/monster@)([0-9]+\.[0-9]+\.[0-9]+)\//\1$(MONSTER_VERSION)\//gi" $(MONSTER_DIR)README.md
$(MONSTER_FILES_WITHVERSION): $(MONSTER_DIR)package.json
$(ECHOMARKER) "write $@ monster version $(MONSTER_VERSION)"
$(QUITE) $(SED) -i -E "s/(\/monster@)([0-9]+\.[0-9]+\.[0-9]+)\//\1$(MONSTER_VERSION)\//gi" $@
$(QUIET) $(AWK) -i inplace -v start='/**#@+' -v end='/**#@-*/' -v repl=" /**#@+ dont touch, replaced by make with package.json version */\n monsterVersion = new Version('$(MONSTER_VERSION)')\n /**#@-*/" '$$1 == start{del=2} $$1 == end{$$1 = repl; del=0} !del' $@
$(MONSTER_DIST_DIR)monster.dev.js: $(MONSTER_SOURCE_FILES)
$(QUIET) $(BROWSERIFY) $(MONSTER_SOURCE_DIR)monster.js -t [ babelify --presets [ @babel/preset-env ] ] --debug | \
$(EXORCIST) $(MONSTER_DIST_DIR)monster.dev.js.map > $(MONSTER_DIST_DIR)monster.dev.js
$(MONSTER_DIST_MODULES_FILES): $(MONSTER_SOURCE_FILES)
$(ECHOMARKER) "build monster modules $@"
$(QUIET) $(BABEL) --config-file $(THIS_DIR).babelrc.json --no-comments --out-file $@ --minified --presets @babel/preset-modules $(subst $(MONSTER_DIST_MODULE_DIR), $(MONSTER_SOURCE_DIR), $@)
$(QUIET) $(SED) -i '1 i /** $(LICENSE_C_COMMENT) */' $@
$(MONSTER_DIST_DIR)monster.js: $(MONSTER_SOURCE_FILES)
$(ECHOMARKER) "build monster"
$(QUIET) echo "/** $(LICENSE_C_COMMENT) */" > $(MONSTER_DIST_DIR)monster.js
$(QUIET) $(BROWSERIFY) $(MONSTER_SOURCE_DIR)monster.js -t [ babelify --presets [ @babel/preset-env ] ] | $(UGLIFYJS) -- >> $(MONSTER_DIST_DIR)monster.js
.PHONY: build-monster
## create library
build-monster: version-monster $(NODE_MODULES_DIR) $(MONSTER_DIST_DIR) $(MONSTER_DIST_DIR)monster.js $(MONSTER_DIST_DIR)monster.dev.js $(MONSTER_DIST_MODULES_FILES)
.PHONY: test-browser-monster
## create test-browser-monster
test-browser-monster:
$(ECHOMARKER) "create browser test and start chrome"
$(QUIET) $(FIND) $(MONSTER_TEST_CASE_DIR) -type f | $(SED) "s|^$(MONSTER_TEST_CASE_DIR)||" > $(MONSTER_TEST_DIR)web/import.js
$(QUIET) $(SED) -i 's|^|import "../cases/|' $(MONSTER_TEST_DIR)web/import.js
$(QUIET) $(SED) -i 's|$$|";|' $(MONSTER_TEST_DIR)web/import.js
$(QUIET) $(SED) -i "1 i /** this file was created automatically by the make target test-browser-monster */" $(MONSTER_TEST_DIR)web/import.js
$(QUIET) $(BROWSERIFY) $(MONSTER_TEST_DIR)web/import.js -t [ babelify --presets [ @babel/preset-env ] ] > $(MONSTER_TEST_DIR)web/tests.js
$(QUIET) google-chrome --profile-directory="Default" $(MONSTER_TEST_DIR)web/test.html
.PHONY: test-monster
## test library
test-monster: build-monster
$(ECHOMARKER) "test monster"
$(QUITE) $(NPX) flow
$(QUIET) $(MOCHA) --recursive $(MONSTER_TEST_CASE_DIR)**
.PHONY: npm-publish-monster
## publish library to npm
npm-publish-monster: build-monster
$(ECHOMARKER) "publish monster"
$(QUIET) $(CD) $(MONSTER_DIR) ; \
$(NPM) publish --access public ; \
$(CD) -
#############################################################################################
.PHONY: build
## create all packages
build: build-monster
.PHONY: test
## test all packages
test: test-monster
.PHONY: doc
## generate docs
doc: test-monster
$(ECHOMARKER) "create doc"
$(QUIET) $(JSDOC) -c $(THIS_DIR)jsdoc.json $(THIS_DIR)README.md
$(QUIET) $(GREP) -rl 'Documentation generated by' $(THIS_DIR)docs/ | $(XARGS) sed -i '/Documentation generated by/d'
doc-2-aws: doc
$(QUIET) $(AWS) s3 cp --recursive $(THIS_DIR)docs/ s3://doc.alvine.io/en/oss/monster/snapshot/
\ No newline at end of file
![](https://gitlab.schukai.com/uploads/-/system/project/avatar/337/monster.png?width=255)
# Monster # Monster
**Build fantastic websites!**
Monster is a lightweight, robust and easy-to-use library with modest ambitions. Monster integrates easily into your existing websites without taking over everything.
It is not the goal of Monster to pull in a completely new abstraction with its own language, but to combine the existing techniques of HTML, CSS and Javascript in a meaningful way.
Monster is perfectly suited for the creation of beautiful and fast user interfaces and websites. The basis is formed by core functions that can be supplemented by necessary classes and objects.
One first design target is to reach the shiny sun with as little Javascript as possible. That is why we do not have any external dependencies.
Monster was built with ES6 modules and uses [import](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/import) and [export](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export).
There is a version in the `/dist` folder that was built via browserfy and thus supports all browsers that are compatible with ES5.
## Build & Development
```
// create documentation
make doc
// create documentation and push to aws
make doc-2-aws
// build all packages
make build
// test all packages
make test
// build packages
PACKAGE=monster
make build-${PACKAGES}
make build-browser-test-${PACKAGES}
make test-${PACKAGES}
make npm-publish-${PACKAGES}
```
## Packages
| Package | Description | NPM |
|:--------|:----------------------------------------|:-------------------------------------------------------------------------------------|
| monster | Standard library with general functions | [npmjs.com/package/@schukai/monster](https://www.npmjs.com/package/@schukai/monster) |
## Documentation
To check out docs and examples, visit [doc.alvine.io/en/oss/monster/snapshot/](https://doc.alvine.io/en/oss/monster/snapshot/).
## Questions
For questions and commercial support please contact [schukai GmbH](https://www.schukai.com/). The issue list of this repo is exclusively for bug reports and feature requests.
## Issues
Please make sure to read the Issue Reporting Checklist before opening an issue. Issues not conforming to the guidelines may be closed immediately.
## License
* All content residing under the `docs/` directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license".
* All packages that resides under the `packages/` directory of this repository, if that directory exists, is licensed under the license defined in `packages/<package>/LICENSE`.
* All third-party components that are integrated into our software are licensed under the original licence provided by the owner of the respective component.
* Content outside the above directories or restrictions is available under the [AGPL 3.0](https://www.gnu.org/licenses/agpl-3.0.en.html).
**you can also purchase a commercial licence**
## Changelog
Detailed changes for each release are documented in
the [release notes](https://gitlab.schukai.com/oss/libraries/javascript/monster/-/releases).
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment