Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
Loading items

Target

Select target project
  • oss/libraries/javascript/monster
1 result
Select Git revision
Loading items
Show changes
Commits on Source (92)
Showing
with 1111 additions and 1079 deletions
{
}
[ignore]
.*/playground
.*/node_modules
.*/node_modules/
/node_modules/
[include]
[libs]
[lints]
[options]
[strict]
.phpunit.result.cache
.nyc_output
coverage
/process
#####################ALLGEMEINER TEIL
# Makefile comes from update
Makefile.example
# Vendor
/development/vendor/
/deployment/vendor/
# yarn v2 # Created by https://www.toptal.com/developers/gitignore/api/intellij+iml,phpunit,git,vim,visualstudiocode,phpstorm,go,intellij+all,netbeans,dbeaver,node,yarn
.yarn/cache # Edit at https://www.toptal.com/developers/gitignore?templates=intellij+iml,phpunit,git,vim,visualstudiocode,phpstorm,go,intellij+all,netbeans,dbeaver,node,yarn
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
.cache
# Optional npm cache directory
.npm
# Optional eslint cache ### DBeaver ###
.eslintcache # ide config file
.dbeaver-data-sources*.xml
# Microbundle cache ### Git ###
.rpt2_cache/ # Created by git for backups. To disable backups in Git:
.rts2_cache_cjs/ # $ git config --global mergetool.keepBackup false
.rts2_cache_es/ *.orig
.rts2_cache_umd/
# Dependency directories # Created by git when using merge tools for conflicts
node_modules/ *.BACKUP.*
jspm_packages/ *.BASE.*
*.LOCAL.*
*.REMOTE.*
*_BACKUP_*.txt
*_BASE_*.txt
*_LOCAL_*.txt
*_REMOTE_*.txt
### Go ###
# If you prefer the allow list template instead of the deny list, see community template:
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
#
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
# Test binary, built with `go test -c`
*.test
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
# Dependency directories (remove the comment below to include it)
# vendor/
# Go workspace file
go.work
### Go Patch ###
/vendor/
/Godeps/
### Intellij+all ###
# 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
# Snowpack dependency directory (https://snowpack.dev/) # User-specific stuff
web_modules/ .idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Logs # AWS User-specific
*.log .idea/**/aws.xml
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Cloud9 IDE - http://c9.io # Generated files
.c9revisions .idea/**/contentModel.xml
.c9
##Exclipse # Sensitive or high-churn files
.metadata .idea/**/dataSources/
tmp/ .idea/**/dataSources.ids
*.tmp .idea/**/dataSources.local.xml
*.bak .idea/**/sqlDataSources.xml
*.swp .idea/**/dynamic.xml
*~.nib .idea/**/uiDesigner.xml
local.properties .idea/**/dbnavigator.xml
.settings/
.loadpath
.recommenders
# External tool builders # Gradle
.externalToolBuilders/ .idea/**/gradle.xml
.idea/**/libraries
# Locally stored "Eclipse launch configurations" # Gradle and Maven with auto-import
*.launch # 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
# PyDev specific (Python IDE for Eclipse) # CMake
*.pydevproject cmake-build-*/
# CDT-specific (C/C++ Development Tooling) # Mongo Explorer plugin
.cproject .idea/**/mongoSettings.xml
# CDT- autotools # File-based project format
.autotools *.iws
# Java annotation processor (APT) # IntelliJ
.factorypath out/
# PDT-specific (PHP Development Tools) # mpeltonen/sbt-idea plugin
.buildpath .idea_modules/
# sbteclipse plugin # JIRA plugin
.target atlassian-ide-plugin.xml
# Tern plugin # Cursive Clojure plugin
.tern-project .idea/replstate.xml
# TeXlipse plugin # SonarLint plugin
.texlipse .idea/sonarlint/
# STS (Spring Tool Suite) # Crashlytics plugin (for Android Studio and IntelliJ)
.springBeans com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Code Recommenders # Editor-based Rest Client
.recommenders/ .idea/httpRequests
# Annotation Processing # Android studio 3.1+ serialized cache file
.apt_generated/ .idea/caches/build_file_checksums.ser
.apt_generated_test/
# Scala IDE specific (Scala & Java development for Eclipse) ### Intellij+all Patch ###
.cache-main # Ignore everything but code style settings and run configurations
.scala_dependencies # that are supposed to be shared within teams.
.worksheet
# Uncomment this line if you wish to ignore the project description file. .idea/*
# Typically, this file would be tracked if it contains build/dependency configurations:
#.project
##Kate !.idea/codeStyles
# Swap Files # !.idea/runConfigurations
.*.kate-swp
.swp.*
## KDEDevelop ### Intellij+iml ###
*.kdev4 # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
.kdev4/ # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
## LibreOffice # User-specific stuff
# LibreOffice locks
.~lock.*#
# AWS User-specific
### LINUX # Generated files
*~
# temporary files which can be created if a process still has a handle open of a deleted file # Sensitive or high-churn files
.fuse_hidden*
# KDE directory preferences # Gradle
.directory
# Linux trash folder which might appear on any partition or disk # Gradle and Maven with auto-import
.Trash-* # 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
# .nfs files are created when an open file is removed but is still being accessed # CMake
.nfs*
## Patches # Mongo Explorer plugin
*.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 # File-based project format
Session.vim
Sessionx.vim
# Temporary # IntelliJ
.netrwhist
# Auto-generated tag files # mpeltonen/sbt-idea plugin
tags
# Persistent undo
[._]*.un~
# Windows thumbnail cache files # JIRA plugin
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
# Dump file # Cursive Clojure plugin
*.stackdump
# Folder config file # SonarLint plugin
[Dd]esktop.ini
# Recycle Bin used on file shares # Crashlytics plugin (for Android Studio and IntelliJ)
$RECYCLE.BIN/
# Windows Installer files # Editor-based Rest Client
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts # Android studio 3.1+ serialized cache file
*.lnk
# gitignore template for AWS Serverless Application Model project ### Intellij+iml Patch ###
# website: https://docs.aws.amazon.com/serverless-application-model # Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
# Ignore build folder *.iml
.aws-sam/ modules.xml
.idea/misc.xml
*.ipr
# Netbeans ### NetBeans ###
**/nbproject/private/ **/nbproject/private/
**/nbproject/Makefile-*.mk **/nbproject/Makefile-*.mk
**/nbproject/Package-*.bash **/nbproject/Package-*.bash
build/ build/
nbbuild/ nbbuild/
dist/
nbdist/ nbdist/
.nb-gradle/ .nb-gradle/
### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
### Node Patch ###
# Serverless Webpack directories
.webpack/
# Optional stylelint cache
# SvelteKit build / generate output
.svelte-kit
### PhpStorm ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider # 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 # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff # User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml # AWS User-specific
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Generated files # Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files # 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 # Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import # Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files, # When using Gradle or Maven with auto-import, you should exclude module files,
...@@ -280,36 +378,135 @@ nbdist/ ...@@ -280,36 +378,135 @@ nbdist/
# *.ipr # *.ipr
# CMake # CMake
cmake-build-*/
# Mongo Explorer plugin # Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format # File-based project format
*.iws
# IntelliJ # IntelliJ
out/
# mpeltonen/sbt-idea plugin # mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin # JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin # Cursive Clojure plugin
.idea/replstate.xml
# SonarLint plugin
# Crashlytics plugin (for Android Studio and IntelliJ) # Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client # Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file # Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
### PhpStorm Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr
# Sonarlint plugin
# https://plugins.jetbrains.com/plugin/7973-sonarlint
.idea/**/sonarlint/
# SonarQube Plugin
# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
.idea/**/sonarIssues.xml
# Markdown Navigator plugin
# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
.idea/**/markdown-navigator.xml
.idea/**/markdown-navigator-enh.xml
.idea/**/markdown-navigator/
# Cache file creation bug
# See https://youtrack.jetbrains.com/issue/JBR-2257
.idea/$CACHE_FILE$
# CodeStream plugin
# https://plugins.jetbrains.com/plugin/12206-codestream
.idea/codestream.xml
# Azure Toolkit for IntelliJ plugin
# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
.idea/**/azureSettings.xml
### PHPUnit ###
# Covers PHPUnit
# Reference: https://phpunit.de/
# Generated files
.phpunit.result.cache
.phpunit.cache
# PHPUnit
/app/phpunit.xml
/phpunit.xml
# Build data
/build/
### 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~
### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
# Local History for Visual Studio Code
.history/
# Built Visual Studio Code Extensions
*.vsix
### VisualStudioCode Patch ###
# Ignore all local history of files
.history
.ionide
# Support for Project snippet scope
.vscode/*.code-snippets
# Ignore code-workspaces
*.code-workspace
### yarn ###
# https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored
.yarn/*
!.yarn/releases
!.yarn/patches
!.yarn/plugins
!.yarn/sdks
!.yarn/versions
# if you are NOT using Zero-installs, then:
# comment the following lines
!.yarn/cache
# and uncomment the following lines
# .pnp.*
image: node:16
cache:
paths:
- node_modules/
stages:
- setup
- test
test:
stage: test
script:
- apt-get update && apt-get install -y jq gawk plantuml
- make test
include:
- template: Security/Secret-Detection.gitlab-ci.yml
<!---
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
## 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 ~release
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DBNavigator.Project.DataEditorManager">
<record-view-column-sorting-type value="BY_INDEX" />
<value-preview-text-wrapping value="true" />
<value-preview-pinned value="false" />
</component>
<component name="DBNavigator.Project.DataExportManager">
<export-instructions>
<create-header value="true" />
<friendly-headers value="false" />
<quote-values-containing-separator value="true" />
<quote-all-values value="false" />
<value-separator value="" />
<file-name value="" />
<file-location value="" />
<scope value="GLOBAL" />
<destination value="FILE" />
<format value="EXCEL" />
<charset value="UTF-8" />
</export-instructions>
</component>
<component name="DBNavigator.Project.DatabaseBrowserManager">
<autoscroll-to-editor value="false" />
<autoscroll-from-editor value="true" />
<show-object-properties value="true" />
<loaded-nodes />
</component>
<component name="DBNavigator.Project.DatabaseFileManager">
<open-files />
</component>
<component name="DBNavigator.Project.EditorStateManager">
<last-used-providers />
</component>
<component name="DBNavigator.Project.ExecutionManager">
<retain-sticky-names value="false" />
</component>
<component name="DBNavigator.Project.MethodExecutionManager">
<method-browser />
<execution-history>
<group-entries value="true" />
<execution-inputs />
</execution-history>
<argument-values-cache />
</component>
<component name="DBNavigator.Project.ObjectDependencyManager">
<last-used-dependency-type value="INCOMING" />
</component>
<component name="DBNavigator.Project.ObjectQuickFilterManager">
<last-used-operator value="EQUAL" />
<filters />
</component>
<component name="DBNavigator.Project.ScriptExecutionManager" clear-outputs="true">
<recently-used-interfaces />
</component>
<component name="DBNavigator.Project.Settings">
<connections />
<browser-settings>
<general>
<display-mode value="TABBED" />
<navigation-history-size value="100" />
<show-object-details value="false" />
</general>
<filters>
<object-type-filter>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="true" />
<object-type name="ROLE" enabled="true" />
<object-type name="PRIVILEGE" enabled="true" />
<object-type name="CHARSET" enabled="true" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED_VIEW" enabled="true" />
<object-type name="NESTED_TABLE" enabled="true" />
<object-type name="COLUMN" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET_TRIGGER" enabled="true" />
<object-type name="DATABASE_TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="true" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
<object-type name="ARGUMENT" enabled="true" />
<object-type name="DIMENSION" enabled="true" />
<object-type name="CLUSTER" enabled="true" />
<object-type name="DBLINK" enabled="true" />
</object-type-filter>
</filters>
<sorting>
<object-type name="COLUMN" sorting-type="NAME" />
<object-type name="FUNCTION" sorting-type="NAME" />
<object-type name="PROCEDURE" sorting-type="NAME" />
<object-type name="ARGUMENT" sorting-type="POSITION" />
</sorting>
<default-editors>
<object-type name="VIEW" editor-type="SELECTION" />
<object-type name="PACKAGE" editor-type="SELECTION" />
<object-type name="TYPE" editor-type="SELECTION" />
</default-editors>
</browser-settings>
<navigation-settings>
<lookup-filters>
<lookup-objects>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="false" />
<object-type name="ROLE" enabled="false" />
<object-type name="PRIVILEGE" enabled="false" />
<object-type name="CHARSET" enabled="false" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED VIEW" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET TRIGGER" enabled="true" />
<object-type name="DATABASE TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="false" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="DIMENSION" enabled="false" />
<object-type name="CLUSTER" enabled="false" />
<object-type name="DBLINK" enabled="true" />
</lookup-objects>
<force-database-load value="false" />
<prompt-connection-selection value="true" />
<prompt-schema-selection value="true" />
</lookup-filters>
</navigation-settings>
<dataset-grid-settings>
<general>
<enable-zooming value="true" />
<enable-column-tooltip value="true" />
</general>
<sorting>
<nulls-first value="true" />
<max-sorting-columns value="4" />
</sorting>
<tracking-columns>
<columnNames value="" />
<visible value="true" />
<editable value="false" />
</tracking-columns>
</dataset-grid-settings>
<dataset-editor-settings>
<text-editor-popup>
<active value="false" />
<active-if-empty value="false" />
<data-length-threshold value="100" />
<popup-delay value="1000" />
</text-editor-popup>
<values-actions-popup>
<show-popup-button value="true" />
<element-count-threshold value="1000" />
<data-length-threshold value="250" />
</values-actions-popup>
<general>
<fetch-block-size value="100" />
<fetch-timeout value="30" />
<trim-whitespaces value="true" />
<convert-empty-strings-to-null value="true" />
<select-content-on-cell-edit value="true" />
<large-value-preview-active value="true" />
</general>
<filters>
<prompt-filter-dialog value="true" />
<default-filter-type value="BASIC" />
</filters>
<qualified-text-editor text-length-threshold="300">
<content-types>
<content-type name="Text" enabled="true" />
<content-type name="Properties" enabled="true" />
<content-type name="XML" enabled="true" />
<content-type name="DTD" enabled="true" />
<content-type name="HTML" enabled="true" />
<content-type name="XHTML" enabled="true" />
<content-type name="CSS" enabled="true" />
<content-type name="Java" enabled="true" />
<content-type name="SQL" enabled="true" />
<content-type name="PL/SQL" enabled="true" />
<content-type name="JavaScript" enabled="true" />
<content-type name="JSON" enabled="true" />
<content-type name="JSON5" enabled="true" />
<content-type name="PHP" enabled="true" />
<content-type name="YAML" enabled="true" />
<content-type name="Manifest" enabled="true" />
</content-types>
</qualified-text-editor>
<record-navigation>
<navigation-target value="VIEWER" />
</record-navigation>
</dataset-editor-settings>
<code-editor-settings>
<general>
<show-object-navigation-gutter value="false" />
<show-spec-declaration-navigation-gutter value="true" />
<enable-spellchecking value="true" />
<enable-reference-spellchecking value="false" />
</general>
<confirmations>
<save-changes value="false" />
<revert-changes value="true" />
</confirmations>
</code-editor-settings>
<code-completion-settings>
<filters>
<basic-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="false" />
<filter-element type="OBJECT" id="view" selected="false" />
<filter-element type="OBJECT" id="materialized view" selected="false" />
<filter-element type="OBJECT" id="index" selected="false" />
<filter-element type="OBJECT" id="constraint" selected="false" />
<filter-element type="OBJECT" id="trigger" selected="false" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="false" />
<filter-element type="OBJECT" id="procedure" selected="false" />
<filter-element type="OBJECT" id="function" selected="false" />
<filter-element type="OBJECT" id="package" selected="false" />
<filter-element type="OBJECT" id="type" selected="false" />
<filter-element type="OBJECT" id="dimension" selected="false" />
<filter-element type="OBJECT" id="cluster" selected="false" />
<filter-element type="OBJECT" id="dblink" selected="false" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</basic-filter>
<extended-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</extended-filter>
</filters>
<sorting enabled="true">
<sorting-element type="RESERVED_WORD" id="keyword" />
<sorting-element type="RESERVED_WORD" id="datatype" />
<sorting-element type="OBJECT" id="column" />
<sorting-element type="OBJECT" id="table" />
<sorting-element type="OBJECT" id="view" />
<sorting-element type="OBJECT" id="materialized view" />
<sorting-element type="OBJECT" id="index" />
<sorting-element type="OBJECT" id="constraint" />
<sorting-element type="OBJECT" id="trigger" />
<sorting-element type="OBJECT" id="synonym" />
<sorting-element type="OBJECT" id="sequence" />
<sorting-element type="OBJECT" id="procedure" />
<sorting-element type="OBJECT" id="function" />
<sorting-element type="OBJECT" id="package" />
<sorting-element type="OBJECT" id="type" />
<sorting-element type="OBJECT" id="dimension" />
<sorting-element type="OBJECT" id="cluster" />
<sorting-element type="OBJECT" id="dblink" />
<sorting-element type="OBJECT" id="schema" />
<sorting-element type="OBJECT" id="role" />
<sorting-element type="OBJECT" id="user" />
<sorting-element type="RESERVED_WORD" id="function" />
<sorting-element type="RESERVED_WORD" id="parameter" />
</sorting>
<format>
<enforce-code-style-case value="true" />
</format>
</code-completion-settings>
<execution-engine-settings>
<statement-execution>
<fetch-block-size value="100" />
<execution-timeout value="20" />
<debug-execution-timeout value="600" />
<focus-result value="false" />
<prompt-execution value="false" />
</statement-execution>
<script-execution>
<command-line-interfaces />
<execution-timeout value="300" />
</script-execution>
<method-execution>
<execution-timeout value="30" />
<debug-execution-timeout value="600" />
<parameter-history-size value="10" />
</method-execution>
</execution-engine-settings>
<operation-settings>
<transactions>
<uncommitted-changes>
<on-project-close value="ASK" />
<on-disconnect value="ASK" />
<on-autocommit-toggle value="ASK" />
</uncommitted-changes>
<multiple-uncommitted-changes>
<on-commit value="ASK" />
<on-rollback value="ASK" />
</multiple-uncommitted-changes>
</transactions>
<session-browser>
<disconnect-session value="ASK" />
<kill-session value="ASK" />
<reload-on-filter-change value="false" />
</session-browser>
<compiler>
<compile-type value="KEEP" />
<compile-dependencies value="ASK" />
<always-show-controls value="false" />
</compiler>
<debugger>
<debugger-type value="ASK" />
<use-generic-runners value="true" />
</debugger>
</operation-settings>
<ddl-file-settings>
<extensions>
<mapping file-type-id="VIEW" extensions="vw" />
<mapping file-type-id="TRIGGER" extensions="trg" />
<mapping file-type-id="PROCEDURE" extensions="prc" />
<mapping file-type-id="FUNCTION" extensions="fnc" />
<mapping file-type-id="PACKAGE" extensions="pkg" />
<mapping file-type-id="PACKAGE_SPEC" extensions="pks" />
<mapping file-type-id="PACKAGE_BODY" extensions="pkb" />
<mapping file-type-id="TYPE" extensions="tpe" />
<mapping file-type-id="TYPE_SPEC" extensions="tps" />
<mapping file-type-id="TYPE_BODY" extensions="tpb" />
</extensions>
<general>
<lookup-ddl-files value="true" />
<create-ddl-files value="false" />
<synchronize-ddl-files value="true" />
<use-qualified-names value="false" />
<make-scripts-rerunnable value="true" />
</general>
</ddl-file-settings>
<general-settings>
<regional-settings>
<date-format value="MEDIUM" />
<number-format value="UNGROUPED" />
<locale value="SYSTEM_DEFAULT" />
<use-custom-formats value="false" />
</regional-settings>
<environment>
<environment-types>
<environment-type id="development" name="Development" description="Development environment" color="-2430209/-12296320" readonly-code="false" readonly-data="false" />
<environment-type id="integration" name="Integration" description="Integration environment" color="-2621494/-12163514" readonly-code="true" readonly-data="false" />
<environment-type id="production" name="Production" description="Productive environment" color="-11574/-10271420" readonly-code="true" readonly-data="true" />
<environment-type id="other" name="Other" description="" color="-1576/-10724543" readonly-code="false" readonly-data="false" />
</environment-types>
<visibility-settings>
<connection-tabs value="true" />
<dialog-headers value="true" />
<object-editor-tabs value="true" />
<script-editor-tabs value="false" />
<execution-result-tabs value="true" />
</visibility-settings>
</environment>
</general-settings>
</component>
<component name="DBNavigator.Project.StatementExecutionManager">
<execution-variables />
</component>
</project>
\ No newline at end of file
<a name="v2.0.15"></a>
## [v2.0.15] - 2022-10-31
### Changes
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
- commit save point
<a name="1.31.0"></a>
## [1.31.0] - 2022-02-07
<a name="1.30.1"></a>
## [1.30.1] - 2022-02-06
<a name="1.10.0"></a>
## [1.10.0] - 2021-08-29
<a name="1.9.0"></a>
## [1.9.0] - 2021-08-17
<a name="1.8.0"></a>
## 1.8.0 - 2021-08-15
[v2.0.15]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/1.31.0...v2.0.15
[1.31.0]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/1.30.1...1.31.0
[1.30.1]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/1.10.0...1.30.1
[1.10.0]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/1.9.0...1.10.0
[1.9.0]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/1.8.0...1.9.0
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
...@@ -6,473 +6,82 @@ ...@@ -6,473 +6,82 @@
############################################################################################# #############################################################################################
############################################################################################# #############################################################################################
COPYRIGHT_TEXT := © 2021 schukai GmbH, Released under the AGPL 3.0 License. COMPONENT_NAME := Monster
############################################################################################# #############################################################################################
############################################################################################# #############################################################################################
## ##
## more general block with standard definitions ## MORE GENERAL BLOCK WITH STANDARD DEFINITIONS
## ##
############################################################################################# #############################################################################################
############################################################################################# #############################################################################################
# get Makefile directory name: http://stackoverflow.com/a/5982798/376773 # get Makefile directory name: http://stackoverflow.com/a/5982798/376773
THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)/ PROJECT_ROOT:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)/
THIS_MAKEFILE:=$(THIS_DIR)$(THIS_MAKEFILE_PATH) THIS_MAKEFILE:=$(PROJECT_ROOT)$(THIS_MAKEFILE_PATH)
# colors # include project.mk only if it exists
BLACK := $(shell tput -Txterm setaf 0) -include $(PROJECT_ROOT)project.mk
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 # Define the location of Makefiles
MARKER := $(BLUE)[+]$(RESET) MAKEFILE_IMPORT_PATH?=$(PROJECT_ROOT)makefiles/
ERRORMARKER := $(RED)[-]$(RESET)
## Deactivate the QUIET mode by overwriting the value with space
ifndef DEBUG # include project.mk only if it exists
QUIET = @ -include $(MAKEFILE_IMPORT_PATH)project.mk
else
QUIET =
endif
ifndef DONTOPENBROWSER
OPENBROWSER = true
else
OPENBROWSER = false
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
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
make := make
GIT := git
NPX := npx
NODE := node
# Executable Programs the Installed be have to
EXECUTABLES = $(AWK) $(CP) $(KILL) $(M4) $(MV) rm mkdir $(SED) $(SORT) $(TOUCH) $(WGET) $(CHMOD) $(NPX) $(FIND) $(XARGS) $(GREP) $(NPM) $(GIT) $(NPX);
K := $(foreach exec,$(EXECUTABLES),\
$(if $(shell which $(exec)),some string,$(error "Missing $(exec) in PATH; please install")))
check_defined = \
$(strip $(foreach 1,$1, \
$(call __check_defined,$1,$(strip $(value 2)),$3)))
__check_defined = \
$(if $(value $1),, \
$(ECHOERRORMARKER) $(if $2, $2, $1))
#############################################################################################
#############################################################################################
##
## 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"
@printf "\n ${INFO}DONTOPENBROWSER${RESET} disable open chrome"
@printf "\n ${INFO}NEXTVERSION${RESET} see target release => 0 – major, 1 – minor (default), 2 – patch\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)
@printf "\n"
.PHONY: variables
## Print all Variables
variables:
@$(foreach v, $(.VARIABLES), $(if $(filter file,$(origin $(v))), $(info $(INFO)$(v)$(RESET)=$($(v))$(RESET))))
#############################################################################################
#############################################################################################
##
## DIRECTORIES
##
#############################################################################################
#############################################################################################
SCRIPT_PATH := $(THIS_DIR)scripts/
############################################################################################# #############################################################################################
############################################################################################# #############################################################################################
## ##
## GIT-TARGETS ## INCLUSION OF VARIOUS STANDARD RULES
## ##
############################################################################################# #############################################################################################
############################################################################################# #############################################################################################
## Current Branch-Tag include $(MAKEFILE_IMPORT_PATH)directories-standard.mk
TAG := - include $(MAKEFILE_IMPORT_PATH)jsdoc.mk
include $(MAKEFILE_IMPORT_PATH)output.mk
## Git Commit Message for git-push include $(MAKEFILE_IMPORT_PATH)placeholder.mk
MESSAGE := current status include $(MAKEFILE_IMPORT_PATH)conan.mk
include $(MAKEFILE_IMPORT_PATH)s3.mk
.PHONY: git-branch #include $(MAKEFILE_IMPORT_PATH)readme-standard.mk
## create new branch (use TAG-Variable) include $(MAKEFILE_IMPORT_PATH)readme-webcomponents.mk
git-branch: include $(MAKEFILE_IMPORT_PATH)licenses.mk
include $(MAKEFILE_IMPORT_PATH)license-agpl3.mk
ifeq (, $(shell command -v uuidgen)) #include $(MAKEFILE_IMPORT_PATH)license-unlicensed.mk
$(error "No uuidgen in PATH, consider doing apt-get install uuidgen") #include $(MAKEFILE_IMPORT_PATH)license-all-rights-reserved.mk
endif include $(MAKEFILE_IMPORT_PATH)jsdoc-json.mk
include $(MAKEFILE_IMPORT_PATH)go.mk
$(QUIET) export BRANCH="MONSTER/$(TAG)/$(shell uuidgen --random)" ; \ include $(MAKEFILE_IMPORT_PATH)changelog.mk
$(GIT) checkout -b $${BRANCH} && \ #include $(MAKEFILE_IMPORT_PATH)docman.mk
RESULT=$$($(GIT) push origin $$BRANCH 2>&1) && \ #include $(MAKEFILE_IMPORT_PATH)reqman.mk
RESULT2=$$($(GIT) branch --set-upstream-to=origin/$$BRANCH $$BRANCH) && \ include $(MAKEFILE_IMPORT_PATH)git.mk
GITLABURL=$$(echo "$$RESULT" | tr '\n' '\#' | grep -o 'remote\:\s*https:\/\/gitlab\.schukai\.com[^ ]*' | cut -d " " -f2-9 | sed -e 's/^[ \t]*//') && \ include $(MAKEFILE_IMPORT_PATH)gitignore.mk
if $(OPENBROWSER) ; then google-chrome --profile-directory="Default" $$GITLABURL ; fi include $(MAKEFILE_IMPORT_PATH)color.mk
include $(MAKEFILE_IMPORT_PATH)version.mk
#include $(MAKEFILE_IMPORT_PATH)docker.mk
.PHONY: git-to-master include $(MAKEFILE_IMPORT_PATH)node.mk
## git checkout master, fetch and merge include $(MAKEFILE_IMPORT_PATH)terminal.mk
git-to-master: include $(MAKEFILE_IMPORT_PATH)target-go-fetch-licenses.mk
$(GIT) checkout master && $(GIT) fetch -pP && $(GIT) merge include $(MAKEFILE_IMPORT_PATH)target-add-licenses.mk
#include $(MAKEFILE_IMPORT_PATH)target-deploy-tool.mk
include $(MAKEFILE_IMPORT_PATH)target-jsdoc-build.mk
.PHONY: git-push-to-server #include $(MAKEFILE_IMPORT_PATH)target-docman.mk
## git push changes to server #include $(MAKEFILE_IMPORT_PATH)target-caddy.mk
git-push-to-server: include $(MAKEFILE_IMPORT_PATH)target-conan.mk
$(GIT) add -A include $(MAKEFILE_IMPORT_PATH)target-update-makefiles.mk
$(GIT) commit -m"$(MESSAGE)" include $(MAKEFILE_IMPORT_PATH)target-help.mk
$(GIT) push #include $(MAKEFILE_IMPORT_PATH)target-go-build.mk
include $(MAKEFILE_IMPORT_PATH)target-node-build.mk
.PHONY: git-push include $(MAKEFILE_IMPORT_PATH)target-node-test.mk
## git create branch and push changes to server include $(MAKEFILE_IMPORT_PATH)target-npm-publish.mk
git-push: git-branch git-push-to-server include $(MAKEFILE_IMPORT_PATH)target-git.mk
#include $(MAKEFILE_IMPORT_PATH)target-init-standard.mk
.PHONY: git-tag #include $(MAKEFILE_IMPORT_PATH)target-init-webcomponent.mk
## git create version tag include $(MAKEFILE_IMPORT_PATH)target-version.mk
git-tag: include $(MAKEFILE_IMPORT_PATH)target-variable.mk
$(GIT) tag -a "$(MONSTER_CORE_VERSION)" -m "release $(MONSTER_CORE_VERSION)" include $(MAKEFILE_IMPORT_PATH)terminal-check.mk
#############################################################################################
#############################################################################################
##
## DEFAULT-DEFINITIONS
##
#############################################################################################
#############################################################################################
NODE_MODULES_DIR := $(THIS_DIR)node_modules/
NODE_MODULES_BIN_DIR := $(NODE_MODULES_DIR).bin/
WEBPACK := $(NODE_MODULES_BIN_DIR)webpack
BABEL := $(NODE_MODULES_BIN_DIR)babel
EXORCIST := $(NODE_MODULES_BIN_DIR)exorcist
UGLIFYJS := $(NODE_MODULES_BIN_DIR)uglifyjs
C8 := $(NODE_MODULES_BIN_DIR)c8
MOCHA := $(NODE_MODULES_BIN_DIR)mocha
JSDOC := $(NODE_MODULES_BIN_DIR)jsdoc
$(NODE_MODULES_DIR): $(THIS_DIR)package.json
$(QUIET) $(NPM) install
$(QUIET) $(NODE) $(THIS_DIR)node_modules/jsdoc-plantuml/fixBrokenNodeJS.js
$(QUIET) $(RM) node_modules/.modified
$(QUIET) $(TOUCH) -m node_modules/.modified
############################################################################################# #############################################################################################
## UNTILITIES ###############################################################################
#############################################################################################
.PHONY: new-package
## init new package structure
new-package:
$(QUIET) $(call check_defined, NAME, the variable NAME must be set)
$(QUIET) if [ ! -n "$(NAME)" ] ; then exit 3 ; fi
$(QUIET) $(MKDIR) $(THIS_DIR)packages/$(NAME)/
$(QUIET) $(CP) -r $(THIS_DIR)templates/* $(THIS_DIR)packages/$(NAME)/
$(QUIET) $(GREP) -rl '%%NAME%%' $(THIS_DIR)packages/$(NAME)/ | xargs sed -i 's/%%NAME%%/$(NAME)/g'
#############################################################################################
## MONSTER CORE #############################################################################
#############################################################################################
## Name of the subpackage; ex. dom
SUBPACKAGE =
ifneq ($(strip $(PACKAGE)),)
SUBPACKAGE=-$(PACKAGE)
endif
MONSTER_CORE_DIR := $(THIS_DIR)packages/monster/
MONSTER_DIR := $(THIS_DIR)packages/monster$(SUBPACKAGE)/
MONSTER_TUTORIAL_DIR := $(THIS_DIR)tutorials/
MONSTER_SOURCE_DIR := $(MONSTER_DIR)source/
MONSTER_SOURCE_FILES := $(shell find $(MONSTER_SOURCE_DIR) -name '*.js')
MONSTER_RELATIVE_SOURCE_FILES := $(shell find $(MONSTER_SOURCE_DIR) -name '*.js' -exec realpath --relative-to $(THIS_DIR) {} \; )
MONSTER_DIST_DIR := $(MONSTER_DIR)dist/
MONSTER_DIST_MODULE_DIR := $(MONSTER_DIST_DIR)modules/
MONSTER_DIST_MODULES_FILES := $(subst $(MONSTER_SOURCE_DIR), $(MONSTER_DIST_MODULE_DIR), $(MONSTER_SOURCE_FILES))
MONSTER_TEST_DIR := $(MONSTER_DIR)test/
MONSTER_TEST_CASE_DIR := $(MONSTER_TEST_DIR)cases/
MONSTER_BUILD_TEST_BROWSER_DIR := $(SCRIPT_PATH)builds/monster/test-browser/
MONSTER_BUILD_LIB_DIR := $(SCRIPT_PATH)builds/monster/library/
MONSTER_BUILD_LIB_DEV_DIR := $(SCRIPT_PATH)builds/monster/library-dev/
MONSTER_TUTORIALS_FILES_WITHVERSION := $(shell grep -l -r -E "monster($(SUBPACKAGE))?@[0-9]+\.[0-9]+\.[0-9]+" $(MONSTER_TUTORIAL_DIR))
MONSTER_FILES_WITHVERSION := $(shell grep -l -r -E "monster($(SUBPACKAGE))?@[0-9]+\.[0-9]+\.[0-9]+" $(MONSTER_SOURCE_FILES)) $(MONSTER_TEST_CASE_DIR)monster.js $(MONSTER_DIR)README.md $(MONSTER_TUTORIALS_FILES_WITHVERSION) $(MONSTER_SOURCE_DIR)/types/version.js
MONSTER_CORE_VERSION := $(shell jq -r ".version" $(MONSTER_CORE_DIR)package.json)
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)
$(MONSTER_BUILD_TEST_BROWSER_DIR)node_modules/: $(MONSTER_BUILD_TEST_BROWSER_DIR)/package.json
$(QUIET) $(CD) $(MONSTER_BUILD_TEST_BROWSER_DIR) ; $(NPM) install ; $(RM) node_modules/.modified ; $(TOUCH) -m node_modules/.modified; cd -
$(MONSTER_BUILD_LIB_DIR)node_modules/: $(MONSTER_BUILD_LIB_DIR)/package.json
$(QUIET) $(CD) $(MONSTER_BUILD_LIB_DIR) ; $(NPM) install ; $(RM) node_modules/.modified ; $(TOUCH) -m node_modules/.modified; cd -
$(MONSTER_BUILD_LIB_DEV_DIR)node_modules/: $(MONSTER_BUILD_LIB_DEV_DIR)/package.json
$(QUIET) $(CD) $(MONSTER_BUILD_LIB_DEV_DIR) ; $(NPM) install ; $(RM) node_modules/.modified ; $(TOUCH) -m node_modules/.modified; cd -
.PHONY: version-monster
version-monster: $(MONSTER_TEST_CASE_DIR)monster.js $(MONSTER_SOURCE_DIR)/types/version.js $(MONSTER_DIR)README.md $(MONSTER_FILES_WITHVERSION) $(MONSTER_TUTORIALS_FILES_WITHVERSION)
$(MONSTER_FILES_WITHVERSION): $(MONSTER_DIR)package.json $(MONSTER_CORE_DIR)package.json
$(ECHOMARKER) "write $@ monster version $(MONSTER_VERSION) and monster core version $(MONSTER_CORE_VERSION)"
$(QUIET) $(SED) -i -E "s/(\/monster$(SUBPACKAGE)@)([0-9]+\.[0-9]+\.[0-9]+)\//\1$(MONSTER_VERSION)\//gi" $@
$(QUIET) $(SED) -i -E "s/(\/monster@)([0-9]+\.[0-9]+\.[0-9]+)\//\1$(MONSTER_CORE_VERSION)\//gi" $@
$(QUIET) $(SED) -i -E "s/(monsterjs\.org\/en\/doc\/)([0-9]+\.[0-9]+\.[0-9]+)\//\1$(MONSTER_CORE_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) if [ -f $(MONSTER_DIST_DIR)monster.dev.js ] ; then $(RM) $(MONSTER_DIST_DIR)monster.dev.js ; fi;
$(QUIET) $(CD) $(MONSTER_BUILD_LIB_DEV_DIR); $(WEBPACK) ; $(CD) -
$(QUIET) $(SED) -i '1 i /** $(LICENSE_C_COMMENT) */' $(MONSTER_DIST_DIR)monster.dev.js
$(MONSTER_DIST_MODULES_FILES): $(MONSTER_SOURCE_FILES)
$(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) */' $@
.PHONY: uglifyjs-monster
uglifyjs-monster: $(MONSTER_DIST_MODULES_FILES)
$(ECHOMARKER) "uglifyjs monster modules"
$(QUIET) $(UGLIFYJS) --validate --compress --mangle --comments 'schukai' --in-situ $(MONSTER_DIST_MODULES_FILES)
$(MONSTER_DIST_DIR)monster.js: $(MONSTER_SOURCE_FILES)
$(ECHOMARKER) "build monster"
$(CD) $(MONSTER_BUILD_LIB_DIR); $(WEBPACK) ; $(CD) -
$(QUIET) $(SED) -i '1 i /** $(LICENSE_C_COMMENT) */' $(MONSTER_DIST_DIR)monster.js
.PHONY: build-monster
## create packages
build-monster: $(MONSTER_BUILD_LIB_DEV_DIR)node_modules/ $(MONSTER_BUILD_LIB_DIR)node_modules/ $(NODE_MODULES_DIR) version-monster $(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: $(MONSTER_BUILD_TEST_BROWSER_DIR)node_modules/ create-polyfill-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 import \"./prepare.js\";" $(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) $(CD) $(MONSTER_BUILD_TEST_BROWSER_DIR); $(WEBPACK) ; $(CD) -
$(QUIET) $(SED) -i -E "/<h1/s_.*_ <h1 style='margin-bottom: 0.1em;'>Monster $(MONSTER_CORE_VERSION)</h1>_" $(MONSTER_TEST_DIR)web/test.html $(MONSTER_TEST_DIR)web/monster.html $(MONSTER_TEST_DIR)web/monster-dev.html
$(QUIET) $(SED) -i -E "/id=\"lastupdate\"/s_.*_ <div id=\"lastupdate\" style='font-size:0.7em'>last update $(shell date)</div>_" $(MONSTER_TEST_DIR)web/test.html $(MONSTER_TEST_DIR)web/monster.html $(MONSTER_TEST_DIR)web/monster-dev.html
$(QUIET) $(SED) -i -E "s_src=\"([\"]*)\.js.*\"_src=\"\1.js?r=$(shell date +"%T")\"_" $(MONSTER_TEST_DIR)web/test.html $(MONSTER_TEST_DIR)web/monster.html $(MONSTER_TEST_DIR)web/monster-dev.html
$(QUIET) $(SED) -i -E "s_dist/([0-9]+\.[0-9]+\.[0-9]+)*/dist/monster_dist/$(MONSTER_CORE_VERSION)/dist/monster_" $(MONSTER_TEST_DIR)web/monster.html $(MONSTER_TEST_DIR)web/monster-dev.html
#$(QUIET) if $(OPENBROWSER) ; then google-chrome --profile-directory="Default" $(MONSTER_TEST_DIR)web/test.html ; fi
.PHONY: test-monster
## test library
test-monster: build-monster
$(ECHOMARKER) "test monster"
$(QUIET) $(NPX) flow
$(QUIET) $(MOCHA) --recursive $(MONSTER_TEST_CASE_DIR)**
.PHONY: coverage-monster
## coverage library
coverage-monster: test-monster
$(ECHOMARKER) "coverage monster"
$(QUIET) $(C8) --config=$(MONSTER_DIR).c8rc.json $(MOCHA) $(MONSTER_TEST_CASE_DIR)**
$(QUIET) if $(OPENBROWSER) ; then google-chrome --profile-directory="Default" $(MONSTER_DIR)coverage/index.html ; fi
.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: clean-monster
## clean repos
clean-monster:
$(QUIET) $(RM) --recursive $(MONSTER_DIST_DIR)
.PHONY: clean-all-monster
## clean repos complete
clean-all-monster:
$(QUIET) $(RM) --recursive $(MONSTER_DIST_DIR)
$(QUIET) $(RM) --recursive $(MONSTER_DIST_MODULES_FILES)
$(QUIET) $(RM) --recursive $(MONSTER_BUILD_TEST_BROWSER_DIR)node_modules/
$(QUIET) $(RM) --recursive $(MONSTER_BUILD_LIB_DIR)node_modules/
$(QUIET) $(RM) --recursive $(MONSTER_BUILD_LIB_DEV_DIR)node_modules/
.PHONY: transfer-monster
## transfer-monster to aws
transfer-monster:
$(ECHOMARKER) "upload aws"
$(QUIET) $(AWS) s3 --only-show-errors cp --recursive $(MONSTER_DIR)/ s3://monsterjs.org/dist/$(MONSTER_CORE_VERSION)/
.PHONY: release-monster
## release monster repos with new version (use NEXTVERSION)
release-monster:
$(ECHOMARKER) "release monster"
$(QUIET) $(MAKE) test-monster
$(QUIET) $(MAKE) clean
$(QUIET) $(SCRIPT_PATH)increase-version.sh "$(MONSTER_CORE_DIR)package.json" $(MONSTER_CORE_VERSION) $(NEXTVERSION)
$(QUIET) $(MAKE) clean
$(QUIET) $(MAKE) build-monster
$(QUIET) $(MAKE) uglifyjs-monster
$(QUIET) $(MAKE) test-monster
$(QUIET) $(MAKE) coverage-monster DONTOPENBROWSER=true
$(QUIET) $(MAKE) test-browser-monster DONTOPENBROWSER=true
$(QUIET) $(MAKE) doc-2-aws
$(QUIET) $(MAKE) doc-build-versions-js
$(QUIET) $(MAKE) git-tag
$(QUIET) $(MAKE) transfer-monster
$(QUIET) $(MAKE) npm-publish-monster
$(QUIET) touch $(MONSTER_CORE_DIR)package.json ; $(MAKE) doc-build-versions-js
.PHONY: create-polyfill-monster
## create polyfill.io url
create-polyfill-monster: $(MONSTER_SOURCE_FILES)
$(ECHOMARKER) "create and replace polyfill"
$(QUIET) $(SCRIPT_PATH)create-polyfill.sh $(MONSTER_RELATIVE_SOURCE_FILES)
#############################################################################################
.PHONY: clean
## clean
clean:
$(QUIET) $(RM) --recursive $(THIS_DIR)docs/
$(QUIET) $(RM) --recursive $(THIS_DIR)web/js/doc
$(QUIET) $(MAKE) clean-monster
.PHONY: clean-all
## clean-all
clean-all:
$(QUIET) $(RM) --recursive $(NODE_MODULES_DIR)
$(QUIET) $(RM) --recursive $(THIS_DIR)docs/
$(QUIET) $(MAKE) clean-all-monster
.PHONY: build
## create all packages
build:
$(QUIET) $(MAKE) build-monster
## make build-monster PACKAGE=dom
.PHONY: test
## test all packages
test:
$(QUIET) $(MAKE) test-monster
.PHONY: coverage
## coverage all packages
coverage:
$(QUIET) $(MAKE) coverage-monster
.PHONY: release
## release all packages
release:
$(QUIET) $(MAKE) release-monster
.PHONY: doc
## generate docs
doc: test create-polyfill-monster $(THIS_DIR)jsdoc.json
$(ECHOMARKER) "create doc"
$(QUIET) $(JSDOC) --tutorials $(THIS_DIR)tutorials/ -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'
.PHONY: doc-2-aws
doc-2-aws: doc doc-build-versions-js
$(QUIET) $(AWS) s3 --only-show-errors cp --recursive $(THIS_DIR)docs/ s3://monsterjs.org/en/doc/$(MONSTER_CORE_VERSION)/
.PHONY: doc-build-versions-js
## generate versions dropdown and upload to aws
doc-build-versions-js: $(THIS_DIR)web/js/doc/monster-versions.js $(THIS_DIR)web/js/doc/monster-latest-version.js
$(ECHOMARKER) "transfer versions-js"
$(QUIET) $(AWS) s3 --only-show-errors cp $(THIS_DIR)web/js/doc/monster-versions.js s3://monsterjs.org/js/doc/monster-versions.js
$(QUIET) $(AWS) s3 --only-show-errors cp $(THIS_DIR)web/js/doc/monster-latest-version.js s3://monsterjs.org/js/doc/monster-latest-version.js
$(THIS_DIR)web/js/doc/monster-versions.js $(THIS_DIR)web/js/doc/monster-latest-version.js: $(THIS_DIR)package.json $(MONSTER_CORE_DIR)package.json
$(QUIET) $(MKDIR) $(THIS_DIR)web/js/doc
$(QUIET) $(NODE) $(SCRIPT_PATH)build-versions-javascript.js
![](https://gitlab.schukai.com/uploads/-/system/project/avatar/337/monster.png?width=255)
# Monster # Monster
![](https://gitlab.schukai.com/oss/libraries/javascript/monster/badges/master/pipeline.svg?style=flat-square) ![](https://badgen.net/npm/v/@schukai/monster) ![](https://data.jsdelivr.com/v1/package/npm/@schukai/monster/badge) Monster is perfectly suited for the creation of beautiful and fast
user interfaces and websites.
**Build fantastic websites!** Monster relies on proven concepts mixed with many new JavaScript concepts such as
classes, WeakRef, WeakMaps, proxies or the MutationObserver interface, just to name a few.
Monster is a lightweight, robust and easy-to-use library with modest ambitions. Monster integrates easily into your existing websites without taking over everything. 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. It is not the goal of Monster to pull in an entirely 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 design target is to reach the shiny sun with as little JavaScript as possible.
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).
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). For some functions, you need additional [polyfills](#polyfill).
There is a version in the `/dist` folder that was built via [webpack](https://github.com/webpack/webpack) and ## Documentation
thus supports all browsers that are compatible with [ES5](https://caniuse.com/es5).
## Build & Development To check out docs and examples, visit [monsterjs.org/en/doc/monster/](https://monsterjs.org/en/doc/monster/).
``` ## Installation
// create documentation
make doc
// create documentation and push to aws `npm install @schukai/monster`, `yarn install @schukai/monster` or `pnpm install @schukai/monster`
make doc-2-aws
// build all packages ## Usage
make build
// test all packages A simple example of the use of functionality from Monster. We create a small file `index.mjs`.
make test The `m` in `.mjs` stands for module. In the example we want to make substitutions in a string.
// build packages ```js
PACKAGE=monster import {Formatter} from '@schukai/monster/source/text/formatter.mjs';
make build-${PACKAGES} const text = '${mykey${subkey}}';
make build-browser-test-${PACKAGES} let obj = {
make test-${PACKAGES} mykey2: "1",
make npm-publish-${PACKAGES} subkey: "2"
};
new Formatter(obj).format(text);
// ↦ 1
``` ```
to make compatibility with the older browsers [polyfill.io](https://cdn.polyfill.io/v3/url-builder/) is a good choice. To integrate this function into a website it is recommended to use a bundler like [esbuild](https://esbuild.github.io/).
```sh
esbuild index.mjs --outfile dist.js
```
## Packages We can now integrate that into our website.
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Monster</title>
<script src="dist.js"></script>
</head>
<body>
```
| Package | Description | NPM | Voila!
|:--------|:----------------------------------------|:-------------------------------------------------------------------------------------|
| 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 [monsterjs.org/en/doc/latest/](https://monsterjs.org/en/doc/latest/). ### Polyfill
We do try to work around some browser bugs, but on the whole we don't use polyfills and feature detection.
However, many functions can be mapped via [polyfill.io](https://polyfill.io/) and thus the compatibility can be increased.
```html
<script id="polyfill" src="https://polyfill.io/v3/polyfill.min.js?features=Array.from,Array.isArray,Array.prototype.entries,Array.prototype.fill,Array.prototype.filter,Array.prototype.forEach,Array.prototype.indexOf,Array.prototype.keys,Array.prototype.lastIndexOf,Array.prototype.map,Array.prototype.reduce,Array.prototype.sort,ArrayBuffer,atob,CustomEvent,DataView,document,Document,DocumentFragment,Element,Event,fetch,globalThis,HTMLDocument,HTMLTemplateElement,Intl,JSON,Map,Math.log2,Number.isInteger,Object.assign,Object.defineProperty,Object.entries,Object.freeze,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.keys,Promise,Reflect,Reflect.defineProperty,Reflect.get,Reflect.getOwnPropertyDescriptor,Reflect.setPrototypeOf,Set,String.prototype.endsWith,String.prototype.matchAll,String.prototype.padStart,String.prototype.startsWith,String.prototype.trim,Symbol,Symbol.iterator,Uint16Array,Uint8Array,URL,WeakMap,WeakSet"
crossorigin="anonymous"
referrerpolicy="no-referrer"></script>
```
## Questions ## 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. 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 ## Issues
Please make sure to read the Issue Reporting Checklist before opening an issue. Issues not conforming to the guidelines may be closed immediately. Please make sure to read the Issue Reporting Checklist before opening an
issue. Issues not conforming to the guidelines may be closed immediately.
## License ## License
* All content residing under the `docs/` directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license". Copyright © 2022 schukai GmbH
* 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** [AGPL](https://www.gnu.org/licenses/agpl-3.0.de.html)
## Changelog You can also purchase a commercial license.
Detailed changes for each release are documented in the corresponding CHANGELOG files. ## Changelog
Detailed changes for each release are documented in
the [CHANGELOG](https://gitlab.schukai.com/oss/libraries/javascript/monster/-/blob/master/application/CHANGELOG).
...@@ -2,13 +2,29 @@ ...@@ -2,13 +2,29 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## [2.0.0] - 2022-08-08
- New structure in the repo
- Remove namespace functionality
- Switching the tests to esbuild
- Actualization of the documentation template
- New URL of the documentation
- Bug fix typeOf (constructor name was recognized wrong)
- Removal of the built version of the library
- Switching from js to mjs
## [1.31.0] - 2022-02-07
## Added
- [new promise domReady and windowReady](https://gitlab.schukai.com/oss/libraries/javascript/monster/-/issues/116)
## [1.30.0] - 2022-02-05 ## [1.30.0] - 2022-02-05
## Added ## Added
- [new class DeadMansSwitch](https://gitlab.schukai.com/oss/libraries/javascript/monster/-/issues/115) - [new class DeadMansSwitch](https://gitlab.schukai.com/oss/libraries/javascript/monster/-/issues/115)
## [1.29.3] - 2022-01-23 ## [1.29.3] - 2022-01-23
## Fixed ## Fixed
......
File moved
import {Valid} from '@schukai/monster/source/constraints/valid.mjs';
import {Invalid} from '@schukai/monster/source/constraints/invalid.mjs';
import {AndOperator} from '@schukai/monster/source/constraints/andoperator.mjs';
new AndOperator(
new Valid(), new Valid()).isValid()
.then(() => console.log(true))
.catch(() => console.log(false));
// ↦ true
new AndOperator(
new Invalid(), new Valid()).isValid()
.then(() => console.log(true))
.catch(() => console.log(false));
// ↦ false
import {Invalid} from '@schukai/monster/source/constraints/invalid.mjs';
new Invalid().isValid()
.then(() => console.log(true))
.catch(() => console.log(false));
// ↦ false
\ No newline at end of file