diff --git a/.editorconfig b/.editorconfig
index ef6e90b2..7692ac78 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -6,27 +6,5 @@ root = true
[*]
charset = utf-8
end_of_line = lf
+trim_trailing_whitespaces = true
indent_style = tab
-trim_trailing_whitespace = true
-insert_final_newline = true
-quote_type = single
-max_line_length = off
-
-[*.js]
-quote_type = double
-ij_javascript_use_double_quotes = true
-
-[*.yml]
-indent_style = space
-indent_size = 2
-
-[*.xml]
-indent_style = space
-indent_size = 2
-
-[*.json]
-indent_style = space
-indent_size = 2
-
-[composer.json]
-indent_size = 4
diff --git a/.tx/config b/.tx/config
index 8542c680..710a560e 100644
--- a/.tx/config
+++ b/.tx/config
@@ -1,399 +1,399 @@
[main]
-host = https://api.transifex.com
+host = https://www.transifex.com
-[o:Friendica:p:friendica:r:addon_advancedcontentfilter_messagespo]
+[friendica.addon_advancedcontentfilter_messagespo]
file_filter = advancedcontentfilter/lang//messages.po
source_file = advancedcontentfilter/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_blackout_messagespo]
+[friendica.addon_blackout_messagespo]
file_filter = blackout/lang//messages.po
source_file = blackout/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_blockem_messagespo]
+[friendica.addon_blockem_messagespo]
file_filter = blockem/lang//messages.po
source_file = blockem/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_blogger_messagespo]
+[friendica.addon_blogger_messagespo]
file_filter = blogger/lang//messages.po
source_file = blogger/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_buffer_messagespo]
+[friendica.addon_buffer_messagespo]
file_filter = buffer/lang//messages.po
source_file = buffer/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_buglink_messagespo]
+[friendica.addon_buglink_messagespo]
file_filter = buglink/lang//messages.po
source_file = buglink/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_catavatar_messagespo]
+[friendica.addon_catavatar_messagespo]
file_filter = catavatar/lang//messages.po
source_file = catavatar/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_cookienotice_messagespo]
+[friendica.addon_cookienotice_messagespo]
file_filter = cookienotice/lang//messages.po
source_file = cookienotice/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_curweather_messagespo]
+[friendica.addon_curweather_messagespo]
file_filter = curweather/lang//messages.po
source_file = curweather/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_diaspora_messagespo]
+[friendica.addon_diaspora_messagespo]
file_filter = diaspora/lang//messages.po
source_file = diaspora/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_dwpost_messagespo]
+[friendica.addon_dwpost_messagespo]
file_filter = dwpost/lang//messages.po
source_file = dwpost/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_forumdirectory_messagespo]
+[friendica.addon_forumdirectory_messagespo]
file_filter = forumdirectory/lang//messages.po
source_file = forumdirectory/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_fromapp_messagespo]
+[friendica.addon_fromapp_messagespo]
file_filter = fromapp/lang//messages.po
source_file = fromapp/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_fromgplus_messagespo]
+[friendica.addon_fromgplus_messagespo]
file_filter = fromgplus/lang//messages.po
source_file = fromgplus/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_geonames_messagespo]
+[friendica.addon_geonames_messagespo]
file_filter = geonames/lang//messages.po
source_file = geonames/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_gnot_messagespo]
+[friendica.addon_gnot_messagespo]
file_filter = gnot/lang//messages.po
source_file = gnot/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_gravatar_messagespo]
+[friendica.addon_gravatar_messagespo]
file_filter = gravatar/lang//messages.po
source_file = gravatar/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_group_text_messagespo]
+[friendica.addon_group_text_messagespo]
file_filter = group_text/lang//messages.po
source_file = group_text/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_ifttt_messagespo]
+[friendica.addon_ifttt_messagespo]
file_filter = ifttt/lang//messages.po
source_file = ifttt/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_ijpost_messagespo]
+[friendica.addon_ijpost_messagespo]
file_filter = ijpost/lang//messages.po
source_file = ijpost/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_impressum_messagespo]
+[friendica.addon_impressum_messagespo]
file_filter = impressum/lang//messages.po
source_file = impressum/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_infiniteimprobabilitydrive_messagespo]
+[friendica.addon_infiniteimprobabilitydrive_messagespo]
file_filter = infiniteimprobabilitydrive/lang//messages.po
source_file = infiniteimprobabilitydrive/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_irc_messagespo]
+[friendica.addon_irc_messagespo]
file_filter = irc/lang//messages.po
source_file = irc/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_jappixmini_messagespo]
+[friendica.addon_jappixmini_messagespo]
file_filter = jappixmini/lang//messages.po
source_file = jappixmini/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_js_upload_messagespo]
+[friendica.addon_js_upload_messagespo]
file_filter = js_upload/lang//messages.po
source_file = js_upload/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_krynn_messagespo]
+[friendica.addon_krynn_messagespo]
file_filter = krynn/lang//messages.po
source_file = krynn/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_langfilter_messagespo]
+[friendica.addon_langfilter_messagespo]
file_filter = langfilter/lang//messages.po
source_file = langfilter/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_libertree_messagespo]
+[friendica.addon_libertree_messagespo]
file_filter = libertree/lang//messages.po
source_file = libertree/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_libravatar_messagespo]
+[friendica.addon_libravatar_messagespo]
file_filter = libravatar/lang//messages.po
source_file = libravatar/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_ljpost_messagespo]
+[friendica.addon_ljpost_messagespo]
file_filter = ljpost/lang//messages.po
source_file = ljpost/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_mailstream_messagespo]
+[friendica.addon_mailstream_messagespo]
file_filter = mailstream/lang//messages.po
source_file = mailstream/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_mathjax_messagespo]
+[friendica.addon_mathjax_messagespo]
file_filter = mathjax/lang//messages.po
source_file = mathjax/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_membersince_messagespo]
+[friendica.addon_membersince_messagespo]
file_filter = membersince/lang//messages.po
source_file = membersince/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_morechoice_messagespo]
+[friendica.addon_morechoice_messagespo]
file_filter = morechoice/lang//messages.po
source_file = morechoice/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_morepokes_messagespo]
+[friendica.addon_morepokes_messagespo]
file_filter = morepokes/lang//messages.po
source_file = morepokes/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_newmemberwidget_messagespo]
+[friendica.addon_newmemberwidget_messagespo]
file_filter = newmemberwidget/lang//messages.po
source_file = newmemberwidget/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_notifyall_messagespo]
+[friendica.addon_notifyall_messagespo]
file_filter = notifyall/lang//messages.po
source_file = notifyall/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_notimeline_messagespo]
+[friendica.addon_notimeline_messagespo]
file_filter = notimeline/lang//messages.po
source_file = notimeline/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_nsfw_messagespo]
+[friendica.addon_nsfw_messagespo]
file_filter = nsfw/lang//messages.po
source_file = nsfw/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_numfriends_messagespo]
+[friendica.addon_numfriends_messagespo]
file_filter = numfriends/lang//messages.po
source_file = numfriends/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_openstreetmap_messagespo]
+[friendica.addon_openstreetmap_messagespo]
file_filter = openstreetmap/lang//messages.po
source_file = openstreetmap/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_pageheader_messagespo]
+[friendica.addon_pageheader_messagespo]
file_filter = pageheader/lang//messages.po
source_file = pageheader/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_piwik_messagespo]
+[friendica.addon_piwik_messagespo]
file_filter = piwik/lang//messages.po
source_file = piwik/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_planets_messagespo]
+[friendica.addon_planets_messagespo]
file_filter = planets/lang//messages.po
source_file = planets/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_public_server_messagespo]
+[friendica.addon_public_server_messagespo]
file_filter = public_server/lang//messages.po
source_file = public_server/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_pumpio_messagespo]
+[friendica.addon_pumpio_messagespo]
file_filter = pumpio/lang//messages.po
source_file = pumpio/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_qcomment_messagespo]
+[friendica.addon_qcomment_messagespo]
file_filter = qcomment/lang//messages.po
source_file = qcomment/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_randplace_messagespo]
+[friendica.addon_randplace_messagespo]
file_filter = randplace/lang//messages.po
source_file = randplace/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_remote_permissions_messagespo]
+[friendica.addon_remote_permissions_messagespo]
file_filter = remote_permissions/lang//messages.po
source_file = remote_permissions/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_rendertime_messagespo]
+[friendica.addon_rendertime_messagespo]
file_filter = rendertime/lang//messages.po
source_file = rendertime/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_securemail_messagespo]
+[friendica.addon_securemail_messagespo]
file_filter = securemail/lang//messages.po
source_file = securemail/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_showmore_messagespo]
+[friendica.addon_showmore_messagespo]
file_filter = showmore/lang//messages.po
source_file = showmore/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_smileybutton_messagespo]
+[friendica.addon_smileybutton_messagespo]
file_filter = smileybutton/lang//messages.po
source_file = smileybutton/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_startpage_messagespo]
+[friendica.addon_startpage_messagespo]
file_filter = startpage/lang//messages.po
source_file = startpage/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_statusnet_messagespo]
+[friendica.addon_statusnet_messagespo]
file_filter = statusnet/lang//messages.po
source_file = statusnet/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_superblock_messagespo]
+[friendica.addon_superblock_messagespo]
file_filter = superblock/lang//messages.po
source_file = superblock/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_testdrive_messagespo]
+[friendica.addon_testdrive_messagespo]
file_filter = testdrive/lang//messages.po
source_file = testdrive/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_tictac_messagespo]
+[friendica.addon_tictac_messagespo]
file_filter = tictac/lang//messages.po
source_file = tictac/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_tumblr_messagespo]
+[friendica.addon_tumblr_messagespo]
file_filter = tumblr/lang//messages.po
source_file = tumblr/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_twitter_messagespo]
+[friendica.addon_twitter_messagespo]
file_filter = twitter/lang//messages.po
source_file = twitter/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_viewsrc_messagespo]
+[friendica.addon_viewsrc_messagespo]
file_filter = viewsrc/lang//messages.po
source_file = viewsrc/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_webrtc_messagespo]
+[friendica.addon_webrtc_messagespo]
file_filter = webrtc/lang//messages.po
source_file = webrtc/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_widgets_messagespo]
+[friendica.addon_widgets_messagespo]
file_filter = widgets/lang//messages.po
source_file = widgets/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_windowsphonepush_messagespo]
+[friendica.addon_windowsphonepush_messagespo]
file_filter = windowsphonepush/lang//messages.po
source_file = windowsphonepush/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_wppost_messagespo]
+[friendica.addon_wppost_messagespo]
file_filter = wppost/lang//messages.po
source_file = wppost/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
-[o:Friendica:p:friendica:r:addon_xmpp_messagespo]
+[friendica.addon_xmpp_messagespo]
file_filter = xmpp/lang//messages.po
source_file = xmpp/lang/C/messages.po
source_lang = en
-type = PO
+type = PO
diff --git a/.woodpecker/.code_standards_check.yml b/.woodpecker/.code_standards_check.yml
deleted file mode 100644
index 60a1bd2a..00000000
--- a/.woodpecker/.code_standards_check.yml
+++ /dev/null
@@ -1,76 +0,0 @@
-skip_clone: true
-
-steps:
- clone_friendica_base:
- image: alpine/git
- commands:
- - git config --global user.email "no-reply@friendi.ca"
- - git config --global user.name "Friendica"
- - git config --global --add safe.directory $CI_WORKSPACE
- - git clone https://github.com/friendica/friendica.git .
- - git checkout $CI_COMMIT_BRANCH
- when:
- event: pull_request
- clone_friendica_addon:
- image: alpine/git
- commands:
- - git config --global user.email "no-reply@friendi.ca"
- - git config --global user.name "Friendica"
- - git clone $CI_REPO_CLONE_URL addon
- - cd addon/
- - git checkout $CI_COMMIT_BRANCH
- - git fetch origin $CI_COMMIT_REF
- - git merge $CI_COMMIT_SHA
- when:
- event: pull_request
- restore_cache:
- image: meltwater/drone-cache:dev
- settings:
- backend: "filesystem"
- restore: true
- cache_key: '{{ .Repo.Name }}_phpcs_{{ arch }}_{{ os }}'
- archive_format: "gzip"
- mount:
- - '.composer'
- volumes:
- - /tmp/drone-cache:/tmp/cache
- when:
- event: pull_request
- composer_install:
- image: composer
- commands:
- - export COMPOSER_HOME=.composer
- - ./bin/composer.phar run cs:install
- when:
- event: pull_request
- rebuild_cache:
- image: meltwater/drone-cache:dev
- settings:
- backend: "filesystem"
- rebuild: true
- cache_key: '{{ .Repo.Name }}_phpcs_{{ arch }}_{{ os }}'
- archive_format: "gzip"
- mount:
- - '.composer'
- volumes:
- - /tmp/drone-cache:/tmp/cache
- when:
- event: pull_request
- phpstan:
- image: friendicaci/php8.3:php8.3.3
- commands:
- - ./bin/composer.phar run phpstan;
- check:
- image: friendicaci/php-cs
- commands:
- - cd addon/
- - if [ ! -z "$${CI_COMMIT_PULL_REQUEST}" ]; then
- git fetch --no-tags origin ${CI_COMMIT_TARGET_BRANCH};
- export CHANGED_FILES="$(git diff --name-status $(git merge-base FETCH_HEAD origin/${CI_COMMIT_TARGET_BRANCH})..${CI_COMMIT_SHA} | grep ^A | cut -f2 | sed -e "s/^/addon\\//")";
- else
- export CHANGED_FILES="$(git diff --name-status ${CI_COMMIT_SHA} | grep ^A | cut -f2 | sed -e "s/^/addon\\//")";
- fi
- - cd ../
- - /check-php-cs.sh
- when:
- event: pull_request
diff --git a/.woodpecker/.continuous-deployment.yml b/.woodpecker/.continuous-deployment.yml
deleted file mode 100644
index d6d8a22a..00000000
--- a/.woodpecker/.continuous-deployment.yml
+++ /dev/null
@@ -1,115 +0,0 @@
-# This prevents executing this pipeline at other servers than ci.friendi.ca
-labels:
- location: friendica
- type: releaser
-
-skip_clone: true
-
-steps:
- clone_friendica_base:
- image: alpine/git
- commands:
- - git config --global user.email "no-reply@friendi.ca"
- - git config --global user.name "Friendica"
- - git config --global --add safe.directory $CI_WORKSPACE
- - git clone https://github.com/friendica/friendica.git .
- - git checkout $CI_COMMIT_BRANCH
- when:
- repo: friendica/friendica-addons
- branch: [ develop, '*-rc' ]
- event: push
- clone_friendica_addon:
- image: alpine/git
- commands:
- - git config --global user.email "no-reply@friendi.ca"
- - git config --global user.name "Friendica"
- - git clone $CI_REPO_CLONE_URL addon
- - cd addon/
- - git checkout $CI_COMMIT_BRANCH
- - git fetch origin $CI_COMMIT_REF
- - git merge $CI_COMMIT_SHA
- when:
- repo: friendica/friendica-addons
- branch: [ develop, '*-rc' ]
- event: push
- restore_cache:
- image: meltwater/drone-cache:dev
- settings:
- backend: "filesystem"
- restore: true
- cache_key: "{{ .Repo.Name }}_php7.4_{{ arch }}_{{ os }}"
- archive_format: "gzip"
- mount:
- - '.composer'
- volumes:
- - /tmp/drone-cache:/tmp/cache
- when:
- repo: friendica/friendica-addons
- branch: [ develop, '*-rc' ]
- event: push
- composer_install:
- image: friendicaci/php8.2:php8.2.28
- commands:
- - export COMPOSER_HOME=.composer
- - composer validate
- - composer install --no-dev --optimize-autoloader
- volumes:
- - /etc/hosts:/etc/hosts
- when:
- repo: friendica/friendica-addons
- branch: [ develop, '*-rc' ]
- event: push
- create_artifacts:
- image: debian
- commands:
- - apt-get update
- - apt-get install bzip2
- - mkdir ./build
- - export VERSION="$(cat VERSION)"
- - export RELEASE="friendica-addons-$VERSION"
- - export ARTIFACT="$RELEASE.tar.gz"
- - tar
- --exclude='.tx'
- --exclude='.git'
- --exclude='.editorconfig'
- --exclude='.gitattributes'
- --exclude='.gitignore'
- --exclude='.woodpecker'
- --exclude='**/*/messages.po'
- -cvzf ./build/$ARTIFACT addon/
- - cd ./build
- - sha256sum "$ARTIFACT" > "$ARTIFACT.sum256"
- - chmod 664 ./*
- - ls -lh
- - cat "$ARTIFACT.sum256"
- - sha256sum "$ARTIFACT"
- when:
- repo: friendica/friendica-addons
- branch: [ develop, '*-rc' ]
- event: push
- sign_artifacts:
- image: plugins/gpgsign
- settings:
- key:
- from_secret: gpg_key
- passphrase:
- from_secret: gpg_password
- files:
- - build/*
- exclude:
- - build/*.sum256
- detach_sign: true
- when:
- repo: friendica/friendica-addons
- branch: [ develop, '*-rc' ]
- event: push
- publish_artifacts:
- image: alpine
- commands:
- - cp -fr build/* /tmp/friendica_files/
- volumes:
- - files:/tmp/friendica_files
- when:
- repo: friendica/friendica-addons
- branch: [ develop, '*-rc' ]
- event: push
diff --git a/.woodpecker/.messages.po_check.yml b/.woodpecker/.messages.po_check.yml
deleted file mode 100644
index e0239dcd..00000000
--- a/.woodpecker/.messages.po_check.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-skip_clone: true
-
-steps:
- clone_friendica_base:
- image: alpine/git
- commands:
- - git config --global user.email "no-reply@friendi.ca"
- - git config --global user.name "Friendica"
- - git config --global --add safe.directory $CI_WORKSPACE
- - git clone https://github.com/friendica/friendica.git .
- - git checkout $CI_COMMIT_BRANCH
- when:
- event: pull_request
- clone_friendica_addon:
- image: alpine/git
- commands:
- - git config --global user.email "no-reply@friendi.ca"
- - git config --global user.name "Friendica"
- - git clone $CI_REPO_CLONE_URL addon
- - cd addon/
- - git checkout $CI_COMMIT_BRANCH
- - git fetch origin $CI_COMMIT_REF
- - git merge $CI_COMMIT_SHA
- when:
- event: pull_request
- build_xgettext:
- image: friendicaci/transifex
- commands:
- - /xgettext-addon.sh
- when:
- event: pull_request
- check:
- image: friendicaci/transifex
- commands:
- - /check-addons.sh
- when:
- event: pull_request
-
-branches:
- exclude: [ stable ]
diff --git a/.woodpecker/.phpunit.yml b/.woodpecker/.phpunit.yml
deleted file mode 100644
index b0745ad0..00000000
--- a/.woodpecker/.phpunit.yml
+++ /dev/null
@@ -1,120 +0,0 @@
-matrix:
- include:
- - PHP_MAJOR_VERSION: 7.4
- PHP_VERSION: 7.4.33
- - PHP_MAJOR_VERSION: 8.0
- PHP_VERSION: 8.0.30
- - PHP_MAJOR_VERSION: 8.1
- PHP_VERSION: 8.1.31
- - PHP_MAJOR_VERSION: 8.2
- PHP_VERSION: 8.2.28
- - PHP_MAJOR_VERSION: 8.3
- PHP_VERSION: 8.3.17
- - PHP_MAJOR_VERSION: 8.4
- PHP_VERSION: 8.4.5
-
-# This forces PHP Unit executions at the "opensocial" labeled location (because of much more power...)
-labels:
- location: opensocial
-
-skip_clone: true
-
-steps:
- clone_friendica_base:
- image: alpine/git
- commands:
- - git config --global user.email "no-reply@friendi.ca"
- - git config --global user.name "Friendica"
- - git config --global --add safe.directory $CI_WORKSPACE
- - git clone https://github.com/friendica/friendica.git .
- - git checkout $CI_COMMIT_BRANCH
- clone_friendica_addon:
- image: alpine/git
- commands:
- - git config --global user.email "no-reply@friendi.ca"
- - git config --global user.name "Friendica"
- - git clone $CI_REPO_CLONE_URL addon
- - cd addon/
- - git checkout $CI_COMMIT_BRANCH
- - git fetch origin $CI_COMMIT_REF
- - git merge $CI_COMMIT_SHA
- restore_cache:
- image: meltwater/drone-cache:dev
- settings:
- backend: "filesystem"
- restore: true
- cache_key: "{{ .Repo.Name }}_php${PHP_MAJOR_VERSION}_{{ arch }}_{{ os }}"
- archive_format: "gzip"
- mount:
- - '.composer'
- volumes:
- - /tmp/drone-cache:/tmp/cache
- composer_install:
- image: friendicaci/php${PHP_MAJOR_VERSION}:php${PHP_VERSION}
- commands:
- - export COMPOSER_HOME=.composer
- - ./bin/composer.phar validate
- - ./bin/composer.phar install --prefer-dist
- volumes:
- - /etc/hosts:/etc/hosts
- rebuild_cache:
- image: meltwater/drone-cache:dev
- settings:
- backend: "filesystem"
- rebuild: true
- cache_key: "{{ .Repo.Name }}_php${PHP_MAJOR_VERSION}_{{ arch }}_{{ os }}"
- archive_format: "gzip"
- mount:
- - '.composer'
- volumes:
- - /tmp/drone-cache:/tmp/cache
- test:
- image: friendicaci/php${PHP_MAJOR_VERSION}:php${PHP_VERSION}
- environment:
- MYSQL_HOST: "mariadb"
- MYSQL_PORT: "3306"
- MYSQL_DATABASE: "test"
- MYSQL_PASSWORD: "test"
- MYSQL_USER: "test"
- REDIS_HOST: "redis"
- MEMCACHED_HOST: "memcached"
- MEMCACHE_HOST: "memcached"
- commands:
- - cp config/local-sample.config.php config/local.config.php
- - if ! bin/wait-for-connection $MYSQL_HOST $MYSQL_PORT 300; then echo "[ERROR] Waited 300 seconds, no response" >&2; exit 1; fi
- - mysql -h$MYSQL_HOST -P$MYSQL_PORT -p$MYSQL_PASSWORD -u$MYSQL_USER $MYSQL_DATABASE < database.sql
- - if [ "${PHP_MAJOR_VERSION}" = "8.2" -a "${CI_REPO}" = "friendica/friendica-addons" ]; then
- phpenmod xdebug;
- export XDEBUG_MODE=coverage;
- phpunit --configuration tests/phpunit-addons.xml --coverage-clover clover.xml;
- else
- phpunit --configuration tests/phpunit-addons.xml;
- fi
- codecov:
- image: friendicaci/codecov
- when:
- matrix:
- PHP_MAJOR_VERSION: 8.2
- PHP_VERSION: 8.2.16
- repo:
- - friendica/friendica-addons
- commands:
- - codecov -R '.' -Z -f 'clover.xml'
- environment:
- CODECOV_TOKEN:
- from_secret: codecov-token
-
-services:
- mariadb:
- image: mariadb:latest
- environment:
- MYSQL_ALLOW_EMPTY_PASSWORD: "true"
- MYSQL_DATABASE: "test"
- MYSQL_PASSWORD: "test"
- MYSQL_USER: "test"
-
- memcached:
- image: memcached
-
- redis:
- image: redis
diff --git a/.woodpecker/.releaser.yml b/.woodpecker/.releaser.yml
deleted file mode 100644
index 7407f2bc..00000000
--- a/.woodpecker/.releaser.yml
+++ /dev/null
@@ -1,108 +0,0 @@
-# This prevents executing this pipeline at other servers than ci.friendi.ca
-labels:
- location: friendica
- type: releaser
-
-skip_clone: true
-
-steps:
- clone_friendica_base:
- image: alpine/git
- commands:
- - git config --global user.email "no-reply@friendi.ca"
- - git config --global user.name "Friendica"
- - git config --global --add safe.directory $CI_WORKSPACE
- - git clone https://github.com/friendica/friendica.git .
- - git checkout $CI_COMMIT_BRANCH
- when:
- repo: friendica/friendica-addons
- event: tag
- clone_friendica_addon:
- image: alpine/git
- commands:
- - git config --global user.email "no-reply@friendi.ca"
- - git config --global user.name "Friendica"
- - git clone $CI_REPO_CLONE_URL addon
- - cd addon/
- - git checkout $CI_COMMIT_BRANCH
- - git fetch origin $CI_COMMIT_REF
- - git merge $CI_COMMIT_SHA
- when:
- repo: friendica/friendica-addons
- event: tag
- restore_cache:
- image: meltwater/drone-cache:dev
- settings:
- backend: "filesystem"
- restore: true
- cache_key: "{{ .Repo.Name }}_php7.4_{{ arch }}_{{ os }}"
- archive_format: "gzip"
- mount:
- - '.composer'
- volumes:
- - /tmp/drone-cache:/tmp/cache
- when:
- repo: friendica/friendica-addons
- event: tag
- composer_install:
- image: friendicaci/php8.2:php8.2.28
- commands:
- - export COMPOSER_HOME=.composer
- - composer validate
- - composer install --no-dev --optimize-autoloader
- when:
- repo: friendica/friendica-addons
- event: tag
- volumes:
- - /etc/hosts:/etc/hosts
- create_artifacts:
- image: debian
- commands:
- - apt-get update
- - apt-get install bzip2
- - mkdir ./build
- - export VERSION="$(cat VERSION)"
- - export RELEASE="friendica-addons-$VERSION"
- - export ARTIFACT="$RELEASE.tar.gz"
- - tar
- --exclude='.tx'
- --exclude='.git'
- --exclude='.editorconfig'
- --exclude='.gitattributes'
- --exclude='.gitignore'
- --exclude='.woodpecker'
- --exclude='**/*/messages.po'
- -cvzf ./build/$ARTIFACT addon/
- - cd ./build
- - sha256sum "$ARTIFACT" > "$ARTIFACT.sum256"
- - chmod 664 ./*
- - ls -lh
- - cat "$ARTIFACT.sum256"
- - sha256sum "$ARTIFACT"
- when:
- repo: friendica/friendica-addons
- event: tag
- sign_artifacts:
- image: plugins/gpgsign
- settings:
- key:
- from_secret: gpg_key
- passphrase:
- from_secret: gpg_password
- files:
- - build/*
- exclude:
- - build/*.sum256
- detach_sign: true
- when:
- repo: friendica/friendica-addons
- event: tag
- publish_artifacts:
- image: alpine
- commands:
- - cp -fr build/* /tmp/friendica_files/
- volumes:
- - files:/tmp/friendica_files
- when:
- repo: friendica/friendica-addons
- event: tag
diff --git a/README.md b/README.md
index 6a3202bb..21c0ed52 100644
--- a/README.md
+++ b/README.md
@@ -6,24 +6,22 @@ You can add these addons to the /addon directory of your Friendica installation
After uploading the addons to your server, you need to activate the desired addons in the Admin panel. Addons not activated have no effect on your node.
-## Issues
-
-Please report any issues you have with addons of Friendica from this repository in [the main issue tracker of the project](https://github.com/friendica/friendica/issues).
+You can find more addons in the [Friendica Addon listing](https://addons.friendi.ca) in cases the addon developers have choosen not to include them here.
## Connectors
-Among these addons there are also the [connectors](https://github.com/friendica/friendica/blob/stable/doc/Connectors.md) for various other networks (e.g. Twitter, pump.io, Google+) that are needed for communication when the protocol is not supported by Friendica core (DFRN, OStatus and Diaspora).
+Among these addons there are also the [connectors](https://github.com/friendica/friendica/blob/master/doc/Connectors.md) for various other networks (e.g. Twitter, pump.io, Google+) that are needed for communication when the protocol is not supported by Friendica core (DFRN, OStatus and Diaspora).
For communication with contacts in networks supporting those (e.g. GNU social, Diaspora and red#matrix) you just need to access the page configuration in the Admin panel and enable them. For networks where communication is only possible the API access to a remote account, you need to activate the fitting connectors.
## Development
The addon interface of Friendica is very flexible and powerful, so if you are missing functionality, your chances are high it may be added with an addon.
-See the [documentation](https://github.com/friendica/friendica/blob/stable/doc/Addons.md) for more information on the addon development.
+See the [documentation](https://github.com/friendica/friendica/blob/master/doc/Addons.md) for more information on the addon development.
## Translation
Addons can be translated like any other part of Friendica.
Translation for addons is done at [the Transifex Friendica page](https://www.transifex.com/Friendica/friendica/dashboard/).
-Read more about the workflow in the [Friendica translation documentation](https://github.com/friendica/friendica/blob/stable/doc/translations.md#addon).
+Read more about the workflow in the [Friendica translation documentation](https://github.com/friendica/friendica/blob/master/doc/translations.md#addon).
diff --git a/advancedcontentfilter/advancedcontentfilter.js b/advancedcontentfilter/advancedcontentfilter.js
index a8fc1c65..e3c2da54 100644
--- a/advancedcontentfilter/advancedcontentfilter.js
+++ b/advancedcontentfilter/advancedcontentfilter.js
@@ -54,7 +54,7 @@ new Vue({
self.rules.push(responseJSON.rule);
self.resetForm();
}, function (response) {
- self.errorMessage = response.responseJSON.exception[0].message;
+ self.errorMessage = response.responseJSON.message;
});
}
},
@@ -74,7 +74,7 @@ new Vue({
self.rules[self.editedIndex] = rule;
self.resetForm();
}, function (response) {
- self.errorMessage = response.responseJSON.exception[0].message;
+ self.errorMessage = response.responseJSON.message;
});
},
@@ -124,7 +124,7 @@ new Vue({
// These render functions have been compiled from templates/advancedcontentfilter.vue, check this file out for instructions
render: function () {
- with(this){return _c('div',{attrs:{"id":"rules"}},[_c('p',[_c('a',{attrs:{"href":"settings/addons"}},[_v("🔙 "+_s(messages.backtosettings))])]),_c('h1',[_v(_s(messages.title)+" "),_c('a',{staticClass:"btn btn-default btn-sm",attrs:{"href":"advancedcontentfilter/help","title":messages.help}},[_c('i',{staticClass:"fa fa-question fa-2x",attrs:{"aria-hidden":"true"}})])]),_c('div',[_v(_s(messages.intro))]),_c('h2',[_v(_s(messages.your_rules)+" "),_c('button',{staticClass:"btn btn-primary btn-sm",attrs:{"title":messages.add_a_rule},on:{"click":function($event){showModal = true}}},[_c('i',{staticClass:"fa fa-plus fa-2x",attrs:{"aria-hidden":"true"}})])]),(rules.length === 0)?_c('div',{},[_v(_s(messages.no_rules))]):_e(),_c('ul',{staticClass:"list-group"},_l((rules),function(rule){return _c('li',{staticClass:"list-group-item"},[_c('p',{staticClass:"pull-right"},[(parseInt(rule.active))?_c('button',{staticClass:"btn btn-xs btn-primary",attrs:{"type":"button","aria-label":messages.disable_this_rule,"title":messages.disable_this_rule},on:{"click":function($event){toggleActive(rule)}}},[_c('i',{staticClass:"fa fa-toggle-on",attrs:{"aria-hidden":"true"}}),_v(" "+_s(messages.enabled))]):_c('button',{staticClass:"btn btn-xs btn-default",attrs:{"type":"button","aria-label":messages.enable_this_rule,"title":messages.enable_this_rule},on:{"click":function($event){toggleActive(rule)}}},[_c('i',{staticClass:"fa fa-toggle-off",attrs:{"aria-hidden":"true"}}),_v(" "+_s(messages.disabled))]),_v(" "),_c('button',{staticClass:"btn btn-xs btn-primary",attrs:{"type":"button","aria-label":messages.edit_this_rule,"title":messages.edit_this_rule},on:{"click":function($event){editRule(rule)}}},[_c('i',{staticClass:"fa fa-pencil",attrs:{"aria-hidden":"true"}})]),_v(" "),_c('button',{staticClass:"btn btn-xs btn-default",attrs:{"type":"button","aria-label":messages.delete_this_rule,"title":messages.delete_this_rule},on:{"click":function($event){deleteRule(rule)}}},[_c('i',{staticClass:"fa fa-trash-o",attrs:{"aria-hidden":"true"}})])]),_c('h3',{staticClass:"list-group-item-heading"},[_v(_s(messages.rule)+" #"+_s(rule.id)+": "+_s(rule.name))]),(rule.expression)?_c('pre',{staticClass:"list-group-item-text"},[_v(_s(rule.expression))]):_e()])})),_c('div',{ref:"vuemodal",staticClass:"modal fade",attrs:{"tabindex":"-1","role":"dialog"}},[_c('div',{staticClass:"modal-dialog",attrs:{"role":"document"}},[_c('div',{staticClass:"modal-content"},[_c('div',{staticClass:"modal-header"},[(currentTheme === 'frio')?_c('button',{staticClass:"close",attrs:{"type":"button","data-dismiss":"modal","aria-label":messages.close},on:{"click":function($event){showModal = false}}},[_c('span',{attrs:{"aria-hidden":"true"}},[_v("×")])]):_e(),(rule.id)?_c('h3',[_v(_s(messages.edit_the_rule)+" \""+_s(rule.name)+"\"")]):_e(),(!rule.id)?_c('h3',[_v(_s(messages.add_a_rule))]):_e()]),_c('div',{staticClass:"modal-body"},[_c('form',[(errorMessage)?_c('div',{staticClass:"alert alert-danger",attrs:{"role":"alert"}},[_v(_s(errorMessage))]):_e(),_c('div',{staticClass:"form-group"},[_c('input',{directives:[{name:"model",rawName:"v-model",value:(rule.name),expression:"rule.name"}],staticClass:"form-control",attrs:{"placeholder":messages.rule_name},domProps:{"value":(rule.name)},on:{"input":function($event){if($event.target.composing)return;$set(rule, "name", $event.target.value)}}})]),_c('div',{staticClass:"form-group"},[_c('input',{directives:[{name:"model",rawName:"v-model",value:(rule.expression),expression:"rule.expression"}],staticClass:"form-control",attrs:{"placeholder":messages.rule_expression},domProps:{"value":(rule.expression)},on:{"input":function($event){if($event.target.composing)return;$set(rule, "expression", $event.target.value)}}})])])]),_c('div',{staticClass:"modal-footer"},[_c('button',{staticClass:"btn btn-default",attrs:{"type":"button","data-dismiss":"modal","aria-label":"Close"},on:{"click":function($event){resetForm()}}},[_v(_s(messages.cancel))]),(rule.id)?_c('button',{staticClass:"btn btn-primary",attrs:{"slot":"button","type":"button"},on:{"click":function($event){saveRule(rule)}},slot:"button"},[_v(_s(messages.save_this_rule))]):_e(),(!rule.id)?_c('button',{staticClass:"btn btn-primary",attrs:{"slot":"button","type":"button"},on:{"click":function($event){addRule()}},slot:"button"},[_v(_s(messages.add_a_rule))]):_e()])])])]),_c('form',{staticClass:"form-inline",on:{"submit":function($event){$event.preventDefault();showVariables()}}},[_c('fieldset',[_c('legend',[_v("Show post variables")]),_c('div',{staticClass:"form-group",staticStyle:{"width":"50%"}},[_c('label',{staticClass:"sr-only",attrs:{"for":"itemUrl"}},[_v("Post URL or item guid")]),_c('input',{directives:[{name:"model",rawName:"v-model",value:(itemUrl),expression:"itemUrl"}],staticClass:"form-control",staticStyle:{"width":"100%"},attrs:{"id":"itemUrl","placeholder":"Post URL or item guid"},domProps:{"value":(itemUrl)},on:{"input":function($event){if($event.target.composing)return;itemUrl=$event.target.value}}})]),_c('button',{staticClass:"btn btn-primary",attrs:{"type":"submit"}},[_v("Show Variables")])])]),_c('pre',{},[_v(_s(itemJson))])])}
+ with(this){return _c('div',{attrs:{"id":"rules"}},[_c('p',[_c('a',{attrs:{"href":"settings/addon"}},[_v("🔙 "+_s(messages.backtosettings))])]),_c('h1',[_v(_s(messages.title)+" "),_c('a',{staticClass:"btn btn-default btn-sm",attrs:{"href":"advancedcontentfilter/help","title":messages.help}},[_c('i',{staticClass:"fa fa-question fa-2x",attrs:{"aria-hidden":"true"}})])]),_c('div',[_v(_s(messages.intro))]),_c('h2',[_v(_s(messages.your_rules)+" "),_c('button',{staticClass:"btn btn-primary btn-sm",attrs:{"title":messages.add_a_rule},on:{"click":function($event){showModal = true}}},[_c('i',{staticClass:"fa fa-plus fa-2x",attrs:{"aria-hidden":"true"}})])]),(rules.length === 0)?_c('div',{},[_v(_s(messages.no_rules))]):_e(),_c('ul',{staticClass:"list-group"},_l((rules),function(rule){return _c('li',{staticClass:"list-group-item"},[_c('p',{staticClass:"pull-right"},[(parseInt(rule.active))?_c('button',{staticClass:"btn btn-xs btn-primary",attrs:{"type":"button","aria-label":messages.disable_this_rule,"title":messages.disable_this_rule},on:{"click":function($event){toggleActive(rule)}}},[_c('i',{staticClass:"fa fa-toggle-on",attrs:{"aria-hidden":"true"}}),_v(" "+_s(messages.enabled))]):_c('button',{staticClass:"btn btn-xs btn-default",attrs:{"type":"button","aria-label":messages.enable_this_rule,"title":messages.enable_this_rule},on:{"click":function($event){toggleActive(rule)}}},[_c('i',{staticClass:"fa fa-toggle-off",attrs:{"aria-hidden":"true"}}),_v(" "+_s(messages.disabled))]),_v(" "),_c('button',{staticClass:"btn btn-xs btn-primary",attrs:{"type":"button","aria-label":messages.edit_this_rule,"title":messages.edit_this_rule},on:{"click":function($event){editRule(rule)}}},[_c('i',{staticClass:"fa fa-pencil",attrs:{"aria-hidden":"true"}})]),_v(" "),_c('button',{staticClass:"btn btn-xs btn-default",attrs:{"type":"button","aria-label":messages.delete_this_rule,"title":messages.delete_this_rule},on:{"click":function($event){deleteRule(rule)}}},[_c('i',{staticClass:"fa fa-trash-o",attrs:{"aria-hidden":"true"}})])]),_c('h3',{staticClass:"list-group-item-heading"},[_v(_s(messages.rule)+" #"+_s(rule.id)+": "+_s(rule.name))]),(rule.expression)?_c('pre',{staticClass:"list-group-item-text"},[_v(_s(rule.expression))]):_e()])})),_c('div',{ref:"vuemodal",staticClass:"modal fade",attrs:{"tabindex":"-1","role":"dialog"}},[_c('div',{staticClass:"modal-dialog",attrs:{"role":"document"}},[_c('div',{staticClass:"modal-content"},[_c('div',{staticClass:"modal-header"},[(currentTheme === 'frio')?_c('button',{staticClass:"close",attrs:{"type":"button","data-dismiss":"modal","aria-label":messages.close},on:{"click":function($event){showModal = false}}},[_c('span',{attrs:{"aria-hidden":"true"}},[_v("×")])]):_e(),(rule.id)?_c('h3',[_v(_s(messages.edit_the_rule)+" \""+_s(rule.name)+"\"")]):_e(),(!rule.id)?_c('h3',[_v(_s(messages.add_a_rule))]):_e()]),_c('div',{staticClass:"modal-body"},[_c('form',[(errorMessage)?_c('div',{staticClass:"alert alert-danger",attrs:{"role":"alert"}},[_v(_s(errorMessage))]):_e(),_c('div',{staticClass:"form-group"},[_c('input',{directives:[{name:"model",rawName:"v-model",value:(rule.name),expression:"rule.name"}],staticClass:"form-control",attrs:{"placeholder":messages.rule_name},domProps:{"value":(rule.name)},on:{"input":function($event){if($event.target.composing)return;$set(rule, "name", $event.target.value)}}})]),_c('div',{staticClass:"form-group"},[_c('input',{directives:[{name:"model",rawName:"v-model",value:(rule.expression),expression:"rule.expression"}],staticClass:"form-control",attrs:{"placeholder":messages.rule_expression},domProps:{"value":(rule.expression)},on:{"input":function($event){if($event.target.composing)return;$set(rule, "expression", $event.target.value)}}})])])]),_c('div',{staticClass:"modal-footer"},[_c('button',{staticClass:"btn btn-default",attrs:{"type":"button","data-dismiss":"modal","aria-label":"Close"},on:{"click":function($event){resetForm()}}},[_v(_s(messages.cancel))]),(rule.id)?_c('button',{staticClass:"btn btn-primary",attrs:{"slot":"button","type":"button"},on:{"click":function($event){saveRule(rule)}},slot:"button"},[_v(_s(messages.save_this_rule))]):_e(),(!rule.id)?_c('button',{staticClass:"btn btn-primary",attrs:{"slot":"button","type":"button"},on:{"click":function($event){addRule()}},slot:"button"},[_v(_s(messages.add_a_rule))]):_e()])])])]),_c('form',{staticClass:"form-inline",on:{"submit":function($event){$event.preventDefault();showVariables()}}},[_c('fieldset',[_c('legend',[_v("Show post variables")]),_c('div',{staticClass:"form-group",staticStyle:{"width":"50%"}},[_c('label',{staticClass:"sr-only",attrs:{"for":"itemUrl"}},[_v("Post URL or item guid")]),_c('input',{directives:[{name:"model",rawName:"v-model",value:(itemUrl),expression:"itemUrl"}],staticClass:"form-control",staticStyle:{"width":"100%"},attrs:{"id":"itemUrl","placeholder":"Post URL or item guid"},domProps:{"value":(itemUrl)},on:{"input":function($event){if($event.target.composing)return;itemUrl=$event.target.value}}})]),_c('button',{staticClass:"btn btn-primary",attrs:{"type":"submit"}},[_v("Show Variables")])])]),_c('pre',{},[_v(_s(itemJson))])])}
},
staticRenderFns: [
diff --git a/advancedcontentfilter/advancedcontentfilter.php b/advancedcontentfilter/advancedcontentfilter.php
index 53cb9ebe..dbbfb2e2 100644
--- a/advancedcontentfilter/advancedcontentfilter.php
+++ b/advancedcontentfilter/advancedcontentfilter.php
@@ -33,17 +33,19 @@
*
*/
+use Friendica\App;
use Friendica\BaseModule;
use Friendica\Content\Text\Markdown;
+use Friendica\Core\Cache;
use Friendica\Core\Hook;
+use Friendica\Core\L10n;
+use Friendica\Core\Logger;
use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\Database\DBStructure;
-use Friendica\DI;
-use Friendica\Model\Post;
-use Friendica\Model\Tag;
-use Friendica\Model\User;
-use Friendica\Module\Security\Login;
+use Friendica\Model\Item;
+use Friendica\Model\Term;
+use Friendica\Module\Login;
use Friendica\Network\HTTPException;
use Friendica\Util\DateTimeFormat;
use Psr\Http\Message\ResponseInterface;
@@ -52,67 +54,49 @@ use Symfony\Component\ExpressionLanguage;
require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
-function advancedcontentfilter_install()
+function advancedcontentfilter_install(App $a)
{
Hook::register('dbstructure_definition' , __FILE__, 'advancedcontentfilter_dbstructure_definition');
Hook::register('prepare_body_content_filter', __FILE__, 'advancedcontentfilter_prepare_body_content_filter');
Hook::register('addon_settings' , __FILE__, 'advancedcontentfilter_addon_settings');
- Hook::add('dbstructure_definition' , __FILE__, 'advancedcontentfilter_dbstructure_definition');
- DBStructure::performUpdate();
+ DBStructure::update($a->getBasePath(), false, true);
- DI::logger()->notice('installed advancedcontentfilter');
+ Logger::log("installed advancedcontentfilter");
+}
+
+function advancedcontentfilter_uninstall()
+{
+ Hook::unregister('dbstructure_definition' , __FILE__, 'advancedcontentfilter_dbstructure_definition');
+ Hook::unregister('prepare_body_content_filter', __FILE__, 'advancedcontentfilter_prepare_body_content_filter');
+ Hook::unregister('addon_settings' , __FILE__, 'advancedcontentfilter_addon_settings');
}
/*
* Hooks
*/
-function advancedcontentfilter_dbstructure_definition(&$database)
+function advancedcontentfilter_dbstructure_definition(App $a, &$database)
{
- $database['advancedcontentfilter_rules'] = [
- 'comment' => 'Advancedcontentfilter addon rules',
- 'fields' => [
- 'id' => ['type' => 'int unsigned', 'not null' => '1', 'extra' => 'auto_increment', 'primary' => '1', 'comment' => 'Auto incremented rule id'],
- 'uid' => ['type' => 'int unsigned', 'not null' => '1', 'comment' => 'Owner user id'],
- 'name' => ['type' => 'varchar(255)', 'not null' => '1', 'comment' => 'Rule name'],
- 'expression' => ['type' => 'mediumtext' , 'not null' => '1', 'comment' => 'Expression text'],
- 'serialized' => ['type' => 'mediumtext' , 'not null' => '1', 'comment' => 'Serialized parsed expression'],
- 'active' => ['type' => 'boolean' , 'not null' => '1', 'default' => '1', 'comment' => 'Whether the rule is active or not'],
- 'created' => ['type' => 'datetime' , 'not null' => '1', 'default' => DBA::NULL_DATETIME, 'comment' => 'Creation date'],
+ $database["advancedcontentfilter_rules"] = [
+ "comment" => "Advancedcontentfilter addon rules",
+ "fields" => [
+ "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "Auto incremented rule id"],
+ "uid" => ["type" => "int unsigned", "not null" => "1", "comment" => "Owner user id"],
+ "name" => ["type" => "varchar(255)", "not null" => "1", "comment" => "Rule name"],
+ "expression" => ["type" => "mediumtext" , "not null" => "1", "comment" => "Expression text"],
+ "serialized" => ["type" => "mediumtext" , "not null" => "1", "comment" => "Serialized parsed expression"],
+ "active" => ["type" => "boolean" , "not null" => "1", "default" => "1", "comment" => "Whether the rule is active or not"],
+ "created" => ["type" => "datetime" , "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Creation date"],
],
- 'indexes' => [
- 'PRIMARY' => ['id'],
- 'uid_active' => ['uid', 'active'],
+ "indexes" => [
+ "PRIMARY" => ["id"],
+ "uid_active" => ["uid", "active"],
]
];
}
-/**
- * @param array $item Prepared by either Model\Item::prepareBody or advancedcontentfilter_prepare_item_row
- * @return array
- */
-function advancedcontentfilter_get_filter_fields(array $item)
-{
- $vars = [];
-
- // Convert the language JSON text into a filterable format
- if (!empty($item['language']) && ($languages = json_decode($item['language'], true))) {
- foreach ($languages as $key => $value) {
- $vars['language_' . strtolower($key)] = $value;
- }
- }
-
- foreach ($item as $key => $value) {
- $vars[str_replace('-', '_', $key)] = $value;
- }
-
- ksort($vars);
-
- return $vars;
-}
-
-function advancedcontentfilter_prepare_body_content_filter(&$hook_data)
+function advancedcontentfilter_prepare_body_content_filter(App $a, &$hook_data)
{
static $expressionLanguage;
@@ -120,22 +104,22 @@ function advancedcontentfilter_prepare_body_content_filter(&$hook_data)
$expressionLanguage = new ExpressionLanguage\ExpressionLanguage();
}
- $uid = $hook_data['uid'] ?? DI::userSession()->getLocalUserId();
- if (!$uid) {
+ if (!local_user()) {
return;
}
- $vars = advancedcontentfilter_get_filter_fields($hook_data['item']);
+ $vars = [];
+ foreach ($hook_data['item'] as $key => $value) {
+ $vars[str_replace('-', '_', $key)] = $value;
+ }
- $rules = DI::cache()->get('rules_' . $uid);
+ $rules = Cache::get('rules_' . local_user());
if (!isset($rules)) {
$rules = DBA::toArray(DBA::select(
'advancedcontentfilter_rules',
['name', 'expression', 'serialized'],
- ['uid' => $uid, 'active' => true]
+ ['uid' => local_user(), 'active' => true]
));
-
- DI::cache()->set('rules_' . $uid, $rules);
}
if ($rules) {
@@ -153,7 +137,7 @@ function advancedcontentfilter_prepare_body_content_filter(&$hook_data)
}
if ($found) {
- $hook_data['filter_reasons'][] = DI::l10n()->t('Filtered by rule: %s', $rule['name']);
+ $hook_data['filter_reasons'][] = L10n::t('Filtered by rule: %s', $rule['name']);
break;
}
}
@@ -161,75 +145,49 @@ function advancedcontentfilter_prepare_body_content_filter(&$hook_data)
}
-function advancedcontentfilter_addon_settings(array &$data)
+function advancedcontentfilter_addon_settings(App $a, &$s)
{
- if (!DI::userSession()->getLocalUserId()) {
+ if (!local_user()) {
return;
}
- $data = [
- 'addon' => 'advancedcontentfilter',
- 'title' => DI::l10n()->t('Advanced Content Filter'),
- 'href' => 'advancedcontentfilter',
- ];
+ $advancedcontentfilter = L10n::t('Advanced Content Filter');
+
+ $s .= <<
+HTML;
+
+ return;
}
/*
* Module
*/
-/**
- * This is a statement rather than an actual function definition. The simple
- * existence of this method is checked to figure out if the addon offers a
- * module.
- */
function advancedcontentfilter_module() {}
-function advancedcontentfilter_init()
+function advancedcontentfilter_init(App $a)
{
- if (DI::args()->getArgc() > 1 && DI::args()->getArgv()[1] == 'api') {
- $slim = \Slim\Factory\AppFactory::create();
+ if ($a->argc > 1 && $a->argv[1] == 'api') {
+ $slim = new \Slim\App();
- /**
- * The routing middleware should be added before the ErrorMiddleware
- * Otherwise exceptions thrown from it will not be handled
- */
- $slim->addRoutingMiddleware();
-
- $slim->addErrorMiddleware(true, true, true, DI::logger());
-
- // register routes
- $slim->group('/advancedcontentfilter/api', function (\Slim\Routing\RouteCollectorProxy $app) {
- $app->group('/rules', function (\Slim\Routing\RouteCollectorProxy $app) {
- $app->get('', 'advancedcontentfilter_get_rules');
- $app->post('', 'advancedcontentfilter_post_rules');
-
- $app->get('/{id}', 'advancedcontentfilter_get_rules_id');
- $app->put('/{id}', 'advancedcontentfilter_put_rules_id');
- $app->delete('/{id}', 'advancedcontentfilter_delete_rules_id');
- });
-
- $app->group('/variables', function (\Slim\Routing\RouteCollectorProxy $app) {
- $app->get('/{guid}', 'advancedcontentfilter_get_variables_guid');
- });
- });
+ require __DIR__ . '/src/middlewares.php';
+ require __DIR__ . '/src/routes.php';
$slim->run();
exit;
}
}
-function advancedcontentfilter_content()
+function advancedcontentfilter_content(App $a)
{
- if (!DI::userSession()->getLocalUserId()) {
- return Login::form('/' . implode('/', DI::args()->getArgv()));
+ if (!local_user()) {
+ return Login::form('/' . implode('/', $a->argv));
}
- if (DI::args()->getArgc() > 1 && DI::args()->getArgv()[1] == 'help') {
- $user = User::getById(DI::userSession()->getLocalUserId());
-
- $lang = $user['language'];
+ if ($a->argc > 1 && $a->argv[1] == 'help') {
+ $lang = $a->user['language'];
$default_dir = 'addon/advancedcontentfilter/doc/';
$help_file = 'advancedcontentfilter.md';
@@ -249,30 +207,30 @@ function advancedcontentfilter_content()
$t = Renderer::getMarkupTemplate('settings.tpl', 'addon/advancedcontentfilter/');
return Renderer::replaceMacros($t, [
'$messages' => [
- 'backtosettings' => DI::l10n()->t('Back to Addon Settings'),
- 'title' => DI::l10n()->t('Advanced Content Filter'),
- 'add_a_rule' => DI::l10n()->t('Add a Rule'),
- 'help' => DI::l10n()->t('Help'),
- 'intro' => DI::l10n()->t('Add and manage your personal content filter rules in this screen. Rules have a name and an arbitrary expression that will be matched against post data. For a complete reference of the available operations and variables, check the help page.'),
- 'your_rules' => DI::l10n()->t('Your rules'),
- 'no_rules' => DI::l10n()->t('You have no rules yet! Start adding one by clicking on the button above next to the title.'),
- 'disabled' => DI::l10n()->t('Disabled'),
- 'enabled' => DI::l10n()->t('Enabled'),
- 'disable_this_rule' => DI::l10n()->t('Disable this rule'),
- 'enable_this_rule' => DI::l10n()->t('Enable this rule'),
- 'edit_this_rule' => DI::l10n()->t('Edit this rule'),
- 'edit_the_rule' => DI::l10n()->t('Edit the rule'),
- 'save_this_rule' => DI::l10n()->t('Save this rule'),
- 'delete_this_rule' => DI::l10n()->t('Delete this rule'),
- 'rule' => DI::l10n()->t('Rule'),
- 'close' => DI::l10n()->t('Close'),
- 'addtitle' => DI::l10n()->t('Add new rule'),
- 'rule_name' => DI::l10n()->t('Rule Name'),
- 'rule_expression' => DI::l10n()->t('Rule Expression'),
- 'cancel' => DI::l10n()->t('Cancel'),
+ 'backtosettings' => L10n::t('Back to Addon Settings'),
+ 'title' => L10n::t('Advanced Content Filter'),
+ 'add_a_rule' => L10n::t('Add a Rule'),
+ 'help' => L10n::t('Help'),
+ 'intro' => L10n::t('Add and manage your personal content filter rules in this screen. Rules have a name and an arbitrary expression that will be matched against post data. For a complete reference of the available operations and variables, check the help page.'),
+ 'your_rules' => L10n::t('Your rules'),
+ 'no_rules' => L10n::t('You have no rules yet! Start adding one by clicking on the button above next to the title.'),
+ 'disabled' => L10n::t('Disabled'),
+ 'enabled' => L10n::t('Enabled'),
+ 'disable_this_rule' => L10n::t('Disable this rule'),
+ 'enable_this_rule' => L10n::t('Enable this rule'),
+ 'edit_this_rule' => L10n::t('Edit this rule'),
+ 'edit_the_rule' => L10n::t('Edit the rule'),
+ 'save_this_rule' => L10n::t('Save this rule'),
+ 'delete_this_rule' => L10n::t('Delete this rule'),
+ 'rule' => L10n::t('Rule'),
+ 'close' => L10n::t('Close'),
+ 'addtitle' => L10n::t('Add new rule'),
+ 'rule_name' => L10n::t('Rule Name'),
+ 'rule_expression' => L10n::t('Rule Expression'),
+ 'cancel' => L10n::t('Cancel'),
],
- '$current_theme' => DI::appHelper()->getCurrentTheme(),
- '$rules' => DBA::toArray(DBA::select('advancedcontentfilter_rules', [], ['uid' => DI::userSession()->getLocalUserId()])),
+ '$current_theme' => $a->getCurrentTheme(),
+ '$rules' => advancedcontentfilter_get_rules(),
'$form_security_token' => BaseModule::getFormSecurityToken()
]);
}
@@ -290,20 +248,29 @@ function advancedcontentfilter_build_fields($data)
}
if (!empty($data['expression'])) {
- // Using a dummy item to validate the field existence
- $condition = ["(`uid` = ? OR `uid` = 0)", DI::userSession()->getLocalUserId()];
- $params = ['order' => ['uid' => true]];
- $item_row = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), [], $condition, $params);
-
- if (!DBA::isResult($item_row)) {
- throw new HTTPException\NotFoundException(DI::l10n()->t('This addon requires this node having at least one post'));
- }
+ $allowed_keys = [
+ 'author_id', 'author_link', 'author_name', 'author_avatar',
+ 'owner_id', 'owner_link', 'owner_name', 'owner_avatar',
+ 'contact_id', 'uid', 'id', 'parent', 'uri',
+ 'thr_parent', 'parent_uri',
+ 'content_warning',
+ 'commented', 'created', 'edited', 'received',
+ 'verb', 'object_type', 'postopts', 'plink', 'guid', 'wall', 'private', 'starred',
+ 'title', 'body',
+ 'file', 'event_id', 'location', 'coord', 'app', 'attach',
+ 'rendered_hash', 'rendered_html', 'object',
+ 'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid',
+ 'item_id', 'item_network', 'author_thumb', 'owner_thumb',
+ 'network', 'url', 'name', 'writable', 'self',
+ 'cid', 'alias',
+ 'event_created', 'event_edited', 'event_start', 'event_finish', 'event_summary',
+ 'event_desc', 'event_location', 'event_type', 'event_nofinish', 'event_adjust', 'event_ignore',
+ 'children', 'pagedrop', 'tags', 'hashtags', 'mentions',
+ ];
$expressionLanguage = new ExpressionLanguage\ExpressionLanguage();
- $parsedExpression = $expressionLanguage->parse(
- $data['expression'],
- array_keys(advancedcontentfilter_get_filter_fields(advancedcontentfilter_prepare_item_row($item_row)))
- );
+
+ $parsedExpression = $expressionLanguage->parse($data['expression'], $allowed_keys);
$serialized = serialize($parsedExpression->getNodes());
@@ -324,38 +291,36 @@ function advancedcontentfilter_build_fields($data)
* API
*/
-function advancedcontentfilter_get_rules(ServerRequestInterface $request, ResponseInterface $response): ResponseInterface
+function advancedcontentfilter_get_rules()
{
- if (!DI::userSession()->getLocalUserId()) {
- throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this method'));
+ if (!local_user()) {
+ throw new HTTPException\UnauthorizedException(L10n::t('You must be logged in to use this method'));
}
- $rules = DBA::toArray(DBA::select('advancedcontentfilter_rules', [], ['uid' => DI::userSession()->getLocalUserId()]));
+ $rules = DBA::toArray(DBA::select('advancedcontentfilter_rules', [], ['uid' => local_user()]));
- $response->getBody()->write(json_encode($rules));
- return $response->withHeader('Content-Type', 'application/json');
+ return json_encode($rules);
}
function advancedcontentfilter_get_rules_id(ServerRequestInterface $request, ResponseInterface $response, $args)
{
- if (!DI::userSession()->getLocalUserId()) {
- throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this method'));
+ if (!local_user()) {
+ throw new HTTPException\UnauthorizedException(L10n::t('You must be logged in to use this method'));
}
- $rule = DBA::selectFirst('advancedcontentfilter_rules', [], ['id' => $args['id'], 'uid' => DI::userSession()->getLocalUserId()]);
+ $rule = DBA::selectFirst('advancedcontentfilter_rules', [], ['id' => $args['id'], 'uid' => local_user()]);
- $response->getBody()->write(json_encode($rule));
- return $response->withHeader('Content-Type', 'application/json');
+ return json_encode($rule);
}
-function advancedcontentfilter_post_rules(ServerRequestInterface $request, ResponseInterface $response)
+function advancedcontentfilter_post_rules(ServerRequestInterface $request)
{
- if (!DI::userSession()->getLocalUserId()) {
- throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this method'));
+ if (!local_user()) {
+ throw new HTTPException\UnauthorizedException(L10n::t('You must be logged in to use this method'));
}
if (!BaseModule::checkFormSecurityToken()) {
- throw new HTTPException\BadRequestException(DI::l10n()->t('Invalid form security token, please refresh the page.'));
+ throw new HTTPException\BadRequestException(L10n::t('Invalid form security token, please refresh the page.'));
}
$data = json_decode($request->getBody(), true);
@@ -363,40 +328,37 @@ function advancedcontentfilter_post_rules(ServerRequestInterface $request, Respo
try {
$fields = advancedcontentfilter_build_fields($data);
} catch (Exception $e) {
- throw new HTTPException\BadRequestException($e->getMessage(), $e);
+ throw new HTTPException\BadRequestException($e->getMessage(), 0, $e);
}
if (empty($fields['name']) || empty($fields['expression'])) {
- throw new HTTPException\BadRequestException(DI::l10n()->t('The rule name and expression are required.'));
+ throw new HTTPException\BadRequestException(L10n::t('The rule name and expression are required.'));
}
- $fields['uid'] = DI::userSession()->getLocalUserId();
+ $fields['uid'] = local_user();
$fields['created'] = DateTimeFormat::utcNow();
if (!DBA::insert('advancedcontentfilter_rules', $fields)) {
- throw new HTTPException\ServiceUnavailableException(DBA::errorMessage());
+ throw new HTTPException\ServiceUnavaiableException(DBA::errorMessage());
}
$rule = DBA::selectFirst('advancedcontentfilter_rules', [], ['id' => DBA::lastInsertId()]);
- DI::cache()->delete('rules_' . DI::userSession()->getLocalUserId());
-
- $response->getBody()->write(json_encode(['message' => DI::l10n()->t('Rule successfully added'), 'rule' => $rule]));
- return $response->withHeader('Content-Type', 'application/json');
+ return json_encode(['message' => L10n::t('Rule successfully added'), 'rule' => $rule]);
}
function advancedcontentfilter_put_rules_id(ServerRequestInterface $request, ResponseInterface $response, $args)
{
- if (!DI::userSession()->getLocalUserId()) {
- throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this method'));
+ if (!local_user()) {
+ throw new HTTPException\UnauthorizedException(L10n::t('You must be logged in to use this method'));
}
if (!BaseModule::checkFormSecurityToken()) {
- throw new HTTPException\BadRequestException(DI::l10n()->t('Invalid form security token, please refresh the page.'));
+ throw new HTTPException\BadRequestException(L10n::t('Invalid form security token, please refresh the page.'));
}
- if (!DBA::exists('advancedcontentfilter_rules', ['id' => $args['id'], 'uid' => DI::userSession()->getLocalUserId()])) {
- throw new HTTPException\NotFoundException(DI::l10n()->t('Rule doesn\'t exist or doesn\'t belong to you.'));
+ if (!DBA::exists('advancedcontentfilter_rules', ['id' => $args['id'], 'uid' => local_user()])) {
+ throw new HTTPException\NotFoundException(L10n::t('Rule doesn\'t exist or doesn\'t belong to you.'));
}
$data = json_decode($request->getBody(), true);
@@ -404,83 +366,65 @@ function advancedcontentfilter_put_rules_id(ServerRequestInterface $request, Res
try {
$fields = advancedcontentfilter_build_fields($data);
} catch (Exception $e) {
- throw new HTTPException\BadRequestException($e->getMessage(), $e);
+ throw new HTTPException\BadRequestException($e->getMessage(), 0, $e);
}
if (!DBA::update('advancedcontentfilter_rules', $fields, ['id' => $args['id']])) {
- throw new HTTPException\ServiceUnavailableException(DBA::errorMessage());
+ throw new HTTPException\ServiceUnavaiableException(DBA::errorMessage());
}
- DI::cache()->delete('rules_' . DI::userSession()->getLocalUserId());
-
- $response->getBody()->write(json_encode(['message' => DI::l10n()->t('Rule successfully updated')]));
- return $response->withHeader('Content-Type', 'application/json');
+ return json_encode(['message' => L10n::t('Rule successfully updated')]);
}
function advancedcontentfilter_delete_rules_id(ServerRequestInterface $request, ResponseInterface $response, $args)
{
- if (!DI::userSession()->getLocalUserId()) {
- throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this method'));
+ if (!local_user()) {
+ throw new HTTPException\UnauthorizedException(L10n::t('You must be logged in to use this method'));
}
if (!BaseModule::checkFormSecurityToken()) {
- throw new HTTPException\BadRequestException(DI::l10n()->t('Invalid form security token, please refresh the page.'));
+ throw new HTTPException\BadRequestException(L10n::t('Invalid form security token, please refresh the page.'));
}
- if (!DBA::exists('advancedcontentfilter_rules', ['id' => $args['id'], 'uid' => DI::userSession()->getLocalUserId()])) {
- throw new HTTPException\NotFoundException(DI::l10n()->t('Rule doesn\'t exist or doesn\'t belong to you.'));
+ if (!DBA::exists('advancedcontentfilter_rules', ['id' => $args['id'], 'uid' => local_user()])) {
+ throw new HTTPException\NotFoundException(L10n::t('Rule doesn\'t exist or doesn\'t belong to you.'));
}
if (!DBA::delete('advancedcontentfilter_rules', ['id' => $args['id']])) {
- throw new HTTPException\ServiceUnavailableException(DBA::errorMessage());
+ throw new HTTPException\ServiceUnavaiableException(DBA::errorMessage());
}
- DI::cache()->delete('rules_' . DI::userSession()->getLocalUserId());
-
- $response->getBody()->write(json_encode(['message' => DI::l10n()->t('Rule successfully deleted')]));
- return $response->withHeader('Content-Type', 'application/json');
+ return json_encode(['message' => L10n::t('Rule successfully deleted')]);
}
function advancedcontentfilter_get_variables_guid(ServerRequestInterface $request, ResponseInterface $response, $args)
{
- if (!DI::userSession()->getLocalUserId()) {
- throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this method'));
+ if (!local_user()) {
+ throw new HTTPException\UnauthorizedException(L10n::t('You must be logged in to use this method'));
}
if (!isset($args['guid'])) {
- throw new HTTPException\BadRequestException(DI::l10n()->t('Missing argument: guid.'));
+ throw new HTTPException\BadRequestException(L10n::t('Missing argument: guid.'));
}
- $condition = ["`guid` = ? AND (`uid` = ? OR `uid` = 0)", $args['guid'], DI::userSession()->getLocalUserId()];
+ $condition = ["`guid` = ? AND (`uid` = ? OR `uid` = 0)", $args['guid'], local_user()];
$params = ['order' => ['uid' => true]];
- $item_row = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), [], $condition, $params);
+ $item = Item::selectFirstForUser(local_user(), [], $condition, $params);
- if (!DBA::isResult($item_row)) {
- throw new HTTPException\NotFoundException(DI::l10n()->t('Unknown post with guid: %s', $args['guid']));
+ if (!DBA::isResult($item)) {
+ throw new HTTPException\NotFoundException(L10n::t('Unknown post with guid: %s', $args['guid']));
}
- $return = advancedcontentfilter_get_filter_fields(advancedcontentfilter_prepare_item_row($item_row));
+ $tags = Term::populateTagsFromItem($item);
- $response->getBody()->write(json_encode(['variables' => str_replace('\\\'', '\'', var_export($return, true))]));
- return $response->withHeader('Content-Type', 'application/json');
-}
-
-/**
- * This mimimcs the processing performed in Model\Item::prepareBody
- *
- * @param array $item_row
- * @return array
- * @throws HTTPException\InternalServerErrorException
- * @throws ImagickException
- */
-function advancedcontentfilter_prepare_item_row(array $item_row): array
-{
- $tags = Tag::populateFromItem($item_row);
-
- $item_row['tags'] = $tags['tags'];
- $item_row['hashtags'] = $tags['hashtags'];
- $item_row['mentions'] = $tags['mentions'];
- $item_row['attachments'] = DI::postMediaRepository()->splitAttachments($item_row['uri-id']);
-
- return $item_row;
+ $item['tags'] = $tags['tags'];
+ $item['hashtags'] = $tags['hashtags'];
+ $item['mentions'] = $tags['mentions'];
+
+ $return = [];
+ foreach ($item as $key => $value) {
+ $return[str_replace('-', '_', $key)] = $value;
+ }
+
+ return json_encode(['variables' => str_replace('\\\'', '\'', var_export($return, true))]);
}
diff --git a/advancedcontentfilter/asset/vue/dist/vue.js b/advancedcontentfilter/asset/vue/dist/vue.js
deleted file mode 100644
index 04bcb375..00000000
--- a/advancedcontentfilter/asset/vue/dist/vue.js
+++ /dev/null
@@ -1,11894 +0,0 @@
-/*!
- * Vue.js v2.7.13
- * (c) 2014-2022 Evan You
- * Released under the MIT License.
- */
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Vue = factory());
-})(this, (function () { 'use strict';
-
- var emptyObject = Object.freeze({});
- var isArray = Array.isArray;
- // These helpers produce better VM code in JS engines due to their
- // explicitness and function inlining.
- function isUndef(v) {
- return v === undefined || v === null;
- }
- function isDef(v) {
- return v !== undefined && v !== null;
- }
- function isTrue(v) {
- return v === true;
- }
- function isFalse(v) {
- return v === false;
- }
- /**
- * Check if value is primitive.
- */
- function isPrimitive(value) {
- return (typeof value === 'string' ||
- typeof value === 'number' ||
- // $flow-disable-line
- typeof value === 'symbol' ||
- typeof value === 'boolean');
- }
- function isFunction(value) {
- return typeof value === 'function';
- }
- /**
- * Quick object check - this is primarily used to tell
- * objects from primitive values when we know the value
- * is a JSON-compliant type.
- */
- function isObject(obj) {
- return obj !== null && typeof obj === 'object';
- }
- /**
- * Get the raw type string of a value, e.g., [object Object].
- */
- var _toString = Object.prototype.toString;
- function toRawType(value) {
- return _toString.call(value).slice(8, -1);
- }
- /**
- * Strict object type check. Only returns true
- * for plain JavaScript objects.
- */
- function isPlainObject(obj) {
- return _toString.call(obj) === '[object Object]';
- }
- function isRegExp(v) {
- return _toString.call(v) === '[object RegExp]';
- }
- /**
- * Check if val is a valid array index.
- */
- function isValidArrayIndex(val) {
- var n = parseFloat(String(val));
- return n >= 0 && Math.floor(n) === n && isFinite(val);
- }
- function isPromise(val) {
- return (isDef(val) &&
- typeof val.then === 'function' &&
- typeof val.catch === 'function');
- }
- /**
- * Convert a value to a string that is actually rendered.
- */
- function toString(val) {
- return val == null
- ? ''
- : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)
- ? JSON.stringify(val, null, 2)
- : String(val);
- }
- /**
- * Convert an input value to a number for persistence.
- * If the conversion fails, return original string.
- */
- function toNumber(val) {
- var n = parseFloat(val);
- return isNaN(n) ? val : n;
- }
- /**
- * Make a map and return a function for checking if a key
- * is in that map.
- */
- function makeMap(str, expectsLowerCase) {
- var map = Object.create(null);
- var list = str.split(',');
- for (var i = 0; i < list.length; i++) {
- map[list[i]] = true;
- }
- return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; };
- }
- /**
- * Check if a tag is a built-in tag.
- */
- var isBuiltInTag = makeMap('slot,component', true);
- /**
- * Check if an attribute is a reserved attribute.
- */
- var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
- /**
- * Remove an item from an array.
- */
- function remove$2(arr, item) {
- var len = arr.length;
- if (len) {
- // fast path for the only / last item
- if (item === arr[len - 1]) {
- arr.length = len - 1;
- return;
- }
- var index = arr.indexOf(item);
- if (index > -1) {
- return arr.splice(index, 1);
- }
- }
- }
- /**
- * Check whether an object has the property.
- */
- var hasOwnProperty = Object.prototype.hasOwnProperty;
- function hasOwn(obj, key) {
- return hasOwnProperty.call(obj, key);
- }
- /**
- * Create a cached version of a pure function.
- */
- function cached(fn) {
- var cache = Object.create(null);
- return function cachedFn(str) {
- var hit = cache[str];
- return hit || (cache[str] = fn(str));
- };
- }
- /**
- * Camelize a hyphen-delimited string.
- */
- var camelizeRE = /-(\w)/g;
- var camelize = cached(function (str) {
- return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });
- });
- /**
- * Capitalize a string.
- */
- var capitalize = cached(function (str) {
- return str.charAt(0).toUpperCase() + str.slice(1);
- });
- /**
- * Hyphenate a camelCase string.
- */
- var hyphenateRE = /\B([A-Z])/g;
- var hyphenate = cached(function (str) {
- return str.replace(hyphenateRE, '-$1').toLowerCase();
- });
- /**
- * Simple bind polyfill for environments that do not support it,
- * e.g., PhantomJS 1.x. Technically, we don't need this anymore
- * since native bind is now performant enough in most browsers.
- * But removing it would mean breaking code that was able to run in
- * PhantomJS 1.x, so this must be kept for backward compatibility.
- */
- /* istanbul ignore next */
- function polyfillBind(fn, ctx) {
- function boundFn(a) {
- var l = arguments.length;
- return l
- ? l > 1
- ? fn.apply(ctx, arguments)
- : fn.call(ctx, a)
- : fn.call(ctx);
- }
- boundFn._length = fn.length;
- return boundFn;
- }
- function nativeBind(fn, ctx) {
- return fn.bind(ctx);
- }
- // @ts-expect-error bind cannot be `undefined`
- var bind$1 = Function.prototype.bind ? nativeBind : polyfillBind;
- /**
- * Convert an Array-like object to a real Array.
- */
- function toArray(list, start) {
- start = start || 0;
- var i = list.length - start;
- var ret = new Array(i);
- while (i--) {
- ret[i] = list[i + start];
- }
- return ret;
- }
- /**
- * Mix properties into target object.
- */
- function extend(to, _from) {
- for (var key in _from) {
- to[key] = _from[key];
- }
- return to;
- }
- /**
- * Merge an Array of Objects into a single Object.
- */
- function toObject(arr) {
- var res = {};
- for (var i = 0; i < arr.length; i++) {
- if (arr[i]) {
- extend(res, arr[i]);
- }
- }
- return res;
- }
- /* eslint-disable no-unused-vars */
- /**
- * Perform no operation.
- * Stubbing args to make Flow happy without leaving useless transpiled code
- * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).
- */
- function noop(a, b, c) { }
- /**
- * Always return false.
- */
- var no = function (a, b, c) { return false; };
- /* eslint-enable no-unused-vars */
- /**
- * Return the same value.
- */
- var identity = function (_) { return _; };
- /**
- * Generate a string containing static keys from compiler modules.
- */
- function genStaticKeys$1(modules) {
- return modules
- .reduce(function (keys, m) {
- return keys.concat(m.staticKeys || []);
- }, [])
- .join(',');
- }
- /**
- * Check if two values are loosely equal - that is,
- * if they are plain objects, do they have the same shape?
- */
- function looseEqual(a, b) {
- if (a === b)
- return true;
- var isObjectA = isObject(a);
- var isObjectB = isObject(b);
- if (isObjectA && isObjectB) {
- try {
- var isArrayA = Array.isArray(a);
- var isArrayB = Array.isArray(b);
- if (isArrayA && isArrayB) {
- return (a.length === b.length &&
- a.every(function (e, i) {
- return looseEqual(e, b[i]);
- }));
- }
- else if (a instanceof Date && b instanceof Date) {
- return a.getTime() === b.getTime();
- }
- else if (!isArrayA && !isArrayB) {
- var keysA = Object.keys(a);
- var keysB = Object.keys(b);
- return (keysA.length === keysB.length &&
- keysA.every(function (key) {
- return looseEqual(a[key], b[key]);
- }));
- }
- else {
- /* istanbul ignore next */
- return false;
- }
- }
- catch (e) {
- /* istanbul ignore next */
- return false;
- }
- }
- else if (!isObjectA && !isObjectB) {
- return String(a) === String(b);
- }
- else {
- return false;
- }
- }
- /**
- * Return the first index at which a loosely equal value can be
- * found in the array (if value is a plain object, the array must
- * contain an object of the same shape), or -1 if it is not present.
- */
- function looseIndexOf(arr, val) {
- for (var i = 0; i < arr.length; i++) {
- if (looseEqual(arr[i], val))
- return i;
- }
- return -1;
- }
- /**
- * Ensure a function is called only once.
- */
- function once(fn) {
- var called = false;
- return function () {
- if (!called) {
- called = true;
- fn.apply(this, arguments);
- }
- };
- }
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill
- function hasChanged(x, y) {
- if (x === y) {
- return x === 0 && 1 / x !== 1 / y;
- }
- else {
- return x === x || y === y;
- }
- }
-
- var SSR_ATTR = 'data-server-rendered';
- var ASSET_TYPES = ['component', 'directive', 'filter'];
- var LIFECYCLE_HOOKS = [
- 'beforeCreate',
- 'created',
- 'beforeMount',
- 'mounted',
- 'beforeUpdate',
- 'updated',
- 'beforeDestroy',
- 'destroyed',
- 'activated',
- 'deactivated',
- 'errorCaptured',
- 'serverPrefetch',
- 'renderTracked',
- 'renderTriggered'
- ];
-
- var config = {
- /**
- * Option merge strategies (used in core/util/options)
- */
- // $flow-disable-line
- optionMergeStrategies: Object.create(null),
- /**
- * Whether to suppress warnings.
- */
- silent: false,
- /**
- * Show production mode tip message on boot?
- */
- productionTip: true,
- /**
- * Whether to enable devtools
- */
- devtools: true,
- /**
- * Whether to record perf
- */
- performance: false,
- /**
- * Error handler for watcher errors
- */
- errorHandler: null,
- /**
- * Warn handler for watcher warns
- */
- warnHandler: null,
- /**
- * Ignore certain custom elements
- */
- ignoredElements: [],
- /**
- * Custom user key aliases for v-on
- */
- // $flow-disable-line
- keyCodes: Object.create(null),
- /**
- * Check if a tag is reserved so that it cannot be registered as a
- * component. This is platform-dependent and may be overwritten.
- */
- isReservedTag: no,
- /**
- * Check if an attribute is reserved so that it cannot be used as a component
- * prop. This is platform-dependent and may be overwritten.
- */
- isReservedAttr: no,
- /**
- * Check if a tag is an unknown element.
- * Platform-dependent.
- */
- isUnknownElement: no,
- /**
- * Get the namespace of an element
- */
- getTagNamespace: noop,
- /**
- * Parse the real tag name for the specific platform.
- */
- parsePlatformTagName: identity,
- /**
- * Check if an attribute must be bound using property, e.g. value
- * Platform-dependent.
- */
- mustUseProp: no,
- /**
- * Perform updates asynchronously. Intended to be used by Vue Test Utils
- * This will significantly reduce performance if set to false.
- */
- async: true,
- /**
- * Exposed for legacy reasons
- */
- _lifecycleHooks: LIFECYCLE_HOOKS
- };
-
- /**
- * unicode letters used for parsing html tags, component names and property paths.
- * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname
- * skipping \u10000-\uEFFFF due to it freezing up PhantomJS
- */
- var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;
- /**
- * Check if a string starts with $ or _
- */
- function isReserved(str) {
- var c = (str + '').charCodeAt(0);
- return c === 0x24 || c === 0x5f;
- }
- /**
- * Define a property.
- */
- function def(obj, key, val, enumerable) {
- Object.defineProperty(obj, key, {
- value: val,
- enumerable: !!enumerable,
- writable: true,
- configurable: true
- });
- }
- /**
- * Parse simple path.
- */
- var bailRE = new RegExp("[^".concat(unicodeRegExp.source, ".$_\\d]"));
- function parsePath(path) {
- if (bailRE.test(path)) {
- return;
- }
- var segments = path.split('.');
- return function (obj) {
- for (var i = 0; i < segments.length; i++) {
- if (!obj)
- return;
- obj = obj[segments[i]];
- }
- return obj;
- };
- }
-
- // can we use __proto__?
- var hasProto = '__proto__' in {};
- // Browser environment sniffing
- var inBrowser = typeof window !== 'undefined';
- var UA = inBrowser && window.navigator.userAgent.toLowerCase();
- var isIE = UA && /msie|trident/.test(UA);
- var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
- var isEdge = UA && UA.indexOf('edge/') > 0;
- UA && UA.indexOf('android') > 0;
- var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);
- UA && /chrome\/\d+/.test(UA) && !isEdge;
- UA && /phantomjs/.test(UA);
- var isFF = UA && UA.match(/firefox\/(\d+)/);
- // Firefox has a "watch" function on Object.prototype...
- // @ts-expect-error firebox support
- var nativeWatch = {}.watch;
- var supportsPassive = false;
- if (inBrowser) {
- try {
- var opts = {};
- Object.defineProperty(opts, 'passive', {
- get: function () {
- /* istanbul ignore next */
- supportsPassive = true;
- }
- }); // https://github.com/facebook/flow/issues/285
- window.addEventListener('test-passive', null, opts);
- }
- catch (e) { }
- }
- // this needs to be lazy-evaled because vue may be required before
- // vue-server-renderer can set VUE_ENV
- var _isServer;
- var isServerRendering = function () {
- if (_isServer === undefined) {
- /* istanbul ignore if */
- if (!inBrowser && typeof global !== 'undefined') {
- // detect presence of vue-server-renderer and avoid
- // Webpack shimming the process
- _isServer =
- global['process'] && global['process'].env.VUE_ENV === 'server';
- }
- else {
- _isServer = false;
- }
- }
- return _isServer;
- };
- // detect devtools
- var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
- /* istanbul ignore next */
- function isNative(Ctor) {
- return typeof Ctor === 'function' && /native code/.test(Ctor.toString());
- }
- var hasSymbol = typeof Symbol !== 'undefined' &&
- isNative(Symbol) &&
- typeof Reflect !== 'undefined' &&
- isNative(Reflect.ownKeys);
- var _Set; // $flow-disable-line
- /* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {
- // use native Set when available.
- _Set = Set;
- }
- else {
- // a non-standard Set polyfill that only works with primitive keys.
- _Set = /** @class */ (function () {
- function Set() {
- this.set = Object.create(null);
- }
- Set.prototype.has = function (key) {
- return this.set[key] === true;
- };
- Set.prototype.add = function (key) {
- this.set[key] = true;
- };
- Set.prototype.clear = function () {
- this.set = Object.create(null);
- };
- return Set;
- }());
- }
-
- var currentInstance = null;
- /**
- * This is exposed for compatibility with v3 (e.g. some functions in VueUse
- * relies on it). Do not use this internally, just use `currentInstance`.
- *
- * @internal this function needs manual type declaration because it relies
- * on previously manually authored types from Vue 2
- */
- function getCurrentInstance() {
- return currentInstance && { proxy: currentInstance };
- }
- /**
- * @internal
- */
- function setCurrentInstance(vm) {
- if (vm === void 0) { vm = null; }
- if (!vm)
- currentInstance && currentInstance._scope.off();
- currentInstance = vm;
- vm && vm._scope.on();
- }
-
- /**
- * @internal
- */
- var VNode = /** @class */ (function () {
- function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {
- this.tag = tag;
- this.data = data;
- this.children = children;
- this.text = text;
- this.elm = elm;
- this.ns = undefined;
- this.context = context;
- this.fnContext = undefined;
- this.fnOptions = undefined;
- this.fnScopeId = undefined;
- this.key = data && data.key;
- this.componentOptions = componentOptions;
- this.componentInstance = undefined;
- this.parent = undefined;
- this.raw = false;
- this.isStatic = false;
- this.isRootInsert = true;
- this.isComment = false;
- this.isCloned = false;
- this.isOnce = false;
- this.asyncFactory = asyncFactory;
- this.asyncMeta = undefined;
- this.isAsyncPlaceholder = false;
- }
- Object.defineProperty(VNode.prototype, "child", {
- // DEPRECATED: alias for componentInstance for backwards compat.
- /* istanbul ignore next */
- get: function () {
- return this.componentInstance;
- },
- enumerable: false,
- configurable: true
- });
- return VNode;
- }());
- var createEmptyVNode = function (text) {
- if (text === void 0) { text = ''; }
- var node = new VNode();
- node.text = text;
- node.isComment = true;
- return node;
- };
- function createTextVNode(val) {
- return new VNode(undefined, undefined, undefined, String(val));
- }
- // optimized shallow clone
- // used for static nodes and slot nodes because they may be reused across
- // multiple renders, cloning them avoids errors when DOM manipulations rely
- // on their elm reference.
- function cloneVNode(vnode) {
- var cloned = new VNode(vnode.tag, vnode.data,
- // #7975
- // clone children array to avoid mutating original in case of cloning
- // a child.
- vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);
- cloned.ns = vnode.ns;
- cloned.isStatic = vnode.isStatic;
- cloned.key = vnode.key;
- cloned.isComment = vnode.isComment;
- cloned.fnContext = vnode.fnContext;
- cloned.fnOptions = vnode.fnOptions;
- cloned.fnScopeId = vnode.fnScopeId;
- cloned.asyncMeta = vnode.asyncMeta;
- cloned.isCloned = true;
- return cloned;
- }
-
- /* not type checking this file because flow doesn't play well with Proxy */
- var initProxy;
- {
- var allowedGlobals_1 = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' +
- 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
- 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +
- 'require' // for Webpack/Browserify
- );
- var warnNonPresent_1 = function (target, key) {
- warn$2("Property or method \"".concat(key, "\" is not defined on the instance but ") +
- 'referenced during render. Make sure that this property is reactive, ' +
- 'either in the data option, or for class-based components, by ' +
- 'initializing the property. ' +
- 'See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);
- };
- var warnReservedPrefix_1 = function (target, key) {
- warn$2("Property \"".concat(key, "\" must be accessed with \"$data.").concat(key, "\" because ") +
- 'properties starting with "$" or "_" are not proxied in the Vue instance to ' +
- 'prevent conflicts with Vue internals. ' +
- 'See: https://v2.vuejs.org/v2/api/#data', target);
- };
- var hasProxy_1 = typeof Proxy !== 'undefined' && isNative(Proxy);
- if (hasProxy_1) {
- var isBuiltInModifier_1 = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
- config.keyCodes = new Proxy(config.keyCodes, {
- set: function (target, key, value) {
- if (isBuiltInModifier_1(key)) {
- warn$2("Avoid overwriting built-in modifier in config.keyCodes: .".concat(key));
- return false;
- }
- else {
- target[key] = value;
- return true;
- }
- }
- });
- }
- var hasHandler_1 = {
- has: function (target, key) {
- var has = key in target;
- var isAllowed = allowedGlobals_1(key) ||
- (typeof key === 'string' &&
- key.charAt(0) === '_' &&
- !(key in target.$data));
- if (!has && !isAllowed) {
- if (key in target.$data)
- warnReservedPrefix_1(target, key);
- else
- warnNonPresent_1(target, key);
- }
- return has || !isAllowed;
- }
- };
- var getHandler_1 = {
- get: function (target, key) {
- if (typeof key === 'string' && !(key in target)) {
- if (key in target.$data)
- warnReservedPrefix_1(target, key);
- else
- warnNonPresent_1(target, key);
- }
- return target[key];
- }
- };
- initProxy = function initProxy(vm) {
- if (hasProxy_1) {
- // determine which proxy handler to use
- var options = vm.$options;
- var handlers = options.render && options.render._withStripped ? getHandler_1 : hasHandler_1;
- vm._renderProxy = new Proxy(vm, handlers);
- }
- else {
- vm._renderProxy = vm;
- }
- };
- }
-
- /******************************************************************************
- Copyright (c) Microsoft Corporation.
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
- ***************************************************************************** */
-
- var __assign = function() {
- __assign = Object.assign || function __assign(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
- };
-
- var uid$2 = 0;
- var pendingCleanupDeps = [];
- var cleanupDeps = function () {
- for (var i = 0; i < pendingCleanupDeps.length; i++) {
- var dep = pendingCleanupDeps[i];
- dep.subs = dep.subs.filter(function (s) { return s; });
- dep._pending = false;
- }
- pendingCleanupDeps.length = 0;
- };
- /**
- * A dep is an observable that can have multiple
- * directives subscribing to it.
- * @internal
- */
- var Dep = /** @class */ (function () {
- function Dep() {
- // pending subs cleanup
- this._pending = false;
- this.id = uid$2++;
- this.subs = [];
- }
- Dep.prototype.addSub = function (sub) {
- this.subs.push(sub);
- };
- Dep.prototype.removeSub = function (sub) {
- // #12696 deps with massive amount of subscribers are extremely slow to
- // clean up in Chromium
- // to workaround this, we unset the sub for now, and clear them on
- // next scheduler flush.
- this.subs[this.subs.indexOf(sub)] = null;
- if (!this._pending) {
- this._pending = true;
- pendingCleanupDeps.push(this);
- }
- };
- Dep.prototype.depend = function (info) {
- if (Dep.target) {
- Dep.target.addDep(this);
- if (info && Dep.target.onTrack) {
- Dep.target.onTrack(__assign({ effect: Dep.target }, info));
- }
- }
- };
- Dep.prototype.notify = function (info) {
- // stabilize the subscriber list first
- var subs = this.subs.filter(function (s) { return s; });
- if (!config.async) {
- // subs aren't sorted in scheduler if not running async
- // we need to sort them now to make sure they fire in correct
- // order
- subs.sort(function (a, b) { return a.id - b.id; });
- }
- for (var i = 0, l = subs.length; i < l; i++) {
- var sub = subs[i];
- if (info) {
- sub.onTrigger &&
- sub.onTrigger(__assign({ effect: subs[i] }, info));
- }
- sub.update();
- }
- };
- return Dep;
- }());
- // The current target watcher being evaluated.
- // This is globally unique because only one watcher
- // can be evaluated at a time.
- Dep.target = null;
- var targetStack = [];
- function pushTarget(target) {
- targetStack.push(target);
- Dep.target = target;
- }
- function popTarget() {
- targetStack.pop();
- Dep.target = targetStack[targetStack.length - 1];
- }
-
- /*
- * not type checking this file because flow doesn't play well with
- * dynamically accessing methods on Array prototype
- */
- var arrayProto = Array.prototype;
- var arrayMethods = Object.create(arrayProto);
- var methodsToPatch = [
- 'push',
- 'pop',
- 'shift',
- 'unshift',
- 'splice',
- 'sort',
- 'reverse'
- ];
- /**
- * Intercept mutating methods and emit events
- */
- methodsToPatch.forEach(function (method) {
- // cache original method
- var original = arrayProto[method];
- def(arrayMethods, method, function mutator() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var result = original.apply(this, args);
- var ob = this.__ob__;
- var inserted;
- switch (method) {
- case 'push':
- case 'unshift':
- inserted = args;
- break;
- case 'splice':
- inserted = args.slice(2);
- break;
- }
- if (inserted)
- ob.observeArray(inserted);
- // notify change
- {
- ob.dep.notify({
- type: "array mutation" /* TriggerOpTypes.ARRAY_MUTATION */,
- target: this,
- key: method
- });
- }
- return result;
- });
- });
-
- var rawMap = new WeakMap();
- function reactive(target) {
- makeReactive(target, false);
- return target;
- }
- /**
- * Return a shallowly-reactive copy of the original object, where only the root
- * level properties are reactive. It also does not auto-unwrap refs (even at the
- * root level).
- */
- function shallowReactive(target) {
- makeReactive(target, true);
- def(target, "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */, true);
- return target;
- }
- function makeReactive(target, shallow) {
- // if trying to observe a readonly proxy, return the readonly version.
- if (!isReadonly(target)) {
- {
- if (isArray(target)) {
- warn$2("Avoid using Array as root value for ".concat(shallow ? "shallowReactive()" : "reactive()", " as it cannot be tracked in watch() or watchEffect(). Use ").concat(shallow ? "shallowRef()" : "ref()", " instead. This is a Vue-2-only limitation."));
- }
- var existingOb = target && target.__ob__;
- if (existingOb && existingOb.shallow !== shallow) {
- warn$2("Target is already a ".concat(existingOb.shallow ? "" : "non-", "shallow reactive object, and cannot be converted to ").concat(shallow ? "" : "non-", "shallow."));
- }
- }
- var ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);
- if (!ob) {
- if (target == null || isPrimitive(target)) {
- warn$2("value cannot be made reactive: ".concat(String(target)));
- }
- if (isCollectionType(target)) {
- warn$2("Vue 2 does not support reactive collection types such as Map or Set.");
- }
- }
- }
- }
- function isReactive(value) {
- if (isReadonly(value)) {
- return isReactive(value["__v_raw" /* ReactiveFlags.RAW */]);
- }
- return !!(value && value.__ob__);
- }
- function isShallow(value) {
- return !!(value && value.__v_isShallow);
- }
- function isReadonly(value) {
- return !!(value && value.__v_isReadonly);
- }
- function isProxy(value) {
- return isReactive(value) || isReadonly(value);
- }
- function toRaw(observed) {
- var raw = observed && observed["__v_raw" /* ReactiveFlags.RAW */];
- return raw ? toRaw(raw) : observed;
- }
- function markRaw(value) {
- if (isObject(value)) {
- rawMap.set(value, true);
- }
- return value;
- }
- /**
- * @internal
- */
- function isCollectionType(value) {
- var type = toRawType(value);
- return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');
- }
-
- var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
- var NO_INIITIAL_VALUE = {};
- /**
- * In some cases we may want to disable observation inside a component's
- * update computation.
- */
- var shouldObserve = true;
- function toggleObserving(value) {
- shouldObserve = value;
- }
- // ssr mock dep
- var mockDep = {
- notify: noop,
- depend: noop,
- addSub: noop,
- removeSub: noop
- };
- /**
- * Observer class that is attached to each observed
- * object. Once attached, the observer converts the target
- * object's property keys into getter/setters that
- * collect dependencies and dispatch updates.
- */
- var Observer = /** @class */ (function () {
- function Observer(value, shallow, mock) {
- if (shallow === void 0) { shallow = false; }
- if (mock === void 0) { mock = false; }
- this.value = value;
- this.shallow = shallow;
- this.mock = mock;
- // this.value = value
- this.dep = mock ? mockDep : new Dep();
- this.vmCount = 0;
- def(value, '__ob__', this);
- if (isArray(value)) {
- if (!mock) {
- if (hasProto) {
- value.__proto__ = arrayMethods;
- /* eslint-enable no-proto */
- }
- else {
- for (var i = 0, l = arrayKeys.length; i < l; i++) {
- var key = arrayKeys[i];
- def(value, key, arrayMethods[key]);
- }
- }
- }
- if (!shallow) {
- this.observeArray(value);
- }
- }
- else {
- /**
- * Walk through all properties and convert them into
- * getter/setters. This method should only be called when
- * value type is Object.
- */
- var keys = Object.keys(value);
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- defineReactive(value, key, NO_INIITIAL_VALUE, undefined, shallow, mock);
- }
- }
- }
- /**
- * Observe a list of Array items.
- */
- Observer.prototype.observeArray = function (value) {
- for (var i = 0, l = value.length; i < l; i++) {
- observe(value[i], false, this.mock);
- }
- };
- return Observer;
- }());
- // helpers
- /**
- * Attempt to create an observer instance for a value,
- * returns the new observer if successfully observed,
- * or the existing observer if the value already has one.
- */
- function observe(value, shallow, ssrMockReactivity) {
- if (value && hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
- return value.__ob__;
- }
- if (shouldObserve &&
- (ssrMockReactivity || !isServerRendering()) &&
- (isArray(value) || isPlainObject(value)) &&
- Object.isExtensible(value) &&
- !value.__v_skip /* ReactiveFlags.SKIP */ &&
- !rawMap.has(value) &&
- !isRef(value) &&
- !(value instanceof VNode)) {
- return new Observer(value, shallow, ssrMockReactivity);
- }
- }
- /**
- * Define a reactive property on an Object.
- */
- function defineReactive(obj, key, val, customSetter, shallow, mock) {
- var dep = new Dep();
- var property = Object.getOwnPropertyDescriptor(obj, key);
- if (property && property.configurable === false) {
- return;
- }
- // cater for pre-defined getter/setters
- var getter = property && property.get;
- var setter = property && property.set;
- if ((!getter || setter) &&
- (val === NO_INIITIAL_VALUE || arguments.length === 2)) {
- val = obj[key];
- }
- var childOb = !shallow && observe(val, false, mock);
- Object.defineProperty(obj, key, {
- enumerable: true,
- configurable: true,
- get: function reactiveGetter() {
- var value = getter ? getter.call(obj) : val;
- if (Dep.target) {
- {
- dep.depend({
- target: obj,
- type: "get" /* TrackOpTypes.GET */,
- key: key
- });
- }
- if (childOb) {
- childOb.dep.depend();
- if (isArray(value)) {
- dependArray(value);
- }
- }
- }
- return isRef(value) && !shallow ? value.value : value;
- },
- set: function reactiveSetter(newVal) {
- var value = getter ? getter.call(obj) : val;
- if (!hasChanged(value, newVal)) {
- return;
- }
- if (customSetter) {
- customSetter();
- }
- if (setter) {
- setter.call(obj, newVal);
- }
- else if (getter) {
- // #7981: for accessor properties without setter
- return;
- }
- else if (!shallow && isRef(value) && !isRef(newVal)) {
- value.value = newVal;
- return;
- }
- else {
- val = newVal;
- }
- childOb = !shallow && observe(newVal, false, mock);
- {
- dep.notify({
- type: "set" /* TriggerOpTypes.SET */,
- target: obj,
- key: key,
- newValue: newVal,
- oldValue: value
- });
- }
- }
- });
- return dep;
- }
- function set(target, key, val) {
- if ((isUndef(target) || isPrimitive(target))) {
- warn$2("Cannot set reactive property on undefined, null, or primitive value: ".concat(target));
- }
- if (isReadonly(target)) {
- warn$2("Set operation on key \"".concat(key, "\" failed: target is readonly."));
- return;
- }
- var ob = target.__ob__;
- if (isArray(target) && isValidArrayIndex(key)) {
- target.length = Math.max(target.length, key);
- target.splice(key, 1, val);
- // when mocking for SSR, array methods are not hijacked
- if (ob && !ob.shallow && ob.mock) {
- observe(val, false, true);
- }
- return val;
- }
- if (key in target && !(key in Object.prototype)) {
- target[key] = val;
- return val;
- }
- if (target._isVue || (ob && ob.vmCount)) {
- warn$2('Avoid adding reactive properties to a Vue instance or its root $data ' +
- 'at runtime - declare it upfront in the data option.');
- return val;
- }
- if (!ob) {
- target[key] = val;
- return val;
- }
- defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);
- {
- ob.dep.notify({
- type: "add" /* TriggerOpTypes.ADD */,
- target: target,
- key: key,
- newValue: val,
- oldValue: undefined
- });
- }
- return val;
- }
- function del(target, key) {
- if ((isUndef(target) || isPrimitive(target))) {
- warn$2("Cannot delete reactive property on undefined, null, or primitive value: ".concat(target));
- }
- if (isArray(target) && isValidArrayIndex(key)) {
- target.splice(key, 1);
- return;
- }
- var ob = target.__ob__;
- if (target._isVue || (ob && ob.vmCount)) {
- warn$2('Avoid deleting properties on a Vue instance or its root $data ' +
- '- just set it to null.');
- return;
- }
- if (isReadonly(target)) {
- warn$2("Delete operation on key \"".concat(key, "\" failed: target is readonly."));
- return;
- }
- if (!hasOwn(target, key)) {
- return;
- }
- delete target[key];
- if (!ob) {
- return;
- }
- {
- ob.dep.notify({
- type: "delete" /* TriggerOpTypes.DELETE */,
- target: target,
- key: key
- });
- }
- }
- /**
- * Collect dependencies on array elements when the array is touched, since
- * we cannot intercept array element access like property getters.
- */
- function dependArray(value) {
- for (var e = void 0, i = 0, l = value.length; i < l; i++) {
- e = value[i];
- if (e && e.__ob__) {
- e.__ob__.dep.depend();
- }
- if (isArray(e)) {
- dependArray(e);
- }
- }
- }
-
- /**
- * @internal
- */
- var RefFlag = "__v_isRef";
- function isRef(r) {
- return !!(r && r.__v_isRef === true);
- }
- function ref$1(value) {
- return createRef(value, false);
- }
- function shallowRef(value) {
- return createRef(value, true);
- }
- function createRef(rawValue, shallow) {
- if (isRef(rawValue)) {
- return rawValue;
- }
- var ref = {};
- def(ref, RefFlag, true);
- def(ref, "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */, shallow);
- def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));
- return ref;
- }
- function triggerRef(ref) {
- if (!ref.dep) {
- warn$2("received object is not a triggerable ref.");
- }
- {
- ref.dep &&
- ref.dep.notify({
- type: "set" /* TriggerOpTypes.SET */,
- target: ref,
- key: 'value'
- });
- }
- }
- function unref(ref) {
- return isRef(ref) ? ref.value : ref;
- }
- function proxyRefs(objectWithRefs) {
- if (isReactive(objectWithRefs)) {
- return objectWithRefs;
- }
- var proxy = {};
- var keys = Object.keys(objectWithRefs);
- for (var i = 0; i < keys.length; i++) {
- proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);
- }
- return proxy;
- }
- function proxyWithRefUnwrap(target, source, key) {
- Object.defineProperty(target, key, {
- enumerable: true,
- configurable: true,
- get: function () {
- var val = source[key];
- if (isRef(val)) {
- return val.value;
- }
- else {
- var ob = val && val.__ob__;
- if (ob)
- ob.dep.depend();
- return val;
- }
- },
- set: function (value) {
- var oldValue = source[key];
- if (isRef(oldValue) && !isRef(value)) {
- oldValue.value = value;
- }
- else {
- source[key] = value;
- }
- }
- });
- }
- function customRef(factory) {
- var dep = new Dep();
- var _a = factory(function () {
- {
- dep.depend({
- target: ref,
- type: "get" /* TrackOpTypes.GET */,
- key: 'value'
- });
- }
- }, function () {
- {
- dep.notify({
- target: ref,
- type: "set" /* TriggerOpTypes.SET */,
- key: 'value'
- });
- }
- }), get = _a.get, set = _a.set;
- var ref = {
- get value() {
- return get();
- },
- set value(newVal) {
- set(newVal);
- }
- };
- def(ref, RefFlag, true);
- return ref;
- }
- function toRefs(object) {
- if (!isReactive(object)) {
- warn$2("toRefs() expects a reactive object but received a plain one.");
- }
- var ret = isArray(object) ? new Array(object.length) : {};
- for (var key in object) {
- ret[key] = toRef(object, key);
- }
- return ret;
- }
- function toRef(object, key, defaultValue) {
- var val = object[key];
- if (isRef(val)) {
- return val;
- }
- var ref = {
- get value() {
- var val = object[key];
- return val === undefined ? defaultValue : val;
- },
- set value(newVal) {
- object[key] = newVal;
- }
- };
- def(ref, RefFlag, true);
- return ref;
- }
-
- var rawToReadonlyMap = new WeakMap();
- var rawToShallowReadonlyMap = new WeakMap();
- function readonly(target) {
- return createReadonly(target, false);
- }
- function createReadonly(target, shallow) {
- if (!isPlainObject(target)) {
- {
- if (isArray(target)) {
- warn$2("Vue 2 does not support readonly arrays.");
- }
- else if (isCollectionType(target)) {
- warn$2("Vue 2 does not support readonly collection types such as Map or Set.");
- }
- else {
- warn$2("value cannot be made readonly: ".concat(typeof target));
- }
- }
- return target;
- }
- // already a readonly object
- if (isReadonly(target)) {
- return target;
- }
- // already has a readonly proxy
- var map = shallow ? rawToShallowReadonlyMap : rawToReadonlyMap;
- var existingProxy = map.get(target);
- if (existingProxy) {
- return existingProxy;
- }
- var proxy = Object.create(Object.getPrototypeOf(target));
- map.set(target, proxy);
- def(proxy, "__v_isReadonly" /* ReactiveFlags.IS_READONLY */, true);
- def(proxy, "__v_raw" /* ReactiveFlags.RAW */, target);
- if (isRef(target)) {
- def(proxy, RefFlag, true);
- }
- if (shallow || isShallow(target)) {
- def(proxy, "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */, true);
- }
- var keys = Object.keys(target);
- for (var i = 0; i < keys.length; i++) {
- defineReadonlyProperty(proxy, target, keys[i], shallow);
- }
- return proxy;
- }
- function defineReadonlyProperty(proxy, target, key, shallow) {
- Object.defineProperty(proxy, key, {
- enumerable: true,
- configurable: true,
- get: function () {
- var val = target[key];
- return shallow || !isPlainObject(val) ? val : readonly(val);
- },
- set: function () {
- warn$2("Set operation on key \"".concat(key, "\" failed: target is readonly."));
- }
- });
- }
- /**
- * Returns a reactive-copy of the original object, where only the root level
- * properties are readonly, and does NOT unwrap refs nor recursively convert
- * returned properties.
- * This is used for creating the props proxy object for stateful components.
- */
- function shallowReadonly(target) {
- return createReadonly(target, true);
- }
-
- function computed(getterOrOptions, debugOptions) {
- var getter;
- var setter;
- var onlyGetter = isFunction(getterOrOptions);
- if (onlyGetter) {
- getter = getterOrOptions;
- setter = function () {
- warn$2('Write operation failed: computed value is readonly');
- }
- ;
- }
- else {
- getter = getterOrOptions.get;
- setter = getterOrOptions.set;
- }
- var watcher = isServerRendering()
- ? null
- : new Watcher(currentInstance, getter, noop, { lazy: true });
- if (watcher && debugOptions) {
- watcher.onTrack = debugOptions.onTrack;
- watcher.onTrigger = debugOptions.onTrigger;
- }
- var ref = {
- // some libs rely on the presence effect for checking computed refs
- // from normal refs, but the implementation doesn't matter
- effect: watcher,
- get value() {
- if (watcher) {
- if (watcher.dirty) {
- watcher.evaluate();
- }
- if (Dep.target) {
- if (Dep.target.onTrack) {
- Dep.target.onTrack({
- effect: Dep.target,
- target: ref,
- type: "get" /* TrackOpTypes.GET */,
- key: 'value'
- });
- }
- watcher.depend();
- }
- return watcher.value;
- }
- else {
- return getter();
- }
- },
- set value(newVal) {
- setter(newVal);
- }
- };
- def(ref, RefFlag, true);
- def(ref, "__v_isReadonly" /* ReactiveFlags.IS_READONLY */, onlyGetter);
- return ref;
- }
-
- var mark;
- var measure;
- {
- var perf_1 = inBrowser && window.performance;
- /* istanbul ignore if */
- if (perf_1 &&
- // @ts-ignore
- perf_1.mark &&
- // @ts-ignore
- perf_1.measure &&
- // @ts-ignore
- perf_1.clearMarks &&
- // @ts-ignore
- perf_1.clearMeasures) {
- mark = function (tag) { return perf_1.mark(tag); };
- measure = function (name, startTag, endTag) {
- perf_1.measure(name, startTag, endTag);
- perf_1.clearMarks(startTag);
- perf_1.clearMarks(endTag);
- // perf.clearMeasures(name)
- };
- }
- }
-
- var normalizeEvent = cached(function (name) {
- var passive = name.charAt(0) === '&';
- name = passive ? name.slice(1) : name;
- var once = name.charAt(0) === '~'; // Prefixed last, checked first
- name = once ? name.slice(1) : name;
- var capture = name.charAt(0) === '!';
- name = capture ? name.slice(1) : name;
- return {
- name: name,
- once: once,
- capture: capture,
- passive: passive
- };
- });
- function createFnInvoker(fns, vm) {
- function invoker() {
- var fns = invoker.fns;
- if (isArray(fns)) {
- var cloned = fns.slice();
- for (var i = 0; i < cloned.length; i++) {
- invokeWithErrorHandling(cloned[i], null, arguments, vm, "v-on handler");
- }
- }
- else {
- // return handler return value for single handlers
- return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler");
- }
- }
- invoker.fns = fns;
- return invoker;
- }
- function updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {
- var name, cur, old, event;
- for (name in on) {
- cur = on[name];
- old = oldOn[name];
- event = normalizeEvent(name);
- if (isUndef(cur)) {
- warn$2("Invalid handler for event \"".concat(event.name, "\": got ") + String(cur), vm);
- }
- else if (isUndef(old)) {
- if (isUndef(cur.fns)) {
- cur = on[name] = createFnInvoker(cur, vm);
- }
- if (isTrue(event.once)) {
- cur = on[name] = createOnceHandler(event.name, cur, event.capture);
- }
- add(event.name, cur, event.capture, event.passive, event.params);
- }
- else if (cur !== old) {
- old.fns = cur;
- on[name] = old;
- }
- }
- for (name in oldOn) {
- if (isUndef(on[name])) {
- event = normalizeEvent(name);
- remove(event.name, oldOn[name], event.capture);
- }
- }
- }
-
- function mergeVNodeHook(def, hookKey, hook) {
- if (def instanceof VNode) {
- def = def.data.hook || (def.data.hook = {});
- }
- var invoker;
- var oldHook = def[hookKey];
- function wrappedHook() {
- hook.apply(this, arguments);
- // important: remove merged hook to ensure it's called only once
- // and prevent memory leak
- remove$2(invoker.fns, wrappedHook);
- }
- if (isUndef(oldHook)) {
- // no existing hook
- invoker = createFnInvoker([wrappedHook]);
- }
- else {
- /* istanbul ignore if */
- if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
- // already a merged invoker
- invoker = oldHook;
- invoker.fns.push(wrappedHook);
- }
- else {
- // existing plain hook
- invoker = createFnInvoker([oldHook, wrappedHook]);
- }
- }
- invoker.merged = true;
- def[hookKey] = invoker;
- }
-
- function extractPropsFromVNodeData(data, Ctor, tag) {
- // we are only extracting raw values here.
- // validation and default values are handled in the child
- // component itself.
- var propOptions = Ctor.options.props;
- if (isUndef(propOptions)) {
- return;
- }
- var res = {};
- var attrs = data.attrs, props = data.props;
- if (isDef(attrs) || isDef(props)) {
- for (var key in propOptions) {
- var altKey = hyphenate(key);
- {
- var keyInLowerCase = key.toLowerCase();
- if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {
- tip("Prop \"".concat(keyInLowerCase, "\" is passed to component ") +
- "".concat(formatComponentName(
- // @ts-expect-error tag is string
- tag || Ctor), ", but the declared prop name is") +
- " \"".concat(key, "\". ") +
- "Note that HTML attributes are case-insensitive and camelCased " +
- "props need to use their kebab-case equivalents when using in-DOM " +
- "templates. You should probably use \"".concat(altKey, "\" instead of \"").concat(key, "\"."));
- }
- }
- checkProp(res, props, key, altKey, true) ||
- checkProp(res, attrs, key, altKey, false);
- }
- }
- return res;
- }
- function checkProp(res, hash, key, altKey, preserve) {
- if (isDef(hash)) {
- if (hasOwn(hash, key)) {
- res[key] = hash[key];
- if (!preserve) {
- delete hash[key];
- }
- return true;
- }
- else if (hasOwn(hash, altKey)) {
- res[key] = hash[altKey];
- if (!preserve) {
- delete hash[altKey];
- }
- return true;
- }
- }
- return false;
- }
-
- // The template compiler attempts to minimize the need for normalization by
- // statically analyzing the template at compile time.
- //
- // For plain HTML markup, normalization can be completely skipped because the
- // generated render function is guaranteed to return Array. There are
- // two cases where extra normalization is needed:
- // 1. When the children contains components - because a functional component
- // may return an Array instead of a single root. In this case, just a simple
- // normalization is needed - if any child is an Array, we flatten the whole
- // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
- // because functional components already normalize their own children.
- function simpleNormalizeChildren(children) {
- for (var i = 0; i < children.length; i++) {
- if (isArray(children[i])) {
- return Array.prototype.concat.apply([], children);
- }
- }
- return children;
- }
- // 2. When the children contains constructs that always generated nested Arrays,
- // e.g. , , v-for, or when the children is provided by user
- // with hand-written render functions / JSX. In such cases a full normalization
- // is needed to cater to all possible types of children values.
- function normalizeChildren(children) {
- return isPrimitive(children)
- ? [createTextVNode(children)]
- : isArray(children)
- ? normalizeArrayChildren(children)
- : undefined;
- }
- function isTextNode(node) {
- return isDef(node) && isDef(node.text) && isFalse(node.isComment);
- }
- function normalizeArrayChildren(children, nestedIndex) {
- var res = [];
- var i, c, lastIndex, last;
- for (i = 0; i < children.length; i++) {
- c = children[i];
- if (isUndef(c) || typeof c === 'boolean')
- continue;
- lastIndex = res.length - 1;
- last = res[lastIndex];
- // nested
- if (isArray(c)) {
- if (c.length > 0) {
- c = normalizeArrayChildren(c, "".concat(nestedIndex || '', "_").concat(i));
- // merge adjacent text nodes
- if (isTextNode(c[0]) && isTextNode(last)) {
- res[lastIndex] = createTextVNode(last.text + c[0].text);
- c.shift();
- }
- res.push.apply(res, c);
- }
- }
- else if (isPrimitive(c)) {
- if (isTextNode(last)) {
- // merge adjacent text nodes
- // this is necessary for SSR hydration because text nodes are
- // essentially merged when rendered to HTML strings
- res[lastIndex] = createTextVNode(last.text + c);
- }
- else if (c !== '') {
- // convert primitive to vnode
- res.push(createTextVNode(c));
- }
- }
- else {
- if (isTextNode(c) && isTextNode(last)) {
- // merge adjacent text nodes
- res[lastIndex] = createTextVNode(last.text + c.text);
- }
- else {
- // default key for nested array children (likely generated by v-for)
- if (isTrue(children._isVList) &&
- isDef(c.tag) &&
- isUndef(c.key) &&
- isDef(nestedIndex)) {
- c.key = "__vlist".concat(nestedIndex, "_").concat(i, "__");
- }
- res.push(c);
- }
- }
- }
- return res;
- }
-
- var SIMPLE_NORMALIZE = 1;
- var ALWAYS_NORMALIZE = 2;
- // wrapper function for providing a more flexible interface
- // without getting yelled at by flow
- function createElement$1(context, tag, data, children, normalizationType, alwaysNormalize) {
- if (isArray(data) || isPrimitive(data)) {
- normalizationType = children;
- children = data;
- data = undefined;
- }
- if (isTrue(alwaysNormalize)) {
- normalizationType = ALWAYS_NORMALIZE;
- }
- return _createElement(context, tag, data, children, normalizationType);
- }
- function _createElement(context, tag, data, children, normalizationType) {
- if (isDef(data) && isDef(data.__ob__)) {
- warn$2("Avoid using observed data object as vnode data: ".concat(JSON.stringify(data), "\n") + 'Always create fresh vnode data objects in each render!', context);
- return createEmptyVNode();
- }
- // object syntax in v-bind
- if (isDef(data) && isDef(data.is)) {
- tag = data.is;
- }
- if (!tag) {
- // in case of component :is set to falsy value
- return createEmptyVNode();
- }
- // warn against non-primitive key
- if (isDef(data) && isDef(data.key) && !isPrimitive(data.key)) {
- warn$2('Avoid using non-primitive value as key, ' +
- 'use string/number value instead.', context);
- }
- // support single function children as default scoped slot
- if (isArray(children) && isFunction(children[0])) {
- data = data || {};
- data.scopedSlots = { default: children[0] };
- children.length = 0;
- }
- if (normalizationType === ALWAYS_NORMALIZE) {
- children = normalizeChildren(children);
- }
- else if (normalizationType === SIMPLE_NORMALIZE) {
- children = simpleNormalizeChildren(children);
- }
- var vnode, ns;
- if (typeof tag === 'string') {
- var Ctor = void 0;
- ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
- if (config.isReservedTag(tag)) {
- // platform built-in elements
- if (isDef(data) &&
- isDef(data.nativeOn) &&
- data.tag !== 'component') {
- warn$2("The .native modifier for v-on is only valid on components but it was used on <".concat(tag, ">."), context);
- }
- vnode = new VNode(config.parsePlatformTagName(tag), data, children, undefined, undefined, context);
- }
- else if ((!data || !data.pre) &&
- isDef((Ctor = resolveAsset(context.$options, 'components', tag)))) {
- // component
- vnode = createComponent(Ctor, data, context, children, tag);
- }
- else {
- // unknown or unlisted namespaced elements
- // check at runtime because it may get assigned a namespace when its
- // parent normalizes children
- vnode = new VNode(tag, data, children, undefined, undefined, context);
- }
- }
- else {
- // direct component options / constructor
- vnode = createComponent(tag, data, context, children);
- }
- if (isArray(vnode)) {
- return vnode;
- }
- else if (isDef(vnode)) {
- if (isDef(ns))
- applyNS(vnode, ns);
- if (isDef(data))
- registerDeepBindings(data);
- return vnode;
- }
- else {
- return createEmptyVNode();
- }
- }
- function applyNS(vnode, ns, force) {
- vnode.ns = ns;
- if (vnode.tag === 'foreignObject') {
- // use default namespace inside foreignObject
- ns = undefined;
- force = true;
- }
- if (isDef(vnode.children)) {
- for (var i = 0, l = vnode.children.length; i < l; i++) {
- var child = vnode.children[i];
- if (isDef(child.tag) &&
- (isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
- applyNS(child, ns, force);
- }
- }
- }
- }
- // ref #5318
- // necessary to ensure parent re-render when deep bindings like :style and
- // :class are used on slot nodes
- function registerDeepBindings(data) {
- if (isObject(data.style)) {
- traverse(data.style);
- }
- if (isObject(data.class)) {
- traverse(data.class);
- }
- }
-
- /**
- * Runtime helper for rendering v-for lists.
- */
- function renderList(val, render) {
- var ret = null, i, l, keys, key;
- if (isArray(val) || typeof val === 'string') {
- ret = new Array(val.length);
- for (i = 0, l = val.length; i < l; i++) {
- ret[i] = render(val[i], i);
- }
- }
- else if (typeof val === 'number') {
- ret = new Array(val);
- for (i = 0; i < val; i++) {
- ret[i] = render(i + 1, i);
- }
- }
- else if (isObject(val)) {
- if (hasSymbol && val[Symbol.iterator]) {
- ret = [];
- var iterator = val[Symbol.iterator]();
- var result = iterator.next();
- while (!result.done) {
- ret.push(render(result.value, ret.length));
- result = iterator.next();
- }
- }
- else {
- keys = Object.keys(val);
- ret = new Array(keys.length);
- for (i = 0, l = keys.length; i < l; i++) {
- key = keys[i];
- ret[i] = render(val[key], key, i);
- }
- }
- }
- if (!isDef(ret)) {
- ret = [];
- }
- ret._isVList = true;
- return ret;
- }
-
- /**
- * Runtime helper for rendering
- */
- function renderSlot(name, fallbackRender, props, bindObject) {
- var scopedSlotFn = this.$scopedSlots[name];
- var nodes;
- if (scopedSlotFn) {
- // scoped slot
- props = props || {};
- if (bindObject) {
- if (!isObject(bindObject)) {
- warn$2('slot v-bind without argument expects an Object', this);
- }
- props = extend(extend({}, bindObject), props);
- }
- nodes =
- scopedSlotFn(props) ||
- (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);
- }
- else {
- nodes =
- this.$slots[name] ||
- (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);
- }
- var target = props && props.slot;
- if (target) {
- return this.$createElement('template', { slot: target }, nodes);
- }
- else {
- return nodes;
- }
- }
-
- /**
- * Runtime helper for resolving filters
- */
- function resolveFilter(id) {
- return resolveAsset(this.$options, 'filters', id, true) || identity;
- }
-
- function isKeyNotMatch(expect, actual) {
- if (isArray(expect)) {
- return expect.indexOf(actual) === -1;
- }
- else {
- return expect !== actual;
- }
- }
- /**
- * Runtime helper for checking keyCodes from config.
- * exposed as Vue.prototype._k
- * passing in eventKeyName as last argument separately for backwards compat
- */
- function checkKeyCodes(eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {
- var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
- if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
- return isKeyNotMatch(builtInKeyName, eventKeyName);
- }
- else if (mappedKeyCode) {
- return isKeyNotMatch(mappedKeyCode, eventKeyCode);
- }
- else if (eventKeyName) {
- return hyphenate(eventKeyName) !== key;
- }
- return eventKeyCode === undefined;
- }
-
- /**
- * Runtime helper for merging v-bind="object" into a VNode's data.
- */
- function bindObjectProps(data, tag, value, asProp, isSync) {
- if (value) {
- if (!isObject(value)) {
- warn$2('v-bind without argument expects an Object or Array value', this);
- }
- else {
- if (isArray(value)) {
- value = toObject(value);
- }
- var hash = void 0;
- var _loop_1 = function (key) {
- if (key === 'class' || key === 'style' || isReservedAttribute(key)) {
- hash = data;
- }
- else {
- var type = data.attrs && data.attrs.type;
- hash =
- asProp || config.mustUseProp(tag, type, key)
- ? data.domProps || (data.domProps = {})
- : data.attrs || (data.attrs = {});
- }
- var camelizedKey = camelize(key);
- var hyphenatedKey = hyphenate(key);
- if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {
- hash[key] = value[key];
- if (isSync) {
- var on = data.on || (data.on = {});
- on["update:".concat(key)] = function ($event) {
- value[key] = $event;
- };
- }
- }
- };
- for (var key in value) {
- _loop_1(key);
- }
- }
- }
- return data;
- }
-
- /**
- * Runtime helper for rendering static trees.
- */
- function renderStatic(index, isInFor) {
- var cached = this._staticTrees || (this._staticTrees = []);
- var tree = cached[index];
- // if has already-rendered static tree and not inside v-for,
- // we can reuse the same tree.
- if (tree && !isInFor) {
- return tree;
- }
- // otherwise, render a fresh tree.
- tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy, this._c, this // for render fns generated for functional component templates
- );
- markStatic$1(tree, "__static__".concat(index), false);
- return tree;
- }
- /**
- * Runtime helper for v-once.
- * Effectively it means marking the node as static with a unique key.
- */
- function markOnce(tree, index, key) {
- markStatic$1(tree, "__once__".concat(index).concat(key ? "_".concat(key) : ""), true);
- return tree;
- }
- function markStatic$1(tree, key, isOnce) {
- if (isArray(tree)) {
- for (var i = 0; i < tree.length; i++) {
- if (tree[i] && typeof tree[i] !== 'string') {
- markStaticNode(tree[i], "".concat(key, "_").concat(i), isOnce);
- }
- }
- }
- else {
- markStaticNode(tree, key, isOnce);
- }
- }
- function markStaticNode(node, key, isOnce) {
- node.isStatic = true;
- node.key = key;
- node.isOnce = isOnce;
- }
-
- function bindObjectListeners(data, value) {
- if (value) {
- if (!isPlainObject(value)) {
- warn$2('v-on without argument expects an Object value', this);
- }
- else {
- var on = (data.on = data.on ? extend({}, data.on) : {});
- for (var key in value) {
- var existing = on[key];
- var ours = value[key];
- on[key] = existing ? [].concat(existing, ours) : ours;
- }
- }
- }
- return data;
- }
-
- function resolveScopedSlots(fns, res,
- // the following are added in 2.6
- hasDynamicKeys, contentHashKey) {
- res = res || { $stable: !hasDynamicKeys };
- for (var i = 0; i < fns.length; i++) {
- var slot = fns[i];
- if (isArray(slot)) {
- resolveScopedSlots(slot, res, hasDynamicKeys);
- }
- else if (slot) {
- // marker for reverse proxying v-slot without scope on this.$slots
- // @ts-expect-error
- if (slot.proxy) {
- // @ts-expect-error
- slot.fn.proxy = true;
- }
- res[slot.key] = slot.fn;
- }
- }
- if (contentHashKey) {
- res.$key = contentHashKey;
- }
- return res;
- }
-
- // helper to process dynamic keys for dynamic arguments in v-bind and v-on.
- function bindDynamicKeys(baseObj, values) {
- for (var i = 0; i < values.length; i += 2) {
- var key = values[i];
- if (typeof key === 'string' && key) {
- baseObj[values[i]] = values[i + 1];
- }
- else if (key !== '' && key !== null) {
- // null is a special value for explicitly removing a binding
- warn$2("Invalid value for dynamic directive argument (expected string or null): ".concat(key), this);
- }
- }
- return baseObj;
- }
- // helper to dynamically append modifier runtime markers to event names.
- // ensure only append when value is already string, otherwise it will be cast
- // to string and cause the type check to miss.
- function prependModifier(value, symbol) {
- return typeof value === 'string' ? symbol + value : value;
- }
-
- function installRenderHelpers(target) {
- target._o = markOnce;
- target._n = toNumber;
- target._s = toString;
- target._l = renderList;
- target._t = renderSlot;
- target._q = looseEqual;
- target._i = looseIndexOf;
- target._m = renderStatic;
- target._f = resolveFilter;
- target._k = checkKeyCodes;
- target._b = bindObjectProps;
- target._v = createTextVNode;
- target._e = createEmptyVNode;
- target._u = resolveScopedSlots;
- target._g = bindObjectListeners;
- target._d = bindDynamicKeys;
- target._p = prependModifier;
- }
-
- /**
- * Runtime helper for resolving raw children VNodes into a slot object.
- */
- function resolveSlots(children, context) {
- if (!children || !children.length) {
- return {};
- }
- var slots = {};
- for (var i = 0, l = children.length; i < l; i++) {
- var child = children[i];
- var data = child.data;
- // remove slot attribute if the node is resolved as a Vue slot node
- if (data && data.attrs && data.attrs.slot) {
- delete data.attrs.slot;
- }
- // named slots should only be respected if the vnode was rendered in the
- // same context.
- if ((child.context === context || child.fnContext === context) &&
- data &&
- data.slot != null) {
- var name_1 = data.slot;
- var slot = slots[name_1] || (slots[name_1] = []);
- if (child.tag === 'template') {
- slot.push.apply(slot, child.children || []);
- }
- else {
- slot.push(child);
- }
- }
- else {
- (slots.default || (slots.default = [])).push(child);
- }
- }
- // ignore slots that contains only whitespace
- for (var name_2 in slots) {
- if (slots[name_2].every(isWhitespace)) {
- delete slots[name_2];
- }
- }
- return slots;
- }
- function isWhitespace(node) {
- return (node.isComment && !node.asyncFactory) || node.text === ' ';
- }
-
- function isAsyncPlaceholder(node) {
- // @ts-expect-error not really boolean type
- return node.isComment && node.asyncFactory;
- }
-
- function normalizeScopedSlots(ownerVm, scopedSlots, normalSlots, prevScopedSlots) {
- var res;
- var hasNormalSlots = Object.keys(normalSlots).length > 0;
- var isStable = scopedSlots ? !!scopedSlots.$stable : !hasNormalSlots;
- var key = scopedSlots && scopedSlots.$key;
- if (!scopedSlots) {
- res = {};
- }
- else if (scopedSlots._normalized) {
- // fast path 1: child component re-render only, parent did not change
- return scopedSlots._normalized;
- }
- else if (isStable &&
- prevScopedSlots &&
- prevScopedSlots !== emptyObject &&
- key === prevScopedSlots.$key &&
- !hasNormalSlots &&
- !prevScopedSlots.$hasNormal) {
- // fast path 2: stable scoped slots w/ no normal slots to proxy,
- // only need to normalize once
- return prevScopedSlots;
- }
- else {
- res = {};
- for (var key_1 in scopedSlots) {
- if (scopedSlots[key_1] && key_1[0] !== '$') {
- res[key_1] = normalizeScopedSlot(ownerVm, normalSlots, key_1, scopedSlots[key_1]);
- }
- }
- }
- // expose normal slots on scopedSlots
- for (var key_2 in normalSlots) {
- if (!(key_2 in res)) {
- res[key_2] = proxyNormalSlot(normalSlots, key_2);
- }
- }
- // avoriaz seems to mock a non-extensible $scopedSlots object
- // and when that is passed down this would cause an error
- if (scopedSlots && Object.isExtensible(scopedSlots)) {
- scopedSlots._normalized = res;
- }
- def(res, '$stable', isStable);
- def(res, '$key', key);
- def(res, '$hasNormal', hasNormalSlots);
- return res;
- }
- function normalizeScopedSlot(vm, normalSlots, key, fn) {
- var normalized = function () {
- var cur = currentInstance;
- setCurrentInstance(vm);
- var res = arguments.length ? fn.apply(null, arguments) : fn({});
- res =
- res && typeof res === 'object' && !isArray(res)
- ? [res] // single vnode
- : normalizeChildren(res);
- var vnode = res && res[0];
- setCurrentInstance(cur);
- return res &&
- (!vnode ||
- (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode))) // #9658, #10391
- ? undefined
- : res;
- };
- // this is a slot using the new v-slot syntax without scope. although it is
- // compiled as a scoped slot, render fn users would expect it to be present
- // on this.$slots because the usage is semantically a normal slot.
- if (fn.proxy) {
- Object.defineProperty(normalSlots, key, {
- get: normalized,
- enumerable: true,
- configurable: true
- });
- }
- return normalized;
- }
- function proxyNormalSlot(slots, key) {
- return function () { return slots[key]; };
- }
-
- function initSetup(vm) {
- var options = vm.$options;
- var setup = options.setup;
- if (setup) {
- var ctx = (vm._setupContext = createSetupContext(vm));
- setCurrentInstance(vm);
- pushTarget();
- var setupResult = invokeWithErrorHandling(setup, null, [vm._props || shallowReactive({}), ctx], vm, "setup");
- popTarget();
- setCurrentInstance();
- if (isFunction(setupResult)) {
- // render function
- // @ts-ignore
- options.render = setupResult;
- }
- else if (isObject(setupResult)) {
- // bindings
- if (setupResult instanceof VNode) {
- warn$2("setup() should not return VNodes directly - " +
- "return a render function instead.");
- }
- vm._setupState = setupResult;
- // __sfc indicates compiled bindings from
-
+
diff --git a/advancedcontentfilter/vendor/autoload.php b/advancedcontentfilter/vendor/autoload.php
index 2d273a02..3e6193fa 100644
--- a/advancedcontentfilter/vendor/autoload.php
+++ b/advancedcontentfilter/vendor/autoload.php
@@ -2,24 +2,6 @@
// autoload.php @generated by Composer
-if (PHP_VERSION_ID < 50600) {
- if (!headers_sent()) {
- header('HTTP/1.1 500 Internal Server Error');
- }
- $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
- if (!ini_get('display_errors')) {
- if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
- fwrite(STDERR, $err);
- } elseif (!headers_sent()) {
- echo $err;
- }
- }
- trigger_error(
- $err,
- E_USER_ERROR
- );
-}
-
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInitAdvancedContentFilterAddon::getLoader();
diff --git a/advancedcontentfilter/vendor/composer/ClassLoader.php b/advancedcontentfilter/vendor/composer/ClassLoader.php
index 7824d8f7..dc02dfb1 100644
--- a/advancedcontentfilter/vendor/composer/ClassLoader.php
+++ b/advancedcontentfilter/vendor/composer/ClassLoader.php
@@ -37,126 +37,57 @@ namespace Composer\Autoload;
*
* @author Fabien Potencier
* @author Jordi Boggiano
- * @see https://www.php-fig.org/psr/psr-0/
- * @see https://www.php-fig.org/psr/psr-4/
+ * @see http://www.php-fig.org/psr/psr-0/
+ * @see http://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
- /** @var \Closure(string):void */
- private static $includeFile;
-
- /** @var string|null */
- private $vendorDir;
-
// PSR-4
- /**
- * @var array>
- */
private $prefixLengthsPsr4 = array();
- /**
- * @var array>
- */
private $prefixDirsPsr4 = array();
- /**
- * @var list
- */
private $fallbackDirsPsr4 = array();
// PSR-0
- /**
- * List of PSR-0 prefixes
- *
- * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
- *
- * @var array>>
- */
private $prefixesPsr0 = array();
- /**
- * @var list
- */
private $fallbackDirsPsr0 = array();
- /** @var bool */
private $useIncludePath = false;
-
- /**
- * @var array
- */
private $classMap = array();
-
- /** @var bool */
private $classMapAuthoritative = false;
-
- /**
- * @var array
- */
private $missingClasses = array();
-
- /** @var string|null */
private $apcuPrefix;
- /**
- * @var array
- */
- private static $registeredLoaders = array();
-
- /**
- * @param string|null $vendorDir
- */
- public function __construct($vendorDir = null)
- {
- $this->vendorDir = $vendorDir;
- self::initializeIncludeClosure();
- }
-
- /**
- * @return array>
- */
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
- return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
+ return call_user_func_array('array_merge', $this->prefixesPsr0);
}
return array();
}
- /**
- * @return array>
- */
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
- /**
- * @return list
- */
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
- /**
- * @return list
- */
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
- /**
- * @return array Array of classname => path
- */
public function getClassMap()
{
return $this->classMap;
}
/**
- * @param array $classMap Class to filename map
- *
- * @return void
+ * @param array $classMap Class to filename map
*/
public function addClassMap(array $classMap)
{
@@ -171,25 +102,22 @@ class ClassLoader
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param list|string $paths The PSR-0 root directories
- * @param bool $prepend Whether to prepend the directories
- *
- * @return void
+ * @param string $prefix The prefix
+ * @param array|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
*/
public function add($prefix, $paths, $prepend = false)
{
- $paths = (array) $paths;
if (!$prefix) {
if ($prepend) {
$this->fallbackDirsPsr0 = array_merge(
- $paths,
+ (array) $paths,
$this->fallbackDirsPsr0
);
} else {
$this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0,
- $paths
+ (array) $paths
);
}
@@ -198,19 +126,19 @@ class ClassLoader
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
- $this->prefixesPsr0[$first][$prefix] = $paths;
+ $this->prefixesPsr0[$first][$prefix] = (array) $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
- $paths,
+ (array) $paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
- $paths
+ (array) $paths
);
}
}
@@ -219,28 +147,25 @@ class ClassLoader
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param list|string $paths The PSR-4 base directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param array|string $paths The PSR-4 base directories
+ * @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
- *
- * @return void
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
- $paths = (array) $paths;
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge(
- $paths,
+ (array) $paths,
$this->fallbackDirsPsr4
);
} else {
$this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4,
- $paths
+ (array) $paths
);
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
@@ -250,18 +175,18 @@ class ClassLoader
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
- $this->prefixDirsPsr4[$prefix] = $paths;
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
- $paths,
+ (array) $paths,
$this->prefixDirsPsr4[$prefix]
);
} else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix],
- $paths
+ (array) $paths
);
}
}
@@ -270,10 +195,8 @@ class ClassLoader
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param list|string $paths The PSR-0 base directories
- *
- * @return void
+ * @param string $prefix The prefix
+ * @param array|string $paths The PSR-0 base directories
*/
public function set($prefix, $paths)
{
@@ -288,12 +211,10 @@ class ClassLoader
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param list|string $paths The PSR-4 base directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param array|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
- *
- * @return void
*/
public function setPsr4($prefix, $paths)
{
@@ -313,8 +234,6 @@ class ClassLoader
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
- *
- * @return void
*/
public function setUseIncludePath($useIncludePath)
{
@@ -337,8 +256,6 @@ class ClassLoader
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
- *
- * @return void
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
@@ -359,12 +276,10 @@ class ClassLoader
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
- *
- * @return void
*/
public function setApcuPrefix($apcuPrefix)
{
- $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
+ $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
}
/**
@@ -381,55 +296,33 @@ class ClassLoader
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
- *
- * @return void
*/
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
-
- if (null === $this->vendorDir) {
- return;
- }
-
- if ($prepend) {
- self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
- } else {
- unset(self::$registeredLoaders[$this->vendorDir]);
- self::$registeredLoaders[$this->vendorDir] = $this;
- }
}
/**
* Unregisters this instance as an autoloader.
- *
- * @return void
*/
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
-
- if (null !== $this->vendorDir) {
- unset(self::$registeredLoaders[$this->vendorDir]);
- }
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
- * @return true|null True if loaded, null otherwise
+ * @return bool|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
- $includeFile = self::$includeFile;
- $includeFile($file);
+ includeFile($file);
return true;
}
-
- return null;
}
/**
@@ -474,21 +367,6 @@ class ClassLoader
return $file;
}
- /**
- * Returns the currently registered loaders keyed by their corresponding vendor directories.
- *
- * @return array
- */
- public static function getRegisteredLoaders()
- {
- return self::$registeredLoaders;
- }
-
- /**
- * @param string $class
- * @param string $ext
- * @return string|false
- */
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
@@ -499,7 +377,7 @@ class ClassLoader
$subPath = $class;
while (false !== $lastPos = strrpos($subPath, '\\')) {
$subPath = substr($subPath, 0, $lastPos);
- $search = $subPath . '\\';
+ $search = $subPath.'\\';
if (isset($this->prefixDirsPsr4[$search])) {
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
foreach ($this->prefixDirsPsr4[$search] as $dir) {
@@ -554,26 +432,14 @@ class ClassLoader
return false;
}
-
- /**
- * @return void
- */
- private static function initializeIncludeClosure()
- {
- if (self::$includeFile !== null) {
- return;
- }
-
- /**
- * Scope isolated include.
- *
- * Prevents access to $this/self from included files.
- *
- * @param string $file
- * @return void
- */
- self::$includeFile = \Closure::bind(static function($file) {
- include $file;
- }, null, null);
- }
+}
+
+/**
+ * Scope isolated include.
+ *
+ * Prevents access to $this/self from included files.
+ */
+function includeFile($file)
+{
+ include $file;
}
diff --git a/advancedcontentfilter/vendor/composer/InstalledVersions.php b/advancedcontentfilter/vendor/composer/InstalledVersions.php
deleted file mode 100644
index 51e734a7..00000000
--- a/advancedcontentfilter/vendor/composer/InstalledVersions.php
+++ /dev/null
@@ -1,359 +0,0 @@
-
- * Jordi Boggiano
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Composer;
-
-use Composer\Autoload\ClassLoader;
-use Composer\Semver\VersionParser;
-
-/**
- * This class is copied in every Composer installed project and available to all
- *
- * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
- *
- * To require its presence, you can require `composer-runtime-api ^2.0`
- *
- * @final
- */
-class InstalledVersions
-{
- /**
- * @var mixed[]|null
- * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null
- */
- private static $installed;
-
- /**
- * @var bool|null
- */
- private static $canGetVendors;
-
- /**
- * @var array[]
- * @psalm-var array}>
- */
- private static $installedByVendor = array();
-
- /**
- * Returns a list of all package names which are present, either by being installed, replaced or provided
- *
- * @return string[]
- * @psalm-return list
- */
- public static function getInstalledPackages()
- {
- $packages = array();
- foreach (self::getInstalled() as $installed) {
- $packages[] = array_keys($installed['versions']);
- }
-
- if (1 === \count($packages)) {
- return $packages[0];
- }
-
- return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
- }
-
- /**
- * Returns a list of all package names with a specific type e.g. 'library'
- *
- * @param string $type
- * @return string[]
- * @psalm-return list
- */
- public static function getInstalledPackagesByType($type)
- {
- $packagesByType = array();
-
- foreach (self::getInstalled() as $installed) {
- foreach ($installed['versions'] as $name => $package) {
- if (isset($package['type']) && $package['type'] === $type) {
- $packagesByType[] = $name;
- }
- }
- }
-
- return $packagesByType;
- }
-
- /**
- * Checks whether the given package is installed
- *
- * This also returns true if the package name is provided or replaced by another package
- *
- * @param string $packageName
- * @param bool $includeDevRequirements
- * @return bool
- */
- public static function isInstalled($packageName, $includeDevRequirements = true)
- {
- foreach (self::getInstalled() as $installed) {
- if (isset($installed['versions'][$packageName])) {
- return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
- }
- }
-
- return false;
- }
-
- /**
- * Checks whether the given package satisfies a version constraint
- *
- * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
- *
- * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
- *
- * @param VersionParser $parser Install composer/semver to have access to this class and functionality
- * @param string $packageName
- * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
- * @return bool
- */
- public static function satisfies(VersionParser $parser, $packageName, $constraint)
- {
- $constraint = $parser->parseConstraints((string) $constraint);
- $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
-
- return $provided->matches($constraint);
- }
-
- /**
- * Returns a version constraint representing all the range(s) which are installed for a given package
- *
- * It is easier to use this via isInstalled() with the $constraint argument if you need to check
- * whether a given version of a package is installed, and not just whether it exists
- *
- * @param string $packageName
- * @return string Version constraint usable with composer/semver
- */
- public static function getVersionRanges($packageName)
- {
- foreach (self::getInstalled() as $installed) {
- if (!isset($installed['versions'][$packageName])) {
- continue;
- }
-
- $ranges = array();
- if (isset($installed['versions'][$packageName]['pretty_version'])) {
- $ranges[] = $installed['versions'][$packageName]['pretty_version'];
- }
- if (array_key_exists('aliases', $installed['versions'][$packageName])) {
- $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
- }
- if (array_key_exists('replaced', $installed['versions'][$packageName])) {
- $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
- }
- if (array_key_exists('provided', $installed['versions'][$packageName])) {
- $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
- }
-
- return implode(' || ', $ranges);
- }
-
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
- }
-
- /**
- * @param string $packageName
- * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
- */
- public static function getVersion($packageName)
- {
- foreach (self::getInstalled() as $installed) {
- if (!isset($installed['versions'][$packageName])) {
- continue;
- }
-
- if (!isset($installed['versions'][$packageName]['version'])) {
- return null;
- }
-
- return $installed['versions'][$packageName]['version'];
- }
-
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
- }
-
- /**
- * @param string $packageName
- * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
- */
- public static function getPrettyVersion($packageName)
- {
- foreach (self::getInstalled() as $installed) {
- if (!isset($installed['versions'][$packageName])) {
- continue;
- }
-
- if (!isset($installed['versions'][$packageName]['pretty_version'])) {
- return null;
- }
-
- return $installed['versions'][$packageName]['pretty_version'];
- }
-
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
- }
-
- /**
- * @param string $packageName
- * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
- */
- public static function getReference($packageName)
- {
- foreach (self::getInstalled() as $installed) {
- if (!isset($installed['versions'][$packageName])) {
- continue;
- }
-
- if (!isset($installed['versions'][$packageName]['reference'])) {
- return null;
- }
-
- return $installed['versions'][$packageName]['reference'];
- }
-
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
- }
-
- /**
- * @param string $packageName
- * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
- */
- public static function getInstallPath($packageName)
- {
- foreach (self::getInstalled() as $installed) {
- if (!isset($installed['versions'][$packageName])) {
- continue;
- }
-
- return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
- }
-
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
- }
-
- /**
- * @return array
- * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
- */
- public static function getRootPackage()
- {
- $installed = self::getInstalled();
-
- return $installed[0]['root'];
- }
-
- /**
- * Returns the raw installed.php data for custom implementations
- *
- * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
- * @return array[]
- * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}
- */
- public static function getRawData()
- {
- @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
-
- if (null === self::$installed) {
- // only require the installed.php file if this file is loaded from its dumped location,
- // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
- if (substr(__DIR__, -8, 1) !== 'C') {
- self::$installed = include __DIR__ . '/installed.php';
- } else {
- self::$installed = array();
- }
- }
-
- return self::$installed;
- }
-
- /**
- * Returns the raw data of all installed.php which are currently loaded for custom implementations
- *
- * @return array[]
- * @psalm-return list}>
- */
- public static function getAllRawData()
- {
- return self::getInstalled();
- }
-
- /**
- * Lets you reload the static array from another file
- *
- * This is only useful for complex integrations in which a project needs to use
- * this class but then also needs to execute another project's autoloader in process,
- * and wants to ensure both projects have access to their version of installed.php.
- *
- * A typical case would be PHPUnit, where it would need to make sure it reads all
- * the data it needs from this class, then call reload() with
- * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
- * the project in which it runs can then also use this class safely, without
- * interference between PHPUnit's dependencies and the project's dependencies.
- *
- * @param array[] $data A vendor/composer/installed.php data set
- * @return void
- *
- * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data
- */
- public static function reload($data)
- {
- self::$installed = $data;
- self::$installedByVendor = array();
- }
-
- /**
- * @return array[]
- * @psalm-return list}>
- */
- private static function getInstalled()
- {
- if (null === self::$canGetVendors) {
- self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
- }
-
- $installed = array();
-
- if (self::$canGetVendors) {
- foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
- if (isset(self::$installedByVendor[$vendorDir])) {
- $installed[] = self::$installedByVendor[$vendorDir];
- } elseif (is_file($vendorDir.'/composer/installed.php')) {
- /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */
- $required = require $vendorDir.'/composer/installed.php';
- $installed[] = self::$installedByVendor[$vendorDir] = $required;
- if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
- self::$installed = $installed[count($installed) - 1];
- }
- }
- }
- }
-
- if (null === self::$installed) {
- // only require the installed.php file if this file is loaded from its dumped location,
- // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
- if (substr(__DIR__, -8, 1) !== 'C') {
- /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */
- $required = require __DIR__ . '/installed.php';
- self::$installed = $required;
- } else {
- self::$installed = array();
- }
- }
-
- if (self::$installed !== array()) {
- $installed[] = self::$installed;
- }
-
- return $installed;
- }
-}
diff --git a/advancedcontentfilter/vendor/composer/autoload_classmap.php b/advancedcontentfilter/vendor/composer/autoload_classmap.php
index fe2a622a..4f884be1 100644
--- a/advancedcontentfilter/vendor/composer/autoload_classmap.php
+++ b/advancedcontentfilter/vendor/composer/autoload_classmap.php
@@ -2,12 +2,10 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
- 'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
- 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
'FastRoute\\BadRouteException' => $vendorDir . '/nikic/fast-route/src/BadRouteException.php',
'FastRoute\\DataGenerator' => $vendorDir . '/nikic/fast-route/src/DataGenerator.php',
'FastRoute\\DataGenerator\\CharCountBased' => $vendorDir . '/nikic/fast-route/src/DataGenerator/CharCountBased.php',
@@ -25,8 +23,27 @@ return array(
'FastRoute\\RouteCollector' => $vendorDir . '/nikic/fast-route/src/RouteCollector.php',
'FastRoute\\RouteParser' => $vendorDir . '/nikic/fast-route/src/RouteParser.php',
'FastRoute\\RouteParser\\Std' => $vendorDir . '/nikic/fast-route/src/RouteParser/Std.php',
- 'JsonException' => $vendorDir . '/symfony/polyfill-php73/Resources/stubs/JsonException.php',
- 'PhpToken' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php',
+ 'Interop\\Container\\ContainerInterface' => $vendorDir . '/container-interop/container-interop/src/Interop/Container/ContainerInterface.php',
+ 'Interop\\Container\\Exception\\ContainerException' => $vendorDir . '/container-interop/container-interop/src/Interop/Container/Exception/ContainerException.php',
+ 'Interop\\Container\\Exception\\NotFoundException' => $vendorDir . '/container-interop/container-interop/src/Interop/Container/Exception/NotFoundException.php',
+ 'Pimple\\Container' => $vendorDir . '/pimple/pimple/src/Pimple/Container.php',
+ 'Pimple\\Exception\\ExpectedInvokableException' => $vendorDir . '/pimple/pimple/src/Pimple/Exception/ExpectedInvokableException.php',
+ 'Pimple\\Exception\\FrozenServiceException' => $vendorDir . '/pimple/pimple/src/Pimple/Exception/FrozenServiceException.php',
+ 'Pimple\\Exception\\InvalidServiceIdentifierException' => $vendorDir . '/pimple/pimple/src/Pimple/Exception/InvalidServiceIdentifierException.php',
+ 'Pimple\\Exception\\UnknownIdentifierException' => $vendorDir . '/pimple/pimple/src/Pimple/Exception/UnknownIdentifierException.php',
+ 'Pimple\\Psr11\\Container' => $vendorDir . '/pimple/pimple/src/Pimple/Psr11/Container.php',
+ 'Pimple\\Psr11\\ServiceLocator' => $vendorDir . '/pimple/pimple/src/Pimple/Psr11/ServiceLocator.php',
+ 'Pimple\\ServiceIterator' => $vendorDir . '/pimple/pimple/src/Pimple/ServiceIterator.php',
+ 'Pimple\\ServiceProviderInterface' => $vendorDir . '/pimple/pimple/src/Pimple/ServiceProviderInterface.php',
+ 'Pimple\\Tests\\Fixtures\\Invokable' => $vendorDir . '/pimple/pimple/src/Pimple/Tests/Fixtures/Invokable.php',
+ 'Pimple\\Tests\\Fixtures\\NonInvokable' => $vendorDir . '/pimple/pimple/src/Pimple/Tests/Fixtures/NonInvokable.php',
+ 'Pimple\\Tests\\Fixtures\\PimpleServiceProvider' => $vendorDir . '/pimple/pimple/src/Pimple/Tests/Fixtures/PimpleServiceProvider.php',
+ 'Pimple\\Tests\\Fixtures\\Service' => $vendorDir . '/pimple/pimple/src/Pimple/Tests/Fixtures/Service.php',
+ 'Pimple\\Tests\\PimpleServiceProviderInterfaceTest' => $vendorDir . '/pimple/pimple/src/Pimple/Tests/PimpleServiceProviderInterfaceTest.php',
+ 'Pimple\\Tests\\PimpleTest' => $vendorDir . '/pimple/pimple/src/Pimple/Tests/PimpleTest.php',
+ 'Pimple\\Tests\\Psr11\\ContainerTest' => $vendorDir . '/pimple/pimple/src/Pimple/Tests/Psr11/ContainerTest.php',
+ 'Pimple\\Tests\\Psr11\\ServiceLocatorTest' => $vendorDir . '/pimple/pimple/src/Pimple/Tests/Psr11/ServiceLocatorTest.php',
+ 'Pimple\\Tests\\ServiceIteratorTest' => $vendorDir . '/pimple/pimple/src/Pimple/Tests/ServiceIteratorTest.php',
'Psr\\Cache\\CacheException' => $vendorDir . '/psr/cache/src/CacheException.php',
'Psr\\Cache\\CacheItemInterface' => $vendorDir . '/psr/cache/src/CacheItemInterface.php',
'Psr\\Cache\\CacheItemPoolInterface' => $vendorDir . '/psr/cache/src/CacheItemPoolInterface.php',
@@ -35,20 +52,12 @@ return array(
'Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php',
'Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php',
'Psr\\Http\\Message\\MessageInterface' => $vendorDir . '/psr/http-message/src/MessageInterface.php',
- 'Psr\\Http\\Message\\RequestFactoryInterface' => $vendorDir . '/psr/http-factory/src/RequestFactoryInterface.php',
'Psr\\Http\\Message\\RequestInterface' => $vendorDir . '/psr/http-message/src/RequestInterface.php',
- 'Psr\\Http\\Message\\ResponseFactoryInterface' => $vendorDir . '/psr/http-factory/src/ResponseFactoryInterface.php',
'Psr\\Http\\Message\\ResponseInterface' => $vendorDir . '/psr/http-message/src/ResponseInterface.php',
- 'Psr\\Http\\Message\\ServerRequestFactoryInterface' => $vendorDir . '/psr/http-factory/src/ServerRequestFactoryInterface.php',
'Psr\\Http\\Message\\ServerRequestInterface' => $vendorDir . '/psr/http-message/src/ServerRequestInterface.php',
- 'Psr\\Http\\Message\\StreamFactoryInterface' => $vendorDir . '/psr/http-factory/src/StreamFactoryInterface.php',
'Psr\\Http\\Message\\StreamInterface' => $vendorDir . '/psr/http-message/src/StreamInterface.php',
- 'Psr\\Http\\Message\\UploadedFileFactoryInterface' => $vendorDir . '/psr/http-factory/src/UploadedFileFactoryInterface.php',
'Psr\\Http\\Message\\UploadedFileInterface' => $vendorDir . '/psr/http-message/src/UploadedFileInterface.php',
- 'Psr\\Http\\Message\\UriFactoryInterface' => $vendorDir . '/psr/http-factory/src/UriFactoryInterface.php',
'Psr\\Http\\Message\\UriInterface' => $vendorDir . '/psr/http-message/src/UriInterface.php',
- 'Psr\\Http\\Server\\MiddlewareInterface' => $vendorDir . '/psr/http-server-middleware/src/MiddlewareInterface.php',
- 'Psr\\Http\\Server\\RequestHandlerInterface' => $vendorDir . '/psr/http-server-handler/src/RequestHandlerInterface.php',
'Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/Psr/Log/AbstractLogger.php',
'Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/Psr/Log/InvalidArgumentException.php',
'Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/Psr/Log/LogLevel.php',
@@ -57,122 +66,83 @@ return array(
'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php',
'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php',
'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php',
- 'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/DummyTest.php',
+ 'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
- 'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',
+ 'Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php',
+ 'Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php',
+ 'Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php',
'Slim\\App' => $vendorDir . '/slim/slim/Slim/App.php',
'Slim\\CallableResolver' => $vendorDir . '/slim/slim/Slim/CallableResolver.php',
- 'Slim\\Error\\AbstractErrorRenderer' => $vendorDir . '/slim/slim/Slim/Error/AbstractErrorRenderer.php',
- 'Slim\\Error\\Renderers\\HtmlErrorRenderer' => $vendorDir . '/slim/slim/Slim/Error/Renderers/HtmlErrorRenderer.php',
- 'Slim\\Error\\Renderers\\JsonErrorRenderer' => $vendorDir . '/slim/slim/Slim/Error/Renderers/JsonErrorRenderer.php',
- 'Slim\\Error\\Renderers\\PlainTextErrorRenderer' => $vendorDir . '/slim/slim/Slim/Error/Renderers/PlainTextErrorRenderer.php',
- 'Slim\\Error\\Renderers\\XmlErrorRenderer' => $vendorDir . '/slim/slim/Slim/Error/Renderers/XmlErrorRenderer.php',
- 'Slim\\Exception\\HttpBadRequestException' => $vendorDir . '/slim/slim/Slim/Exception/HttpBadRequestException.php',
- 'Slim\\Exception\\HttpException' => $vendorDir . '/slim/slim/Slim/Exception/HttpException.php',
- 'Slim\\Exception\\HttpForbiddenException' => $vendorDir . '/slim/slim/Slim/Exception/HttpForbiddenException.php',
- 'Slim\\Exception\\HttpGoneException' => $vendorDir . '/slim/slim/Slim/Exception/HttpGoneException.php',
- 'Slim\\Exception\\HttpInternalServerErrorException' => $vendorDir . '/slim/slim/Slim/Exception/HttpInternalServerErrorException.php',
- 'Slim\\Exception\\HttpMethodNotAllowedException' => $vendorDir . '/slim/slim/Slim/Exception/HttpMethodNotAllowedException.php',
- 'Slim\\Exception\\HttpNotFoundException' => $vendorDir . '/slim/slim/Slim/Exception/HttpNotFoundException.php',
- 'Slim\\Exception\\HttpNotImplementedException' => $vendorDir . '/slim/slim/Slim/Exception/HttpNotImplementedException.php',
- 'Slim\\Exception\\HttpSpecializedException' => $vendorDir . '/slim/slim/Slim/Exception/HttpSpecializedException.php',
- 'Slim\\Exception\\HttpTooManyRequestsException' => $vendorDir . '/slim/slim/Slim/Exception/HttpTooManyRequestsException.php',
- 'Slim\\Exception\\HttpUnauthorizedException' => $vendorDir . '/slim/slim/Slim/Exception/HttpUnauthorizedException.php',
- 'Slim\\Factory\\AppFactory' => $vendorDir . '/slim/slim/Slim/Factory/AppFactory.php',
- 'Slim\\Factory\\Psr17\\GuzzlePsr17Factory' => $vendorDir . '/slim/slim/Slim/Factory/Psr17/GuzzlePsr17Factory.php',
- 'Slim\\Factory\\Psr17\\HttpSoftPsr17Factory' => $vendorDir . '/slim/slim/Slim/Factory/Psr17/HttpSoftPsr17Factory.php',
- 'Slim\\Factory\\Psr17\\LaminasDiactorosPsr17Factory' => $vendorDir . '/slim/slim/Slim/Factory/Psr17/LaminasDiactorosPsr17Factory.php',
- 'Slim\\Factory\\Psr17\\NyholmPsr17Factory' => $vendorDir . '/slim/slim/Slim/Factory/Psr17/NyholmPsr17Factory.php',
- 'Slim\\Factory\\Psr17\\Psr17Factory' => $vendorDir . '/slim/slim/Slim/Factory/Psr17/Psr17Factory.php',
- 'Slim\\Factory\\Psr17\\Psr17FactoryProvider' => $vendorDir . '/slim/slim/Slim/Factory/Psr17/Psr17FactoryProvider.php',
- 'Slim\\Factory\\Psr17\\ServerRequestCreator' => $vendorDir . '/slim/slim/Slim/Factory/Psr17/ServerRequestCreator.php',
- 'Slim\\Factory\\Psr17\\SlimHttpPsr17Factory' => $vendorDir . '/slim/slim/Slim/Factory/Psr17/SlimHttpPsr17Factory.php',
- 'Slim\\Factory\\Psr17\\SlimHttpServerRequestCreator' => $vendorDir . '/slim/slim/Slim/Factory/Psr17/SlimHttpServerRequestCreator.php',
- 'Slim\\Factory\\Psr17\\SlimPsr17Factory' => $vendorDir . '/slim/slim/Slim/Factory/Psr17/SlimPsr17Factory.php',
- 'Slim\\Factory\\ServerRequestCreatorFactory' => $vendorDir . '/slim/slim/Slim/Factory/ServerRequestCreatorFactory.php',
- 'Slim\\Handlers\\ErrorHandler' => $vendorDir . '/slim/slim/Slim/Handlers/ErrorHandler.php',
- 'Slim\\Handlers\\Strategies\\RequestHandler' => $vendorDir . '/slim/slim/Slim/Handlers/Strategies/RequestHandler.php',
+ 'Slim\\CallableResolverAwareTrait' => $vendorDir . '/slim/slim/Slim/CallableResolverAwareTrait.php',
+ 'Slim\\Collection' => $vendorDir . '/slim/slim/Slim/Collection.php',
+ 'Slim\\Container' => $vendorDir . '/slim/slim/Slim/Container.php',
+ 'Slim\\DefaultServicesProvider' => $vendorDir . '/slim/slim/Slim/DefaultServicesProvider.php',
+ 'Slim\\DeferredCallable' => $vendorDir . '/slim/slim/Slim/DeferredCallable.php',
+ 'Slim\\Exception\\ContainerException' => $vendorDir . '/slim/slim/Slim/Exception/ContainerException.php',
+ 'Slim\\Exception\\ContainerValueNotFoundException' => $vendorDir . '/slim/slim/Slim/Exception/ContainerValueNotFoundException.php',
+ 'Slim\\Exception\\InvalidMethodException' => $vendorDir . '/slim/slim/Slim/Exception/InvalidMethodException.php',
+ 'Slim\\Exception\\MethodNotAllowedException' => $vendorDir . '/slim/slim/Slim/Exception/MethodNotAllowedException.php',
+ 'Slim\\Exception\\NotFoundException' => $vendorDir . '/slim/slim/Slim/Exception/NotFoundException.php',
+ 'Slim\\Exception\\SlimException' => $vendorDir . '/slim/slim/Slim/Exception/SlimException.php',
+ 'Slim\\Handlers\\AbstractError' => $vendorDir . '/slim/slim/Slim/Handlers/AbstractError.php',
+ 'Slim\\Handlers\\AbstractHandler' => $vendorDir . '/slim/slim/Slim/Handlers/AbstractHandler.php',
+ 'Slim\\Handlers\\Error' => $vendorDir . '/slim/slim/Slim/Handlers/Error.php',
+ 'Slim\\Handlers\\NotAllowed' => $vendorDir . '/slim/slim/Slim/Handlers/NotAllowed.php',
+ 'Slim\\Handlers\\NotFound' => $vendorDir . '/slim/slim/Slim/Handlers/NotFound.php',
+ 'Slim\\Handlers\\PhpError' => $vendorDir . '/slim/slim/Slim/Handlers/PhpError.php',
'Slim\\Handlers\\Strategies\\RequestResponse' => $vendorDir . '/slim/slim/Slim/Handlers/Strategies/RequestResponse.php',
'Slim\\Handlers\\Strategies\\RequestResponseArgs' => $vendorDir . '/slim/slim/Slim/Handlers/Strategies/RequestResponseArgs.php',
- 'Slim\\Handlers\\Strategies\\RequestResponseNamedArgs' => $vendorDir . '/slim/slim/Slim/Handlers/Strategies/RequestResponseNamedArgs.php',
- 'Slim\\Interfaces\\AdvancedCallableResolverInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/AdvancedCallableResolverInterface.php',
+ 'Slim\\Http\\Body' => $vendorDir . '/slim/slim/Slim/Http/Body.php',
+ 'Slim\\Http\\Cookies' => $vendorDir . '/slim/slim/Slim/Http/Cookies.php',
+ 'Slim\\Http\\Environment' => $vendorDir . '/slim/slim/Slim/Http/Environment.php',
+ 'Slim\\Http\\Headers' => $vendorDir . '/slim/slim/Slim/Http/Headers.php',
+ 'Slim\\Http\\Message' => $vendorDir . '/slim/slim/Slim/Http/Message.php',
+ 'Slim\\Http\\Request' => $vendorDir . '/slim/slim/Slim/Http/Request.php',
+ 'Slim\\Http\\RequestBody' => $vendorDir . '/slim/slim/Slim/Http/RequestBody.php',
+ 'Slim\\Http\\Response' => $vendorDir . '/slim/slim/Slim/Http/Response.php',
+ 'Slim\\Http\\Stream' => $vendorDir . '/slim/slim/Slim/Http/Stream.php',
+ 'Slim\\Http\\UploadedFile' => $vendorDir . '/slim/slim/Slim/Http/UploadedFile.php',
+ 'Slim\\Http\\Uri' => $vendorDir . '/slim/slim/Slim/Http/Uri.php',
'Slim\\Interfaces\\CallableResolverInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/CallableResolverInterface.php',
- 'Slim\\Interfaces\\DispatcherInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/DispatcherInterface.php',
- 'Slim\\Interfaces\\ErrorHandlerInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/ErrorHandlerInterface.php',
- 'Slim\\Interfaces\\ErrorRendererInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/ErrorRendererInterface.php',
+ 'Slim\\Interfaces\\CollectionInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/CollectionInterface.php',
+ 'Slim\\Interfaces\\Http\\CookiesInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/Http/CookiesInterface.php',
+ 'Slim\\Interfaces\\Http\\EnvironmentInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/Http/EnvironmentInterface.php',
+ 'Slim\\Interfaces\\Http\\HeadersInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/Http/HeadersInterface.php',
'Slim\\Interfaces\\InvocationStrategyInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/InvocationStrategyInterface.php',
- 'Slim\\Interfaces\\MiddlewareDispatcherInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/MiddlewareDispatcherInterface.php',
- 'Slim\\Interfaces\\Psr17FactoryInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/Psr17FactoryInterface.php',
- 'Slim\\Interfaces\\Psr17FactoryProviderInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/Psr17FactoryProviderInterface.php',
- 'Slim\\Interfaces\\RequestHandlerInvocationStrategyInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/RequestHandlerInvocationStrategyInterface.php',
- 'Slim\\Interfaces\\RouteCollectorInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/RouteCollectorInterface.php',
- 'Slim\\Interfaces\\RouteCollectorProxyInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/RouteCollectorProxyInterface.php',
'Slim\\Interfaces\\RouteGroupInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/RouteGroupInterface.php',
'Slim\\Interfaces\\RouteInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/RouteInterface.php',
- 'Slim\\Interfaces\\RouteParserInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/RouteParserInterface.php',
- 'Slim\\Interfaces\\RouteResolverInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/RouteResolverInterface.php',
- 'Slim\\Interfaces\\ServerRequestCreatorInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/ServerRequestCreatorInterface.php',
- 'Slim\\Logger' => $vendorDir . '/slim/slim/Slim/Logger.php',
- 'Slim\\MiddlewareDispatcher' => $vendorDir . '/slim/slim/Slim/MiddlewareDispatcher.php',
- 'Slim\\Middleware\\BodyParsingMiddleware' => $vendorDir . '/slim/slim/Slim/Middleware/BodyParsingMiddleware.php',
- 'Slim\\Middleware\\ContentLengthMiddleware' => $vendorDir . '/slim/slim/Slim/Middleware/ContentLengthMiddleware.php',
- 'Slim\\Middleware\\ErrorMiddleware' => $vendorDir . '/slim/slim/Slim/Middleware/ErrorMiddleware.php',
- 'Slim\\Middleware\\MethodOverrideMiddleware' => $vendorDir . '/slim/slim/Slim/Middleware/MethodOverrideMiddleware.php',
- 'Slim\\Middleware\\OutputBufferingMiddleware' => $vendorDir . '/slim/slim/Slim/Middleware/OutputBufferingMiddleware.php',
- 'Slim\\Middleware\\RoutingMiddleware' => $vendorDir . '/slim/slim/Slim/Middleware/RoutingMiddleware.php',
- 'Slim\\ResponseEmitter' => $vendorDir . '/slim/slim/Slim/ResponseEmitter.php',
- 'Slim\\Routing\\Dispatcher' => $vendorDir . '/slim/slim/Slim/Routing/Dispatcher.php',
- 'Slim\\Routing\\FastRouteDispatcher' => $vendorDir . '/slim/slim/Slim/Routing/FastRouteDispatcher.php',
- 'Slim\\Routing\\Route' => $vendorDir . '/slim/slim/Slim/Routing/Route.php',
- 'Slim\\Routing\\RouteCollector' => $vendorDir . '/slim/slim/Slim/Routing/RouteCollector.php',
- 'Slim\\Routing\\RouteCollectorProxy' => $vendorDir . '/slim/slim/Slim/Routing/RouteCollectorProxy.php',
- 'Slim\\Routing\\RouteContext' => $vendorDir . '/slim/slim/Slim/Routing/RouteContext.php',
- 'Slim\\Routing\\RouteGroup' => $vendorDir . '/slim/slim/Slim/Routing/RouteGroup.php',
- 'Slim\\Routing\\RouteParser' => $vendorDir . '/slim/slim/Slim/Routing/RouteParser.php',
- 'Slim\\Routing\\RouteResolver' => $vendorDir . '/slim/slim/Slim/Routing/RouteResolver.php',
- 'Slim\\Routing\\RouteRunner' => $vendorDir . '/slim/slim/Slim/Routing/RouteRunner.php',
- 'Slim\\Routing\\RoutingResults' => $vendorDir . '/slim/slim/Slim/Routing/RoutingResults.php',
- 'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
+ 'Slim\\Interfaces\\RouterInterface' => $vendorDir . '/slim/slim/Slim/Interfaces/RouterInterface.php',
+ 'Slim\\MiddlewareAwareTrait' => $vendorDir . '/slim/slim/Slim/MiddlewareAwareTrait.php',
+ 'Slim\\Routable' => $vendorDir . '/slim/slim/Slim/Routable.php',
+ 'Slim\\Route' => $vendorDir . '/slim/slim/Slim/Route.php',
+ 'Slim\\RouteGroup' => $vendorDir . '/slim/slim/Slim/RouteGroup.php',
+ 'Slim\\Router' => $vendorDir . '/slim/slim/Slim/Router.php',
'Symfony\\Component\\Cache\\Adapter\\AbstractAdapter' => $vendorDir . '/symfony/cache/Adapter/AbstractAdapter.php',
- 'Symfony\\Component\\Cache\\Adapter\\AbstractTagAwareAdapter' => $vendorDir . '/symfony/cache/Adapter/AbstractTagAwareAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\AdapterInterface' => $vendorDir . '/symfony/cache/Adapter/AdapterInterface.php',
'Symfony\\Component\\Cache\\Adapter\\ApcuAdapter' => $vendorDir . '/symfony/cache/Adapter/ApcuAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\ArrayAdapter' => $vendorDir . '/symfony/cache/Adapter/ArrayAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\ChainAdapter' => $vendorDir . '/symfony/cache/Adapter/ChainAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\DoctrineAdapter' => $vendorDir . '/symfony/cache/Adapter/DoctrineAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\FilesystemAdapter' => $vendorDir . '/symfony/cache/Adapter/FilesystemAdapter.php',
- 'Symfony\\Component\\Cache\\Adapter\\FilesystemTagAwareAdapter' => $vendorDir . '/symfony/cache/Adapter/FilesystemTagAwareAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\MemcachedAdapter' => $vendorDir . '/symfony/cache/Adapter/MemcachedAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\NullAdapter' => $vendorDir . '/symfony/cache/Adapter/NullAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\PdoAdapter' => $vendorDir . '/symfony/cache/Adapter/PdoAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\PhpArrayAdapter' => $vendorDir . '/symfony/cache/Adapter/PhpArrayAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\PhpFilesAdapter' => $vendorDir . '/symfony/cache/Adapter/PhpFilesAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\ProxyAdapter' => $vendorDir . '/symfony/cache/Adapter/ProxyAdapter.php',
- 'Symfony\\Component\\Cache\\Adapter\\Psr16Adapter' => $vendorDir . '/symfony/cache/Adapter/Psr16Adapter.php',
'Symfony\\Component\\Cache\\Adapter\\RedisAdapter' => $vendorDir . '/symfony/cache/Adapter/RedisAdapter.php',
- 'Symfony\\Component\\Cache\\Adapter\\RedisTagAwareAdapter' => $vendorDir . '/symfony/cache/Adapter/RedisTagAwareAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\SimpleCacheAdapter' => $vendorDir . '/symfony/cache/Adapter/SimpleCacheAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\TagAwareAdapter' => $vendorDir . '/symfony/cache/Adapter/TagAwareAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\TagAwareAdapterInterface' => $vendorDir . '/symfony/cache/Adapter/TagAwareAdapterInterface.php',
'Symfony\\Component\\Cache\\Adapter\\TraceableAdapter' => $vendorDir . '/symfony/cache/Adapter/TraceableAdapter.php',
+ 'Symfony\\Component\\Cache\\Adapter\\TraceableAdapterEvent' => $vendorDir . '/symfony/cache/Adapter/TraceableAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\TraceableTagAwareAdapter' => $vendorDir . '/symfony/cache/Adapter/TraceableTagAwareAdapter.php',
'Symfony\\Component\\Cache\\CacheItem' => $vendorDir . '/symfony/cache/CacheItem.php',
'Symfony\\Component\\Cache\\DataCollector\\CacheDataCollector' => $vendorDir . '/symfony/cache/DataCollector/CacheDataCollector.php',
- 'Symfony\\Component\\Cache\\DependencyInjection\\CacheCollectorPass' => $vendorDir . '/symfony/cache/DependencyInjection/CacheCollectorPass.php',
- 'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolClearerPass' => $vendorDir . '/symfony/cache/DependencyInjection/CachePoolClearerPass.php',
- 'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolPass' => $vendorDir . '/symfony/cache/DependencyInjection/CachePoolPass.php',
- 'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolPrunerPass' => $vendorDir . '/symfony/cache/DependencyInjection/CachePoolPrunerPass.php',
'Symfony\\Component\\Cache\\DoctrineProvider' => $vendorDir . '/symfony/cache/DoctrineProvider.php',
'Symfony\\Component\\Cache\\Exception\\CacheException' => $vendorDir . '/symfony/cache/Exception/CacheException.php',
'Symfony\\Component\\Cache\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/cache/Exception/InvalidArgumentException.php',
- 'Symfony\\Component\\Cache\\Exception\\LogicException' => $vendorDir . '/symfony/cache/Exception/LogicException.php',
- 'Symfony\\Component\\Cache\\LockRegistry' => $vendorDir . '/symfony/cache/LockRegistry.php',
- 'Symfony\\Component\\Cache\\Marshaller\\DefaultMarshaller' => $vendorDir . '/symfony/cache/Marshaller/DefaultMarshaller.php',
- 'Symfony\\Component\\Cache\\Marshaller\\DeflateMarshaller' => $vendorDir . '/symfony/cache/Marshaller/DeflateMarshaller.php',
- 'Symfony\\Component\\Cache\\Marshaller\\MarshallerInterface' => $vendorDir . '/symfony/cache/Marshaller/MarshallerInterface.php',
- 'Symfony\\Component\\Cache\\Marshaller\\TagAwareMarshaller' => $vendorDir . '/symfony/cache/Marshaller/TagAwareMarshaller.php',
'Symfony\\Component\\Cache\\PruneableInterface' => $vendorDir . '/symfony/cache/PruneableInterface.php',
- 'Symfony\\Component\\Cache\\Psr16Cache' => $vendorDir . '/symfony/cache/Psr16Cache.php',
'Symfony\\Component\\Cache\\ResettableInterface' => $vendorDir . '/symfony/cache/ResettableInterface.php',
'Symfony\\Component\\Cache\\Simple\\AbstractCache' => $vendorDir . '/symfony/cache/Simple/AbstractCache.php',
'Symfony\\Component\\Cache\\Simple\\ApcuCache' => $vendorDir . '/symfony/cache/Simple/ApcuCache.php',
@@ -188,11 +158,10 @@ return array(
'Symfony\\Component\\Cache\\Simple\\Psr6Cache' => $vendorDir . '/symfony/cache/Simple/Psr6Cache.php',
'Symfony\\Component\\Cache\\Simple\\RedisCache' => $vendorDir . '/symfony/cache/Simple/RedisCache.php',
'Symfony\\Component\\Cache\\Simple\\TraceableCache' => $vendorDir . '/symfony/cache/Simple/TraceableCache.php',
- 'Symfony\\Component\\Cache\\Traits\\AbstractAdapterTrait' => $vendorDir . '/symfony/cache/Traits/AbstractAdapterTrait.php',
+ 'Symfony\\Component\\Cache\\Simple\\TraceableCacheEvent' => $vendorDir . '/symfony/cache/Simple/TraceableCache.php',
'Symfony\\Component\\Cache\\Traits\\AbstractTrait' => $vendorDir . '/symfony/cache/Traits/AbstractTrait.php',
'Symfony\\Component\\Cache\\Traits\\ApcuTrait' => $vendorDir . '/symfony/cache/Traits/ApcuTrait.php',
'Symfony\\Component\\Cache\\Traits\\ArrayTrait' => $vendorDir . '/symfony/cache/Traits/ArrayTrait.php',
- 'Symfony\\Component\\Cache\\Traits\\ContractsTrait' => $vendorDir . '/symfony/cache/Traits/ContractsTrait.php',
'Symfony\\Component\\Cache\\Traits\\DoctrineTrait' => $vendorDir . '/symfony/cache/Traits/DoctrineTrait.php',
'Symfony\\Component\\Cache\\Traits\\FilesystemCommonTrait' => $vendorDir . '/symfony/cache/Traits/FilesystemCommonTrait.php',
'Symfony\\Component\\Cache\\Traits\\FilesystemTrait' => $vendorDir . '/symfony/cache/Traits/FilesystemTrait.php',
@@ -201,8 +170,6 @@ return array(
'Symfony\\Component\\Cache\\Traits\\PhpArrayTrait' => $vendorDir . '/symfony/cache/Traits/PhpArrayTrait.php',
'Symfony\\Component\\Cache\\Traits\\PhpFilesTrait' => $vendorDir . '/symfony/cache/Traits/PhpFilesTrait.php',
'Symfony\\Component\\Cache\\Traits\\ProxyTrait' => $vendorDir . '/symfony/cache/Traits/ProxyTrait.php',
- 'Symfony\\Component\\Cache\\Traits\\RedisClusterNodeProxy' => $vendorDir . '/symfony/cache/Traits/RedisClusterNodeProxy.php',
- 'Symfony\\Component\\Cache\\Traits\\RedisClusterProxy' => $vendorDir . '/symfony/cache/Traits/RedisClusterProxy.php',
'Symfony\\Component\\Cache\\Traits\\RedisProxy' => $vendorDir . '/symfony/cache/Traits/RedisProxy.php',
'Symfony\\Component\\Cache\\Traits\\RedisTrait' => $vendorDir . '/symfony/cache/Traits/RedisTrait.php',
'Symfony\\Component\\ExpressionLanguage\\Compiler' => $vendorDir . '/symfony/expression-language/Compiler.php',
@@ -230,32 +197,5 @@ return array(
'Symfony\\Component\\ExpressionLanguage\\SyntaxError' => $vendorDir . '/symfony/expression-language/SyntaxError.php',
'Symfony\\Component\\ExpressionLanguage\\Token' => $vendorDir . '/symfony/expression-language/Token.php',
'Symfony\\Component\\ExpressionLanguage\\TokenStream' => $vendorDir . '/symfony/expression-language/TokenStream.php',
- 'Symfony\\Component\\VarExporter\\Exception\\ClassNotFoundException' => $vendorDir . '/symfony/var-exporter/Exception/ClassNotFoundException.php',
- 'Symfony\\Component\\VarExporter\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/var-exporter/Exception/ExceptionInterface.php',
- 'Symfony\\Component\\VarExporter\\Exception\\NotInstantiableTypeException' => $vendorDir . '/symfony/var-exporter/Exception/NotInstantiableTypeException.php',
- 'Symfony\\Component\\VarExporter\\Instantiator' => $vendorDir . '/symfony/var-exporter/Instantiator.php',
- 'Symfony\\Component\\VarExporter\\Internal\\Exporter' => $vendorDir . '/symfony/var-exporter/Internal/Exporter.php',
- 'Symfony\\Component\\VarExporter\\Internal\\Hydrator' => $vendorDir . '/symfony/var-exporter/Internal/Hydrator.php',
- 'Symfony\\Component\\VarExporter\\Internal\\Reference' => $vendorDir . '/symfony/var-exporter/Internal/Reference.php',
- 'Symfony\\Component\\VarExporter\\Internal\\Registry' => $vendorDir . '/symfony/var-exporter/Internal/Registry.php',
- 'Symfony\\Component\\VarExporter\\Internal\\Values' => $vendorDir . '/symfony/var-exporter/Internal/Values.php',
- 'Symfony\\Component\\VarExporter\\VarExporter' => $vendorDir . '/symfony/var-exporter/VarExporter.php',
- 'Symfony\\Contracts\\Cache\\CacheInterface' => $vendorDir . '/symfony/cache-contracts/CacheInterface.php',
- 'Symfony\\Contracts\\Cache\\CacheTrait' => $vendorDir . '/symfony/cache-contracts/CacheTrait.php',
- 'Symfony\\Contracts\\Cache\\CallbackInterface' => $vendorDir . '/symfony/cache-contracts/CallbackInterface.php',
- 'Symfony\\Contracts\\Cache\\ItemInterface' => $vendorDir . '/symfony/cache-contracts/ItemInterface.php',
- 'Symfony\\Contracts\\Cache\\TagAwareCacheInterface' => $vendorDir . '/symfony/cache-contracts/TagAwareCacheInterface.php',
- 'Symfony\\Contracts\\Service\\Attribute\\Required' => $vendorDir . '/symfony/service-contracts/Attribute/Required.php',
- 'Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => $vendorDir . '/symfony/service-contracts/Attribute/SubscribedService.php',
- 'Symfony\\Contracts\\Service\\ResetInterface' => $vendorDir . '/symfony/service-contracts/ResetInterface.php',
- 'Symfony\\Contracts\\Service\\ServiceLocatorTrait' => $vendorDir . '/symfony/service-contracts/ServiceLocatorTrait.php',
- 'Symfony\\Contracts\\Service\\ServiceProviderInterface' => $vendorDir . '/symfony/service-contracts/ServiceProviderInterface.php',
- 'Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php',
- 'Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php',
- 'Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => $vendorDir . '/symfony/service-contracts/Test/ServiceLocatorTest.php',
- 'Symfony\\Polyfill\\Php73\\Php73' => $vendorDir . '/symfony/polyfill-php73/Php73.php',
- 'Symfony\\Polyfill\\Php80\\Php80' => $vendorDir . '/symfony/polyfill-php80/Php80.php',
- 'Symfony\\Polyfill\\Php80\\PhpToken' => $vendorDir . '/symfony/polyfill-php80/PhpToken.php',
- 'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
- 'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
+ 'Symfony\\Polyfill\\Apcu\\Apcu' => $vendorDir . '/symfony/polyfill-apcu/Apcu.php',
);
diff --git a/advancedcontentfilter/vendor/composer/autoload_files.php b/advancedcontentfilter/vendor/composer/autoload_files.php
index aafd69e1..a6b8b352 100644
--- a/advancedcontentfilter/vendor/composer/autoload_files.php
+++ b/advancedcontentfilter/vendor/composer/autoload_files.php
@@ -2,12 +2,10 @@
// autoload_files.php @generated by Composer
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
- 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
- '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
- '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php',
+ '32dcc8afd4335739640db7d200c1971d' => $vendorDir . '/symfony/polyfill-apcu/bootstrap.php',
'253c157292f75eb38082b5acb06f3f01' => $vendorDir . '/nikic/fast-route/src/functions.php',
);
diff --git a/advancedcontentfilter/vendor/composer/autoload_namespaces.php b/advancedcontentfilter/vendor/composer/autoload_namespaces.php
index 15a2ff3a..c3cd0229 100644
--- a/advancedcontentfilter/vendor/composer/autoload_namespaces.php
+++ b/advancedcontentfilter/vendor/composer/autoload_namespaces.php
@@ -2,8 +2,9 @@
// autoload_namespaces.php @generated by Composer
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
+ 'Pimple' => array($vendorDir . '/pimple/pimple/src'),
);
diff --git a/advancedcontentfilter/vendor/composer/autoload_psr4.php b/advancedcontentfilter/vendor/composer/autoload_psr4.php
index 4bf247ce..f466cc18 100644
--- a/advancedcontentfilter/vendor/composer/autoload_psr4.php
+++ b/advancedcontentfilter/vendor/composer/autoload_psr4.php
@@ -2,22 +2,19 @@
// autoload_psr4.php @generated by Composer
-$vendorDir = dirname(__DIR__);
+$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
- 'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'),
- 'Symfony\\Polyfill\\Php73\\' => array($vendorDir . '/symfony/polyfill-php73'),
- 'Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'),
- 'Symfony\\Contracts\\Cache\\' => array($vendorDir . '/symfony/cache-contracts'),
- 'Symfony\\Component\\VarExporter\\' => array($vendorDir . '/symfony/var-exporter'),
+ 'Symfony\\Polyfill\\Apcu\\' => array($vendorDir . '/symfony/polyfill-apcu'),
'Symfony\\Component\\ExpressionLanguage\\' => array($vendorDir . '/symfony/expression-language'),
'Symfony\\Component\\Cache\\' => array($vendorDir . '/symfony/cache'),
'Slim\\' => array($vendorDir . '/slim/slim/Slim'),
+ 'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
- 'Psr\\Http\\Server\\' => array($vendorDir . '/psr/http-server-handler/src', $vendorDir . '/psr/http-server-middleware/src'),
- 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src', $vendorDir . '/psr/http-factory/src'),
+ 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'),
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
+ 'Interop\\Container\\' => array($vendorDir . '/container-interop/container-interop/src/Interop/Container'),
'FastRoute\\' => array($vendorDir . '/nikic/fast-route/src'),
);
diff --git a/advancedcontentfilter/vendor/composer/autoload_real.php b/advancedcontentfilter/vendor/composer/autoload_real.php
index b305aa00..6d7169ae 100644
--- a/advancedcontentfilter/vendor/composer/autoload_real.php
+++ b/advancedcontentfilter/vendor/composer/autoload_real.php
@@ -13,38 +13,58 @@ class ComposerAutoloaderInitAdvancedContentFilterAddon
}
}
- /**
- * @return \Composer\Autoload\ClassLoader
- */
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
- require __DIR__ . '/platform_check.php';
-
spl_autoload_register(array('ComposerAutoloaderInitAdvancedContentFilterAddon', 'loadClassLoader'), true, true);
- self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInitAdvancedContentFilterAddon', 'loadClassLoader'));
- require __DIR__ . '/autoload_static.php';
- call_user_func(\Composer\Autoload\ComposerStaticInitAdvancedContentFilterAddon::getInitializer($loader));
+ $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
+ if ($useStaticLoader) {
+ require_once __DIR__ . '/autoload_static.php';
+
+ call_user_func(\Composer\Autoload\ComposerStaticInitAdvancedContentFilterAddon::getInitializer($loader));
+ } else {
+ $map = require __DIR__ . '/autoload_namespaces.php';
+ foreach ($map as $namespace => $path) {
+ $loader->set($namespace, $path);
+ }
+
+ $map = require __DIR__ . '/autoload_psr4.php';
+ foreach ($map as $namespace => $path) {
+ $loader->setPsr4($namespace, $path);
+ }
+
+ $classMap = require __DIR__ . '/autoload_classmap.php';
+ if ($classMap) {
+ $loader->addClassMap($classMap);
+ }
+ }
$loader->register(true);
- $filesToLoad = \Composer\Autoload\ComposerStaticInitAdvancedContentFilterAddon::$files;
- $requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
- if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
- $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
-
- require $file;
- }
- }, null, null);
- foreach ($filesToLoad as $fileIdentifier => $file) {
- $requireFile($fileIdentifier, $file);
+ if ($useStaticLoader) {
+ $includeFiles = Composer\Autoload\ComposerStaticInitAdvancedContentFilterAddon::$files;
+ } else {
+ $includeFiles = require __DIR__ . '/autoload_files.php';
+ }
+ foreach ($includeFiles as $fileIdentifier => $file) {
+ composerRequireAdvancedContentFilterAddon($fileIdentifier, $file);
}
return $loader;
}
}
+
+function composerRequireAdvancedContentFilterAddon($fileIdentifier, $file)
+{
+ if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
+ require $file;
+
+ $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
+ }
+}
diff --git a/advancedcontentfilter/vendor/composer/autoload_static.php b/advancedcontentfilter/vendor/composer/autoload_static.php
index 8cc48b1a..e7c2f8de 100644
--- a/advancedcontentfilter/vendor/composer/autoload_static.php
+++ b/advancedcontentfilter/vendor/composer/autoload_static.php
@@ -7,32 +7,30 @@ namespace Composer\Autoload;
class ComposerStaticInitAdvancedContentFilterAddon
{
public static $files = array (
- 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
- '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
- '0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php',
+ '32dcc8afd4335739640db7d200c1971d' => __DIR__ . '/..' . '/symfony/polyfill-apcu/bootstrap.php',
'253c157292f75eb38082b5acb06f3f01' => __DIR__ . '/..' . '/nikic/fast-route/src/functions.php',
);
public static $prefixLengthsPsr4 = array (
'S' =>
array (
- 'Symfony\\Polyfill\\Php80\\' => 23,
- 'Symfony\\Polyfill\\Php73\\' => 23,
- 'Symfony\\Contracts\\Service\\' => 26,
- 'Symfony\\Contracts\\Cache\\' => 24,
- 'Symfony\\Component\\VarExporter\\' => 30,
+ 'Symfony\\Polyfill\\Apcu\\' => 22,
'Symfony\\Component\\ExpressionLanguage\\' => 37,
'Symfony\\Component\\Cache\\' => 24,
'Slim\\' => 5,
),
'P' =>
array (
+ 'Psr\\SimpleCache\\' => 16,
'Psr\\Log\\' => 8,
- 'Psr\\Http\\Server\\' => 16,
'Psr\\Http\\Message\\' => 17,
'Psr\\Container\\' => 14,
'Psr\\Cache\\' => 10,
),
+ 'I' =>
+ array (
+ 'Interop\\Container\\' => 18,
+ ),
'F' =>
array (
'FastRoute\\' => 10,
@@ -40,25 +38,9 @@ class ComposerStaticInitAdvancedContentFilterAddon
);
public static $prefixDirsPsr4 = array (
- 'Symfony\\Polyfill\\Php80\\' =>
+ 'Symfony\\Polyfill\\Apcu\\' =>
array (
- 0 => __DIR__ . '/..' . '/symfony/polyfill-php80',
- ),
- 'Symfony\\Polyfill\\Php73\\' =>
- array (
- 0 => __DIR__ . '/..' . '/symfony/polyfill-php73',
- ),
- 'Symfony\\Contracts\\Service\\' =>
- array (
- 0 => __DIR__ . '/..' . '/symfony/service-contracts',
- ),
- 'Symfony\\Contracts\\Cache\\' =>
- array (
- 0 => __DIR__ . '/..' . '/symfony/cache-contracts',
- ),
- 'Symfony\\Component\\VarExporter\\' =>
- array (
- 0 => __DIR__ . '/..' . '/symfony/var-exporter',
+ 0 => __DIR__ . '/..' . '/symfony/polyfill-apcu',
),
'Symfony\\Component\\ExpressionLanguage\\' =>
array (
@@ -72,19 +54,17 @@ class ComposerStaticInitAdvancedContentFilterAddon
array (
0 => __DIR__ . '/..' . '/slim/slim/Slim',
),
+ 'Psr\\SimpleCache\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/psr/simple-cache/src',
+ ),
'Psr\\Log\\' =>
array (
0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
),
- 'Psr\\Http\\Server\\' =>
- array (
- 0 => __DIR__ . '/..' . '/psr/http-server-handler/src',
- 1 => __DIR__ . '/..' . '/psr/http-server-middleware/src',
- ),
'Psr\\Http\\Message\\' =>
array (
0 => __DIR__ . '/..' . '/psr/http-message/src',
- 1 => __DIR__ . '/..' . '/psr/http-factory/src',
),
'Psr\\Container\\' =>
array (
@@ -94,15 +74,27 @@ class ComposerStaticInitAdvancedContentFilterAddon
array (
0 => __DIR__ . '/..' . '/psr/cache/src',
),
+ 'Interop\\Container\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/container-interop/container-interop/src/Interop/Container',
+ ),
'FastRoute\\' =>
array (
0 => __DIR__ . '/..' . '/nikic/fast-route/src',
),
);
+ public static $prefixesPsr0 = array (
+ 'P' =>
+ array (
+ 'Pimple' =>
+ array (
+ 0 => __DIR__ . '/..' . '/pimple/pimple/src',
+ ),
+ ),
+ );
+
public static $classMap = array (
- 'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
- 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
'FastRoute\\BadRouteException' => __DIR__ . '/..' . '/nikic/fast-route/src/BadRouteException.php',
'FastRoute\\DataGenerator' => __DIR__ . '/..' . '/nikic/fast-route/src/DataGenerator.php',
'FastRoute\\DataGenerator\\CharCountBased' => __DIR__ . '/..' . '/nikic/fast-route/src/DataGenerator/CharCountBased.php',
@@ -120,8 +112,27 @@ class ComposerStaticInitAdvancedContentFilterAddon
'FastRoute\\RouteCollector' => __DIR__ . '/..' . '/nikic/fast-route/src/RouteCollector.php',
'FastRoute\\RouteParser' => __DIR__ . '/..' . '/nikic/fast-route/src/RouteParser.php',
'FastRoute\\RouteParser\\Std' => __DIR__ . '/..' . '/nikic/fast-route/src/RouteParser/Std.php',
- 'JsonException' => __DIR__ . '/..' . '/symfony/polyfill-php73/Resources/stubs/JsonException.php',
- 'PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php',
+ 'Interop\\Container\\ContainerInterface' => __DIR__ . '/..' . '/container-interop/container-interop/src/Interop/Container/ContainerInterface.php',
+ 'Interop\\Container\\Exception\\ContainerException' => __DIR__ . '/..' . '/container-interop/container-interop/src/Interop/Container/Exception/ContainerException.php',
+ 'Interop\\Container\\Exception\\NotFoundException' => __DIR__ . '/..' . '/container-interop/container-interop/src/Interop/Container/Exception/NotFoundException.php',
+ 'Pimple\\Container' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Container.php',
+ 'Pimple\\Exception\\ExpectedInvokableException' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Exception/ExpectedInvokableException.php',
+ 'Pimple\\Exception\\FrozenServiceException' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Exception/FrozenServiceException.php',
+ 'Pimple\\Exception\\InvalidServiceIdentifierException' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Exception/InvalidServiceIdentifierException.php',
+ 'Pimple\\Exception\\UnknownIdentifierException' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Exception/UnknownIdentifierException.php',
+ 'Pimple\\Psr11\\Container' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Psr11/Container.php',
+ 'Pimple\\Psr11\\ServiceLocator' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Psr11/ServiceLocator.php',
+ 'Pimple\\ServiceIterator' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/ServiceIterator.php',
+ 'Pimple\\ServiceProviderInterface' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/ServiceProviderInterface.php',
+ 'Pimple\\Tests\\Fixtures\\Invokable' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Tests/Fixtures/Invokable.php',
+ 'Pimple\\Tests\\Fixtures\\NonInvokable' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Tests/Fixtures/NonInvokable.php',
+ 'Pimple\\Tests\\Fixtures\\PimpleServiceProvider' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Tests/Fixtures/PimpleServiceProvider.php',
+ 'Pimple\\Tests\\Fixtures\\Service' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Tests/Fixtures/Service.php',
+ 'Pimple\\Tests\\PimpleServiceProviderInterfaceTest' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Tests/PimpleServiceProviderInterfaceTest.php',
+ 'Pimple\\Tests\\PimpleTest' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Tests/PimpleTest.php',
+ 'Pimple\\Tests\\Psr11\\ContainerTest' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Tests/Psr11/ContainerTest.php',
+ 'Pimple\\Tests\\Psr11\\ServiceLocatorTest' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Tests/Psr11/ServiceLocatorTest.php',
+ 'Pimple\\Tests\\ServiceIteratorTest' => __DIR__ . '/..' . '/pimple/pimple/src/Pimple/Tests/ServiceIteratorTest.php',
'Psr\\Cache\\CacheException' => __DIR__ . '/..' . '/psr/cache/src/CacheException.php',
'Psr\\Cache\\CacheItemInterface' => __DIR__ . '/..' . '/psr/cache/src/CacheItemInterface.php',
'Psr\\Cache\\CacheItemPoolInterface' => __DIR__ . '/..' . '/psr/cache/src/CacheItemPoolInterface.php',
@@ -130,20 +141,12 @@ class ComposerStaticInitAdvancedContentFilterAddon
'Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php',
'Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php',
'Psr\\Http\\Message\\MessageInterface' => __DIR__ . '/..' . '/psr/http-message/src/MessageInterface.php',
- 'Psr\\Http\\Message\\RequestFactoryInterface' => __DIR__ . '/..' . '/psr/http-factory/src/RequestFactoryInterface.php',
'Psr\\Http\\Message\\RequestInterface' => __DIR__ . '/..' . '/psr/http-message/src/RequestInterface.php',
- 'Psr\\Http\\Message\\ResponseFactoryInterface' => __DIR__ . '/..' . '/psr/http-factory/src/ResponseFactoryInterface.php',
'Psr\\Http\\Message\\ResponseInterface' => __DIR__ . '/..' . '/psr/http-message/src/ResponseInterface.php',
- 'Psr\\Http\\Message\\ServerRequestFactoryInterface' => __DIR__ . '/..' . '/psr/http-factory/src/ServerRequestFactoryInterface.php',
'Psr\\Http\\Message\\ServerRequestInterface' => __DIR__ . '/..' . '/psr/http-message/src/ServerRequestInterface.php',
- 'Psr\\Http\\Message\\StreamFactoryInterface' => __DIR__ . '/..' . '/psr/http-factory/src/StreamFactoryInterface.php',
'Psr\\Http\\Message\\StreamInterface' => __DIR__ . '/..' . '/psr/http-message/src/StreamInterface.php',
- 'Psr\\Http\\Message\\UploadedFileFactoryInterface' => __DIR__ . '/..' . '/psr/http-factory/src/UploadedFileFactoryInterface.php',
'Psr\\Http\\Message\\UploadedFileInterface' => __DIR__ . '/..' . '/psr/http-message/src/UploadedFileInterface.php',
- 'Psr\\Http\\Message\\UriFactoryInterface' => __DIR__ . '/..' . '/psr/http-factory/src/UriFactoryInterface.php',
'Psr\\Http\\Message\\UriInterface' => __DIR__ . '/..' . '/psr/http-message/src/UriInterface.php',
- 'Psr\\Http\\Server\\MiddlewareInterface' => __DIR__ . '/..' . '/psr/http-server-middleware/src/MiddlewareInterface.php',
- 'Psr\\Http\\Server\\RequestHandlerInterface' => __DIR__ . '/..' . '/psr/http-server-handler/src/RequestHandlerInterface.php',
'Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/AbstractLogger.php',
'Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/Psr/Log/InvalidArgumentException.php',
'Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/Psr/Log/LogLevel.php',
@@ -152,122 +155,83 @@ class ComposerStaticInitAdvancedContentFilterAddon
'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php',
'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php',
'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php',
- 'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/DummyTest.php',
+ 'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
- 'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',
+ 'Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php',
+ 'Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php',
+ 'Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php',
'Slim\\App' => __DIR__ . '/..' . '/slim/slim/Slim/App.php',
'Slim\\CallableResolver' => __DIR__ . '/..' . '/slim/slim/Slim/CallableResolver.php',
- 'Slim\\Error\\AbstractErrorRenderer' => __DIR__ . '/..' . '/slim/slim/Slim/Error/AbstractErrorRenderer.php',
- 'Slim\\Error\\Renderers\\HtmlErrorRenderer' => __DIR__ . '/..' . '/slim/slim/Slim/Error/Renderers/HtmlErrorRenderer.php',
- 'Slim\\Error\\Renderers\\JsonErrorRenderer' => __DIR__ . '/..' . '/slim/slim/Slim/Error/Renderers/JsonErrorRenderer.php',
- 'Slim\\Error\\Renderers\\PlainTextErrorRenderer' => __DIR__ . '/..' . '/slim/slim/Slim/Error/Renderers/PlainTextErrorRenderer.php',
- 'Slim\\Error\\Renderers\\XmlErrorRenderer' => __DIR__ . '/..' . '/slim/slim/Slim/Error/Renderers/XmlErrorRenderer.php',
- 'Slim\\Exception\\HttpBadRequestException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/HttpBadRequestException.php',
- 'Slim\\Exception\\HttpException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/HttpException.php',
- 'Slim\\Exception\\HttpForbiddenException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/HttpForbiddenException.php',
- 'Slim\\Exception\\HttpGoneException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/HttpGoneException.php',
- 'Slim\\Exception\\HttpInternalServerErrorException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/HttpInternalServerErrorException.php',
- 'Slim\\Exception\\HttpMethodNotAllowedException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/HttpMethodNotAllowedException.php',
- 'Slim\\Exception\\HttpNotFoundException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/HttpNotFoundException.php',
- 'Slim\\Exception\\HttpNotImplementedException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/HttpNotImplementedException.php',
- 'Slim\\Exception\\HttpSpecializedException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/HttpSpecializedException.php',
- 'Slim\\Exception\\HttpTooManyRequestsException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/HttpTooManyRequestsException.php',
- 'Slim\\Exception\\HttpUnauthorizedException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/HttpUnauthorizedException.php',
- 'Slim\\Factory\\AppFactory' => __DIR__ . '/..' . '/slim/slim/Slim/Factory/AppFactory.php',
- 'Slim\\Factory\\Psr17\\GuzzlePsr17Factory' => __DIR__ . '/..' . '/slim/slim/Slim/Factory/Psr17/GuzzlePsr17Factory.php',
- 'Slim\\Factory\\Psr17\\HttpSoftPsr17Factory' => __DIR__ . '/..' . '/slim/slim/Slim/Factory/Psr17/HttpSoftPsr17Factory.php',
- 'Slim\\Factory\\Psr17\\LaminasDiactorosPsr17Factory' => __DIR__ . '/..' . '/slim/slim/Slim/Factory/Psr17/LaminasDiactorosPsr17Factory.php',
- 'Slim\\Factory\\Psr17\\NyholmPsr17Factory' => __DIR__ . '/..' . '/slim/slim/Slim/Factory/Psr17/NyholmPsr17Factory.php',
- 'Slim\\Factory\\Psr17\\Psr17Factory' => __DIR__ . '/..' . '/slim/slim/Slim/Factory/Psr17/Psr17Factory.php',
- 'Slim\\Factory\\Psr17\\Psr17FactoryProvider' => __DIR__ . '/..' . '/slim/slim/Slim/Factory/Psr17/Psr17FactoryProvider.php',
- 'Slim\\Factory\\Psr17\\ServerRequestCreator' => __DIR__ . '/..' . '/slim/slim/Slim/Factory/Psr17/ServerRequestCreator.php',
- 'Slim\\Factory\\Psr17\\SlimHttpPsr17Factory' => __DIR__ . '/..' . '/slim/slim/Slim/Factory/Psr17/SlimHttpPsr17Factory.php',
- 'Slim\\Factory\\Psr17\\SlimHttpServerRequestCreator' => __DIR__ . '/..' . '/slim/slim/Slim/Factory/Psr17/SlimHttpServerRequestCreator.php',
- 'Slim\\Factory\\Psr17\\SlimPsr17Factory' => __DIR__ . '/..' . '/slim/slim/Slim/Factory/Psr17/SlimPsr17Factory.php',
- 'Slim\\Factory\\ServerRequestCreatorFactory' => __DIR__ . '/..' . '/slim/slim/Slim/Factory/ServerRequestCreatorFactory.php',
- 'Slim\\Handlers\\ErrorHandler' => __DIR__ . '/..' . '/slim/slim/Slim/Handlers/ErrorHandler.php',
- 'Slim\\Handlers\\Strategies\\RequestHandler' => __DIR__ . '/..' . '/slim/slim/Slim/Handlers/Strategies/RequestHandler.php',
+ 'Slim\\CallableResolverAwareTrait' => __DIR__ . '/..' . '/slim/slim/Slim/CallableResolverAwareTrait.php',
+ 'Slim\\Collection' => __DIR__ . '/..' . '/slim/slim/Slim/Collection.php',
+ 'Slim\\Container' => __DIR__ . '/..' . '/slim/slim/Slim/Container.php',
+ 'Slim\\DefaultServicesProvider' => __DIR__ . '/..' . '/slim/slim/Slim/DefaultServicesProvider.php',
+ 'Slim\\DeferredCallable' => __DIR__ . '/..' . '/slim/slim/Slim/DeferredCallable.php',
+ 'Slim\\Exception\\ContainerException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/ContainerException.php',
+ 'Slim\\Exception\\ContainerValueNotFoundException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/ContainerValueNotFoundException.php',
+ 'Slim\\Exception\\InvalidMethodException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/InvalidMethodException.php',
+ 'Slim\\Exception\\MethodNotAllowedException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/MethodNotAllowedException.php',
+ 'Slim\\Exception\\NotFoundException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/NotFoundException.php',
+ 'Slim\\Exception\\SlimException' => __DIR__ . '/..' . '/slim/slim/Slim/Exception/SlimException.php',
+ 'Slim\\Handlers\\AbstractError' => __DIR__ . '/..' . '/slim/slim/Slim/Handlers/AbstractError.php',
+ 'Slim\\Handlers\\AbstractHandler' => __DIR__ . '/..' . '/slim/slim/Slim/Handlers/AbstractHandler.php',
+ 'Slim\\Handlers\\Error' => __DIR__ . '/..' . '/slim/slim/Slim/Handlers/Error.php',
+ 'Slim\\Handlers\\NotAllowed' => __DIR__ . '/..' . '/slim/slim/Slim/Handlers/NotAllowed.php',
+ 'Slim\\Handlers\\NotFound' => __DIR__ . '/..' . '/slim/slim/Slim/Handlers/NotFound.php',
+ 'Slim\\Handlers\\PhpError' => __DIR__ . '/..' . '/slim/slim/Slim/Handlers/PhpError.php',
'Slim\\Handlers\\Strategies\\RequestResponse' => __DIR__ . '/..' . '/slim/slim/Slim/Handlers/Strategies/RequestResponse.php',
'Slim\\Handlers\\Strategies\\RequestResponseArgs' => __DIR__ . '/..' . '/slim/slim/Slim/Handlers/Strategies/RequestResponseArgs.php',
- 'Slim\\Handlers\\Strategies\\RequestResponseNamedArgs' => __DIR__ . '/..' . '/slim/slim/Slim/Handlers/Strategies/RequestResponseNamedArgs.php',
- 'Slim\\Interfaces\\AdvancedCallableResolverInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/AdvancedCallableResolverInterface.php',
+ 'Slim\\Http\\Body' => __DIR__ . '/..' . '/slim/slim/Slim/Http/Body.php',
+ 'Slim\\Http\\Cookies' => __DIR__ . '/..' . '/slim/slim/Slim/Http/Cookies.php',
+ 'Slim\\Http\\Environment' => __DIR__ . '/..' . '/slim/slim/Slim/Http/Environment.php',
+ 'Slim\\Http\\Headers' => __DIR__ . '/..' . '/slim/slim/Slim/Http/Headers.php',
+ 'Slim\\Http\\Message' => __DIR__ . '/..' . '/slim/slim/Slim/Http/Message.php',
+ 'Slim\\Http\\Request' => __DIR__ . '/..' . '/slim/slim/Slim/Http/Request.php',
+ 'Slim\\Http\\RequestBody' => __DIR__ . '/..' . '/slim/slim/Slim/Http/RequestBody.php',
+ 'Slim\\Http\\Response' => __DIR__ . '/..' . '/slim/slim/Slim/Http/Response.php',
+ 'Slim\\Http\\Stream' => __DIR__ . '/..' . '/slim/slim/Slim/Http/Stream.php',
+ 'Slim\\Http\\UploadedFile' => __DIR__ . '/..' . '/slim/slim/Slim/Http/UploadedFile.php',
+ 'Slim\\Http\\Uri' => __DIR__ . '/..' . '/slim/slim/Slim/Http/Uri.php',
'Slim\\Interfaces\\CallableResolverInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/CallableResolverInterface.php',
- 'Slim\\Interfaces\\DispatcherInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/DispatcherInterface.php',
- 'Slim\\Interfaces\\ErrorHandlerInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/ErrorHandlerInterface.php',
- 'Slim\\Interfaces\\ErrorRendererInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/ErrorRendererInterface.php',
+ 'Slim\\Interfaces\\CollectionInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/CollectionInterface.php',
+ 'Slim\\Interfaces\\Http\\CookiesInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/Http/CookiesInterface.php',
+ 'Slim\\Interfaces\\Http\\EnvironmentInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/Http/EnvironmentInterface.php',
+ 'Slim\\Interfaces\\Http\\HeadersInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/Http/HeadersInterface.php',
'Slim\\Interfaces\\InvocationStrategyInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/InvocationStrategyInterface.php',
- 'Slim\\Interfaces\\MiddlewareDispatcherInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/MiddlewareDispatcherInterface.php',
- 'Slim\\Interfaces\\Psr17FactoryInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/Psr17FactoryInterface.php',
- 'Slim\\Interfaces\\Psr17FactoryProviderInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/Psr17FactoryProviderInterface.php',
- 'Slim\\Interfaces\\RequestHandlerInvocationStrategyInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/RequestHandlerInvocationStrategyInterface.php',
- 'Slim\\Interfaces\\RouteCollectorInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/RouteCollectorInterface.php',
- 'Slim\\Interfaces\\RouteCollectorProxyInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/RouteCollectorProxyInterface.php',
'Slim\\Interfaces\\RouteGroupInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/RouteGroupInterface.php',
'Slim\\Interfaces\\RouteInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/RouteInterface.php',
- 'Slim\\Interfaces\\RouteParserInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/RouteParserInterface.php',
- 'Slim\\Interfaces\\RouteResolverInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/RouteResolverInterface.php',
- 'Slim\\Interfaces\\ServerRequestCreatorInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/ServerRequestCreatorInterface.php',
- 'Slim\\Logger' => __DIR__ . '/..' . '/slim/slim/Slim/Logger.php',
- 'Slim\\MiddlewareDispatcher' => __DIR__ . '/..' . '/slim/slim/Slim/MiddlewareDispatcher.php',
- 'Slim\\Middleware\\BodyParsingMiddleware' => __DIR__ . '/..' . '/slim/slim/Slim/Middleware/BodyParsingMiddleware.php',
- 'Slim\\Middleware\\ContentLengthMiddleware' => __DIR__ . '/..' . '/slim/slim/Slim/Middleware/ContentLengthMiddleware.php',
- 'Slim\\Middleware\\ErrorMiddleware' => __DIR__ . '/..' . '/slim/slim/Slim/Middleware/ErrorMiddleware.php',
- 'Slim\\Middleware\\MethodOverrideMiddleware' => __DIR__ . '/..' . '/slim/slim/Slim/Middleware/MethodOverrideMiddleware.php',
- 'Slim\\Middleware\\OutputBufferingMiddleware' => __DIR__ . '/..' . '/slim/slim/Slim/Middleware/OutputBufferingMiddleware.php',
- 'Slim\\Middleware\\RoutingMiddleware' => __DIR__ . '/..' . '/slim/slim/Slim/Middleware/RoutingMiddleware.php',
- 'Slim\\ResponseEmitter' => __DIR__ . '/..' . '/slim/slim/Slim/ResponseEmitter.php',
- 'Slim\\Routing\\Dispatcher' => __DIR__ . '/..' . '/slim/slim/Slim/Routing/Dispatcher.php',
- 'Slim\\Routing\\FastRouteDispatcher' => __DIR__ . '/..' . '/slim/slim/Slim/Routing/FastRouteDispatcher.php',
- 'Slim\\Routing\\Route' => __DIR__ . '/..' . '/slim/slim/Slim/Routing/Route.php',
- 'Slim\\Routing\\RouteCollector' => __DIR__ . '/..' . '/slim/slim/Slim/Routing/RouteCollector.php',
- 'Slim\\Routing\\RouteCollectorProxy' => __DIR__ . '/..' . '/slim/slim/Slim/Routing/RouteCollectorProxy.php',
- 'Slim\\Routing\\RouteContext' => __DIR__ . '/..' . '/slim/slim/Slim/Routing/RouteContext.php',
- 'Slim\\Routing\\RouteGroup' => __DIR__ . '/..' . '/slim/slim/Slim/Routing/RouteGroup.php',
- 'Slim\\Routing\\RouteParser' => __DIR__ . '/..' . '/slim/slim/Slim/Routing/RouteParser.php',
- 'Slim\\Routing\\RouteResolver' => __DIR__ . '/..' . '/slim/slim/Slim/Routing/RouteResolver.php',
- 'Slim\\Routing\\RouteRunner' => __DIR__ . '/..' . '/slim/slim/Slim/Routing/RouteRunner.php',
- 'Slim\\Routing\\RoutingResults' => __DIR__ . '/..' . '/slim/slim/Slim/Routing/RoutingResults.php',
- 'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
+ 'Slim\\Interfaces\\RouterInterface' => __DIR__ . '/..' . '/slim/slim/Slim/Interfaces/RouterInterface.php',
+ 'Slim\\MiddlewareAwareTrait' => __DIR__ . '/..' . '/slim/slim/Slim/MiddlewareAwareTrait.php',
+ 'Slim\\Routable' => __DIR__ . '/..' . '/slim/slim/Slim/Routable.php',
+ 'Slim\\Route' => __DIR__ . '/..' . '/slim/slim/Slim/Route.php',
+ 'Slim\\RouteGroup' => __DIR__ . '/..' . '/slim/slim/Slim/RouteGroup.php',
+ 'Slim\\Router' => __DIR__ . '/..' . '/slim/slim/Slim/Router.php',
'Symfony\\Component\\Cache\\Adapter\\AbstractAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/AbstractAdapter.php',
- 'Symfony\\Component\\Cache\\Adapter\\AbstractTagAwareAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/AbstractTagAwareAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\AdapterInterface' => __DIR__ . '/..' . '/symfony/cache/Adapter/AdapterInterface.php',
'Symfony\\Component\\Cache\\Adapter\\ApcuAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/ApcuAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\ArrayAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/ArrayAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\ChainAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/ChainAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\DoctrineAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/DoctrineAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\FilesystemAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/FilesystemAdapter.php',
- 'Symfony\\Component\\Cache\\Adapter\\FilesystemTagAwareAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/FilesystemTagAwareAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\MemcachedAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/MemcachedAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\NullAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/NullAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\PdoAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/PdoAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\PhpArrayAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/PhpArrayAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\PhpFilesAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/PhpFilesAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\ProxyAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/ProxyAdapter.php',
- 'Symfony\\Component\\Cache\\Adapter\\Psr16Adapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/Psr16Adapter.php',
'Symfony\\Component\\Cache\\Adapter\\RedisAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/RedisAdapter.php',
- 'Symfony\\Component\\Cache\\Adapter\\RedisTagAwareAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/RedisTagAwareAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\SimpleCacheAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/SimpleCacheAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\TagAwareAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/TagAwareAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\TagAwareAdapterInterface' => __DIR__ . '/..' . '/symfony/cache/Adapter/TagAwareAdapterInterface.php',
'Symfony\\Component\\Cache\\Adapter\\TraceableAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/TraceableAdapter.php',
+ 'Symfony\\Component\\Cache\\Adapter\\TraceableAdapterEvent' => __DIR__ . '/..' . '/symfony/cache/Adapter/TraceableAdapter.php',
'Symfony\\Component\\Cache\\Adapter\\TraceableTagAwareAdapter' => __DIR__ . '/..' . '/symfony/cache/Adapter/TraceableTagAwareAdapter.php',
'Symfony\\Component\\Cache\\CacheItem' => __DIR__ . '/..' . '/symfony/cache/CacheItem.php',
'Symfony\\Component\\Cache\\DataCollector\\CacheDataCollector' => __DIR__ . '/..' . '/symfony/cache/DataCollector/CacheDataCollector.php',
- 'Symfony\\Component\\Cache\\DependencyInjection\\CacheCollectorPass' => __DIR__ . '/..' . '/symfony/cache/DependencyInjection/CacheCollectorPass.php',
- 'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolClearerPass' => __DIR__ . '/..' . '/symfony/cache/DependencyInjection/CachePoolClearerPass.php',
- 'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolPass' => __DIR__ . '/..' . '/symfony/cache/DependencyInjection/CachePoolPass.php',
- 'Symfony\\Component\\Cache\\DependencyInjection\\CachePoolPrunerPass' => __DIR__ . '/..' . '/symfony/cache/DependencyInjection/CachePoolPrunerPass.php',
'Symfony\\Component\\Cache\\DoctrineProvider' => __DIR__ . '/..' . '/symfony/cache/DoctrineProvider.php',
'Symfony\\Component\\Cache\\Exception\\CacheException' => __DIR__ . '/..' . '/symfony/cache/Exception/CacheException.php',
'Symfony\\Component\\Cache\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/cache/Exception/InvalidArgumentException.php',
- 'Symfony\\Component\\Cache\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/cache/Exception/LogicException.php',
- 'Symfony\\Component\\Cache\\LockRegistry' => __DIR__ . '/..' . '/symfony/cache/LockRegistry.php',
- 'Symfony\\Component\\Cache\\Marshaller\\DefaultMarshaller' => __DIR__ . '/..' . '/symfony/cache/Marshaller/DefaultMarshaller.php',
- 'Symfony\\Component\\Cache\\Marshaller\\DeflateMarshaller' => __DIR__ . '/..' . '/symfony/cache/Marshaller/DeflateMarshaller.php',
- 'Symfony\\Component\\Cache\\Marshaller\\MarshallerInterface' => __DIR__ . '/..' . '/symfony/cache/Marshaller/MarshallerInterface.php',
- 'Symfony\\Component\\Cache\\Marshaller\\TagAwareMarshaller' => __DIR__ . '/..' . '/symfony/cache/Marshaller/TagAwareMarshaller.php',
'Symfony\\Component\\Cache\\PruneableInterface' => __DIR__ . '/..' . '/symfony/cache/PruneableInterface.php',
- 'Symfony\\Component\\Cache\\Psr16Cache' => __DIR__ . '/..' . '/symfony/cache/Psr16Cache.php',
'Symfony\\Component\\Cache\\ResettableInterface' => __DIR__ . '/..' . '/symfony/cache/ResettableInterface.php',
'Symfony\\Component\\Cache\\Simple\\AbstractCache' => __DIR__ . '/..' . '/symfony/cache/Simple/AbstractCache.php',
'Symfony\\Component\\Cache\\Simple\\ApcuCache' => __DIR__ . '/..' . '/symfony/cache/Simple/ApcuCache.php',
@@ -283,11 +247,10 @@ class ComposerStaticInitAdvancedContentFilterAddon
'Symfony\\Component\\Cache\\Simple\\Psr6Cache' => __DIR__ . '/..' . '/symfony/cache/Simple/Psr6Cache.php',
'Symfony\\Component\\Cache\\Simple\\RedisCache' => __DIR__ . '/..' . '/symfony/cache/Simple/RedisCache.php',
'Symfony\\Component\\Cache\\Simple\\TraceableCache' => __DIR__ . '/..' . '/symfony/cache/Simple/TraceableCache.php',
- 'Symfony\\Component\\Cache\\Traits\\AbstractAdapterTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/AbstractAdapterTrait.php',
+ 'Symfony\\Component\\Cache\\Simple\\TraceableCacheEvent' => __DIR__ . '/..' . '/symfony/cache/Simple/TraceableCache.php',
'Symfony\\Component\\Cache\\Traits\\AbstractTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/AbstractTrait.php',
'Symfony\\Component\\Cache\\Traits\\ApcuTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/ApcuTrait.php',
'Symfony\\Component\\Cache\\Traits\\ArrayTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/ArrayTrait.php',
- 'Symfony\\Component\\Cache\\Traits\\ContractsTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/ContractsTrait.php',
'Symfony\\Component\\Cache\\Traits\\DoctrineTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/DoctrineTrait.php',
'Symfony\\Component\\Cache\\Traits\\FilesystemCommonTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/FilesystemCommonTrait.php',
'Symfony\\Component\\Cache\\Traits\\FilesystemTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/FilesystemTrait.php',
@@ -296,8 +259,6 @@ class ComposerStaticInitAdvancedContentFilterAddon
'Symfony\\Component\\Cache\\Traits\\PhpArrayTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/PhpArrayTrait.php',
'Symfony\\Component\\Cache\\Traits\\PhpFilesTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/PhpFilesTrait.php',
'Symfony\\Component\\Cache\\Traits\\ProxyTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/ProxyTrait.php',
- 'Symfony\\Component\\Cache\\Traits\\RedisClusterNodeProxy' => __DIR__ . '/..' . '/symfony/cache/Traits/RedisClusterNodeProxy.php',
- 'Symfony\\Component\\Cache\\Traits\\RedisClusterProxy' => __DIR__ . '/..' . '/symfony/cache/Traits/RedisClusterProxy.php',
'Symfony\\Component\\Cache\\Traits\\RedisProxy' => __DIR__ . '/..' . '/symfony/cache/Traits/RedisProxy.php',
'Symfony\\Component\\Cache\\Traits\\RedisTrait' => __DIR__ . '/..' . '/symfony/cache/Traits/RedisTrait.php',
'Symfony\\Component\\ExpressionLanguage\\Compiler' => __DIR__ . '/..' . '/symfony/expression-language/Compiler.php',
@@ -325,34 +286,7 @@ class ComposerStaticInitAdvancedContentFilterAddon
'Symfony\\Component\\ExpressionLanguage\\SyntaxError' => __DIR__ . '/..' . '/symfony/expression-language/SyntaxError.php',
'Symfony\\Component\\ExpressionLanguage\\Token' => __DIR__ . '/..' . '/symfony/expression-language/Token.php',
'Symfony\\Component\\ExpressionLanguage\\TokenStream' => __DIR__ . '/..' . '/symfony/expression-language/TokenStream.php',
- 'Symfony\\Component\\VarExporter\\Exception\\ClassNotFoundException' => __DIR__ . '/..' . '/symfony/var-exporter/Exception/ClassNotFoundException.php',
- 'Symfony\\Component\\VarExporter\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/var-exporter/Exception/ExceptionInterface.php',
- 'Symfony\\Component\\VarExporter\\Exception\\NotInstantiableTypeException' => __DIR__ . '/..' . '/symfony/var-exporter/Exception/NotInstantiableTypeException.php',
- 'Symfony\\Component\\VarExporter\\Instantiator' => __DIR__ . '/..' . '/symfony/var-exporter/Instantiator.php',
- 'Symfony\\Component\\VarExporter\\Internal\\Exporter' => __DIR__ . '/..' . '/symfony/var-exporter/Internal/Exporter.php',
- 'Symfony\\Component\\VarExporter\\Internal\\Hydrator' => __DIR__ . '/..' . '/symfony/var-exporter/Internal/Hydrator.php',
- 'Symfony\\Component\\VarExporter\\Internal\\Reference' => __DIR__ . '/..' . '/symfony/var-exporter/Internal/Reference.php',
- 'Symfony\\Component\\VarExporter\\Internal\\Registry' => __DIR__ . '/..' . '/symfony/var-exporter/Internal/Registry.php',
- 'Symfony\\Component\\VarExporter\\Internal\\Values' => __DIR__ . '/..' . '/symfony/var-exporter/Internal/Values.php',
- 'Symfony\\Component\\VarExporter\\VarExporter' => __DIR__ . '/..' . '/symfony/var-exporter/VarExporter.php',
- 'Symfony\\Contracts\\Cache\\CacheInterface' => __DIR__ . '/..' . '/symfony/cache-contracts/CacheInterface.php',
- 'Symfony\\Contracts\\Cache\\CacheTrait' => __DIR__ . '/..' . '/symfony/cache-contracts/CacheTrait.php',
- 'Symfony\\Contracts\\Cache\\CallbackInterface' => __DIR__ . '/..' . '/symfony/cache-contracts/CallbackInterface.php',
- 'Symfony\\Contracts\\Cache\\ItemInterface' => __DIR__ . '/..' . '/symfony/cache-contracts/ItemInterface.php',
- 'Symfony\\Contracts\\Cache\\TagAwareCacheInterface' => __DIR__ . '/..' . '/symfony/cache-contracts/TagAwareCacheInterface.php',
- 'Symfony\\Contracts\\Service\\Attribute\\Required' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/Required.php',
- 'Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/SubscribedService.php',
- 'Symfony\\Contracts\\Service\\ResetInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ResetInterface.php',
- 'Symfony\\Contracts\\Service\\ServiceLocatorTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceLocatorTrait.php',
- 'Symfony\\Contracts\\Service\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceProviderInterface.php',
- 'Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php',
- 'Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php',
- 'Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => __DIR__ . '/..' . '/symfony/service-contracts/Test/ServiceLocatorTest.php',
- 'Symfony\\Polyfill\\Php73\\Php73' => __DIR__ . '/..' . '/symfony/polyfill-php73/Php73.php',
- 'Symfony\\Polyfill\\Php80\\Php80' => __DIR__ . '/..' . '/symfony/polyfill-php80/Php80.php',
- 'Symfony\\Polyfill\\Php80\\PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/PhpToken.php',
- 'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
- 'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
+ 'Symfony\\Polyfill\\Apcu\\Apcu' => __DIR__ . '/..' . '/symfony/polyfill-apcu/Apcu.php',
);
public static function getInitializer(ClassLoader $loader)
@@ -360,6 +294,7 @@ class ComposerStaticInitAdvancedContentFilterAddon
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInitAdvancedContentFilterAddon::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitAdvancedContentFilterAddon::$prefixDirsPsr4;
+ $loader->prefixesPsr0 = ComposerStaticInitAdvancedContentFilterAddon::$prefixesPsr0;
$loader->classMap = ComposerStaticInitAdvancedContentFilterAddon::$classMap;
}, null, ClassLoader::class);
diff --git a/advancedcontentfilter/vendor/composer/installed.json b/advancedcontentfilter/vendor/composer/installed.json
index 70c2dc41..8e6b80dc 100644
--- a/advancedcontentfilter/vendor/composer/installed.json
+++ b/advancedcontentfilter/vendor/composer/installed.json
@@ -1,1212 +1,640 @@
-{
- "packages": [
- {
- "name": "nikic/fast-route",
- "version": "v1.3.0",
- "version_normalized": "1.3.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/nikic/FastRoute.git",
- "reference": "181d480e08d9476e61381e04a71b34dc0432e812"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812",
- "reference": "181d480e08d9476e61381e04a71b34dc0432e812",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35|~5.7"
- },
- "time": "2018-02-13T20:26:39+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "FastRoute\\": "src/"
- },
- "files": [
- "src/functions.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Nikita Popov",
- "email": "nikic@php.net"
- }
- ],
- "description": "Fast request router for PHP",
- "keywords": [
- "router",
- "routing"
- ],
- "install-path": "../nikic/fast-route"
+[
+ {
+ "name": "container-interop/container-interop",
+ "version": "1.2.0",
+ "version_normalized": "1.2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/container-interop/container-interop.git",
+ "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8"
},
- {
- "name": "psr/cache",
- "version": "1.0.1",
- "version_normalized": "1.0.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/cache.git",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "time": "2016-08-06T20:24:11+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Psr\\Cache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for caching libraries",
- "keywords": [
- "cache",
- "psr",
- "psr-6"
- ],
- "install-path": "../psr/cache"
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8",
+ "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8",
+ "shasum": ""
},
- {
- "name": "psr/container",
- "version": "1.1.2",
- "version_normalized": "1.1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/container.git",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
- "shasum": ""
- },
- "require": {
- "php": ">=7.4.0"
- },
- "time": "2021-11-05T16:50:12+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Psr\\Container\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common Container Interface (PHP FIG PSR-11)",
- "homepage": "https://github.com/php-fig/container",
- "keywords": [
- "PSR-11",
- "container",
- "container-interface",
- "container-interop",
- "psr"
- ],
- "install-path": "../psr/container"
+ "require": {
+ "psr/container": "^1.0"
},
- {
- "name": "psr/http-factory",
- "version": "1.0.2",
- "version_normalized": "1.0.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-factory.git",
- "reference": "e616d01114759c4c489f93b099585439f795fe35"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
- "reference": "e616d01114759c4c489f93b099585439f795fe35",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0.0",
- "psr/http-message": "^1.0 || ^2.0"
- },
- "time": "2023-04-10T20:10:41+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interfaces for PSR-7 HTTP message factories",
- "keywords": [
- "factory",
- "http",
- "message",
- "psr",
- "psr-17",
- "psr-7",
- "request",
- "response"
- ],
- "install-path": "../psr/http-factory"
+ "time": "2017-02-14T19:40:03+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Interop\\Container\\": "src/Interop/Container/"
+ }
},
- {
- "name": "psr/http-message",
- "version": "2.0",
- "version_normalized": "2.0.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-message.git",
- "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
- "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "time": "2023-04-04T09:54:51+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Message\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP messages",
- "homepage": "https://github.com/php-fig/http-message",
- "keywords": [
- "http",
- "http-message",
- "psr",
- "psr-7",
- "request",
- "response"
- ],
- "install-path": "../psr/http-message"
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
+ "homepage": "https://github.com/container-interop/container-interop"
+ },
+ {
+ "name": "nikic/fast-route",
+ "version": "v1.3.0",
+ "version_normalized": "1.3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/FastRoute.git",
+ "reference": "181d480e08d9476e61381e04a71b34dc0432e812"
},
- {
- "name": "psr/http-server-handler",
- "version": "1.0.2",
- "version_normalized": "1.0.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-server-handler.git",
- "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/84c4fb66179be4caaf8e97bd239203245302e7d4",
- "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0",
- "psr/http-message": "^1.0 || ^2.0"
- },
- "time": "2023-04-10T20:06:20+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Server\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP server-side request handler",
- "keywords": [
- "handler",
- "http",
- "http-interop",
- "psr",
- "psr-15",
- "psr-7",
- "request",
- "response",
- "server"
- ],
- "install-path": "../psr/http-server-handler"
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812",
+ "reference": "181d480e08d9476e61381e04a71b34dc0432e812",
+ "shasum": ""
},
- {
- "name": "psr/http-server-middleware",
- "version": "1.0.2",
- "version_normalized": "1.0.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-server-middleware.git",
- "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
- "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0",
- "psr/http-message": "^1.0 || ^2.0",
- "psr/http-server-handler": "^1.0"
- },
- "time": "2023-04-11T06:14:47+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Server\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP server-side middleware",
- "keywords": [
- "http",
- "http-interop",
- "middleware",
- "psr",
- "psr-15",
- "psr-7",
- "request",
- "response"
- ],
- "install-path": "../psr/http-server-middleware"
+ "require": {
+ "php": ">=5.4.0"
},
- {
- "name": "psr/log",
- "version": "1.1.4",
- "version_normalized": "1.1.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/log.git",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "time": "2021-05-03T11:20:27+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1.x-dev"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Psr\\Log\\": "Psr/Log/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for logging libraries",
- "homepage": "https://github.com/php-fig/log",
- "keywords": [
- "log",
- "psr",
- "psr-3"
- ],
- "install-path": "../psr/log"
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35|~5.7"
},
- {
- "name": "slim/slim",
- "version": "4.13.0",
- "version_normalized": "4.13.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/slimphp/Slim.git",
- "reference": "038fd5713d5a41636fdff0e8dcceedecdd17fc17"
+ "time": "2018-02-13T20:26:39+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "FastRoute\\": "src/"
},
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/slimphp/Slim/zipball/038fd5713d5a41636fdff0e8dcceedecdd17fc17",
- "reference": "038fd5713d5a41636fdff0e8dcceedecdd17fc17",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "nikic/fast-route": "^1.3",
- "php": "^7.4 || ^8.0",
- "psr/container": "^1.0 || ^2.0",
- "psr/http-factory": "^1.0",
- "psr/http-message": "^1.1 || ^2.0",
- "psr/http-server-handler": "^1.0",
- "psr/http-server-middleware": "^1.0",
- "psr/log": "^1.1 || ^2.0 || ^3.0"
- },
- "require-dev": {
- "adriansuter/php-autoload-override": "^1.4",
- "ext-simplexml": "*",
- "guzzlehttp/psr7": "^2.6",
- "httpsoft/http-message": "^1.1",
- "httpsoft/http-server-request": "^1.1",
- "laminas/laminas-diactoros": "^2.17 || ^3",
- "nyholm/psr7": "^1.8",
- "nyholm/psr7-server": "^1.1",
- "phpspec/prophecy": "^1.19",
- "phpspec/prophecy-phpunit": "^2.1",
- "phpstan/phpstan": "^1.10",
- "phpunit/phpunit": "^9.6",
- "slim/http": "^1.3",
- "slim/psr7": "^1.6",
- "squizlabs/php_codesniffer": "^3.9"
- },
- "suggest": {
- "ext-simplexml": "Needed to support XML format in BodyParsingMiddleware",
- "ext-xml": "Needed to support XML format in BodyParsingMiddleware",
- "php-di/php-di": "PHP-DI is the recommended container library to be used with Slim",
- "slim/psr7": "Slim PSR-7 implementation. See https://www.slimframework.com/docs/v4/start/installation.html for more information."
- },
- "time": "2024-03-03T21:25:30+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Slim\\": "Slim"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Josh Lockhart",
- "email": "hello@joshlockhart.com",
- "homepage": "https://joshlockhart.com"
- },
- {
- "name": "Andrew Smith",
- "email": "a.smith@silentworks.co.uk",
- "homepage": "http://silentworks.co.uk"
- },
- {
- "name": "Rob Allen",
- "email": "rob@akrabat.com",
- "homepage": "http://akrabat.com"
- },
- {
- "name": "Pierre Berube",
- "email": "pierre@lgse.com",
- "homepage": "http://www.lgse.com"
- },
- {
- "name": "Gabriel Manricks",
- "email": "gmanricks@me.com",
- "homepage": "http://gabrielmanricks.com"
- }
- ],
- "description": "Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs",
- "homepage": "https://www.slimframework.com",
- "keywords": [
- "api",
- "framework",
- "micro",
- "router"
- ],
- "funding": [
- {
- "url": "https://opencollective.com/slimphp",
- "type": "open_collective"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/slim/slim",
- "type": "tidelift"
- }
- ],
- "install-path": "../slim/slim"
+ "files": [
+ "src/functions.php"
+ ]
},
- {
- "name": "symfony/cache",
- "version": "v4.4.48",
- "version_normalized": "4.4.48.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/cache.git",
- "reference": "3b98ed664887ad197b8ede3da2432787212eb915"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/cache/zipball/3b98ed664887ad197b8ede3da2432787212eb915",
- "reference": "3b98ed664887ad197b8ede3da2432787212eb915",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1.3",
- "psr/cache": "^1.0|^2.0",
- "psr/log": "^1|^2|^3",
- "symfony/cache-contracts": "^1.1.7|^2",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2",
- "symfony/var-exporter": "^4.2|^5.0"
- },
- "conflict": {
- "doctrine/dbal": "<2.7",
- "symfony/dependency-injection": "<3.4",
- "symfony/http-kernel": "<4.4|>=5.0",
- "symfony/var-dumper": "<4.4"
- },
- "provide": {
- "psr/cache-implementation": "1.0|2.0",
- "psr/simple-cache-implementation": "1.0|2.0",
- "symfony/cache-implementation": "1.0|2.0"
- },
- "require-dev": {
- "cache/integration-tests": "dev-master",
- "doctrine/cache": "^1.6|^2.0",
- "doctrine/dbal": "^2.7|^3.0",
- "predis/predis": "^1.1",
- "psr/simple-cache": "^1.0|^2.0",
- "symfony/config": "^4.2|^5.0",
- "symfony/dependency-injection": "^3.4|^4.1|^5.0",
- "symfony/filesystem": "^4.4|^5.0",
- "symfony/http-kernel": "^4.4",
- "symfony/var-dumper": "^4.4|^5.0"
- },
- "time": "2022-10-17T20:21:54+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Cache\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides extended PSR-6, PSR-16 (and tags) implementations",
- "homepage": "https://symfony.com",
- "keywords": [
- "caching",
- "psr6"
- ],
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "install-path": "../symfony/cache"
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov",
+ "email": "nikic@php.net"
+ }
+ ],
+ "description": "Fast request router for PHP",
+ "keywords": [
+ "router",
+ "routing"
+ ]
+ },
+ {
+ "name": "pimple/pimple",
+ "version": "v3.2.3",
+ "version_normalized": "3.2.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/silexphp/Pimple.git",
+ "reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32"
},
- {
- "name": "symfony/cache-contracts",
- "version": "v2.5.2",
- "version_normalized": "2.5.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/cache-contracts.git",
- "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
- "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/cache": "^1.0|^2.0|^3.0"
- },
- "suggest": {
- "symfony/cache-implementation": ""
- },
- "time": "2022-01-02T09:53:40+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Symfony\\Contracts\\Cache\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Generic abstractions related to caching",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "install-path": "../symfony/cache-contracts"
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/silexphp/Pimple/zipball/9e403941ef9d65d20cba7d54e29fe906db42cf32",
+ "reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32",
+ "shasum": ""
},
- {
- "name": "symfony/deprecation-contracts",
- "version": "v2.5.2",
- "version_normalized": "2.5.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
- "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "time": "2022-01-02T09:53:40+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "files": [
- "function.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "A generic function and convention to trigger deprecation notices",
- "homepage": "https://symfony.com",
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "install-path": "../symfony/deprecation-contracts"
+ "require": {
+ "php": ">=5.3.0",
+ "psr/container": "^1.0"
},
- {
- "name": "symfony/expression-language",
- "version": "v3.4.47",
- "version_normalized": "3.4.47.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/expression-language.git",
- "reference": "de38e66398fca1fcb9c48e80279910e6889cb28f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/expression-language/zipball/de38e66398fca1fcb9c48e80279910e6889cb28f",
- "reference": "de38e66398fca1fcb9c48e80279910e6889cb28f",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9|>=7.0.8",
- "symfony/cache": "~3.1|~4.0",
- "symfony/polyfill-php70": "~1.6"
- },
- "time": "2020-10-24T10:57:07+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\ExpressionLanguage\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony ExpressionLanguage Component",
- "homepage": "https://symfony.com",
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "install-path": "../symfony/expression-language"
+ "require-dev": {
+ "symfony/phpunit-bridge": "^3.2"
},
- {
- "name": "symfony/polyfill-php70",
- "version": "v1.20.0",
- "version_normalized": "1.20.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php70.git",
- "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644",
- "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "time": "2020-10-23T14:02:19+00:00",
- "type": "metapackage",
- "extra": {
- "branch-alias": {
- "dev-main": "1.20-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "install-path": null
+ "time": "2018-01-21T07:42:36+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.2.x-dev"
+ }
},
- {
- "name": "symfony/polyfill-php73",
- "version": "v1.29.0",
- "version_normalized": "1.29.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "21bd091060673a1177ae842c0ef8fe30893114d2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/21bd091060673a1177ae842c0ef8fe30893114d2",
- "reference": "21bd091060673a1177ae842c0ef8fe30893114d2",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "time": "2024-01-29T20:11:03+00:00",
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php73\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "install-path": "../symfony/polyfill-php73"
+ "installation-source": "dist",
+ "autoload": {
+ "psr-0": {
+ "Pimple": "src/"
+ }
},
- {
- "name": "symfony/polyfill-php80",
- "version": "v1.29.0",
- "version_normalized": "1.29.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
- "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "time": "2024-01-29T20:11:03+00:00",
- "type": "library",
- "extra": {
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "install-path": "../symfony/polyfill-php80"
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "Pimple, a simple Dependency Injection Container",
+ "homepage": "http://pimple.sensiolabs.org",
+ "keywords": [
+ "container",
+ "dependency injection"
+ ]
+ },
+ {
+ "name": "psr/cache",
+ "version": "1.0.1",
+ "version_normalized": "1.0.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/cache.git",
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
},
- {
- "name": "symfony/service-contracts",
- "version": "v2.5.2",
- "version_normalized": "2.5.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/service-contracts.git",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/container": "^1.1",
- "symfony/deprecation-contracts": "^2.1|^3"
- },
- "conflict": {
- "ext-psr": "<1.1|>=2"
- },
- "suggest": {
- "symfony/service-implementation": ""
- },
- "time": "2022-05-30T19:17:29+00:00",
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Symfony\\Contracts\\Service\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Generic abstractions related to writing services",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "install-path": "../symfony/service-contracts"
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "shasum": ""
},
- {
- "name": "symfony/var-exporter",
- "version": "v5.4.35",
- "version_normalized": "5.4.35.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/var-exporter.git",
- "reference": "abb0a151b62d6b07e816487e20040464af96cae7"
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "time": "2016-08-06T20:24:11+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for caching libraries",
+ "keywords": [
+ "cache",
+ "psr",
+ "psr-6"
+ ]
+ },
+ {
+ "name": "psr/container",
+ "version": "1.0.0",
+ "version_normalized": "1.0.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "time": "2017-02-14T16:28:37+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ]
+ },
+ {
+ "name": "psr/http-message",
+ "version": "1.0.1",
+ "version_normalized": "1.0.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "time": "2016-08-06T14:39:51+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP messages",
+ "homepage": "https://github.com/php-fig/http-message",
+ "keywords": [
+ "http",
+ "http-message",
+ "psr",
+ "psr-7",
+ "request",
+ "response"
+ ]
+ },
+ {
+ "name": "psr/log",
+ "version": "1.0.2",
+ "version_normalized": "1.0.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "time": "2016-10-10T12:19:37+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ]
+ },
+ {
+ "name": "psr/simple-cache",
+ "version": "1.0.1",
+ "version_normalized": "1.0.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "time": "2017-10-23T01:57:42+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Psr\\SimpleCache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for simple caching",
+ "keywords": [
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
+ ]
+ },
+ {
+ "name": "slim/slim",
+ "version": "3.9.2",
+ "version_normalized": "3.9.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/slimphp/Slim.git",
+ "reference": "4086d0106cf5a7135c69fce4161fe355a8feb118"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/slimphp/Slim/zipball/4086d0106cf5a7135c69fce4161fe355a8feb118",
+ "reference": "4086d0106cf5a7135c69fce4161fe355a8feb118",
+ "shasum": ""
+ },
+ "require": {
+ "container-interop/container-interop": "^1.2",
+ "nikic/fast-route": "^1.0",
+ "php": ">=5.5.0",
+ "pimple/pimple": "^3.0",
+ "psr/container": "^1.0",
+ "psr/http-message": "^1.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.0",
+ "squizlabs/php_codesniffer": "^2.5"
+ },
+ "time": "2017-11-26T19:13:09+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Slim\\": "Slim"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Rob Allen",
+ "email": "rob@akrabat.com",
+ "homepage": "http://akrabat.com"
},
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/abb0a151b62d6b07e816487e20040464af96cae7",
- "reference": "abb0a151b62d6b07e816487e20040464af96cae7",
- "shasum": ""
+ {
+ "name": "Josh Lockhart",
+ "email": "hello@joshlockhart.com",
+ "homepage": "https://joshlockhart.com"
},
- "require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
+ {
+ "name": "Gabriel Manricks",
+ "email": "gmanricks@me.com",
+ "homepage": "http://gabrielmanricks.com"
},
- "require-dev": {
- "symfony/var-dumper": "^4.4.9|^5.0.9|^6.0"
+ {
+ "name": "Andrew Smith",
+ "email": "a.smith@silentworks.co.uk",
+ "homepage": "http://silentworks.co.uk"
+ }
+ ],
+ "description": "Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs",
+ "homepage": "https://slimframework.com",
+ "keywords": [
+ "api",
+ "framework",
+ "micro",
+ "router"
+ ]
+ },
+ {
+ "name": "symfony/cache",
+ "version": "v3.4.8",
+ "version_normalized": "3.4.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/cache.git",
+ "reference": "13255ddd056e49f3154747943f8ee175d555d394"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/13255ddd056e49f3154747943f8ee175d555d394",
+ "reference": "13255ddd056e49f3154747943f8ee175d555d394",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5.9|>=7.0.8",
+ "psr/cache": "~1.0",
+ "psr/log": "~1.0",
+ "psr/simple-cache": "^1.0",
+ "symfony/polyfill-apcu": "~1.1"
+ },
+ "conflict": {
+ "symfony/var-dumper": "<3.3"
+ },
+ "provide": {
+ "psr/cache-implementation": "1.0",
+ "psr/simple-cache-implementation": "1.0"
+ },
+ "require-dev": {
+ "cache/integration-tests": "dev-master",
+ "doctrine/cache": "~1.6",
+ "doctrine/dbal": "~2.4",
+ "predis/predis": "~1.0"
+ },
+ "time": "2018-04-02T14:35:16+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.4-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Cache\\": ""
},
- "time": "2024-01-23T13:51:25+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\VarExporter\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Allows exporting any serializable PHP data structure to plain PHP code",
- "homepage": "https://symfony.com",
- "keywords": [
- "clone",
- "construct",
- "export",
- "hydrate",
- "instantiate",
- "serialize"
- ],
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "install-path": "../symfony/var-exporter"
- }
- ],
- "dev": false,
- "dev-package-names": []
-}
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Cache component with PSR-6, PSR-16, and tags",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "caching",
+ "psr6"
+ ]
+ },
+ {
+ "name": "symfony/expression-language",
+ "version": "v3.4.8",
+ "version_normalized": "3.4.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/expression-language.git",
+ "reference": "867e4d1f5d4e52435a8ffff6b24fd6a801582241"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/expression-language/zipball/867e4d1f5d4e52435a8ffff6b24fd6a801582241",
+ "reference": "867e4d1f5d4e52435a8ffff6b24fd6a801582241",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5.9|>=7.0.8",
+ "symfony/cache": "~3.1|~4.0"
+ },
+ "time": "2018-01-03T07:37:34+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.4-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\ExpressionLanguage\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony ExpressionLanguage Component",
+ "homepage": "https://symfony.com"
+ },
+ {
+ "name": "symfony/polyfill-apcu",
+ "version": "v1.7.0",
+ "version_normalized": "1.7.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-apcu.git",
+ "reference": "e8ae2136ddb53dea314df56fcd88e318ab936c00"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/e8ae2136ddb53dea314df56fcd88e318ab936c00",
+ "reference": "e8ae2136ddb53dea314df56fcd88e318ab936c00",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "time": "2018-01-30T19:27:44+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.7-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Apcu\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting apcu_* functions to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "apcu",
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ]
+ }
+]
diff --git a/advancedcontentfilter/vendor/composer/installed.php b/advancedcontentfilter/vendor/composer/installed.php
deleted file mode 100644
index 010b1da9..00000000
--- a/advancedcontentfilter/vendor/composer/installed.php
+++ /dev/null
@@ -1,203 +0,0 @@
- array(
- 'name' => 'friendica-addons/advancedcontentfilter',
- 'pretty_version' => 'dev-develop',
- 'version' => 'dev-develop',
- 'reference' => 'feb7722f723b21e76fdf20a7ce4b42fa5ffcdcb9',
- 'type' => 'friendica-addon',
- 'install_path' => __DIR__ . '/../../',
- 'aliases' => array(),
- 'dev' => false,
- ),
- 'versions' => array(
- 'friendica-addons/advancedcontentfilter' => array(
- 'pretty_version' => 'dev-develop',
- 'version' => 'dev-develop',
- 'reference' => 'feb7722f723b21e76fdf20a7ce4b42fa5ffcdcb9',
- 'type' => 'friendica-addon',
- 'install_path' => __DIR__ . '/../../',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'nikic/fast-route' => array(
- 'pretty_version' => 'v1.3.0',
- 'version' => '1.3.0.0',
- 'reference' => '181d480e08d9476e61381e04a71b34dc0432e812',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../nikic/fast-route',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'psr/cache' => array(
- 'pretty_version' => '1.0.1',
- 'version' => '1.0.1.0',
- 'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../psr/cache',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'psr/cache-implementation' => array(
- 'dev_requirement' => false,
- 'provided' => array(
- 0 => '1.0|2.0',
- ),
- ),
- 'psr/container' => array(
- 'pretty_version' => '1.1.2',
- 'version' => '1.1.2.0',
- 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../psr/container',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'psr/http-factory' => array(
- 'pretty_version' => '1.0.2',
- 'version' => '1.0.2.0',
- 'reference' => 'e616d01114759c4c489f93b099585439f795fe35',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../psr/http-factory',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'psr/http-message' => array(
- 'pretty_version' => '2.0',
- 'version' => '2.0.0.0',
- 'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../psr/http-message',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'psr/http-server-handler' => array(
- 'pretty_version' => '1.0.2',
- 'version' => '1.0.2.0',
- 'reference' => '84c4fb66179be4caaf8e97bd239203245302e7d4',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../psr/http-server-handler',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'psr/http-server-middleware' => array(
- 'pretty_version' => '1.0.2',
- 'version' => '1.0.2.0',
- 'reference' => 'c1481f747daaa6a0782775cd6a8c26a1bf4a3829',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../psr/http-server-middleware',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'psr/log' => array(
- 'pretty_version' => '1.1.4',
- 'version' => '1.1.4.0',
- 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../psr/log',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'psr/simple-cache-implementation' => array(
- 'dev_requirement' => false,
- 'provided' => array(
- 0 => '1.0|2.0',
- ),
- ),
- 'slim/slim' => array(
- 'pretty_version' => '4.13.0',
- 'version' => '4.13.0.0',
- 'reference' => '038fd5713d5a41636fdff0e8dcceedecdd17fc17',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../slim/slim',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'symfony/cache' => array(
- 'pretty_version' => 'v4.4.48',
- 'version' => '4.4.48.0',
- 'reference' => '3b98ed664887ad197b8ede3da2432787212eb915',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../symfony/cache',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'symfony/cache-contracts' => array(
- 'pretty_version' => 'v2.5.2',
- 'version' => '2.5.2.0',
- 'reference' => '64be4a7acb83b6f2bf6de9a02cee6dad41277ebc',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../symfony/cache-contracts',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'symfony/cache-implementation' => array(
- 'dev_requirement' => false,
- 'provided' => array(
- 0 => '1.0|2.0',
- ),
- ),
- 'symfony/deprecation-contracts' => array(
- 'pretty_version' => 'v2.5.2',
- 'version' => '2.5.2.0',
- 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'symfony/expression-language' => array(
- 'pretty_version' => 'v3.4.47',
- 'version' => '3.4.47.0',
- 'reference' => 'de38e66398fca1fcb9c48e80279910e6889cb28f',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../symfony/expression-language',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'symfony/polyfill-php70' => array(
- 'pretty_version' => 'v1.20.0',
- 'version' => '1.20.0.0',
- 'reference' => '5f03a781d984aae42cebd18e7912fa80f02ee644',
- 'type' => 'metapackage',
- 'install_path' => null,
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'symfony/polyfill-php73' => array(
- 'pretty_version' => 'v1.29.0',
- 'version' => '1.29.0.0',
- 'reference' => '21bd091060673a1177ae842c0ef8fe30893114d2',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../symfony/polyfill-php73',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'symfony/polyfill-php80' => array(
- 'pretty_version' => 'v1.29.0',
- 'version' => '1.29.0.0',
- 'reference' => '87b68208d5c1188808dd7839ee1e6c8ec3b02f1b',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../symfony/polyfill-php80',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'symfony/service-contracts' => array(
- 'pretty_version' => 'v2.5.2',
- 'version' => '2.5.2.0',
- 'reference' => '4b426aac47d6427cc1a1d0f7e2ac724627f5966c',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../symfony/service-contracts',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- 'symfony/var-exporter' => array(
- 'pretty_version' => 'v5.4.35',
- 'version' => '5.4.35.0',
- 'reference' => 'abb0a151b62d6b07e816487e20040464af96cae7',
- 'type' => 'library',
- 'install_path' => __DIR__ . '/../symfony/var-exporter',
- 'aliases' => array(),
- 'dev_requirement' => false,
- ),
- ),
-);
diff --git a/advancedcontentfilter/vendor/composer/platform_check.php b/advancedcontentfilter/vendor/composer/platform_check.php
deleted file mode 100644
index 580fa960..00000000
--- a/advancedcontentfilter/vendor/composer/platform_check.php
+++ /dev/null
@@ -1,26 +0,0 @@
-= 70400)) {
- $issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.';
-}
-
-if ($issues) {
- if (!headers_sent()) {
- header('HTTP/1.1 500 Internal Server Error');
- }
- if (!ini_get('display_errors')) {
- if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
- fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
- } elseif (!headers_sent()) {
- echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
- }
- }
- trigger_error(
- 'Composer detected issues in your platform: ' . implode(' ', $issues),
- E_USER_ERROR
- );
-}
diff --git a/advancedcontentfilter/vendor/container-interop/container-interop/.gitignore b/advancedcontentfilter/vendor/container-interop/container-interop/.gitignore
new file mode 100644
index 00000000..b2395aa0
--- /dev/null
+++ b/advancedcontentfilter/vendor/container-interop/container-interop/.gitignore
@@ -0,0 +1,3 @@
+composer.lock
+composer.phar
+/vendor/
diff --git a/advancedcontentfilter/vendor/container-interop/container-interop/LICENSE b/advancedcontentfilter/vendor/container-interop/container-interop/LICENSE
new file mode 100644
index 00000000..7671d902
--- /dev/null
+++ b/advancedcontentfilter/vendor/container-interop/container-interop/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2013 container-interop
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/advancedcontentfilter/vendor/container-interop/container-interop/README.md b/advancedcontentfilter/vendor/container-interop/container-interop/README.md
new file mode 100644
index 00000000..cdd7a44c
--- /dev/null
+++ b/advancedcontentfilter/vendor/container-interop/container-interop/README.md
@@ -0,0 +1,148 @@
+# Container Interoperability
+
+[](https://packagist.org/packages/container-interop/container-interop)
+[](https://packagist.org/packages/container-interop/container-interop)
+
+## Deprecation warning!
+
+Starting Feb. 13th 2017, container-interop is officially deprecated in favor of [PSR-11](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-11-container.md).
+Container-interop has been the test-bed of PSR-11. From v1.2, container-interop directly extends PSR-11 interfaces.
+Therefore, all containers implementing container-interop are now *de-facto* compatible with PSR-11.
+
+- Projects implementing container-interop interfaces are encouraged to directly implement PSR-11 interfaces instead.
+- Projects consuming container-interop interfaces are very strongly encouraged to directly type-hint on PSR-11 interfaces, in order to be compatible with PSR-11 containers that are not compatible with container-interop.
+
+Regarding the delegate lookup feature, that is present in container-interop and not in PSR-11, the feature is actually a design pattern. It is therefore not deprecated. Documentation regarding this design pattern will be migrated from this repository into a separate website in the future.
+
+## About
+
+*container-interop* tries to identify and standardize features in *container* objects (service locators,
+dependency injection containers, etc.) to achieve interoperability.
+
+Through discussions and trials, we try to create a standard, made of common interfaces but also recommendations.
+
+If PHP projects that provide container implementations begin to adopt these common standards, then PHP
+applications and projects that use containers can depend on the common interfaces instead of specific
+implementations. This facilitates a high-level of interoperability and flexibility that allows users to consume
+*any* container implementation that can be adapted to these interfaces.
+
+The work done in this project is not officially endorsed by the [PHP-FIG](http://www.php-fig.org/), but it is being
+worked on by members of PHP-FIG and other good developers. We adhere to the spirit and ideals of PHP-FIG, and hope
+this project will pave the way for one or more future PSRs.
+
+
+## Installation
+
+You can install this package through Composer:
+
+```json
+composer require container-interop/container-interop
+```
+
+The packages adheres to the [SemVer](http://semver.org/) specification, and there will be full backward compatibility
+between minor versions.
+
+## Standards
+
+### Available
+
+- [`ContainerInterface`](src/Interop/Container/ContainerInterface.php).
+[Description](docs/ContainerInterface.md) [Meta Document](docs/ContainerInterface-meta.md).
+Describes the interface of a container that exposes methods to read its entries.
+- [*Delegate lookup feature*](docs/Delegate-lookup.md).
+[Meta Document](docs/Delegate-lookup-meta.md).
+Describes the ability for a container to delegate the lookup of its dependencies to a third-party container. This
+feature lets several containers work together in a single application.
+
+### Proposed
+
+View open [request for comments](https://github.com/container-interop/container-interop/labels/RFC)
+
+## Compatible projects
+
+### Projects implementing `ContainerInterface`
+
+- [Acclimate](https://github.com/jeremeamia/acclimate-container): Adapters for
+ Aura.Di, Laravel, Nette DI, Pimple, Symfony DI, ZF2 Service manager, ZF2
+ Dependency injection and any container using `ArrayAccess`
+- [Aura.Di](https://github.com/auraphp/Aura.Di)
+- [auryn-container-interop](https://github.com/elazar/auryn-container-interop)
+- [Burlap](https://github.com/codeeverything/burlap)
+- [Chernozem](https://github.com/pyrsmk/Chernozem)
+- [Data Manager](https://github.com/chrismichaels84/data-manager)
+- [Disco](https://github.com/bitexpert/disco)
+- [InDI](https://github.com/idealogica/indi)
+- [League/Container](http://container.thephpleague.com/)
+- [Mouf](http://mouf-php.com)
+- [Njasm Container](https://github.com/njasm/container)
+- [PHP-DI](http://php-di.org)
+- [Picotainer](https://github.com/thecodingmachine/picotainer)
+- [PimpleInterop](https://github.com/moufmouf/pimple-interop)
+- [Pimple3-ContainerInterop](https://github.com/Sam-Burns/pimple3-containerinterop) (using Pimple v3)
+- [SitePoint Container](https://github.com/sitepoint/Container)
+- [Thruster Container](https://github.com/ThrusterIO/container) (PHP7 only)
+- [Ultra-Lite Container](https://github.com/ultra-lite/container)
+- [Unbox](https://github.com/mindplay-dk/unbox)
+- [XStatic](https://github.com/jeremeamia/xstatic)
+- [Zend\ServiceManager](https://github.com/zendframework/zend-servicemanager)
+- [Zit](https://github.com/inxilpro/Zit)
+
+### Projects implementing the *delegate lookup* feature
+
+- [Aura.Di](https://github.com/auraphp/Aura.Di)
+- [Burlap](https://github.com/codeeverything/burlap)
+- [Chernozem](https://github.com/pyrsmk/Chernozem)
+- [InDI](https://github.com/idealogica/indi)
+- [League/Container](http://container.thephpleague.com/)
+- [Mouf](http://mouf-php.com)
+- [Picotainer](https://github.com/thecodingmachine/picotainer)
+- [PHP-DI](http://php-di.org)
+- [PimpleInterop](https://github.com/moufmouf/pimple-interop)
+- [Ultra-Lite Container](https://github.com/ultra-lite/container)
+
+### Middlewares implementing `ContainerInterface`
+
+- [Alias-Container](https://github.com/thecodingmachine/alias-container): add
+ aliases support to any container
+- [Prefixer-Container](https://github.com/thecodingmachine/prefixer-container):
+ dynamically prefix identifiers
+- [Lazy-Container](https://github.com/snapshotpl/lazy-container): lazy services
+
+### Projects using `ContainerInterface`
+
+The list below contains only a sample of all the projects consuming `ContainerInterface`. For a more complete list have a look [here](http://packanalyst.com/class?q=Interop%5CContainer%5CContainerInterface).
+
+| | Downloads |
+| --- | --- |
+| [Adroit](https://github.com/bitexpert/adroit) |  |
+| [Behat](https://github.com/Behat/Behat/pull/974) |  |
+| [blast-facades](https://github.com/phpthinktank/blast-facades): Minimize complexity and represent dependencies as facades. |  |
+| [interop.silex.di](https://github.com/thecodingmachine/interop.silex.di): an extension to [Silex](http://silex.sensiolabs.org/) that adds support for any *container-interop* compatible container |  |
+| [mindplay/walkway](https://github.com/mindplay-dk/walkway): a modular request router |  |
+| [mindplay/middleman](https://github.com/mindplay-dk/middleman): minimalist PSR-7 middleware dispatcher |  |
+| [PHP-DI/Invoker](https://github.com/PHP-DI/Invoker): extensible and configurable invoker/dispatcher |  |
+| [Prophiler](https://github.com/fabfuel/prophiler) |  |
+| [Silly](https://github.com/mnapoli/silly): CLI micro-framework |  |
+| [Slim v3](https://github.com/slimphp/Slim) |  |
+| [Splash](http://mouf-php.com/packages/mouf/mvc.splash-common/version/8.0-dev/README.md) |  |
+| [Woohoo Labs. Harmony](https://github.com/woohoolabs/harmony): a flexible micro-framework |  |
+| [zend-expressive](https://github.com/zendframework/zend-expressive) |  |
+
+
+## Workflow
+
+Everyone is welcome to join and contribute.
+
+The general workflow looks like this:
+
+1. Someone opens a discussion (GitHub issue) to suggest an interface
+1. Feedback is gathered
+1. The interface is added to a development branch
+1. We release alpha versions so that the interface can be experimented with
+1. Discussions and edits ensue until the interface is deemed stable by a general consensus
+1. A new minor version of the package is released
+
+We try to not break BC by creating new interfaces instead of editing existing ones.
+
+While we currently work on interfaces, we are open to anything that might help towards interoperability, may that
+be code, best practices, etc.
diff --git a/advancedcontentfilter/vendor/container-interop/container-interop/composer.json b/advancedcontentfilter/vendor/container-interop/container-interop/composer.json
new file mode 100644
index 00000000..855f7667
--- /dev/null
+++ b/advancedcontentfilter/vendor/container-interop/container-interop/composer.json
@@ -0,0 +1,15 @@
+{
+ "name": "container-interop/container-interop",
+ "type": "library",
+ "description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
+ "homepage": "https://github.com/container-interop/container-interop",
+ "license": "MIT",
+ "autoload": {
+ "psr-4": {
+ "Interop\\Container\\": "src/Interop/Container/"
+ }
+ },
+ "require": {
+ "psr/container": "^1.0"
+ }
+}
diff --git a/advancedcontentfilter/vendor/container-interop/container-interop/docs/ContainerInterface-meta.md b/advancedcontentfilter/vendor/container-interop/container-interop/docs/ContainerInterface-meta.md
new file mode 100644
index 00000000..59f3d559
--- /dev/null
+++ b/advancedcontentfilter/vendor/container-interop/container-interop/docs/ContainerInterface-meta.md
@@ -0,0 +1,114 @@
+# ContainerInterface Meta Document
+
+## Introduction
+
+This document describes the process and discussions that lead to the `ContainerInterface`.
+Its goal is to explain the reasons behind each decision.
+
+## Goal
+
+The goal set by `ContainerInterface` is to standardize how frameworks and libraries make use of a
+container to obtain objects and parameters.
+
+By standardizing such a behavior, frameworks and libraries using the `ContainerInterface`
+could work with any compatible container.
+That would allow end users to choose their own container based on their own preferences.
+
+It is important to distinguish the two usages of a container:
+
+- configuring entries
+- fetching entries
+
+Most of the time, those two sides are not used by the same party.
+While it is often end users who tend to configure entries, it is generally the framework that fetch
+entries to build the application.
+
+This is why this interface focuses only on how entries can be fetched from a container.
+
+## Interface name
+
+The interface name has been thoroughly discussed and was decided by a vote.
+
+The list of options considered with their respective votes are:
+
+- `ContainerInterface`: +8
+- `ProviderInterface`: +2
+- `LocatorInterface`: 0
+- `ReadableContainerInterface`: -5
+- `ServiceLocatorInterface`: -6
+- `ObjectFactory`: -6
+- `ObjectStore`: -8
+- `ConsumerInterface`: -9
+
+[Full results of the vote](https://github.com/container-interop/container-interop/wiki/%231-interface-name:-Vote)
+
+The complete discussion can be read in [the issue #1](https://github.com/container-interop/container-interop/issues/1).
+
+## Interface methods
+
+The choice of which methods the interface would contain was made after a statistical analysis of existing containers.
+The results of this analysis are available [in this document](https://gist.github.com/mnapoli/6159681).
+
+The summary of the analysis showed that:
+
+- all containers offer a method to get an entry by its id
+- a large majority name such method `get()`
+- for all containers, the `get()` method has 1 mandatory parameter of type string
+- some containers have an optional additional argument for `get()`, but it doesn't have the same purpose between containers
+- a large majority of the containers offer a method to test if it can return an entry by its id
+- a majority name such method `has()`
+- for all containers offering `has()`, the method has exactly 1 parameter of type string
+- a large majority of the containers throw an exception rather than returning null when an entry is not found in `get()`
+- a large majority of the containers don't implement `ArrayAccess`
+
+The question of whether to include methods to define entries has been discussed in
+[issue #1](https://github.com/container-interop/container-interop/issues/1).
+It has been judged that such methods do not belong in the interface described here because it is out of its scope
+(see the "Goal" section).
+
+As a result, the `ContainerInterface` contains two methods:
+
+- `get()`, returning anything, with one mandatory string parameter. Should throw an exception if the entry is not found.
+- `has()`, returning a boolean, with one mandatory string parameter.
+
+### Number of parameters in `get()` method
+
+While `ContainerInterface` only defines one mandatory parameter in `get()`, it is not incompatible with
+existing containers that have additional optional parameters. PHP allows an implementation to offer more parameters
+as long as they are optional, because the implementation *does* satisfy the interface.
+
+This issue has been discussed in [issue #6](https://github.com/container-interop/container-interop/issues/6).
+
+### Type of the `$id` parameter
+
+The type of the `$id` parameter in `get()` and `has()` has been discussed in
+[issue #6](https://github.com/container-interop/container-interop/issues/6).
+While `string` is used in all the containers that were analyzed, it was suggested that allowing
+anything (such as objects) could allow containers to offer a more advanced query API.
+
+An example given was to use the container as an object builder. The `$id` parameter would then be an
+object that would describe how to create an instance.
+
+The conclusion of the discussion was that this was beyond the scope of getting entries from a container without
+knowing how the container provided them, and it was more fit for a factory.
+
+## Contributors
+
+Are listed here all people that contributed in the discussions or votes, by alphabetical order:
+
+- [Amy Stephen](https://github.com/AmyStephen)
+- [David Négrier](https://github.com/moufmouf)
+- [Don Gilbert](https://github.com/dongilbert)
+- [Jason Judge](https://github.com/judgej)
+- [Jeremy Lindblom](https://github.com/jeremeamia)
+- [Marco Pivetta](https://github.com/Ocramius)
+- [Matthieu Napoli](https://github.com/mnapoli)
+- [Paul M. Jones](https://github.com/pmjones)
+- [Stephan Hochdörfer](https://github.com/shochdoerfer)
+- [Taylor Otwell](https://github.com/taylorotwell)
+
+## Relevant links
+
+- [`ContainerInterface.php`](https://github.com/container-interop/container-interop/blob/master/src/Interop/Container/ContainerInterface.php)
+- [List of all issues](https://github.com/container-interop/container-interop/issues?labels=ContainerInterface&milestone=&page=1&state=closed)
+- [Vote for the interface name](https://github.com/container-interop/container-interop/wiki/%231-interface-name:-Vote)
diff --git a/advancedcontentfilter/vendor/container-interop/container-interop/docs/ContainerInterface.md b/advancedcontentfilter/vendor/container-interop/container-interop/docs/ContainerInterface.md
new file mode 100644
index 00000000..bda973d6
--- /dev/null
+++ b/advancedcontentfilter/vendor/container-interop/container-interop/docs/ContainerInterface.md
@@ -0,0 +1,158 @@
+Container interface
+===================
+
+This document describes a common interface for dependency injection containers.
+
+The goal set by `ContainerInterface` is to standardize how frameworks and libraries make use of a
+container to obtain objects and parameters (called *entries* in the rest of this document).
+
+The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
+"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
+interpreted as described in [RFC 2119][].
+
+The word `implementor` in this document is to be interpreted as someone
+implementing the `ContainerInterface` in a dependency injection-related library or framework.
+Users of dependency injections containers (DIC) are referred to as `user`.
+
+[RFC 2119]: http://tools.ietf.org/html/rfc2119
+
+1. Specification
+-----------------
+
+### 1.1 Basics
+
+- The `Interop\Container\ContainerInterface` exposes two methods : `get` and `has`.
+
+- `get` takes one mandatory parameter: an entry identifier. It MUST be a string.
+ A call to `get` can return anything (a *mixed* value), or throws an exception if the identifier
+ is not known to the container. Two successive calls to `get` with the same
+ identifier SHOULD return the same value. However, depending on the `implementor`
+ design and/or `user` configuration, different values might be returned, so
+ `user` SHOULD NOT rely on getting the same value on 2 successive calls.
+ While `ContainerInterface` only defines one mandatory parameter in `get()`, implementations
+ MAY accept additional optional parameters.
+
+- `has` takes one unique parameter: an entry identifier. It MUST return `true`
+ if an entry identifier is known to the container and `false` if it is not.
+ `has($id)` returning true does not mean that `get($id)` will not throw an exception.
+ It does however mean that `get($id)` will not throw a `NotFoundException`.
+
+### 1.2 Exceptions
+
+Exceptions directly thrown by the container MUST implement the
+[`Interop\Container\Exception\ContainerException`](../src/Interop/Container/Exception/ContainerException.php).
+
+A call to the `get` method with a non-existing id SHOULD throw a
+[`Interop\Container\Exception\NotFoundException`](../src/Interop/Container/Exception/NotFoundException.php).
+
+### 1.3 Additional features
+
+This section describes additional features that MAY be added to a container. Containers are not
+required to implement these features to respect the ContainerInterface.
+
+#### 1.3.1 Delegate lookup feature
+
+The goal of the *delegate lookup* feature is to allow several containers to share entries.
+Containers implementing this feature can perform dependency lookups in other containers.
+
+Containers implementing this feature will offer a greater lever of interoperability
+with other containers. Implementation of this feature is therefore RECOMMENDED.
+
+A container implementing this feature:
+
+- MUST implement the `ContainerInterface`
+- MUST provide a way to register a delegate container (using a constructor parameter, or a setter,
+ or any possible way). The delegate container MUST implement the `ContainerInterface`.
+
+When a container is configured to use a delegate container for dependencies:
+
+- Calls to the `get` method should only return an entry if the entry is part of the container.
+ If the entry is not part of the container, an exception should be thrown
+ (as requested by the `ContainerInterface`).
+- Calls to the `has` method should only return `true` if the entry is part of the container.
+ If the entry is not part of the container, `false` should be returned.
+- If the fetched entry has dependencies, **instead** of performing
+ the dependency lookup in the container, the lookup is performed on the *delegate container*.
+
+Important! By default, the lookup SHOULD be performed on the delegate container **only**, not on the container itself.
+
+It is however allowed for containers to provide exception cases for special entries, and a way to lookup
+into the same container (or another container) instead of the delegate container.
+
+2. Package
+----------
+
+The interfaces and classes described as well as relevant exception are provided as part of the
+[container-interop/container-interop](https://packagist.org/packages/container-interop/container-interop) package.
+
+3. `Interop\Container\ContainerInterface`
+-----------------------------------------
+
+```php
+setParentContainer($this);
+ }
+ }
+ ...
+ }
+}
+
+```
+
+**Cons:**
+
+Cons have been extensively discussed [here](https://github.com/container-interop/container-interop/pull/8#issuecomment-51721777).
+Basically, forcing a setter into an interface is a bad idea. Setters are similar to constructor arguments,
+and it's a bad idea to standardize a constructor: how the delegate container is configured into a container is an implementation detail. This outweights the benefits of the interface.
+
+### 4.4 Alternative: no exception case for delegate lookups
+
+Originally, the proposed wording for delegate lookup calls was:
+
+> Important! The lookup MUST be performed on the delegate container **only**, not on the container itself.
+
+This was later replaced by:
+
+> Important! By default, the lookup SHOULD be performed on the delegate container **only**, not on the container itself.
+>
+> It is however allowed for containers to provide exception cases for special entries, and a way to lookup
+> into the same container (or another container) instead of the delegate container.
+
+Exception cases have been allowed to avoid breaking dependencies with some services that must be provided
+by the container (on @njasm proposal). This was proposed here: https://github.com/container-interop/container-interop/pull/20#issuecomment-56597235
+
+### 4.5 Alternative: having one of the containers act as the composite container
+
+In real-life scenarios, we usually have a big framework (Symfony 2, Zend Framework 2, etc...) and we want to
+add another DI container to this container. Most of the time, the "big" framework will be responsible for
+creating the controller's instances, using it's own DI container. Until *container-interop* is fully adopted,
+the "big" framework will not be aware of the existence of a composite container that it should use instead
+of its own container.
+
+For this real-life use cases, @mnapoli and @moufmouf proposed to extend the "big" framework's DI container
+to make it act as a composite container.
+
+This has been discussed [here](https://github.com/container-interop/container-interop/pull/8#issuecomment-40367194)
+and [here](http://mouf-php.com/container-interop-whats-next#solution4).
+
+This was implemented in Symfony 2 using:
+
+- [interop.symfony.di](https://github.com/thecodingmachine/interop.symfony.di/tree/v0.1.0)
+- [framework interop](https://github.com/mnapoli/framework-interop/)
+
+This was implemented in Silex using:
+
+- [interop.silex.di](https://github.com/thecodingmachine/interop.silex.di)
+
+Having a container act as the composite container is not part of the delegate lookup standard because it is
+simply a temporary design pattern used to make existing frameworks that do not support yet ContainerInterop
+play nice with other DI containers.
+
+
+5. Implementations
+------------------
+
+The following projects already implement the delegate lookup feature:
+
+- [Mouf](http://mouf-php.com), through the [`setDelegateLookupContainer` method](https://github.com/thecodingmachine/mouf/blob/2.0/src/Mouf/MoufManager.php#L2120)
+- [PHP-DI](http://php-di.org/), through the [`$wrapperContainer` parameter of the constructor](https://github.com/mnapoli/PHP-DI/blob/master/src/DI/Container.php#L72)
+- [pimple-interop](https://github.com/moufmouf/pimple-interop), through the [`$container` parameter of the constructor](https://github.com/moufmouf/pimple-interop/blob/master/src/Interop/Container/Pimple/PimpleInterop.php#L62)
+
+6. People
+---------
+
+Are listed here all people that contributed in the discussions, by alphabetical order:
+
+- [Alexandru Pătrănescu](https://github.com/drealecs)
+- [Ben Peachey](https://github.com/potherca)
+- [David Négrier](https://github.com/moufmouf)
+- [Jeremy Lindblom](https://github.com/jeremeamia)
+- [Marco Pivetta](https://github.com/Ocramius)
+- [Matthieu Napoli](https://github.com/mnapoli)
+- [Nelson J Morais](https://github.com/njasm)
+- [Phil Sturgeon](https://github.com/philsturgeon)
+- [Stephan Hochdörfer](https://github.com/shochdoerfer)
+
+7. Relevant Links
+-----------------
+
+_**Note:** Order descending chronologically._
+
+- [Pull request on the delegate lookup feature](https://github.com/container-interop/container-interop/pull/20)
+- [Pull request on the interface idea](https://github.com/container-interop/container-interop/pull/8)
+- [Original article exposing the delegate lookup idea along many others](http://mouf-php.com/container-interop-whats-next)
+
diff --git a/advancedcontentfilter/vendor/container-interop/container-interop/docs/Delegate-lookup.md b/advancedcontentfilter/vendor/container-interop/container-interop/docs/Delegate-lookup.md
new file mode 100644
index 00000000..f64a8f78
--- /dev/null
+++ b/advancedcontentfilter/vendor/container-interop/container-interop/docs/Delegate-lookup.md
@@ -0,0 +1,60 @@
+Delegate lookup feature
+=======================
+
+This document describes a standard for dependency injection containers.
+
+The goal set by the *delegate lookup* feature is to allow several containers to share entries.
+Containers implementing this feature can perform dependency lookups in other containers.
+
+Containers implementing this feature will offer a greater lever of interoperability
+with other containers. Implementation of this feature is therefore RECOMMENDED.
+
+The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
+"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
+interpreted as described in [RFC 2119][].
+
+The word `implementor` in this document is to be interpreted as someone
+implementing the delegate lookup feature in a dependency injection-related library or framework.
+Users of dependency injections containers (DIC) are referred to as `user`.
+
+[RFC 2119]: http://tools.ietf.org/html/rfc2119
+
+1. Vocabulary
+-------------
+
+In a dependency injection container, the container is used to fetch entries.
+Entries can have dependencies on other entries. Usually, these other entries are fetched by the container.
+
+The *delegate lookup* feature is the ability for a container to fetch dependencies in
+another container. In the rest of the document, the word "container" will reference the container
+implemented by the implementor. The word "delegate container" will reference the container we are
+fetching the dependencies from.
+
+2. Specification
+----------------
+
+A container implementing the *delegate lookup* feature:
+
+- MUST implement the [`ContainerInterface`](ContainerInterface.md)
+- MUST provide a way to register a delegate container (using a constructor parameter, or a setter,
+ or any possible way). The delegate container MUST implement the [`ContainerInterface`](ContainerInterface.md).
+
+When a container is configured to use a delegate container for dependencies:
+
+- Calls to the `get` method should only return an entry if the entry is part of the container.
+ If the entry is not part of the container, an exception should be thrown
+ (as requested by the [`ContainerInterface`](ContainerInterface.md)).
+- Calls to the `has` method should only return `true` if the entry is part of the container.
+ If the entry is not part of the container, `false` should be returned.
+- If the fetched entry has dependencies, **instead** of performing
+ the dependency lookup in the container, the lookup is performed on the *delegate container*.
+
+Important: By default, the dependency lookups SHOULD be performed on the delegate container **only**, not on the container itself.
+
+It is however allowed for containers to provide exception cases for special entries, and a way to lookup
+into the same container (or another container) instead of the delegate container.
+
+3. Package / Interface
+----------------------
+
+This feature is not tied to any code, interface or package.
diff --git a/advancedcontentfilter/vendor/container-interop/container-interop/docs/images/interoperating_containers.png b/advancedcontentfilter/vendor/container-interop/container-interop/docs/images/interoperating_containers.png
new file mode 100644
index 00000000..1d3fdd0d
Binary files /dev/null and b/advancedcontentfilter/vendor/container-interop/container-interop/docs/images/interoperating_containers.png differ
diff --git a/advancedcontentfilter/vendor/container-interop/container-interop/docs/images/priority.png b/advancedcontentfilter/vendor/container-interop/container-interop/docs/images/priority.png
new file mode 100644
index 00000000..d02cb7d1
Binary files /dev/null and b/advancedcontentfilter/vendor/container-interop/container-interop/docs/images/priority.png differ
diff --git a/advancedcontentfilter/vendor/container-interop/container-interop/docs/images/side_by_side_containers.png b/advancedcontentfilter/vendor/container-interop/container-interop/docs/images/side_by_side_containers.png
new file mode 100644
index 00000000..87884bc2
Binary files /dev/null and b/advancedcontentfilter/vendor/container-interop/container-interop/docs/images/side_by_side_containers.png differ
diff --git a/advancedcontentfilter/vendor/container-interop/container-interop/src/Interop/Container/ContainerInterface.php b/advancedcontentfilter/vendor/container-interop/container-interop/src/Interop/Container/ContainerInterface.php
new file mode 100644
index 00000000..a75468f6
--- /dev/null
+++ b/advancedcontentfilter/vendor/container-interop/container-interop/src/Interop/Container/ContainerInterface.php
@@ -0,0 +1,15 @@
+> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`; fi
+
+script:
+ - cd ext/pimple
+ - if [ "$PIMPLE_EXT" == "yes" ]; then yes n | make test | tee output ; grep -E 'Tests failed +. +0' output; fi
+ - if [ "$PIMPLE_EXT" == "yes" ]; then export SYMFONY_DEPRECATIONS_HELPER=weak; fi
+ - cd ../..
+ - ./vendor/bin/simple-phpunit
+
+matrix:
+ include:
+ - php: hhvm
+ dist: trusty
+ env: PIMPLE_EXT=no
+ exclude:
+ - php: 7.0
+ env: PIMPLE_EXT=yes
+ - php: 7.1
+ env: PIMPLE_EXT=yes
diff --git a/advancedcontentfilter/vendor/pimple/pimple/CHANGELOG b/advancedcontentfilter/vendor/pimple/pimple/CHANGELOG
new file mode 100644
index 00000000..ba56760c
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/CHANGELOG
@@ -0,0 +1,59 @@
+* 3.2.3 (2017-XX-XX)
+
+ * n/a
+
+* 3.2.2 (2017-07-23)
+
+ * reverted extending a protected closure throws an exception (deprecated it instead)
+
+* 3.2.1 (2017-07-17)
+
+ * fixed PHP error
+
+* 3.2.0 (2017-07-17)
+
+ * added a PSR-11 service locator
+ * added a PSR-11 wrapper
+ * added ServiceIterator
+ * fixed extending a protected closure (now throws InvalidServiceIdentifierException)
+
+* 3.1.0 (2017-07-03)
+
+ * deprecated the C extension
+ * added support for PSR-11 exceptions
+
+* 3.0.2 (2015-09-11)
+
+ * refactored the C extension
+ * minor non-significant changes
+
+* 3.0.1 (2015-07-30)
+
+ * simplified some code
+ * fixed a segfault in the C extension
+
+* 3.0.0 (2014-07-24)
+
+ * removed the Pimple class alias (use Pimple\Container instead)
+
+* 2.1.1 (2014-07-24)
+
+ * fixed compiler warnings for the C extension
+ * fixed code when dealing with circular references
+
+* 2.1.0 (2014-06-24)
+
+ * moved the Pimple to Pimple\Container (with a BC layer -- Pimple is now a
+ deprecated alias which will be removed in Pimple 3.0)
+ * added Pimple\ServiceProviderInterface (and Pimple::register())
+
+* 2.0.0 (2014-02-10)
+
+ * changed extend to automatically re-assign the extended service and keep it as shared or factory
+ (to keep BC, extend still returns the extended service)
+ * changed services to be shared by default (use factory() for factory
+ services)
+
+* 1.0.0
+
+ * initial version
diff --git a/advancedcontentfilter/vendor/pimple/pimple/LICENSE b/advancedcontentfilter/vendor/pimple/pimple/LICENSE
new file mode 100644
index 00000000..e02dc5a7
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2009-2017 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/advancedcontentfilter/vendor/pimple/pimple/README.rst b/advancedcontentfilter/vendor/pimple/pimple/README.rst
new file mode 100644
index 00000000..a03b6d3a
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/README.rst
@@ -0,0 +1,326 @@
+Pimple
+======
+
+.. caution::
+
+ This is the documentation for Pimple 3.x. If you are using Pimple 1.x, read
+ the `Pimple 1.x documentation`_. Reading the Pimple 1.x code is also a good
+ way to learn more about how to create a simple Dependency Injection
+ Container (recent versions of Pimple are more focused on performance).
+
+Pimple is a small Dependency Injection Container for PHP.
+
+Installation
+------------
+
+Before using Pimple in your project, add it to your ``composer.json`` file:
+
+.. code-block:: bash
+
+ $ ./composer.phar require pimple/pimple "^3.0"
+
+Usage
+-----
+
+Creating a container is a matter of creating a ``Container`` instance:
+
+.. code-block:: php
+
+ use Pimple\Container;
+
+ $container = new Container();
+
+As many other dependency injection containers, Pimple manages two different
+kind of data: **services** and **parameters**.
+
+Defining Services
+~~~~~~~~~~~~~~~~~
+
+A service is an object that does something as part of a larger system. Examples
+of services: a database connection, a templating engine, or a mailer. Almost
+any **global** object can be a service.
+
+Services are defined by **anonymous functions** that return an instance of an
+object:
+
+.. code-block:: php
+
+ // define some services
+ $container['session_storage'] = function ($c) {
+ return new SessionStorage('SESSION_ID');
+ };
+
+ $container['session'] = function ($c) {
+ return new Session($c['session_storage']);
+ };
+
+Notice that the anonymous function has access to the current container
+instance, allowing references to other services or parameters.
+
+As objects are only created when you get them, the order of the definitions
+does not matter.
+
+Using the defined services is also very easy:
+
+.. code-block:: php
+
+ // get the session object
+ $session = $container['session'];
+
+ // the above call is roughly equivalent to the following code:
+ // $storage = new SessionStorage('SESSION_ID');
+ // $session = new Session($storage);
+
+Defining Factory Services
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+By default, each time you get a service, Pimple returns the **same instance**
+of it. If you want a different instance to be returned for all calls, wrap your
+anonymous function with the ``factory()`` method
+
+.. code-block:: php
+
+ $container['session'] = $container->factory(function ($c) {
+ return new Session($c['session_storage']);
+ });
+
+Now, each call to ``$container['session']`` returns a new instance of the
+session.
+
+Defining Parameters
+~~~~~~~~~~~~~~~~~~~
+
+Defining a parameter allows to ease the configuration of your container from
+the outside and to store global values:
+
+.. code-block:: php
+
+ // define some parameters
+ $container['cookie_name'] = 'SESSION_ID';
+ $container['session_storage_class'] = 'SessionStorage';
+
+If you change the ``session_storage`` service definition like below:
+
+.. code-block:: php
+
+ $container['session_storage'] = function ($c) {
+ return new $c['session_storage_class']($c['cookie_name']);
+ };
+
+You can now easily change the cookie name by overriding the
+``cookie_name`` parameter instead of redefining the service
+definition.
+
+Protecting Parameters
+~~~~~~~~~~~~~~~~~~~~~
+
+Because Pimple sees anonymous functions as service definitions, you need to
+wrap anonymous functions with the ``protect()`` method to store them as
+parameters:
+
+.. code-block:: php
+
+ $container['random_func'] = $container->protect(function () {
+ return rand();
+ });
+
+Modifying Services after Definition
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In some cases you may want to modify a service definition after it has been
+defined. You can use the ``extend()`` method to define additional code to be
+run on your service just after it is created:
+
+.. code-block:: php
+
+ $container['session_storage'] = function ($c) {
+ return new $c['session_storage_class']($c['cookie_name']);
+ };
+
+ $container->extend('session_storage', function ($storage, $c) {
+ $storage->...();
+
+ return $storage;
+ });
+
+The first argument is the name of the service to extend, the second a function
+that gets access to the object instance and the container.
+
+Extending a Container
+~~~~~~~~~~~~~~~~~~~~~
+
+If you use the same libraries over and over, you might want to reuse some
+services from one project to the next one; package your services into a
+**provider** by implementing ``Pimple\ServiceProviderInterface``:
+
+.. code-block:: php
+
+ use Pimple\Container;
+
+ class FooProvider implements Pimple\ServiceProviderInterface
+ {
+ public function register(Container $pimple)
+ {
+ // register some services and parameters
+ // on $pimple
+ }
+ }
+
+Then, register the provider on a Container:
+
+.. code-block:: php
+
+ $pimple->register(new FooProvider());
+
+Fetching the Service Creation Function
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+When you access an object, Pimple automatically calls the anonymous function
+that you defined, which creates the service object for you. If you want to get
+raw access to this function, you can use the ``raw()`` method:
+
+.. code-block:: php
+
+ $container['session'] = function ($c) {
+ return new Session($c['session_storage']);
+ };
+
+ $sessionFunction = $container->raw('session');
+
+PSR-11 compatibility
+--------------------
+
+For historical reasons, the ``Container`` class does not implement the PSR-11
+``ContainerInterface``. However, Pimple provides a helper class that will let
+you decouple your code from the Pimple container class.
+
+The PSR-11 container class
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The ``Pimple\Psr11\Container`` class lets you access the content of an
+underlying Pimple container using ``Psr\Container\ContainerInterface``
+methods:
+
+.. code-block:: php
+
+ use Pimple\Container;
+ use Pimple\Psr11\Container as PsrContainer;
+
+ $container = new Container();
+ $container['service'] = function ($c) {
+ return new Service();
+ };
+ $psr11 = new PsrContainer($container);
+
+ $controller = function (PsrContainer $container) {
+ $service = $container->get('service');
+ };
+ $controller($psr11);
+
+Using the PSR-11 ServiceLocator
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Sometimes, a service needs access to several other services without being sure
+that all of them will actually be used. In those cases, you may want the
+instantiation of the services to be lazy.
+
+The traditional solution is to inject the entire service container to get only
+the services really needed. However, this is not recommended because it gives
+services a too broad access to the rest of the application and it hides their
+actual dependencies.
+
+The ``ServiceLocator`` is intended to solve this problem by giving access to a
+set of predefined services while instantiating them only when actually needed.
+
+It also allows you to make your services available under a different name than
+the one used to register them. For instance, you may want to use an object
+that expects an instance of ``EventDispatcherInterface`` to be available under
+the name ``event_dispatcher`` while your event dispatcher has been
+registered under the name ``dispatcher``:
+
+.. code-block:: php
+
+ use Monolog\Logger;
+ use Pimple\Psr11\ServiceLocator;
+ use Psr\Container\ContainerInterface;
+ use Symfony\Component\EventDispatcher\EventDispatcher;
+
+ class MyService
+ {
+ /**
+ * "logger" must be an instance of Psr\Log\LoggerInterface
+ * "event_dispatcher" must be an instance of Symfony\Component\EventDispatcher\EventDispatcherInterface
+ */
+ private $services;
+
+ public function __construct(ContainerInterface $services)
+ {
+ $this->services = $services;
+ }
+ }
+
+ $container['logger'] = function ($c) {
+ return new Monolog\Logger();
+ };
+ $container['dispatcher'] = function () {
+ return new EventDispatcher();
+ };
+
+ $container['service'] = function ($c) {
+ $locator = new ServiceLocator($c, array('logger', 'event_dispatcher' => 'dispatcher'));
+
+ return new MyService($locator);
+ };
+
+Referencing a Collection of Services Lazily
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Passing a collection of services instances in an array may prove inefficient
+if the class that consumes the collection only needs to iterate over it at a
+later stage, when one of its method is called. It can also lead to problems
+if there is a circular dependency between one of the services stored in the
+collection and the class that consumes it.
+
+The ``ServiceIterator`` class helps you solve these issues. It receives a
+list of service names during instantiation and will retrieve the services
+when iterated over:
+
+.. code-block:: php
+
+ use Pimple\Container;
+ use Pimple\ServiceIterator;
+
+ class AuthorizationService
+ {
+ private $voters;
+
+ public function __construct($voters)
+ {
+ $this->voters = $voters;
+ }
+
+ public function canAccess($resource)
+ {
+ foreach ($this->voters as $voter) {
+ if (true === $voter->canAccess($resource) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ }
+
+ $container = new Container();
+
+ $container['voter1'] = function ($c) {
+ return new SomeVoter();
+ }
+ $container['voter2'] = function ($c) {
+ return new SomeOtherVoter($c['auth']);
+ }
+ $container['auth'] = function ($c) {
+ return new AuthorizationService(new ServiceIterator($c, array('voter1', 'voter2'));
+ }
+
+.. _Pimple 1.x documentation: https://github.com/silexphp/Pimple/tree/1.1
diff --git a/advancedcontentfilter/vendor/pimple/pimple/composer.json b/advancedcontentfilter/vendor/pimple/pimple/composer.json
new file mode 100644
index 00000000..dabf190a
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/composer.json
@@ -0,0 +1,29 @@
+{
+ "name": "pimple/pimple",
+ "type": "library",
+ "description": "Pimple, a simple Dependency Injection Container",
+ "keywords": ["dependency injection", "container"],
+ "homepage": "http://pimple.sensiolabs.org",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "require": {
+ "php": ">=5.3.0",
+ "psr/container": "^1.0"
+ },
+ "require-dev": {
+ "symfony/phpunit-bridge": "^3.2"
+ },
+ "autoload": {
+ "psr-0": { "Pimple": "src/" }
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.2.x-dev"
+ }
+ }
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/.gitignore b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/.gitignore
new file mode 100644
index 00000000..1861088a
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/.gitignore
@@ -0,0 +1,30 @@
+*.sw*
+.deps
+Makefile
+Makefile.fragments
+Makefile.global
+Makefile.objects
+acinclude.m4
+aclocal.m4
+build/
+config.cache
+config.guess
+config.h
+config.h.in
+config.log
+config.nice
+config.status
+config.sub
+configure
+configure.in
+install-sh
+libtool
+ltmain.sh
+missing
+mkinstalldirs
+run-tests.php
+*.loT
+.libs/
+modules/
+*.la
+*.lo
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/README.md b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/README.md
new file mode 100644
index 00000000..7b39eb29
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/README.md
@@ -0,0 +1,12 @@
+This is Pimple 2 implemented in C
+
+* PHP >= 5.3
+* Not tested under Windows, might work
+
+Install
+=======
+
+ > phpize
+ > ./configure
+ > make
+ > make install
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/config.m4 b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/config.m4
new file mode 100644
index 00000000..3a6e9aae
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/config.m4
@@ -0,0 +1,63 @@
+dnl $Id$
+dnl config.m4 for extension pimple
+
+dnl Comments in this file start with the string 'dnl'.
+dnl Remove where necessary. This file will not work
+dnl without editing.
+
+dnl If your extension references something external, use with:
+
+dnl PHP_ARG_WITH(pimple, for pimple support,
+dnl Make sure that the comment is aligned:
+dnl [ --with-pimple Include pimple support])
+
+dnl Otherwise use enable:
+
+PHP_ARG_ENABLE(pimple, whether to enable pimple support,
+dnl Make sure that the comment is aligned:
+[ --enable-pimple Enable pimple support])
+
+if test "$PHP_PIMPLE" != "no"; then
+ dnl Write more examples of tests here...
+
+ dnl # --with-pimple -> check with-path
+ dnl SEARCH_PATH="/usr/local /usr" # you might want to change this
+ dnl SEARCH_FOR="/include/pimple.h" # you most likely want to change this
+ dnl if test -r $PHP_PIMPLE/$SEARCH_FOR; then # path given as parameter
+ dnl PIMPLE_DIR=$PHP_PIMPLE
+ dnl else # search default path list
+ dnl AC_MSG_CHECKING([for pimple files in default path])
+ dnl for i in $SEARCH_PATH ; do
+ dnl if test -r $i/$SEARCH_FOR; then
+ dnl PIMPLE_DIR=$i
+ dnl AC_MSG_RESULT(found in $i)
+ dnl fi
+ dnl done
+ dnl fi
+ dnl
+ dnl if test -z "$PIMPLE_DIR"; then
+ dnl AC_MSG_RESULT([not found])
+ dnl AC_MSG_ERROR([Please reinstall the pimple distribution])
+ dnl fi
+
+ dnl # --with-pimple -> add include path
+ dnl PHP_ADD_INCLUDE($PIMPLE_DIR/include)
+
+ dnl # --with-pimple -> check for lib and symbol presence
+ dnl LIBNAME=pimple # you may want to change this
+ dnl LIBSYMBOL=pimple # you most likely want to change this
+
+ dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
+ dnl [
+ dnl PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $PIMPLE_DIR/lib, PIMPLE_SHARED_LIBADD)
+ dnl AC_DEFINE(HAVE_PIMPLELIB,1,[ ])
+ dnl ],[
+ dnl AC_MSG_ERROR([wrong pimple lib version or lib not found])
+ dnl ],[
+ dnl -L$PIMPLE_DIR/lib -lm
+ dnl ])
+ dnl
+ dnl PHP_SUBST(PIMPLE_SHARED_LIBADD)
+
+ PHP_NEW_EXTENSION(pimple, pimple.c, $ext_shared)
+fi
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/config.w32 b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/config.w32
new file mode 100644
index 00000000..39857b32
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/config.w32
@@ -0,0 +1,13 @@
+// $Id$
+// vim:ft=javascript
+
+// If your extension references something external, use ARG_WITH
+// ARG_WITH("pimple", "for pimple support", "no");
+
+// Otherwise, use ARG_ENABLE
+// ARG_ENABLE("pimple", "enable pimple support", "no");
+
+if (PHP_PIMPLE != "no") {
+ EXTENSION("pimple", "pimple.c");
+}
+
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/php_pimple.h b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/php_pimple.h
new file mode 100644
index 00000000..eed7c173
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/php_pimple.h
@@ -0,0 +1,137 @@
+
+/*
+ * This file is part of Pimple.
+ *
+ * Copyright (c) 2014 Fabien Potencier
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is furnished
+ * to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef PHP_PIMPLE_H
+#define PHP_PIMPLE_H
+
+extern zend_module_entry pimple_module_entry;
+#define phpext_pimple_ptr &pimple_module_entry
+
+#ifdef PHP_WIN32
+# define PHP_PIMPLE_API __declspec(dllexport)
+#elif defined(__GNUC__) && __GNUC__ >= 4
+# define PHP_PIMPLE_API __attribute__ ((visibility("default")))
+#else
+# define PHP_PIMPLE_API
+#endif
+
+#ifdef ZTS
+#include "TSRM.h"
+#endif
+
+#define PIMPLE_VERSION "3.2.3-DEV"
+
+#define PIMPLE_NS "Pimple"
+#define PSR_CONTAINER_NS "Psr\\Container"
+#define PIMPLE_EXCEPTION_NS "Pimple\\Exception"
+
+#define PIMPLE_DEFAULT_ZVAL_CACHE_NUM 5
+#define PIMPLE_DEFAULT_ZVAL_VALUES_NUM 10
+
+#define PIMPLE_DEPRECATE do { \
+ int er = EG(error_reporting); \
+ EG(error_reporting) = 0;\
+ php_error(E_DEPRECATED, "The Pimple C extension is deprecated since version 3.1 and will be removed in 4.0."); \
+ EG(error_reporting) = er; \
+} while (0);
+
+zend_module_entry *get_module(void);
+
+PHP_MINIT_FUNCTION(pimple);
+PHP_MINFO_FUNCTION(pimple);
+
+PHP_METHOD(FrozenServiceException, __construct);
+PHP_METHOD(InvalidServiceIdentifierException, __construct);
+PHP_METHOD(UnknownIdentifierException, __construct);
+
+PHP_METHOD(Pimple, __construct);
+PHP_METHOD(Pimple, factory);
+PHP_METHOD(Pimple, protect);
+PHP_METHOD(Pimple, raw);
+PHP_METHOD(Pimple, extend);
+PHP_METHOD(Pimple, keys);
+PHP_METHOD(Pimple, register);
+PHP_METHOD(Pimple, offsetSet);
+PHP_METHOD(Pimple, offsetUnset);
+PHP_METHOD(Pimple, offsetGet);
+PHP_METHOD(Pimple, offsetExists);
+
+PHP_METHOD(PimpleClosure, invoker);
+
+typedef struct _pimple_bucket_value {
+ zval *value; /* Must be the first element */
+ zval *raw;
+ zend_object_handle handle_num;
+ enum {
+ PIMPLE_IS_PARAM = 0,
+ PIMPLE_IS_SERVICE = 2
+ } type;
+ zend_bool initialized;
+ zend_fcall_info_cache fcc;
+} pimple_bucket_value;
+
+typedef struct _pimple_object {
+ zend_object zobj;
+ HashTable values;
+ HashTable factories;
+ HashTable protected;
+} pimple_object;
+
+typedef struct _pimple_closure_object {
+ zend_object zobj;
+ zval *callable;
+ zval *factory;
+} pimple_closure_object;
+
+static const char sensiolabs_logo[] = "
";
+
+static void pimple_exception_call_parent_constructor(zval *this_ptr, const char *format, const char *arg1 TSRMLS_DC);
+
+static int pimple_zval_to_pimpleval(zval *_zval, pimple_bucket_value *_pimple_bucket_value TSRMLS_DC);
+static int pimple_zval_is_valid_callback(zval *_zval, pimple_bucket_value *_pimple_bucket_value TSRMLS_DC);
+
+static void pimple_bucket_dtor(pimple_bucket_value *bucket);
+static void pimple_free_bucket(pimple_bucket_value *bucket);
+
+static zval *pimple_object_read_dimension(zval *object, zval *offset, int type TSRMLS_DC);
+static void pimple_object_write_dimension(zval *object, zval *offset, zval *value TSRMLS_DC);
+static int pimple_object_has_dimension(zval *object, zval *offset, int check_empty TSRMLS_DC);
+static void pimple_object_unset_dimension(zval *object, zval *offset TSRMLS_DC);
+static zend_object_value pimple_object_create(zend_class_entry *ce TSRMLS_DC);
+static void pimple_free_object_storage(pimple_object *obj TSRMLS_DC);
+
+static void pimple_closure_free_object_storage(pimple_closure_object *obj TSRMLS_DC);
+static zend_object_value pimple_closure_object_create(zend_class_entry *ce TSRMLS_DC);
+static zend_function *pimple_closure_get_constructor(zval * TSRMLS_DC);
+static int pimple_closure_get_closure(zval *obj, zend_class_entry **ce_ptr, union _zend_function **fptr_ptr, zval **zobj_ptr TSRMLS_DC);
+
+#ifdef ZTS
+#define PIMPLE_G(v) TSRMG(pimple_globals_id, zend_pimple_globals *, v)
+#else
+#define PIMPLE_G(v) (pimple_globals.v)
+#endif
+
+#endif /* PHP_PIMPLE_H */
+
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/pimple.c b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/pimple.c
new file mode 100644
index 00000000..c80499b3
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/pimple.c
@@ -0,0 +1,1114 @@
+
+/*
+ * This file is part of Pimple.
+ *
+ * Copyright (c) 2014 Fabien Potencier
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is furnished
+ * to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "php.h"
+#include "php_ini.h"
+#include "ext/standard/info.h"
+#include "php_pimple.h"
+#include "pimple_compat.h"
+#include "zend_interfaces.h"
+#include "zend.h"
+#include "Zend/zend_closures.h"
+#include "ext/spl/spl_exceptions.h"
+#include "Zend/zend_exceptions.h"
+#include "main/php_output.h"
+#include "SAPI.h"
+
+static zend_class_entry *pimple_ce_PsrContainerInterface;
+static zend_class_entry *pimple_ce_PsrContainerExceptionInterface;
+static zend_class_entry *pimple_ce_PsrNotFoundExceptionInterface;
+
+static zend_class_entry *pimple_ce_ExpectedInvokableException;
+static zend_class_entry *pimple_ce_FrozenServiceException;
+static zend_class_entry *pimple_ce_InvalidServiceIdentifierException;
+static zend_class_entry *pimple_ce_UnknownIdentifierException;
+
+static zend_class_entry *pimple_ce;
+static zend_object_handlers pimple_object_handlers;
+static zend_class_entry *pimple_closure_ce;
+static zend_class_entry *pimple_serviceprovider_ce;
+static zend_object_handlers pimple_closure_object_handlers;
+static zend_internal_function pimple_closure_invoker_function;
+
+#define FETCH_DIM_HANDLERS_VARS pimple_object *pimple_obj = NULL; \
+ ulong index; \
+ pimple_obj = (pimple_object *)zend_object_store_get_object(object TSRMLS_CC); \
+
+#define PIMPLE_OBJECT_HANDLE_INHERITANCE_OBJECT_HANDLERS do { \
+ if (ce != pimple_ce) { \
+ zend_hash_find(&ce->function_table, ZEND_STRS("offsetget"), (void **)&function); \
+ if (function->common.scope != ce) { /* if the function is not defined in this actual class */ \
+ pimple_object_handlers.read_dimension = pimple_object_read_dimension; /* then overwrite the handler to use custom one */ \
+ } \
+ zend_hash_find(&ce->function_table, ZEND_STRS("offsetset"), (void **)&function); \
+ if (function->common.scope != ce) { \
+ pimple_object_handlers.write_dimension = pimple_object_write_dimension; \
+ } \
+ zend_hash_find(&ce->function_table, ZEND_STRS("offsetexists"), (void **)&function); \
+ if (function->common.scope != ce) { \
+ pimple_object_handlers.has_dimension = pimple_object_has_dimension; \
+ } \
+ zend_hash_find(&ce->function_table, ZEND_STRS("offsetunset"), (void **)&function); \
+ if (function->common.scope != ce) { \
+ pimple_object_handlers.unset_dimension = pimple_object_unset_dimension; \
+ } \
+ } else { \
+ pimple_object_handlers.read_dimension = pimple_object_read_dimension; \
+ pimple_object_handlers.write_dimension = pimple_object_write_dimension; \
+ pimple_object_handlers.has_dimension = pimple_object_has_dimension; \
+ pimple_object_handlers.unset_dimension = pimple_object_unset_dimension; \
+ }\
+ } while(0);
+
+#define PIMPLE_CALL_CB do { \
+ zend_fcall_info_argn(&fci TSRMLS_CC, 1, &object); \
+ fci.size = sizeof(fci); \
+ fci.object_ptr = retval->fcc.object_ptr; \
+ fci.function_name = retval->value; \
+ fci.no_separation = 1; \
+ fci.retval_ptr_ptr = &retval_ptr_ptr; \
+\
+ zend_call_function(&fci, &retval->fcc TSRMLS_CC); \
+ efree(fci.params); \
+ if (EG(exception)) { \
+ return EG(uninitialized_zval_ptr); \
+ } \
+ } while(0);
+
+
+/* Psr\Container\ContainerInterface */
+ZEND_BEGIN_ARG_INFO_EX(arginfo_pimple_PsrContainerInterface_get, 0, 0, 1)
+ZEND_ARG_INFO(0, id)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_pimple_PsrContainerInterface_has, 0, 0, 1)
+ZEND_ARG_INFO(0, id)
+ZEND_END_ARG_INFO()
+
+static const zend_function_entry pimple_ce_PsrContainerInterface_functions[] = {
+ PHP_ABSTRACT_ME(ContainerInterface, get, arginfo_pimple_PsrContainerInterface_get)
+ PHP_ABSTRACT_ME(ContainerInterface, has, arginfo_pimple_PsrContainerInterface_has)
+ PHP_FE_END
+};
+
+/* Psr\Container\ContainerExceptionInterface */
+static const zend_function_entry pimple_ce_PsrContainerExceptionInterface_functions[] = {
+ PHP_FE_END
+};
+
+/* Psr\Container\NotFoundExceptionInterface */
+static const zend_function_entry pimple_ce_PsrNotFoundExceptionInterface_functions[] = {
+ PHP_FE_END
+};
+
+/* Pimple\Exception\FrozenServiceException */
+ZEND_BEGIN_ARG_INFO_EX(arginfo_FrozenServiceException___construct, 0, 0, 1)
+ZEND_ARG_INFO(0, id)
+ZEND_END_ARG_INFO()
+
+static const zend_function_entry pimple_ce_FrozenServiceException_functions[] = {
+ PHP_ME(FrozenServiceException, __construct, arginfo_FrozenServiceException___construct, ZEND_ACC_PUBLIC)
+ PHP_FE_END
+};
+
+/* Pimple\Exception\InvalidServiceIdentifierException */
+ZEND_BEGIN_ARG_INFO_EX(arginfo_InvalidServiceIdentifierException___construct, 0, 0, 1)
+ZEND_ARG_INFO(0, id)
+ZEND_END_ARG_INFO()
+
+static const zend_function_entry pimple_ce_InvalidServiceIdentifierException_functions[] = {
+ PHP_ME(InvalidServiceIdentifierException, __construct, arginfo_InvalidServiceIdentifierException___construct, ZEND_ACC_PUBLIC)
+ PHP_FE_END
+};
+
+/* Pimple\Exception\UnknownIdentifierException */
+ZEND_BEGIN_ARG_INFO_EX(arginfo_UnknownIdentifierException___construct, 0, 0, 1)
+ZEND_ARG_INFO(0, id)
+ZEND_END_ARG_INFO()
+
+static const zend_function_entry pimple_ce_UnknownIdentifierException_functions[] = {
+ PHP_ME(UnknownIdentifierException, __construct, arginfo_UnknownIdentifierException___construct, ZEND_ACC_PUBLIC)
+ PHP_FE_END
+};
+
+/* Pimple\Container */
+ZEND_BEGIN_ARG_INFO_EX(arginfo___construct, 0, 0, 0)
+ZEND_ARG_ARRAY_INFO(0, value, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_offsetset, 0, 0, 2)
+ZEND_ARG_INFO(0, offset)
+ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_offsetget, 0, 0, 1)
+ZEND_ARG_INFO(0, offset)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_offsetexists, 0, 0, 1)
+ZEND_ARG_INFO(0, offset)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_offsetunset, 0, 0, 1)
+ZEND_ARG_INFO(0, offset)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_factory, 0, 0, 1)
+ZEND_ARG_INFO(0, callable)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_protect, 0, 0, 1)
+ZEND_ARG_INFO(0, callable)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_raw, 0, 0, 1)
+ZEND_ARG_INFO(0, id)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_extend, 0, 0, 2)
+ZEND_ARG_INFO(0, id)
+ZEND_ARG_INFO(0, callable)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_keys, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_register, 0, 0, 1)
+ZEND_ARG_OBJ_INFO(0, provider, Pimple\\ServiceProviderInterface, 0)
+ZEND_ARG_ARRAY_INFO(0, values, 1)
+ZEND_END_ARG_INFO()
+
+static const zend_function_entry pimple_ce_functions[] = {
+ PHP_ME(Pimple, __construct, arginfo___construct, ZEND_ACC_PUBLIC)
+ PHP_ME(Pimple, factory, arginfo_factory, ZEND_ACC_PUBLIC)
+ PHP_ME(Pimple, protect, arginfo_protect, ZEND_ACC_PUBLIC)
+ PHP_ME(Pimple, raw, arginfo_raw, ZEND_ACC_PUBLIC)
+ PHP_ME(Pimple, extend, arginfo_extend, ZEND_ACC_PUBLIC)
+ PHP_ME(Pimple, keys, arginfo_keys, ZEND_ACC_PUBLIC)
+ PHP_ME(Pimple, register, arginfo_register, ZEND_ACC_PUBLIC)
+
+ PHP_ME(Pimple, offsetSet, arginfo_offsetset, ZEND_ACC_PUBLIC)
+ PHP_ME(Pimple, offsetGet, arginfo_offsetget, ZEND_ACC_PUBLIC)
+ PHP_ME(Pimple, offsetExists, arginfo_offsetexists, ZEND_ACC_PUBLIC)
+ PHP_ME(Pimple, offsetUnset, arginfo_offsetunset, ZEND_ACC_PUBLIC)
+ PHP_FE_END
+};
+
+/* Pimple\ServiceProviderInterface */
+ZEND_BEGIN_ARG_INFO_EX(arginfo_serviceprovider_register, 0, 0, 1)
+ZEND_ARG_OBJ_INFO(0, pimple, Pimple\\Container, 0)
+ZEND_END_ARG_INFO()
+
+static const zend_function_entry pimple_serviceprovider_iface_ce_functions[] = {
+ PHP_ABSTRACT_ME(ServiceProviderInterface, register, arginfo_serviceprovider_register)
+ PHP_FE_END
+};
+
+/* parent::__construct(sprintf("Something with %s", $arg1)) */
+static void pimple_exception_call_parent_constructor(zval *this_ptr, const char *format, const char *arg1 TSRMLS_DC)
+{
+ zend_class_entry *ce = Z_OBJCE_P(this_ptr);
+ char *message = NULL;
+ int message_len;
+ zval *constructor_arg;
+
+ message_len = spprintf(&message, 0, format, arg1);
+ ALLOC_INIT_ZVAL(constructor_arg);
+ ZVAL_STRINGL(constructor_arg, message, message_len, 1);
+
+ zend_call_method_with_1_params(&this_ptr, ce, &ce->parent->constructor, "__construct", NULL, constructor_arg);
+
+ efree(message);
+ zval_ptr_dtor(&constructor_arg);
+}
+
+/**
+ * Pass a single string parameter to exception constructor and throw
+ */
+static void pimple_throw_exception_string(zend_class_entry *ce, const char *message, zend_uint message_len TSRMLS_DC)
+{
+ zval *exception, *param;
+
+ ALLOC_INIT_ZVAL(exception);
+ object_init_ex(exception, ce);
+
+ ALLOC_INIT_ZVAL(param);
+ ZVAL_STRINGL(param, message, message_len, 1);
+
+ zend_call_method_with_1_params(&exception, ce, &ce->constructor, "__construct", NULL, param);
+
+ zend_throw_exception_object(exception TSRMLS_CC);
+
+ zval_ptr_dtor(¶m);
+}
+
+static void pimple_closure_free_object_storage(pimple_closure_object *obj TSRMLS_DC)
+{
+ zend_object_std_dtor(&obj->zobj TSRMLS_CC);
+ if (obj->factory) {
+ zval_ptr_dtor(&obj->factory);
+ }
+ if (obj->callable) {
+ zval_ptr_dtor(&obj->callable);
+ }
+ efree(obj);
+}
+
+static void pimple_free_object_storage(pimple_object *obj TSRMLS_DC)
+{
+ zend_hash_destroy(&obj->factories);
+ zend_hash_destroy(&obj->protected);
+ zend_hash_destroy(&obj->values);
+ zend_object_std_dtor(&obj->zobj TSRMLS_CC);
+ efree(obj);
+}
+
+static void pimple_free_bucket(pimple_bucket_value *bucket)
+{
+ if (bucket->raw) {
+ zval_ptr_dtor(&bucket->raw);
+ }
+}
+
+static zend_object_value pimple_closure_object_create(zend_class_entry *ce TSRMLS_DC)
+{
+ zend_object_value retval;
+ pimple_closure_object *pimple_closure_obj = NULL;
+
+ pimple_closure_obj = ecalloc(1, sizeof(pimple_closure_object));
+ ZEND_OBJ_INIT(&pimple_closure_obj->zobj, ce);
+
+ pimple_closure_object_handlers.get_constructor = pimple_closure_get_constructor;
+ retval.handlers = &pimple_closure_object_handlers;
+ retval.handle = zend_objects_store_put(pimple_closure_obj, (zend_objects_store_dtor_t) zend_objects_destroy_object, (zend_objects_free_object_storage_t) pimple_closure_free_object_storage, NULL TSRMLS_CC);
+
+ return retval;
+}
+
+static zend_function *pimple_closure_get_constructor(zval *obj TSRMLS_DC)
+{
+ zend_error(E_ERROR, "Pimple\\ContainerClosure is an internal class and cannot be instantiated");
+
+ return NULL;
+}
+
+static int pimple_closure_get_closure(zval *obj, zend_class_entry **ce_ptr, union _zend_function **fptr_ptr, zval **zobj_ptr TSRMLS_DC)
+{
+ *zobj_ptr = obj;
+ *ce_ptr = Z_OBJCE_P(obj);
+ *fptr_ptr = (zend_function *)&pimple_closure_invoker_function;
+
+ return SUCCESS;
+}
+
+static zend_object_value pimple_object_create(zend_class_entry *ce TSRMLS_DC)
+{
+ zend_object_value retval;
+ pimple_object *pimple_obj = NULL;
+ zend_function *function = NULL;
+
+ pimple_obj = emalloc(sizeof(pimple_object));
+ ZEND_OBJ_INIT(&pimple_obj->zobj, ce);
+
+ PIMPLE_OBJECT_HANDLE_INHERITANCE_OBJECT_HANDLERS
+
+ retval.handlers = &pimple_object_handlers;
+ retval.handle = zend_objects_store_put(pimple_obj, (zend_objects_store_dtor_t) zend_objects_destroy_object, (zend_objects_free_object_storage_t) pimple_free_object_storage, NULL TSRMLS_CC);
+
+ zend_hash_init(&pimple_obj->factories, PIMPLE_DEFAULT_ZVAL_CACHE_NUM, NULL, (dtor_func_t)pimple_bucket_dtor, 0);
+ zend_hash_init(&pimple_obj->protected, PIMPLE_DEFAULT_ZVAL_CACHE_NUM, NULL, (dtor_func_t)pimple_bucket_dtor, 0);
+ zend_hash_init(&pimple_obj->values, PIMPLE_DEFAULT_ZVAL_VALUES_NUM, NULL, (dtor_func_t)pimple_bucket_dtor, 0);
+
+ return retval;
+}
+
+static void pimple_object_write_dimension(zval *object, zval *offset, zval *value TSRMLS_DC)
+{
+ FETCH_DIM_HANDLERS_VARS
+
+ pimple_bucket_value pimple_value = {0}, *found_value = NULL;
+ ulong hash;
+
+ pimple_zval_to_pimpleval(value, &pimple_value TSRMLS_CC);
+
+ if (!offset) {/* $p[] = 'foo' when not overloaded */
+ zend_hash_next_index_insert(&pimple_obj->values, (void *)&pimple_value, sizeof(pimple_bucket_value), NULL);
+ Z_ADDREF_P(value);
+ return;
+ }
+
+ switch (Z_TYPE_P(offset)) {
+ case IS_STRING:
+ hash = zend_hash_func(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
+ zend_hash_quick_find(&pimple_obj->values, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hash, (void **)&found_value);
+ if (found_value && found_value->type == PIMPLE_IS_SERVICE && found_value->initialized == 1) {
+ pimple_free_bucket(&pimple_value);
+ pimple_throw_exception_string(pimple_ce_FrozenServiceException, Z_STRVAL_P(offset), Z_STRLEN_P(offset) TSRMLS_CC);
+ return;
+ }
+ if (zend_hash_quick_update(&pimple_obj->values, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hash, (void *)&pimple_value, sizeof(pimple_bucket_value), NULL) == FAILURE) {
+ pimple_free_bucket(&pimple_value);
+ return;
+ }
+ Z_ADDREF_P(value);
+ break;
+ case IS_DOUBLE:
+ case IS_BOOL:
+ case IS_LONG:
+ if (Z_TYPE_P(offset) == IS_DOUBLE) {
+ index = (ulong)Z_DVAL_P(offset);
+ } else {
+ index = Z_LVAL_P(offset);
+ }
+ zend_hash_index_find(&pimple_obj->values, index, (void **)&found_value);
+ if (found_value && found_value->type == PIMPLE_IS_SERVICE && found_value->initialized == 1) {
+ pimple_free_bucket(&pimple_value);
+ convert_to_string(offset);
+ pimple_throw_exception_string(pimple_ce_FrozenServiceException, Z_STRVAL_P(offset), Z_STRLEN_P(offset) TSRMLS_CC);
+ return;
+ }
+ if (zend_hash_index_update(&pimple_obj->values, index, (void *)&pimple_value, sizeof(pimple_bucket_value), NULL) == FAILURE) {
+ pimple_free_bucket(&pimple_value);
+ return;
+ }
+ Z_ADDREF_P(value);
+ break;
+ case IS_NULL: /* $p[] = 'foo' when overloaded */
+ zend_hash_next_index_insert(&pimple_obj->values, (void *)&pimple_value, sizeof(pimple_bucket_value), NULL);
+ Z_ADDREF_P(value);
+ break;
+ default:
+ pimple_free_bucket(&pimple_value);
+ zend_error(E_WARNING, "Unsupported offset type");
+ }
+}
+
+static void pimple_object_unset_dimension(zval *object, zval *offset TSRMLS_DC)
+{
+ FETCH_DIM_HANDLERS_VARS
+
+ switch (Z_TYPE_P(offset)) {
+ case IS_STRING:
+ zend_symtable_del(&pimple_obj->values, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
+ zend_symtable_del(&pimple_obj->factories, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
+ zend_symtable_del(&pimple_obj->protected, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
+ break;
+ case IS_DOUBLE:
+ case IS_BOOL:
+ case IS_LONG:
+ if (Z_TYPE_P(offset) == IS_DOUBLE) {
+ index = (ulong)Z_DVAL_P(offset);
+ } else {
+ index = Z_LVAL_P(offset);
+ }
+ zend_hash_index_del(&pimple_obj->values, index);
+ zend_hash_index_del(&pimple_obj->factories, index);
+ zend_hash_index_del(&pimple_obj->protected, index);
+ break;
+ default:
+ zend_error(E_WARNING, "Unsupported offset type");
+ }
+}
+
+static int pimple_object_has_dimension(zval *object, zval *offset, int check_empty TSRMLS_DC)
+{
+ FETCH_DIM_HANDLERS_VARS
+
+ pimple_bucket_value *retval = NULL;
+
+ switch (Z_TYPE_P(offset)) {
+ case IS_STRING:
+ if (zend_symtable_find(&pimple_obj->values, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, (void **)&retval) == SUCCESS) {
+ switch (check_empty) {
+ case 0: /* isset */
+ return 1; /* Differs from PHP behavior (Z_TYPE_P(retval->value) != IS_NULL;) */
+ case 1: /* empty */
+ default:
+ return zend_is_true(retval->value);
+ }
+ }
+ return 0;
+ break;
+ case IS_DOUBLE:
+ case IS_BOOL:
+ case IS_LONG:
+ if (Z_TYPE_P(offset) == IS_DOUBLE) {
+ index = (ulong)Z_DVAL_P(offset);
+ } else {
+ index = Z_LVAL_P(offset);
+ }
+ if (zend_hash_index_find(&pimple_obj->values, index, (void **)&retval) == SUCCESS) {
+ switch (check_empty) {
+ case 0: /* isset */
+ return 1; /* Differs from PHP behavior (Z_TYPE_P(retval->value) != IS_NULL;)*/
+ case 1: /* empty */
+ default:
+ return zend_is_true(retval->value);
+ }
+ }
+ return 0;
+ break;
+ default:
+ zend_error(E_WARNING, "Unsupported offset type");
+ return 0;
+ }
+}
+
+static zval *pimple_object_read_dimension(zval *object, zval *offset, int type TSRMLS_DC)
+{
+ FETCH_DIM_HANDLERS_VARS
+
+ pimple_bucket_value *retval = NULL;
+ zend_fcall_info fci = {0};
+ zval *retval_ptr_ptr = NULL;
+
+ switch (Z_TYPE_P(offset)) {
+ case IS_STRING:
+ if (zend_symtable_find(&pimple_obj->values, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, (void **)&retval) == FAILURE) {
+ pimple_throw_exception_string(pimple_ce_UnknownIdentifierException, Z_STRVAL_P(offset), Z_STRLEN_P(offset) TSRMLS_CC);
+
+ return EG(uninitialized_zval_ptr);
+ }
+ break;
+ case IS_DOUBLE:
+ case IS_BOOL:
+ case IS_LONG:
+ if (Z_TYPE_P(offset) == IS_DOUBLE) {
+ index = (ulong)Z_DVAL_P(offset);
+ } else {
+ index = Z_LVAL_P(offset);
+ }
+ if (zend_hash_index_find(&pimple_obj->values, index, (void **)&retval) == FAILURE) {
+ return EG(uninitialized_zval_ptr);
+ }
+ break;
+ case IS_NULL: /* $p[][3] = 'foo' first dim access */
+ return EG(uninitialized_zval_ptr);
+ break;
+ default:
+ zend_error(E_WARNING, "Unsupported offset type");
+ return EG(uninitialized_zval_ptr);
+ }
+
+ if(retval->type == PIMPLE_IS_PARAM) {
+ return retval->value;
+ }
+
+ if (zend_hash_index_exists(&pimple_obj->protected, retval->handle_num)) {
+ /* Service is protected, return the value every time */
+ return retval->value;
+ }
+
+ if (zend_hash_index_exists(&pimple_obj->factories, retval->handle_num)) {
+ /* Service is a factory, call it every time and never cache its result */
+ PIMPLE_CALL_CB
+ Z_DELREF_P(retval_ptr_ptr); /* fetch dim addr will increment refcount */
+ return retval_ptr_ptr;
+ }
+
+ if (retval->initialized == 1) {
+ /* Service has already been called, return its cached value */
+ return retval->value;
+ }
+
+ ALLOC_INIT_ZVAL(retval->raw);
+ MAKE_COPY_ZVAL(&retval->value, retval->raw);
+
+ PIMPLE_CALL_CB
+
+ retval->initialized = 1;
+ zval_ptr_dtor(&retval->value);
+ retval->value = retval_ptr_ptr;
+
+ return retval->value;
+}
+
+static int pimple_zval_is_valid_callback(zval *_zval, pimple_bucket_value *_pimple_bucket_value TSRMLS_DC)
+{
+ if (Z_TYPE_P(_zval) != IS_OBJECT) {
+ return FAILURE;
+ }
+
+ if (_pimple_bucket_value->fcc.called_scope) {
+ return SUCCESS;
+ }
+
+ if (Z_OBJ_HANDLER_P(_zval, get_closure) && Z_OBJ_HANDLER_P(_zval, get_closure)(_zval, &_pimple_bucket_value->fcc.calling_scope, &_pimple_bucket_value->fcc.function_handler, &_pimple_bucket_value->fcc.object_ptr TSRMLS_CC) == SUCCESS) {
+ _pimple_bucket_value->fcc.called_scope = _pimple_bucket_value->fcc.calling_scope;
+ return SUCCESS;
+ } else {
+ return FAILURE;
+ }
+}
+
+static int pimple_zval_to_pimpleval(zval *_zval, pimple_bucket_value *_pimple_bucket_value TSRMLS_DC)
+{
+ _pimple_bucket_value->value = _zval;
+
+ if (Z_TYPE_P(_zval) != IS_OBJECT) {
+ return PIMPLE_IS_PARAM;
+ }
+
+ if (pimple_zval_is_valid_callback(_zval, _pimple_bucket_value TSRMLS_CC) == SUCCESS) {
+ _pimple_bucket_value->type = PIMPLE_IS_SERVICE;
+ _pimple_bucket_value->handle_num = Z_OBJ_HANDLE_P(_zval);
+ }
+
+ return PIMPLE_IS_SERVICE;
+}
+
+static void pimple_bucket_dtor(pimple_bucket_value *bucket)
+{
+ zval_ptr_dtor(&bucket->value);
+ pimple_free_bucket(bucket);
+}
+
+PHP_METHOD(FrozenServiceException, __construct)
+{
+ char *id = NULL;
+ int id_len;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &id, &id_len) == FAILURE) {
+ return;
+ }
+ pimple_exception_call_parent_constructor(getThis(), "Cannot override frozen service \"%s\".", id TSRMLS_CC);
+}
+
+PHP_METHOD(InvalidServiceIdentifierException, __construct)
+{
+ char *id = NULL;
+ int id_len;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &id, &id_len) == FAILURE) {
+ return;
+ }
+ pimple_exception_call_parent_constructor(getThis(), "Identifier \"%s\" does not contain an object definition.", id TSRMLS_CC);
+}
+
+PHP_METHOD(UnknownIdentifierException, __construct)
+{
+ char *id = NULL;
+ int id_len;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &id, &id_len) == FAILURE) {
+ return;
+ }
+ pimple_exception_call_parent_constructor(getThis(), "Identifier \"%s\" is not defined.", id TSRMLS_CC);
+}
+
+PHP_METHOD(Pimple, protect)
+{
+ zval *protected = NULL;
+ pimple_object *pobj = NULL;
+ pimple_bucket_value bucket = {0};
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &protected) == FAILURE) {
+ return;
+ }
+
+ if (pimple_zval_is_valid_callback(protected, &bucket TSRMLS_CC) == FAILURE) {
+ pimple_free_bucket(&bucket);
+ zend_throw_exception(pimple_ce_ExpectedInvokableException, "Callable is not a Closure or invokable object.", 0 TSRMLS_CC);
+ return;
+ }
+
+ pimple_zval_to_pimpleval(protected, &bucket TSRMLS_CC);
+ pobj = (pimple_object *)zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ if (zend_hash_index_update(&pobj->protected, bucket.handle_num, (void *)&bucket, sizeof(pimple_bucket_value), NULL) == SUCCESS) {
+ Z_ADDREF_P(protected);
+ RETURN_ZVAL(protected, 1 , 0);
+ } else {
+ pimple_free_bucket(&bucket);
+ }
+ RETURN_FALSE;
+}
+
+PHP_METHOD(Pimple, raw)
+{
+ zval *offset = NULL;
+ pimple_object *pobj = NULL;
+ pimple_bucket_value *value = NULL;
+ ulong index;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &offset) == FAILURE) {
+ return;
+ }
+
+ pobj = zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ switch (Z_TYPE_P(offset)) {
+ case IS_STRING:
+ if (zend_symtable_find(&pobj->values, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, (void *)&value) == FAILURE) {
+ pimple_throw_exception_string(pimple_ce_UnknownIdentifierException, Z_STRVAL_P(offset), Z_STRLEN_P(offset) TSRMLS_CC);
+ RETURN_NULL();
+ }
+ break;
+ case IS_DOUBLE:
+ case IS_BOOL:
+ case IS_LONG:
+ if (Z_TYPE_P(offset) == IS_DOUBLE) {
+ index = (ulong)Z_DVAL_P(offset);
+ } else {
+ index = Z_LVAL_P(offset);
+ }
+ if (zend_hash_index_find(&pobj->values, index, (void *)&value) == FAILURE) {
+ RETURN_NULL();
+ }
+ break;
+ case IS_NULL:
+ default:
+ zend_error(E_WARNING, "Unsupported offset type");
+ }
+
+ if (value->raw) {
+ RETVAL_ZVAL(value->raw, 1, 0);
+ } else {
+ RETVAL_ZVAL(value->value, 1, 0);
+ }
+}
+
+PHP_METHOD(Pimple, extend)
+{
+ zval *offset = NULL, *callable = NULL, *pimple_closure_obj = NULL;
+ pimple_bucket_value bucket = {0}, *value = NULL;
+ pimple_object *pobj = NULL;
+ pimple_closure_object *pcobj = NULL;
+ ulong index;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zz", &offset, &callable) == FAILURE) {
+ return;
+ }
+
+ pobj = zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ switch (Z_TYPE_P(offset)) {
+ case IS_STRING:
+ if (zend_symtable_find(&pobj->values, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, (void *)&value) == FAILURE) {
+ pimple_throw_exception_string(pimple_ce_UnknownIdentifierException, Z_STRVAL_P(offset), Z_STRLEN_P(offset) TSRMLS_CC);
+ RETURN_NULL();
+ }
+
+ if (value->type != PIMPLE_IS_SERVICE) {
+ pimple_throw_exception_string(pimple_ce_InvalidServiceIdentifierException, Z_STRVAL_P(offset), Z_STRLEN_P(offset) TSRMLS_CC);
+ RETURN_NULL();
+ }
+ if (zend_hash_index_exists(&pobj->protected, value->handle_num)) {
+ int er = EG(error_reporting);
+ EG(error_reporting) = 0;
+ php_error(E_DEPRECATED, "How Pimple behaves when extending protected closures will be fixed in Pimple 4. Are you sure \"%s\" should be protected?", Z_STRVAL_P(offset));
+ EG(error_reporting) = er;
+ }
+ break;
+ case IS_DOUBLE:
+ case IS_BOOL:
+ case IS_LONG:
+ if (Z_TYPE_P(offset) == IS_DOUBLE) {
+ index = (ulong)Z_DVAL_P(offset);
+ } else {
+ index = Z_LVAL_P(offset);
+ }
+ if (zend_hash_index_find(&pobj->values, index, (void *)&value) == FAILURE) {
+ convert_to_string(offset);
+ pimple_throw_exception_string(pimple_ce_UnknownIdentifierException, Z_STRVAL_P(offset), Z_STRLEN_P(offset) TSRMLS_CC);
+ RETURN_NULL();
+ }
+ if (value->type != PIMPLE_IS_SERVICE) {
+ convert_to_string(offset);
+ pimple_throw_exception_string(pimple_ce_InvalidServiceIdentifierException, Z_STRVAL_P(offset), Z_STRLEN_P(offset) TSRMLS_CC);
+ RETURN_NULL();
+ }
+ if (zend_hash_index_exists(&pobj->protected, value->handle_num)) {
+ int er = EG(error_reporting);
+ EG(error_reporting) = 0;
+ php_error(E_DEPRECATED, "How Pimple behaves when extending protected closures will be fixed in Pimple 4. Are you sure \"%ld\" should be protected?", index);
+ EG(error_reporting) = er;
+ }
+ break;
+ case IS_NULL:
+ default:
+ zend_error(E_WARNING, "Unsupported offset type");
+ }
+
+ if (pimple_zval_is_valid_callback(callable, &bucket TSRMLS_CC) == FAILURE) {
+ pimple_free_bucket(&bucket);
+ zend_throw_exception(pimple_ce_ExpectedInvokableException, "Extension service definition is not a Closure or invokable object.", 0 TSRMLS_CC);
+ RETURN_NULL();
+ }
+ pimple_free_bucket(&bucket);
+
+ ALLOC_INIT_ZVAL(pimple_closure_obj);
+ object_init_ex(pimple_closure_obj, pimple_closure_ce);
+
+ pcobj = zend_object_store_get_object(pimple_closure_obj TSRMLS_CC);
+ pcobj->callable = callable;
+ pcobj->factory = value->value;
+ Z_ADDREF_P(callable);
+ Z_ADDREF_P(value->value);
+
+ if (zend_hash_index_exists(&pobj->factories, value->handle_num)) {
+ pimple_zval_to_pimpleval(pimple_closure_obj, &bucket TSRMLS_CC);
+ zend_hash_index_del(&pobj->factories, value->handle_num);
+ zend_hash_index_update(&pobj->factories, bucket.handle_num, (void *)&bucket, sizeof(pimple_bucket_value), NULL);
+ Z_ADDREF_P(pimple_closure_obj);
+ }
+
+ pimple_object_write_dimension(getThis(), offset, pimple_closure_obj TSRMLS_CC);
+
+ RETVAL_ZVAL(pimple_closure_obj, 1, 1);
+}
+
+PHP_METHOD(Pimple, keys)
+{
+ HashPosition pos;
+ pimple_object *pobj = NULL;
+ zval **value = NULL;
+ zval *endval = NULL;
+ char *str_index = NULL;
+ int str_len;
+ ulong num_index;
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
+ pobj = zend_object_store_get_object(getThis() TSRMLS_CC);
+ array_init_size(return_value, zend_hash_num_elements(&pobj->values));
+
+ zend_hash_internal_pointer_reset_ex(&pobj->values, &pos);
+
+ while(zend_hash_get_current_data_ex(&pobj->values, (void **)&value, &pos) == SUCCESS) {
+ MAKE_STD_ZVAL(endval);
+ switch (zend_hash_get_current_key_ex(&pobj->values, &str_index, (uint *)&str_len, &num_index, 0, &pos)) {
+ case HASH_KEY_IS_STRING:
+ ZVAL_STRINGL(endval, str_index, str_len - 1, 1);
+ zend_hash_next_index_insert(Z_ARRVAL_P(return_value), &endval, sizeof(zval *), NULL);
+ break;
+ case HASH_KEY_IS_LONG:
+ ZVAL_LONG(endval, num_index);
+ zend_hash_next_index_insert(Z_ARRVAL_P(return_value), &endval, sizeof(zval *), NULL);
+ break;
+ }
+ zend_hash_move_forward_ex(&pobj->values, &pos);
+ }
+}
+
+PHP_METHOD(Pimple, factory)
+{
+ zval *factory = NULL;
+ pimple_object *pobj = NULL;
+ pimple_bucket_value bucket = {0};
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &factory) == FAILURE) {
+ return;
+ }
+
+ if (pimple_zval_is_valid_callback(factory, &bucket TSRMLS_CC) == FAILURE) {
+ pimple_free_bucket(&bucket);
+ zend_throw_exception(pimple_ce_ExpectedInvokableException, "Service definition is not a Closure or invokable object.", 0 TSRMLS_CC);
+ return;
+ }
+
+ pimple_zval_to_pimpleval(factory, &bucket TSRMLS_CC);
+ pobj = (pimple_object *)zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ if (zend_hash_index_update(&pobj->factories, bucket.handle_num, (void *)&bucket, sizeof(pimple_bucket_value), NULL) == SUCCESS) {
+ Z_ADDREF_P(factory);
+ RETURN_ZVAL(factory, 1 , 0);
+ } else {
+ pimple_free_bucket(&bucket);
+ }
+
+ RETURN_FALSE;
+}
+
+PHP_METHOD(Pimple, offsetSet)
+{
+ zval *offset = NULL, *value = NULL;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zz", &offset, &value) == FAILURE) {
+ return;
+ }
+
+ pimple_object_write_dimension(getThis(), offset, value TSRMLS_CC);
+}
+
+PHP_METHOD(Pimple, offsetGet)
+{
+ zval *offset = NULL, *retval = NULL;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &offset) == FAILURE) {
+ return;
+ }
+
+ retval = pimple_object_read_dimension(getThis(), offset, 0 TSRMLS_CC);
+
+ RETVAL_ZVAL(retval, 1, 0);
+}
+
+PHP_METHOD(Pimple, offsetUnset)
+{
+ zval *offset = NULL;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &offset) == FAILURE) {
+ return;
+ }
+
+ pimple_object_unset_dimension(getThis(), offset TSRMLS_CC);
+}
+
+PHP_METHOD(Pimple, offsetExists)
+{
+ zval *offset = NULL;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &offset) == FAILURE) {
+ return;
+ }
+
+ RETVAL_BOOL(pimple_object_has_dimension(getThis(), offset, 1 TSRMLS_CC));
+}
+
+PHP_METHOD(Pimple, register)
+{
+ zval *provider;
+ zval **data;
+ zval *retval = NULL;
+ zval key;
+
+ HashTable *array = NULL;
+ HashPosition pos;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|h", &provider, pimple_serviceprovider_ce, &array) == FAILURE) {
+ return;
+ }
+
+ RETVAL_ZVAL(getThis(), 1, 0);
+
+ zend_call_method_with_1_params(&provider, Z_OBJCE_P(provider), NULL, "register", &retval, getThis());
+
+ if (retval) {
+ zval_ptr_dtor(&retval);
+ }
+
+ if (!array) {
+ return;
+ }
+
+ zend_hash_internal_pointer_reset_ex(array, &pos);
+
+ while(zend_hash_get_current_data_ex(array, (void **)&data, &pos) == SUCCESS) {
+ zend_hash_get_current_key_zval_ex(array, &key, &pos);
+ pimple_object_write_dimension(getThis(), &key, *data TSRMLS_CC);
+ zend_hash_move_forward_ex(array, &pos);
+ }
+}
+
+PHP_METHOD(Pimple, __construct)
+{
+ zval *values = NULL, **pData = NULL, offset;
+ HashPosition pos;
+ char *str_index = NULL;
+ zend_uint str_length;
+ ulong num_index;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|a!", &values) == FAILURE) {
+ return;
+ }
+
+ PIMPLE_DEPRECATE
+
+ if (!values) {
+ return;
+ }
+
+ zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(values), &pos);
+ while (zend_hash_has_more_elements_ex(Z_ARRVAL_P(values), &pos) == SUCCESS) {
+ zend_hash_get_current_data_ex(Z_ARRVAL_P(values), (void **)&pData, &pos);
+ zend_hash_get_current_key_ex(Z_ARRVAL_P(values), &str_index, &str_length, &num_index, 0, &pos);
+ INIT_ZVAL(offset);
+ if (zend_hash_get_current_key_type_ex(Z_ARRVAL_P(values), &pos) == HASH_KEY_IS_LONG) {
+ ZVAL_LONG(&offset, num_index);
+ } else {
+ ZVAL_STRINGL(&offset, str_index, (str_length - 1), 0);
+ }
+ pimple_object_write_dimension(getThis(), &offset, *pData TSRMLS_CC);
+ zend_hash_move_forward_ex(Z_ARRVAL_P(values), &pos);
+ }
+}
+
+/*
+ * This is PHP code snippet handling extend()s calls :
+
+ $extended = function ($c) use ($callable, $factory) {
+ return $callable($factory($c), $c);
+ };
+
+ */
+PHP_METHOD(PimpleClosure, invoker)
+{
+ pimple_closure_object *pcobj = NULL;
+ zval *arg = NULL, *retval = NULL, *newretval = NULL;
+ zend_fcall_info fci = {0};
+ zval **args[2];
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &arg) == FAILURE) {
+ return;
+ }
+
+ pcobj = zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ fci.function_name = pcobj->factory;
+ args[0] = &arg;
+ zend_fcall_info_argp(&fci TSRMLS_CC, 1, args);
+ fci.retval_ptr_ptr = &retval;
+ fci.size = sizeof(fci);
+
+ if (zend_call_function(&fci, NULL TSRMLS_CC) == FAILURE || EG(exception)) {
+ efree(fci.params);
+ return; /* Should here return default zval */
+ }
+
+ efree(fci.params);
+ memset(&fci, 0, sizeof(fci));
+ fci.size = sizeof(fci);
+
+ fci.function_name = pcobj->callable;
+ args[0] = &retval;
+ args[1] = &arg;
+ zend_fcall_info_argp(&fci TSRMLS_CC, 2, args);
+ fci.retval_ptr_ptr = &newretval;
+
+ if (zend_call_function(&fci, NULL TSRMLS_CC) == FAILURE || EG(exception)) {
+ efree(fci.params);
+ zval_ptr_dtor(&retval);
+ return;
+ }
+
+ efree(fci.params);
+ zval_ptr_dtor(&retval);
+
+ RETVAL_ZVAL(newretval, 1 ,1);
+}
+
+PHP_MINIT_FUNCTION(pimple)
+{
+ zend_class_entry tmp_ce_PsrContainerInterface, tmp_ce_PsrContainerExceptionInterface, tmp_ce_PsrNotFoundExceptionInterface;
+ zend_class_entry tmp_ce_ExpectedInvokableException, tmp_ce_FrozenServiceException, tmp_ce_InvalidServiceIdentifierException, tmp_ce_UnknownIdentifierException;
+ zend_class_entry tmp_pimple_ce, tmp_pimple_closure_ce, tmp_pimple_serviceprovider_iface_ce;
+
+ /* Psr\Container namespace */
+ INIT_NS_CLASS_ENTRY(tmp_ce_PsrContainerInterface, PSR_CONTAINER_NS, "ContainerInterface", pimple_ce_PsrContainerInterface_functions);
+ INIT_NS_CLASS_ENTRY(tmp_ce_PsrContainerExceptionInterface, PSR_CONTAINER_NS, "ContainerExceptionInterface", pimple_ce_PsrContainerExceptionInterface_functions);
+ INIT_NS_CLASS_ENTRY(tmp_ce_PsrNotFoundExceptionInterface, PSR_CONTAINER_NS, "NotFoundExceptionInterface", pimple_ce_PsrNotFoundExceptionInterface_functions);
+
+ pimple_ce_PsrContainerInterface = zend_register_internal_interface(&tmp_ce_PsrContainerInterface TSRMLS_CC);
+ pimple_ce_PsrContainerExceptionInterface = zend_register_internal_interface(&tmp_ce_PsrContainerExceptionInterface TSRMLS_CC);
+ pimple_ce_PsrNotFoundExceptionInterface = zend_register_internal_interface(&tmp_ce_PsrNotFoundExceptionInterface TSRMLS_CC);
+
+ zend_class_implements(pimple_ce_PsrNotFoundExceptionInterface TSRMLS_CC, 1, pimple_ce_PsrContainerExceptionInterface);
+
+ /* Pimple\Exception namespace */
+ INIT_NS_CLASS_ENTRY(tmp_ce_ExpectedInvokableException, PIMPLE_EXCEPTION_NS, "ExpectedInvokableException", NULL);
+ INIT_NS_CLASS_ENTRY(tmp_ce_FrozenServiceException, PIMPLE_EXCEPTION_NS, "FrozenServiceException", pimple_ce_FrozenServiceException_functions);
+ INIT_NS_CLASS_ENTRY(tmp_ce_InvalidServiceIdentifierException, PIMPLE_EXCEPTION_NS, "InvalidServiceIdentifierException", pimple_ce_InvalidServiceIdentifierException_functions);
+ INIT_NS_CLASS_ENTRY(tmp_ce_UnknownIdentifierException, PIMPLE_EXCEPTION_NS, "UnknownIdentifierException", pimple_ce_UnknownIdentifierException_functions);
+
+ pimple_ce_ExpectedInvokableException = zend_register_internal_class_ex(&tmp_ce_ExpectedInvokableException, spl_ce_InvalidArgumentException, NULL TSRMLS_CC);
+ pimple_ce_FrozenServiceException = zend_register_internal_class_ex(&tmp_ce_FrozenServiceException, spl_ce_RuntimeException, NULL TSRMLS_CC);
+ pimple_ce_InvalidServiceIdentifierException = zend_register_internal_class_ex(&tmp_ce_InvalidServiceIdentifierException, spl_ce_InvalidArgumentException, NULL TSRMLS_CC);
+ pimple_ce_UnknownIdentifierException = zend_register_internal_class_ex(&tmp_ce_UnknownIdentifierException, spl_ce_InvalidArgumentException, NULL TSRMLS_CC);
+
+ zend_class_implements(pimple_ce_ExpectedInvokableException TSRMLS_CC, 1, pimple_ce_PsrContainerExceptionInterface);
+ zend_class_implements(pimple_ce_FrozenServiceException TSRMLS_CC, 1, pimple_ce_PsrContainerExceptionInterface);
+ zend_class_implements(pimple_ce_InvalidServiceIdentifierException TSRMLS_CC, 1, pimple_ce_PsrContainerExceptionInterface);
+ zend_class_implements(pimple_ce_UnknownIdentifierException TSRMLS_CC, 1, pimple_ce_PsrNotFoundExceptionInterface);
+
+ /* Pimple namespace */
+ INIT_NS_CLASS_ENTRY(tmp_pimple_ce, PIMPLE_NS, "Container", pimple_ce_functions);
+ INIT_NS_CLASS_ENTRY(tmp_pimple_closure_ce, PIMPLE_NS, "ContainerClosure", NULL);
+ INIT_NS_CLASS_ENTRY(tmp_pimple_serviceprovider_iface_ce, PIMPLE_NS, "ServiceProviderInterface", pimple_serviceprovider_iface_ce_functions);
+
+ tmp_pimple_ce.create_object = pimple_object_create;
+ tmp_pimple_closure_ce.create_object = pimple_closure_object_create;
+
+ pimple_ce = zend_register_internal_class(&tmp_pimple_ce TSRMLS_CC);
+ zend_class_implements(pimple_ce TSRMLS_CC, 1, zend_ce_arrayaccess);
+
+ pimple_closure_ce = zend_register_internal_class(&tmp_pimple_closure_ce TSRMLS_CC);
+ pimple_closure_ce->ce_flags |= ZEND_ACC_FINAL_CLASS;
+
+ pimple_serviceprovider_ce = zend_register_internal_interface(&tmp_pimple_serviceprovider_iface_ce TSRMLS_CC);
+
+ memcpy(&pimple_closure_object_handlers, zend_get_std_object_handlers(), sizeof(*zend_get_std_object_handlers()));
+ pimple_object_handlers = std_object_handlers;
+ pimple_closure_object_handlers.get_closure = pimple_closure_get_closure;
+
+ pimple_closure_invoker_function.function_name = "Pimple closure internal invoker";
+ pimple_closure_invoker_function.fn_flags |= ZEND_ACC_CLOSURE;
+ pimple_closure_invoker_function.handler = ZEND_MN(PimpleClosure_invoker);
+ pimple_closure_invoker_function.num_args = 1;
+ pimple_closure_invoker_function.required_num_args = 1;
+ pimple_closure_invoker_function.scope = pimple_closure_ce;
+ pimple_closure_invoker_function.type = ZEND_INTERNAL_FUNCTION;
+ pimple_closure_invoker_function.module = &pimple_module_entry;
+
+ return SUCCESS;
+}
+
+PHP_MINFO_FUNCTION(pimple)
+{
+ php_info_print_table_start();
+ php_info_print_table_header(2, "SensioLabs Pimple C support", "enabled");
+ php_info_print_table_row(2, "Pimple supported version", PIMPLE_VERSION);
+ php_info_print_table_end();
+
+ php_info_print_box_start(0);
+ php_write((void *)ZEND_STRL("SensioLabs Pimple C support developed by Julien Pauli") TSRMLS_CC);
+ if (!sapi_module.phpinfo_as_text) {
+ php_write((void *)ZEND_STRL(sensiolabs_logo) TSRMLS_CC);
+ }
+ php_info_print_box_end();
+}
+
+zend_module_entry pimple_module_entry = {
+ STANDARD_MODULE_HEADER,
+ "pimple",
+ NULL,
+ PHP_MINIT(pimple),
+ NULL,
+ NULL,
+ NULL,
+ PHP_MINFO(pimple),
+ PIMPLE_VERSION,
+ STANDARD_MODULE_PROPERTIES
+};
+
+#ifdef COMPILE_DL_PIMPLE
+ZEND_GET_MODULE(pimple)
+#endif
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/pimple_compat.h b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/pimple_compat.h
new file mode 100644
index 00000000..d234e174
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/pimple_compat.h
@@ -0,0 +1,81 @@
+
+/*
+ * This file is part of Pimple.
+ *
+ * Copyright (c) 2014 Fabien Potencier
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is furnished
+ * to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef PIMPLE_COMPAT_H_
+#define PIMPLE_COMPAT_H_
+
+#include "Zend/zend_extensions.h" /* for ZEND_EXTENSION_API_NO */
+
+#define PHP_5_0_X_API_NO 220040412
+#define PHP_5_1_X_API_NO 220051025
+#define PHP_5_2_X_API_NO 220060519
+#define PHP_5_3_X_API_NO 220090626
+#define PHP_5_4_X_API_NO 220100525
+#define PHP_5_5_X_API_NO 220121212
+#define PHP_5_6_X_API_NO 220131226
+
+#define IS_PHP_56 ZEND_EXTENSION_API_NO == PHP_5_6_X_API_NO
+#define IS_AT_LEAST_PHP_56 ZEND_EXTENSION_API_NO >= PHP_5_6_X_API_NO
+
+#define IS_PHP_55 ZEND_EXTENSION_API_NO == PHP_5_5_X_API_NO
+#define IS_AT_LEAST_PHP_55 ZEND_EXTENSION_API_NO >= PHP_5_5_X_API_NO
+
+#define IS_PHP_54 ZEND_EXTENSION_API_NO == PHP_5_4_X_API_NO
+#define IS_AT_LEAST_PHP_54 ZEND_EXTENSION_API_NO >= PHP_5_4_X_API_NO
+
+#define IS_PHP_53 ZEND_EXTENSION_API_NO == PHP_5_3_X_API_NO
+#define IS_AT_LEAST_PHP_53 ZEND_EXTENSION_API_NO >= PHP_5_3_X_API_NO
+
+#if IS_PHP_53
+#define object_properties_init(obj, ce) do { \
+ zend_hash_copy(obj->properties, &ce->default_properties, zval_copy_property_ctor(ce), NULL, sizeof(zval *)); \
+ } while (0);
+#endif
+
+#define ZEND_OBJ_INIT(obj, ce) do { \
+ zend_object_std_init(obj, ce TSRMLS_CC); \
+ object_properties_init((obj), (ce)); \
+ } while(0);
+
+#if IS_PHP_53 || IS_PHP_54
+static void zend_hash_get_current_key_zval_ex(const HashTable *ht, zval *key, HashPosition *pos) {
+ Bucket *p;
+
+ p = pos ? (*pos) : ht->pInternalPointer;
+
+ if (!p) {
+ Z_TYPE_P(key) = IS_NULL;
+ } else if (p->nKeyLength) {
+ Z_TYPE_P(key) = IS_STRING;
+ Z_STRVAL_P(key) = estrndup(p->arKey, p->nKeyLength - 1);
+ Z_STRLEN_P(key) = p->nKeyLength - 1;
+ } else {
+ Z_TYPE_P(key) = IS_LONG;
+ Z_LVAL_P(key) = p->h;
+ }
+}
+#endif
+
+#endif /* PIMPLE_COMPAT_H_ */
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/001.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/001.phpt
new file mode 100644
index 00000000..0809ea23
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/001.phpt
@@ -0,0 +1,45 @@
+--TEST--
+Test for read_dim/write_dim handlers
+--SKIPIF--
+
+--FILE--
+
+
+--EXPECTF--
+foo
+42
+foo2
+foo99
+baz
+strstr
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/002.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/002.phpt
new file mode 100644
index 00000000..7b56d2c1
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/002.phpt
@@ -0,0 +1,15 @@
+--TEST--
+Test for constructor
+--SKIPIF--
+
+--FILE--
+'foo'));
+var_dump($p[42]);
+?>
+--EXPECT--
+NULL
+string(3) "foo"
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/003.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/003.phpt
new file mode 100644
index 00000000..a22cfa35
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/003.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Test empty dimensions
+--SKIPIF--
+
+--FILE--
+
+--EXPECT--
+int(42)
+string(3) "bar"
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/004.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/004.phpt
new file mode 100644
index 00000000..1e1d2513
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/004.phpt
@@ -0,0 +1,30 @@
+--TEST--
+Test has/unset dim handlers
+--SKIPIF--
+
+--FILE--
+
+--EXPECT--
+int(42)
+NULL
+bool(true)
+bool(false)
+bool(true)
+bool(true)
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/005.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/005.phpt
new file mode 100644
index 00000000..0479ee05
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/005.phpt
@@ -0,0 +1,27 @@
+--TEST--
+Test simple class inheritance
+--SKIPIF--
+
+--FILE--
+someAttr;
+?>
+--EXPECT--
+string(3) "hit"
+foo
+fooAttr
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/006.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/006.phpt
new file mode 100644
index 00000000..cfe8a119
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/006.phpt
@@ -0,0 +1,51 @@
+--TEST--
+Test complex class inheritance
+--SKIPIF--
+
+--FILE--
+ 'bar', 88 => 'baz');
+
+$p = new TestPimple($defaultValues);
+$p[42] = 'foo';
+var_dump($p[42]);
+var_dump($p[0]);
+?>
+--EXPECT--
+string(13) "hit offsetset"
+string(27) "hit offsetget in TestPimple"
+string(25) "hit offsetget in MyPimple"
+string(3) "foo"
+string(27) "hit offsetget in TestPimple"
+string(25) "hit offsetget in MyPimple"
+string(3) "baz"
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/007.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/007.phpt
new file mode 100644
index 00000000..5aac6838
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/007.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Test for read_dim/write_dim handlers
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+foo
+42
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/008.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/008.phpt
new file mode 100644
index 00000000..db7eeec4
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/008.phpt
@@ -0,0 +1,29 @@
+--TEST--
+Test frozen services
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/009.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/009.phpt
new file mode 100644
index 00000000..bb05ea29
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/009.phpt
@@ -0,0 +1,13 @@
+--TEST--
+Test service is called as callback, and only once
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+bool(true)
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/010.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/010.phpt
new file mode 100644
index 00000000..badce014
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/010.phpt
@@ -0,0 +1,45 @@
+--TEST--
+Test service is called as callback for every callback type
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+callme
+called
+Foo::bar
+array(2) {
+ [0]=>
+ string(3) "Foo"
+ [1]=>
+ string(3) "bar"
+}
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/011.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/011.phpt
new file mode 100644
index 00000000..6682ab8e
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/011.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Test service callback throwing an exception
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+all right!
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/012.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/012.phpt
new file mode 100644
index 00000000..4c6ac486
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/012.phpt
@@ -0,0 +1,28 @@
+--TEST--
+Test service factory
+--SKIPIF--
+
+--FILE--
+factory($f = function() { var_dump('called-1'); return 'ret-1';});
+
+$p[] = $f;
+
+$p[] = function () { var_dump('called-2'); return 'ret-2'; };
+
+var_dump($p[0]);
+var_dump($p[0]);
+var_dump($p[1]);
+var_dump($p[1]);
+?>
+--EXPECTF--
+string(8) "called-1"
+string(5) "ret-1"
+string(8) "called-1"
+string(5) "ret-1"
+string(8) "called-2"
+string(5) "ret-2"
+string(5) "ret-2"
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/013.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/013.phpt
new file mode 100644
index 00000000..f419958c
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/013.phpt
@@ -0,0 +1,33 @@
+--TEST--
+Test keys()
+--SKIPIF--
+
+--FILE--
+keys());
+
+$p['foo'] = 'bar';
+$p[] = 'foo';
+
+var_dump($p->keys());
+
+unset($p['foo']);
+
+var_dump($p->keys());
+?>
+--EXPECTF--
+array(0) {
+}
+array(2) {
+ [0]=>
+ string(3) "foo"
+ [1]=>
+ int(0)
+}
+array(1) {
+ [0]=>
+ int(0)
+}
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/014.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/014.phpt
new file mode 100644
index 00000000..ac937213
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/014.phpt
@@ -0,0 +1,30 @@
+--TEST--
+Test raw()
+--SKIPIF--
+
+--FILE--
+raw('foo'));
+var_dump($p[42]);
+
+unset($p['foo']);
+
+try {
+ $p->raw('foo');
+ echo "expected exception";
+} catch (InvalidArgumentException $e) { }
+--EXPECTF--
+string(8) "called-2"
+string(5) "ret-2"
+object(Closure)#%i (0) {
+}
+string(8) "called-2"
+string(5) "ret-2"
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/015.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/015.phpt
new file mode 100644
index 00000000..314f008a
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/015.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Test protect()
+--SKIPIF--
+
+--FILE--
+protect($f);
+
+var_dump($p['foo']);
+--EXPECTF--
+object(Closure)#%i (0) {
+}
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/016.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/016.phpt
new file mode 100644
index 00000000..e55edb0a
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/016.phpt
@@ -0,0 +1,24 @@
+--TEST--
+Test extend()
+--SKIPIF--
+
+--FILE--
+extend(12, function ($w) { var_dump($w); return 'bar'; }); /* $callable in code above */
+
+var_dump($c('param'));
+--EXPECTF--
+string(5) "param"
+string(3) "foo"
+string(3) "bar"
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/017.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/017.phpt
new file mode 100644
index 00000000..bac23ce0
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/017.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Test extend() with exception in service extension
+--SKIPIF--
+
+--FILE--
+extend(12, function ($w) { throw new BadMethodCallException; });
+
+try {
+ $p[12];
+ echo "Exception expected";
+} catch (BadMethodCallException $e) { }
+--EXPECTF--
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/017_1.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/017_1.phpt
new file mode 100644
index 00000000..8f881d6e
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/017_1.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Test extend() with exception in service factory
+--SKIPIF--
+
+--FILE--
+extend(12, function ($w) { return 'foobar'; });
+
+try {
+ $p[12];
+ echo "Exception expected";
+} catch (BadMethodCallException $e) { }
+--EXPECTF--
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/018.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/018.phpt
new file mode 100644
index 00000000..27c12a14
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/018.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Test register()
+--SKIPIF--
+
+--FILE--
+register(new Foo, array(42 => 'bar'));
+
+var_dump($p[42]);
+--EXPECTF--
+object(Pimple\Container)#1 (0) {
+}
+string(3) "bar"
\ No newline at end of file
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/019.phpt b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/019.phpt
new file mode 100644
index 00000000..28a9aeca
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/019.phpt
@@ -0,0 +1,18 @@
+--TEST--
+Test register() returns static and is a fluent interface
+--SKIPIF--
+
+--FILE--
+register(new Foo));
+--EXPECTF--
+bool(true)
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/bench.phpb b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/bench.phpb
new file mode 100644
index 00000000..8f983e65
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/bench.phpb
@@ -0,0 +1,51 @@
+factory($factory);
+
+$p['factory'] = $factory;
+
+echo $p['factory'];
+echo $p['factory'];
+echo $p['factory'];
+
+}
+
+echo microtime(true) - $time;
diff --git a/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/bench_shared.phpb b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/bench_shared.phpb
new file mode 100644
index 00000000..aec541f0
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/ext/pimple/tests/bench_shared.phpb
@@ -0,0 +1,25 @@
+
diff --git a/advancedcontentfilter/vendor/pimple/pimple/phpunit.xml.dist b/advancedcontentfilter/vendor/pimple/pimple/phpunit.xml.dist
new file mode 100644
index 00000000..5c8d487f
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/phpunit.xml.dist
@@ -0,0 +1,14 @@
+
+
+
+
+
+ ./src/Pimple/Tests
+
+
+
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Container.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Container.php
new file mode 100644
index 00000000..707b92b8
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Container.php
@@ -0,0 +1,298 @@
+factories = new \SplObjectStorage();
+ $this->protected = new \SplObjectStorage();
+
+ foreach ($values as $key => $value) {
+ $this->offsetSet($key, $value);
+ }
+ }
+
+ /**
+ * Sets a parameter or an object.
+ *
+ * Objects must be defined as Closures.
+ *
+ * Allowing any PHP callable leads to difficult to debug problems
+ * as function names (strings) are callable (creating a function with
+ * the same name as an existing parameter would break your container).
+ *
+ * @param string $id The unique identifier for the parameter or object
+ * @param mixed $value The value of the parameter or a closure to define an object
+ *
+ * @throws FrozenServiceException Prevent override of a frozen service
+ */
+ public function offsetSet($id, $value)
+ {
+ if (isset($this->frozen[$id])) {
+ throw new FrozenServiceException($id);
+ }
+
+ $this->values[$id] = $value;
+ $this->keys[$id] = true;
+ }
+
+ /**
+ * Gets a parameter or an object.
+ *
+ * @param string $id The unique identifier for the parameter or object
+ *
+ * @return mixed The value of the parameter or an object
+ *
+ * @throws UnknownIdentifierException If the identifier is not defined
+ */
+ public function offsetGet($id)
+ {
+ if (!isset($this->keys[$id])) {
+ throw new UnknownIdentifierException($id);
+ }
+
+ if (
+ isset($this->raw[$id])
+ || !\is_object($this->values[$id])
+ || isset($this->protected[$this->values[$id]])
+ || !\method_exists($this->values[$id], '__invoke')
+ ) {
+ return $this->values[$id];
+ }
+
+ if (isset($this->factories[$this->values[$id]])) {
+ return $this->values[$id]($this);
+ }
+
+ $raw = $this->values[$id];
+ $val = $this->values[$id] = $raw($this);
+ $this->raw[$id] = $raw;
+
+ $this->frozen[$id] = true;
+
+ return $val;
+ }
+
+ /**
+ * Checks if a parameter or an object is set.
+ *
+ * @param string $id The unique identifier for the parameter or object
+ *
+ * @return bool
+ */
+ public function offsetExists($id)
+ {
+ return isset($this->keys[$id]);
+ }
+
+ /**
+ * Unsets a parameter or an object.
+ *
+ * @param string $id The unique identifier for the parameter or object
+ */
+ public function offsetUnset($id)
+ {
+ if (isset($this->keys[$id])) {
+ if (\is_object($this->values[$id])) {
+ unset($this->factories[$this->values[$id]], $this->protected[$this->values[$id]]);
+ }
+
+ unset($this->values[$id], $this->frozen[$id], $this->raw[$id], $this->keys[$id]);
+ }
+ }
+
+ /**
+ * Marks a callable as being a factory service.
+ *
+ * @param callable $callable A service definition to be used as a factory
+ *
+ * @return callable The passed callable
+ *
+ * @throws ExpectedInvokableException Service definition has to be a closure or an invokable object
+ */
+ public function factory($callable)
+ {
+ if (!\method_exists($callable, '__invoke')) {
+ throw new ExpectedInvokableException('Service definition is not a Closure or invokable object.');
+ }
+
+ $this->factories->attach($callable);
+
+ return $callable;
+ }
+
+ /**
+ * Protects a callable from being interpreted as a service.
+ *
+ * This is useful when you want to store a callable as a parameter.
+ *
+ * @param callable $callable A callable to protect from being evaluated
+ *
+ * @return callable The passed callable
+ *
+ * @throws ExpectedInvokableException Service definition has to be a closure or an invokable object
+ */
+ public function protect($callable)
+ {
+ if (!\method_exists($callable, '__invoke')) {
+ throw new ExpectedInvokableException('Callable is not a Closure or invokable object.');
+ }
+
+ $this->protected->attach($callable);
+
+ return $callable;
+ }
+
+ /**
+ * Gets a parameter or the closure defining an object.
+ *
+ * @param string $id The unique identifier for the parameter or object
+ *
+ * @return mixed The value of the parameter or the closure defining an object
+ *
+ * @throws UnknownIdentifierException If the identifier is not defined
+ */
+ public function raw($id)
+ {
+ if (!isset($this->keys[$id])) {
+ throw new UnknownIdentifierException($id);
+ }
+
+ if (isset($this->raw[$id])) {
+ return $this->raw[$id];
+ }
+
+ return $this->values[$id];
+ }
+
+ /**
+ * Extends an object definition.
+ *
+ * Useful when you want to extend an existing object definition,
+ * without necessarily loading that object.
+ *
+ * @param string $id The unique identifier for the object
+ * @param callable $callable A service definition to extend the original
+ *
+ * @return callable The wrapped callable
+ *
+ * @throws UnknownIdentifierException If the identifier is not defined
+ * @throws FrozenServiceException If the service is frozen
+ * @throws InvalidServiceIdentifierException If the identifier belongs to a parameter
+ * @throws ExpectedInvokableException If the extension callable is not a closure or an invokable object
+ */
+ public function extend($id, $callable)
+ {
+ if (!isset($this->keys[$id])) {
+ throw new UnknownIdentifierException($id);
+ }
+
+ if (isset($this->frozen[$id])) {
+ throw new FrozenServiceException($id);
+ }
+
+ if (!\is_object($this->values[$id]) || !\method_exists($this->values[$id], '__invoke')) {
+ throw new InvalidServiceIdentifierException($id);
+ }
+
+ if (isset($this->protected[$this->values[$id]])) {
+ @\trigger_error(\sprintf('How Pimple behaves when extending protected closures will be fixed in Pimple 4. Are you sure "%s" should be protected?', $id), \E_USER_DEPRECATED);
+ }
+
+ if (!\is_object($callable) || !\method_exists($callable, '__invoke')) {
+ throw new ExpectedInvokableException('Extension service definition is not a Closure or invokable object.');
+ }
+
+ $factory = $this->values[$id];
+
+ $extended = function ($c) use ($callable, $factory) {
+ return $callable($factory($c), $c);
+ };
+
+ if (isset($this->factories[$factory])) {
+ $this->factories->detach($factory);
+ $this->factories->attach($extended);
+ }
+
+ return $this[$id] = $extended;
+ }
+
+ /**
+ * Returns all defined value names.
+ *
+ * @return array An array of value names
+ */
+ public function keys()
+ {
+ return \array_keys($this->values);
+ }
+
+ /**
+ * Registers a service provider.
+ *
+ * @param ServiceProviderInterface $provider A ServiceProviderInterface instance
+ * @param array $values An array of values that customizes the provider
+ *
+ * @return static
+ */
+ public function register(ServiceProviderInterface $provider, array $values = array())
+ {
+ $provider->register($this);
+
+ foreach ($values as $key => $value) {
+ $this[$key] = $value;
+ }
+
+ return $this;
+ }
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Exception/ExpectedInvokableException.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Exception/ExpectedInvokableException.php
new file mode 100644
index 00000000..7228421b
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Exception/ExpectedInvokableException.php
@@ -0,0 +1,38 @@
+
+ */
+class ExpectedInvokableException extends \InvalidArgumentException implements ContainerExceptionInterface
+{
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Exception/FrozenServiceException.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Exception/FrozenServiceException.php
new file mode 100644
index 00000000..e4d2f6d3
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Exception/FrozenServiceException.php
@@ -0,0 +1,45 @@
+
+ */
+class FrozenServiceException extends \RuntimeException implements ContainerExceptionInterface
+{
+ /**
+ * @param string $id Identifier of the frozen service
+ */
+ public function __construct($id)
+ {
+ parent::__construct(\sprintf('Cannot override frozen service "%s".', $id));
+ }
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Exception/InvalidServiceIdentifierException.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Exception/InvalidServiceIdentifierException.php
new file mode 100644
index 00000000..91e82f98
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Exception/InvalidServiceIdentifierException.php
@@ -0,0 +1,45 @@
+
+ */
+class InvalidServiceIdentifierException extends \InvalidArgumentException implements NotFoundExceptionInterface
+{
+ /**
+ * @param string $id The invalid identifier
+ */
+ public function __construct($id)
+ {
+ parent::__construct(\sprintf('Identifier "%s" does not contain an object definition.', $id));
+ }
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Exception/UnknownIdentifierException.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Exception/UnknownIdentifierException.php
new file mode 100644
index 00000000..fb6b626e
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Exception/UnknownIdentifierException.php
@@ -0,0 +1,45 @@
+
+ */
+class UnknownIdentifierException extends \InvalidArgumentException implements NotFoundExceptionInterface
+{
+ /**
+ * @param string $id The unknown identifier
+ */
+ public function __construct($id)
+ {
+ parent::__construct(\sprintf('Identifier "%s" is not defined.', $id));
+ }
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Psr11/Container.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Psr11/Container.php
new file mode 100644
index 00000000..cadbfffa
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Psr11/Container.php
@@ -0,0 +1,55 @@
+
+ */
+final class Container implements ContainerInterface
+{
+ private $pimple;
+
+ public function __construct(PimpleContainer $pimple)
+ {
+ $this->pimple = $pimple;
+ }
+
+ public function get($id)
+ {
+ return $this->pimple[$id];
+ }
+
+ public function has($id)
+ {
+ return isset($this->pimple[$id]);
+ }
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Psr11/ServiceLocator.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Psr11/ServiceLocator.php
new file mode 100644
index 00000000..3361c6f1
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Psr11/ServiceLocator.php
@@ -0,0 +1,75 @@
+
+ */
+class ServiceLocator implements ContainerInterface
+{
+ private $container;
+ private $aliases = array();
+
+ /**
+ * @param PimpleContainer $container The Container instance used to locate services
+ * @param array $ids Array of service ids that can be located. String keys can be used to define aliases
+ */
+ public function __construct(PimpleContainer $container, array $ids)
+ {
+ $this->container = $container;
+
+ foreach ($ids as $key => $id) {
+ $this->aliases[\is_int($key) ? $id : $key] = $id;
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function get($id)
+ {
+ if (!isset($this->aliases[$id])) {
+ throw new UnknownIdentifierException($id);
+ }
+
+ return $this->container[$this->aliases[$id]];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function has($id)
+ {
+ return isset($this->aliases[$id]) && isset($this->container[$this->aliases[$id]]);
+ }
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/ServiceIterator.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/ServiceIterator.php
new file mode 100644
index 00000000..5cde5188
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/ServiceIterator.php
@@ -0,0 +1,69 @@
+
+ */
+final class ServiceIterator implements \Iterator
+{
+ private $container;
+ private $ids;
+
+ public function __construct(Container $container, array $ids)
+ {
+ $this->container = $container;
+ $this->ids = $ids;
+ }
+
+ public function rewind()
+ {
+ \reset($this->ids);
+ }
+
+ public function current()
+ {
+ return $this->container[\current($this->ids)];
+ }
+
+ public function key()
+ {
+ return \current($this->ids);
+ }
+
+ public function next()
+ {
+ \next($this->ids);
+ }
+
+ public function valid()
+ {
+ return null !== \key($this->ids);
+ }
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/ServiceProviderInterface.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/ServiceProviderInterface.php
new file mode 100644
index 00000000..c004594b
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/ServiceProviderInterface.php
@@ -0,0 +1,46 @@
+value = $value;
+
+ return $service;
+ }
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/Fixtures/NonInvokable.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/Fixtures/NonInvokable.php
new file mode 100644
index 00000000..33cd4e54
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/Fixtures/NonInvokable.php
@@ -0,0 +1,34 @@
+factory(function () {
+ return new Service();
+ });
+ }
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/Fixtures/Service.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/Fixtures/Service.php
new file mode 100644
index 00000000..d71b184d
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/Fixtures/Service.php
@@ -0,0 +1,35 @@
+
+ */
+class Service
+{
+ public $value;
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/PimpleServiceProviderInterfaceTest.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/PimpleServiceProviderInterfaceTest.php
new file mode 100644
index 00000000..8e5c4c73
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/PimpleServiceProviderInterfaceTest.php
@@ -0,0 +1,76 @@
+
+ */
+class PimpleServiceProviderInterfaceTest extends \PHPUnit_Framework_TestCase
+{
+ public function testProvider()
+ {
+ $pimple = new Container();
+
+ $pimpleServiceProvider = new Fixtures\PimpleServiceProvider();
+ $pimpleServiceProvider->register($pimple);
+
+ $this->assertEquals('value', $pimple['param']);
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $pimple['service']);
+
+ $serviceOne = $pimple['factory'];
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $serviceOne);
+
+ $serviceTwo = $pimple['factory'];
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $serviceTwo);
+
+ $this->assertNotSame($serviceOne, $serviceTwo);
+ }
+
+ public function testProviderWithRegisterMethod()
+ {
+ $pimple = new Container();
+
+ $pimple->register(new Fixtures\PimpleServiceProvider(), array(
+ 'anotherParameter' => 'anotherValue',
+ ));
+
+ $this->assertEquals('value', $pimple['param']);
+ $this->assertEquals('anotherValue', $pimple['anotherParameter']);
+
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $pimple['service']);
+
+ $serviceOne = $pimple['factory'];
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $serviceOne);
+
+ $serviceTwo = $pimple['factory'];
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $serviceTwo);
+
+ $this->assertNotSame($serviceOne, $serviceTwo);
+ }
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/PimpleTest.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/PimpleTest.php
new file mode 100644
index 00000000..acb66e00
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/PimpleTest.php
@@ -0,0 +1,589 @@
+
+ */
+class PimpleTest extends \PHPUnit_Framework_TestCase
+{
+ public function testWithString()
+ {
+ $pimple = new Container();
+ $pimple['param'] = 'value';
+
+ $this->assertEquals('value', $pimple['param']);
+ }
+
+ public function testWithClosure()
+ {
+ $pimple = new Container();
+ $pimple['service'] = function () {
+ return new Fixtures\Service();
+ };
+
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $pimple['service']);
+ }
+
+ public function testServicesShouldBeDifferent()
+ {
+ $pimple = new Container();
+ $pimple['service'] = $pimple->factory(function () {
+ return new Fixtures\Service();
+ });
+
+ $serviceOne = $pimple['service'];
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $serviceOne);
+
+ $serviceTwo = $pimple['service'];
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $serviceTwo);
+
+ $this->assertNotSame($serviceOne, $serviceTwo);
+ }
+
+ public function testShouldPassContainerAsParameter()
+ {
+ $pimple = new Container();
+ $pimple['service'] = function () {
+ return new Fixtures\Service();
+ };
+ $pimple['container'] = function ($container) {
+ return $container;
+ };
+
+ $this->assertNotSame($pimple, $pimple['service']);
+ $this->assertSame($pimple, $pimple['container']);
+ }
+
+ public function testIsset()
+ {
+ $pimple = new Container();
+ $pimple['param'] = 'value';
+ $pimple['service'] = function () {
+ return new Fixtures\Service();
+ };
+
+ $pimple['null'] = null;
+
+ $this->assertTrue(isset($pimple['param']));
+ $this->assertTrue(isset($pimple['service']));
+ $this->assertTrue(isset($pimple['null']));
+ $this->assertFalse(isset($pimple['non_existent']));
+ }
+
+ public function testConstructorInjection()
+ {
+ $params = array('param' => 'value');
+ $pimple = new Container($params);
+
+ $this->assertSame($params['param'], $pimple['param']);
+ }
+
+ /**
+ * @expectedException \Pimple\Exception\UnknownIdentifierException
+ * @expectedExceptionMessage Identifier "foo" is not defined.
+ */
+ public function testOffsetGetValidatesKeyIsPresent()
+ {
+ $pimple = new Container();
+ echo $pimple['foo'];
+ }
+
+ /**
+ * @group legacy
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage Identifier "foo" is not defined.
+ */
+ public function testLegacyOffsetGetValidatesKeyIsPresent()
+ {
+ $pimple = new Container();
+ echo $pimple['foo'];
+ }
+
+ public function testOffsetGetHonorsNullValues()
+ {
+ $pimple = new Container();
+ $pimple['foo'] = null;
+ $this->assertNull($pimple['foo']);
+ }
+
+ public function testUnset()
+ {
+ $pimple = new Container();
+ $pimple['param'] = 'value';
+ $pimple['service'] = function () {
+ return new Fixtures\Service();
+ };
+
+ unset($pimple['param'], $pimple['service']);
+ $this->assertFalse(isset($pimple['param']));
+ $this->assertFalse(isset($pimple['service']));
+ }
+
+ /**
+ * @dataProvider serviceDefinitionProvider
+ */
+ public function testShare($service)
+ {
+ $pimple = new Container();
+ $pimple['shared_service'] = $service;
+
+ $serviceOne = $pimple['shared_service'];
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $serviceOne);
+
+ $serviceTwo = $pimple['shared_service'];
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $serviceTwo);
+
+ $this->assertSame($serviceOne, $serviceTwo);
+ }
+
+ /**
+ * @dataProvider serviceDefinitionProvider
+ */
+ public function testProtect($service)
+ {
+ $pimple = new Container();
+ $pimple['protected'] = $pimple->protect($service);
+
+ $this->assertSame($service, $pimple['protected']);
+ }
+
+ public function testGlobalFunctionNameAsParameterValue()
+ {
+ $pimple = new Container();
+ $pimple['global_function'] = 'strlen';
+ $this->assertSame('strlen', $pimple['global_function']);
+ }
+
+ public function testRaw()
+ {
+ $pimple = new Container();
+ $pimple['service'] = $definition = $pimple->factory(function () { return 'foo'; });
+ $this->assertSame($definition, $pimple->raw('service'));
+ }
+
+ public function testRawHonorsNullValues()
+ {
+ $pimple = new Container();
+ $pimple['foo'] = null;
+ $this->assertNull($pimple->raw('foo'));
+ }
+
+ public function testFluentRegister()
+ {
+ $pimple = new Container();
+ $this->assertSame($pimple, $pimple->register($this->getMockBuilder('Pimple\ServiceProviderInterface')->getMock()));
+ }
+
+ /**
+ * @expectedException \Pimple\Exception\UnknownIdentifierException
+ * @expectedExceptionMessage Identifier "foo" is not defined.
+ */
+ public function testRawValidatesKeyIsPresent()
+ {
+ $pimple = new Container();
+ $pimple->raw('foo');
+ }
+
+ /**
+ * @group legacy
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage Identifier "foo" is not defined.
+ */
+ public function testLegacyRawValidatesKeyIsPresent()
+ {
+ $pimple = new Container();
+ $pimple->raw('foo');
+ }
+
+ /**
+ * @dataProvider serviceDefinitionProvider
+ */
+ public function testExtend($service)
+ {
+ $pimple = new Container();
+ $pimple['shared_service'] = function () {
+ return new Fixtures\Service();
+ };
+ $pimple['factory_service'] = $pimple->factory(function () {
+ return new Fixtures\Service();
+ });
+
+ $pimple->extend('shared_service', $service);
+ $serviceOne = $pimple['shared_service'];
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $serviceOne);
+ $serviceTwo = $pimple['shared_service'];
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $serviceTwo);
+ $this->assertSame($serviceOne, $serviceTwo);
+ $this->assertSame($serviceOne->value, $serviceTwo->value);
+
+ $pimple->extend('factory_service', $service);
+ $serviceOne = $pimple['factory_service'];
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $serviceOne);
+ $serviceTwo = $pimple['factory_service'];
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $serviceTwo);
+ $this->assertNotSame($serviceOne, $serviceTwo);
+ $this->assertNotSame($serviceOne->value, $serviceTwo->value);
+ }
+
+ public function testExtendDoesNotLeakWithFactories()
+ {
+ if (extension_loaded('pimple')) {
+ $this->markTestSkipped('Pimple extension does not support this test');
+ }
+ $pimple = new Container();
+
+ $pimple['foo'] = $pimple->factory(function () { return; });
+ $pimple['foo'] = $pimple->extend('foo', function ($foo, $pimple) { return; });
+ unset($pimple['foo']);
+
+ $p = new \ReflectionProperty($pimple, 'values');
+ $p->setAccessible(true);
+ $this->assertEmpty($p->getValue($pimple));
+
+ $p = new \ReflectionProperty($pimple, 'factories');
+ $p->setAccessible(true);
+ $this->assertCount(0, $p->getValue($pimple));
+ }
+
+ /**
+ * @expectedException \Pimple\Exception\UnknownIdentifierException
+ * @expectedExceptionMessage Identifier "foo" is not defined.
+ */
+ public function testExtendValidatesKeyIsPresent()
+ {
+ $pimple = new Container();
+ $pimple->extend('foo', function () {});
+ }
+
+ /**
+ * @group legacy
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage Identifier "foo" is not defined.
+ */
+ public function testLegacyExtendValidatesKeyIsPresent()
+ {
+ $pimple = new Container();
+ $pimple->extend('foo', function () {});
+ }
+
+ public function testKeys()
+ {
+ $pimple = new Container();
+ $pimple['foo'] = 123;
+ $pimple['bar'] = 123;
+
+ $this->assertEquals(array('foo', 'bar'), $pimple->keys());
+ }
+
+ /** @test */
+ public function settingAnInvokableObjectShouldTreatItAsFactory()
+ {
+ $pimple = new Container();
+ $pimple['invokable'] = new Fixtures\Invokable();
+
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\Service', $pimple['invokable']);
+ }
+
+ /** @test */
+ public function settingNonInvokableObjectShouldTreatItAsParameter()
+ {
+ $pimple = new Container();
+ $pimple['non_invokable'] = new Fixtures\NonInvokable();
+
+ $this->assertInstanceOf('Pimple\Tests\Fixtures\NonInvokable', $pimple['non_invokable']);
+ }
+
+ /**
+ * @dataProvider badServiceDefinitionProvider
+ * @expectedException \Pimple\Exception\ExpectedInvokableException
+ * @expectedExceptionMessage Service definition is not a Closure or invokable object.
+ */
+ public function testFactoryFailsForInvalidServiceDefinitions($service)
+ {
+ $pimple = new Container();
+ $pimple->factory($service);
+ }
+
+ /**
+ * @group legacy
+ * @dataProvider badServiceDefinitionProvider
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage Service definition is not a Closure or invokable object.
+ */
+ public function testLegacyFactoryFailsForInvalidServiceDefinitions($service)
+ {
+ $pimple = new Container();
+ $pimple->factory($service);
+ }
+
+ /**
+ * @dataProvider badServiceDefinitionProvider
+ * @expectedException \Pimple\Exception\ExpectedInvokableException
+ * @expectedExceptionMessage Callable is not a Closure or invokable object.
+ */
+ public function testProtectFailsForInvalidServiceDefinitions($service)
+ {
+ $pimple = new Container();
+ $pimple->protect($service);
+ }
+
+ /**
+ * @group legacy
+ * @dataProvider badServiceDefinitionProvider
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage Callable is not a Closure or invokable object.
+ */
+ public function testLegacyProtectFailsForInvalidServiceDefinitions($service)
+ {
+ $pimple = new Container();
+ $pimple->protect($service);
+ }
+
+ /**
+ * @dataProvider badServiceDefinitionProvider
+ * @expectedException \Pimple\Exception\InvalidServiceIdentifierException
+ * @expectedExceptionMessage Identifier "foo" does not contain an object definition.
+ */
+ public function testExtendFailsForKeysNotContainingServiceDefinitions($service)
+ {
+ $pimple = new Container();
+ $pimple['foo'] = $service;
+ $pimple->extend('foo', function () {});
+ }
+
+ /**
+ * @group legacy
+ * @dataProvider badServiceDefinitionProvider
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage Identifier "foo" does not contain an object definition.
+ */
+ public function testLegacyExtendFailsForKeysNotContainingServiceDefinitions($service)
+ {
+ $pimple = new Container();
+ $pimple['foo'] = $service;
+ $pimple->extend('foo', function () {});
+ }
+
+ /**
+ * @group legacy
+ * @expectedDeprecation How Pimple behaves when extending protected closures will be fixed in Pimple 4. Are you sure "foo" should be protected?
+ */
+ public function testExtendingProtectedClosureDeprecation()
+ {
+ $pimple = new Container();
+ $pimple['foo'] = $pimple->protect(function () {
+ return 'bar';
+ });
+
+ $pimple->extend('foo', function ($value) {
+ return $value.'-baz';
+ });
+
+ $this->assertSame('bar-baz', $pimple['foo']);
+ }
+
+ /**
+ * @dataProvider badServiceDefinitionProvider
+ * @expectedException \Pimple\Exception\ExpectedInvokableException
+ * @expectedExceptionMessage Extension service definition is not a Closure or invokable object.
+ */
+ public function testExtendFailsForInvalidServiceDefinitions($service)
+ {
+ $pimple = new Container();
+ $pimple['foo'] = function () {};
+ $pimple->extend('foo', $service);
+ }
+
+ /**
+ * @group legacy
+ * @dataProvider badServiceDefinitionProvider
+ * @expectedException \InvalidArgumentException
+ * @expectedExceptionMessage Extension service definition is not a Closure or invokable object.
+ */
+ public function testLegacyExtendFailsForInvalidServiceDefinitions($service)
+ {
+ $pimple = new Container();
+ $pimple['foo'] = function () {};
+ $pimple->extend('foo', $service);
+ }
+
+ /**
+ * @expectedException \Pimple\Exception\FrozenServiceException
+ * @expectedExceptionMessage Cannot override frozen service "foo".
+ */
+ public function testExtendFailsIfFrozenServiceIsNonInvokable()
+ {
+ $pimple = new Container();
+ $pimple['foo'] = function () {
+ return new Fixtures\NonInvokable();
+ };
+ $foo = $pimple['foo'];
+
+ $pimple->extend('foo', function () {});
+ }
+
+ /**
+ * @expectedException \Pimple\Exception\FrozenServiceException
+ * @expectedExceptionMessage Cannot override frozen service "foo".
+ */
+ public function testExtendFailsIfFrozenServiceIsInvokable()
+ {
+ $pimple = new Container();
+ $pimple['foo'] = function () {
+ return new Fixtures\Invokable();
+ };
+ $foo = $pimple['foo'];
+
+ $pimple->extend('foo', function () {});
+ }
+
+ /**
+ * Provider for invalid service definitions.
+ */
+ public function badServiceDefinitionProvider()
+ {
+ return array(
+ array(123),
+ array(new Fixtures\NonInvokable()),
+ );
+ }
+
+ /**
+ * Provider for service definitions.
+ */
+ public function serviceDefinitionProvider()
+ {
+ return array(
+ array(function ($value) {
+ $service = new Fixtures\Service();
+ $service->value = $value;
+
+ return $service;
+ }),
+ array(new Fixtures\Invokable()),
+ );
+ }
+
+ public function testDefiningNewServiceAfterFreeze()
+ {
+ $pimple = new Container();
+ $pimple['foo'] = function () {
+ return 'foo';
+ };
+ $foo = $pimple['foo'];
+
+ $pimple['bar'] = function () {
+ return 'bar';
+ };
+ $this->assertSame('bar', $pimple['bar']);
+ }
+
+ /**
+ * @expectedException \Pimple\Exception\FrozenServiceException
+ * @expectedExceptionMessage Cannot override frozen service "foo".
+ */
+ public function testOverridingServiceAfterFreeze()
+ {
+ $pimple = new Container();
+ $pimple['foo'] = function () {
+ return 'foo';
+ };
+ $foo = $pimple['foo'];
+
+ $pimple['foo'] = function () {
+ return 'bar';
+ };
+ }
+
+ /**
+ * @group legacy
+ * @expectedException \RuntimeException
+ * @expectedExceptionMessage Cannot override frozen service "foo".
+ */
+ public function testLegacyOverridingServiceAfterFreeze()
+ {
+ $pimple = new Container();
+ $pimple['foo'] = function () {
+ return 'foo';
+ };
+ $foo = $pimple['foo'];
+
+ $pimple['foo'] = function () {
+ return 'bar';
+ };
+ }
+
+ public function testRemovingServiceAfterFreeze()
+ {
+ $pimple = new Container();
+ $pimple['foo'] = function () {
+ return 'foo';
+ };
+ $foo = $pimple['foo'];
+
+ unset($pimple['foo']);
+ $pimple['foo'] = function () {
+ return 'bar';
+ };
+ $this->assertSame('bar', $pimple['foo']);
+ }
+
+ public function testExtendingService()
+ {
+ $pimple = new Container();
+ $pimple['foo'] = function () {
+ return 'foo';
+ };
+ $pimple['foo'] = $pimple->extend('foo', function ($foo, $app) {
+ return "$foo.bar";
+ });
+ $pimple['foo'] = $pimple->extend('foo', function ($foo, $app) {
+ return "$foo.baz";
+ });
+ $this->assertSame('foo.bar.baz', $pimple['foo']);
+ }
+
+ public function testExtendingServiceAfterOtherServiceFreeze()
+ {
+ $pimple = new Container();
+ $pimple['foo'] = function () {
+ return 'foo';
+ };
+ $pimple['bar'] = function () {
+ return 'bar';
+ };
+ $foo = $pimple['foo'];
+
+ $pimple['bar'] = $pimple->extend('bar', function ($bar, $app) {
+ return "$bar.baz";
+ });
+ $this->assertSame('bar.baz', $pimple['bar']);
+ }
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/Psr11/ContainerTest.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/Psr11/ContainerTest.php
new file mode 100644
index 00000000..7ca2d7ff
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/Psr11/ContainerTest.php
@@ -0,0 +1,77 @@
+assertSame($pimple['service'], $psr->get('service'));
+ }
+
+ /**
+ * @expectedException \Psr\Container\NotFoundExceptionInterface
+ * @expectedExceptionMessage Identifier "service" is not defined.
+ */
+ public function testGetThrowsExceptionIfServiceIsNotFound()
+ {
+ $pimple = new Container();
+ $psr = new PsrContainer($pimple);
+
+ $psr->get('service');
+ }
+
+ public function testHasReturnsTrueIfServiceExists()
+ {
+ $pimple = new Container();
+ $pimple['service'] = function () {
+ return new Service();
+ };
+ $psr = new PsrContainer($pimple);
+
+ $this->assertTrue($psr->has('service'));
+ }
+
+ public function testHasReturnsFalseIfServiceDoesNotExist()
+ {
+ $pimple = new Container();
+ $psr = new PsrContainer($pimple);
+
+ $this->assertFalse($psr->has('service'));
+ }
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/Psr11/ServiceLocatorTest.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/Psr11/ServiceLocatorTest.php
new file mode 100644
index 00000000..c9a08125
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/Psr11/ServiceLocatorTest.php
@@ -0,0 +1,134 @@
+
+ */
+class ServiceLocatorTest extends TestCase
+{
+ public function testCanAccessServices()
+ {
+ $pimple = new Container();
+ $pimple['service'] = function () {
+ return new Fixtures\Service();
+ };
+ $locator = new ServiceLocator($pimple, array('service'));
+
+ $this->assertSame($pimple['service'], $locator->get('service'));
+ }
+
+ public function testCanAccessAliasedServices()
+ {
+ $pimple = new Container();
+ $pimple['service'] = function () {
+ return new Fixtures\Service();
+ };
+ $locator = new ServiceLocator($pimple, array('alias' => 'service'));
+
+ $this->assertSame($pimple['service'], $locator->get('alias'));
+ }
+
+ /**
+ * @expectedException \Pimple\Exception\UnknownIdentifierException
+ * @expectedExceptionMessage Identifier "service" is not defined.
+ */
+ public function testCannotAccessAliasedServiceUsingRealIdentifier()
+ {
+ $pimple = new Container();
+ $pimple['service'] = function () {
+ return new Fixtures\Service();
+ };
+ $locator = new ServiceLocator($pimple, array('alias' => 'service'));
+
+ $service = $locator->get('service');
+ }
+
+ /**
+ * @expectedException \Pimple\Exception\UnknownIdentifierException
+ * @expectedExceptionMessage Identifier "foo" is not defined.
+ */
+ public function testGetValidatesServiceCanBeLocated()
+ {
+ $pimple = new Container();
+ $pimple['service'] = function () {
+ return new Fixtures\Service();
+ };
+ $locator = new ServiceLocator($pimple, array('alias' => 'service'));
+
+ $service = $locator->get('foo');
+ }
+
+ /**
+ * @expectedException \Pimple\Exception\UnknownIdentifierException
+ * @expectedExceptionMessage Identifier "invalid" is not defined.
+ */
+ public function testGetValidatesTargetServiceExists()
+ {
+ $pimple = new Container();
+ $pimple['service'] = function () {
+ return new Fixtures\Service();
+ };
+ $locator = new ServiceLocator($pimple, array('alias' => 'invalid'));
+
+ $service = $locator->get('alias');
+ }
+
+ public function testHasValidatesServiceCanBeLocated()
+ {
+ $pimple = new Container();
+ $pimple['service1'] = function () {
+ return new Fixtures\Service();
+ };
+ $pimple['service2'] = function () {
+ return new Fixtures\Service();
+ };
+ $locator = new ServiceLocator($pimple, array('service1'));
+
+ $this->assertTrue($locator->has('service1'));
+ $this->assertFalse($locator->has('service2'));
+ }
+
+ public function testHasChecksIfTargetServiceExists()
+ {
+ $pimple = new Container();
+ $pimple['service'] = function () {
+ return new Fixtures\Service();
+ };
+ $locator = new ServiceLocator($pimple, array('foo' => 'service', 'bar' => 'invalid'));
+
+ $this->assertTrue($locator->has('foo'));
+ $this->assertFalse($locator->has('bar'));
+ }
+}
diff --git a/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/ServiceIteratorTest.php b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/ServiceIteratorTest.php
new file mode 100644
index 00000000..5dd52f0d
--- /dev/null
+++ b/advancedcontentfilter/vendor/pimple/pimple/src/Pimple/Tests/ServiceIteratorTest.php
@@ -0,0 +1,52 @@
+assertSame(array('service1' => $pimple['service1'], 'service2' => $pimple['service2']), iterator_to_array($iterator));
+ }
+}
diff --git a/advancedcontentfilter/vendor/psr/container/README.md b/advancedcontentfilter/vendor/psr/container/README.md
index 1b9d9e57..084f6df5 100644
--- a/advancedcontentfilter/vendor/psr/container/README.md
+++ b/advancedcontentfilter/vendor/psr/container/README.md
@@ -1,13 +1,5 @@
-Container interface
-==============
+# PSR Container
-This repository holds all interfaces related to [PSR-11 (Container Interface)][psr-url].
-
-Note that this is not a Container implementation of its own. It is merely abstractions that describe the components of a Dependency Injection Container.
-
-The installable [package][package-url] and [implementations][implementation-url] are listed on Packagist.
-
-[psr-url]: https://www.php-fig.org/psr/psr-11/
-[package-url]: https://packagist.org/packages/psr/container
-[implementation-url]: https://packagist.org/providers/psr/container-implementation
+This repository holds all interfaces/classes/traits related to [PSR-11](https://github.com/container-interop/fig-standards/blob/master/proposed/container.md).
+Note that this is not a container implementation of its own. See the specification for more details.
diff --git a/advancedcontentfilter/vendor/psr/container/composer.json b/advancedcontentfilter/vendor/psr/container/composer.json
index 017f41ea..b8ee0126 100644
--- a/advancedcontentfilter/vendor/psr/container/composer.json
+++ b/advancedcontentfilter/vendor/psr/container/composer.json
@@ -8,15 +8,20 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
+ "homepage": "http://www.php-fig.org/"
}
],
"require": {
- "php": ">=7.4.0"
+ "php": ">=5.3.0"
},
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
}
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
}
}
diff --git a/advancedcontentfilter/vendor/psr/container/src/ContainerExceptionInterface.php b/advancedcontentfilter/vendor/psr/container/src/ContainerExceptionInterface.php
index 0f213f2f..d35c6b4d 100644
--- a/advancedcontentfilter/vendor/psr/container/src/ContainerExceptionInterface.php
+++ b/advancedcontentfilter/vendor/psr/container/src/ContainerExceptionInterface.php
@@ -1,12 +1,13 @@
=7.0.0",
- "psr/http-message": "^1.0 || ^2.0"
- },
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Message\\": "src/"
- }
- },
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- }
-}
diff --git a/advancedcontentfilter/vendor/psr/http-factory/src/RequestFactoryInterface.php b/advancedcontentfilter/vendor/psr/http-factory/src/RequestFactoryInterface.php
deleted file mode 100644
index cb39a08b..00000000
--- a/advancedcontentfilter/vendor/psr/http-factory/src/RequestFactoryInterface.php
+++ /dev/null
@@ -1,18 +0,0 @@
-=5.3.0"
},
"autoload": {
"psr-4": {
@@ -20,7 +20,7 @@
},
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "1.0.x-dev"
}
}
}
diff --git a/advancedcontentfilter/vendor/psr/http-message/docs/PSR7-Interfaces.md b/advancedcontentfilter/vendor/psr/http-message/docs/PSR7-Interfaces.md
deleted file mode 100644
index 3a7e7dda..00000000
--- a/advancedcontentfilter/vendor/psr/http-message/docs/PSR7-Interfaces.md
+++ /dev/null
@@ -1,130 +0,0 @@
-# Interfaces
-
-The purpose of this list is to help in finding the methods when working with PSR-7. This can be considered as a cheatsheet for PSR-7 interfaces.
-
-The interfaces defined in PSR-7 are the following:
-
-| Class Name | Description |
-|---|---|
-| [Psr\Http\Message\MessageInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessagemessageinterface) | Representation of a HTTP message |
-| [Psr\Http\Message\RequestInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessagerequestinterface) | Representation of an outgoing, client-side request. |
-| [Psr\Http\Message\ServerRequestInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessageserverrequestinterface) | Representation of an incoming, server-side HTTP request. |
-| [Psr\Http\Message\ResponseInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessageresponseinterface) | Representation of an outgoing, server-side response. |
-| [Psr\Http\Message\StreamInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessagestreaminterface) | Describes a data stream |
-| [Psr\Http\Message\UriInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessageuriinterface) | Value object representing a URI. |
-| [Psr\Http\Message\UploadedFileInterface](http://www.php-fig.org/psr/psr-7/#psrhttpmessageuploadedfileinterface) | Value object representing a file uploaded through an HTTP request. |
-
-## `Psr\Http\Message\MessageInterface` Methods
-
-| Method Name | Description | Notes |
-|------------------------------------| ----------- | ----- |
-| `getProtocolVersion()` | Retrieve HTTP protocol version | 1.0 or 1.1 |
-| `withProtocolVersion($version)` | Returns new message instance with given HTTP protocol version | |
-| `getHeaders()` | Retrieve all HTTP Headers | [Request Header List](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Request_fields), [Response Header List](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Response_fields) |
-| `hasHeader($name)` | Checks if HTTP Header with given name exists | |
-| `getHeader($name)` | Retrieves a array with the values for a single header | |
-| `getHeaderLine($name)` | Retrieves a comma-separated string of the values for a single header | |
-| `withHeader($name, $value)` | Returns new message instance with given HTTP Header | if the header existed in the original instance, replaces the header value from the original message with the value provided when creating the new instance. |
-| `withAddedHeader($name, $value)` | Returns new message instance with appended value to given header | If header already exists value will be appended, if not a new header will be created |
-| `withoutHeader($name)` | Removes HTTP Header with given name| |
-| `getBody()` | Retrieves the HTTP Message Body | Returns object implementing `StreamInterface`|
-| `withBody(StreamInterface $body)` | Returns new message instance with given HTTP Message Body | |
-
-
-## `Psr\Http\Message\RequestInterface` Methods
-
-Same methods as `Psr\Http\Message\MessageInterface` + the following methods:
-
-| Method Name | Description | Notes |
-|------------------------------------| ----------- | ----- |
-| `getRequestTarget()` | Retrieves the message's request target | origin-form, absolute-form, authority-form, asterisk-form ([RFC7230](https://www.rfc-editor.org/rfc/rfc7230.txt)) |
-| `withRequestTarget($requestTarget)` | Return a new message instance with the specific request-target | |
-| `getMethod()` | Retrieves the HTTP method of the request. | GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE (defined in [RFC7231](https://tools.ietf.org/html/rfc7231)), PATCH (defined in [RFC5789](https://tools.ietf.org/html/rfc5789)) |
-| `withMethod($method)` | Returns a new message instance with the provided HTTP method | |
-| `getUri()` | Retrieves the URI instance | |
-| `withUri(UriInterface $uri, $preserveHost = false)` | Returns a new message instance with the provided URI | |
-
-
-## `Psr\Http\Message\ServerRequestInterface` Methods
-
-Same methods as `Psr\Http\Message\RequestInterface` + the following methods:
-
-| Method Name | Description | Notes |
-|------------------------------------| ----------- | ----- |
-| `getServerParams() ` | Retrieve server parameters | Typically derived from `$_SERVER` |
-| `getCookieParams()` | Retrieves cookies sent by the client to the server. | Typically derived from `$_COOKIES` |
-| `withCookieParams(array $cookies)` | Returns a new request instance with the specified cookies | |
-| `withQueryParams(array $query)` | Returns a new request instance with the specified query string arguments | |
-| `getUploadedFiles()` | Retrieve normalized file upload data | |
-| `withUploadedFiles(array $uploadedFiles)` | Returns a new request instance with the specified uploaded files | |
-| `getParsedBody()` | Retrieve any parameters provided in the request body | |
-| `withParsedBody($data)` | Returns a new request instance with the specified body parameters | |
-| `getAttributes()` | Retrieve attributes derived from the request | |
-| `getAttribute($name, $default = null)` | Retrieve a single derived request attribute | |
-| `withAttribute($name, $value)` | Returns a new request instance with the specified derived request attribute | |
-| `withoutAttribute($name)` | Returns a new request instance that without the specified derived request attribute | |
-
-## `Psr\Http\Message\ResponseInterface` Methods:
-
-Same methods as `Psr\Http\Message\MessageInterface` + the following methods:
-
-| Method Name | Description | Notes |
-|------------------------------------| ----------- | ----- |
-| `getStatusCode()` | Gets the response status code. | |
-| `withStatus($code, $reasonPhrase = '')` | Returns a new response instance with the specified status code and, optionally, reason phrase. | |
-| `getReasonPhrase()` | Gets the response reason phrase associated with the status code. | |
-
-## `Psr\Http\Message\StreamInterface` Methods
-
-| Method Name | Description | Notes |
-|------------------------------------| ----------- | ----- |
-| `__toString()` | Reads all data from the stream into a string, from the beginning to end. | |
-| `close()` | Closes the stream and any underlying resources. | |
-| `detach()` | Separates any underlying resources from the stream. | |
-| `getSize()` | Get the size of the stream if known. | |
-| `eof()` | Returns true if the stream is at the end of the stream.| |
-| `isSeekable()` | Returns whether or not the stream is seekable. | |
-| `seek($offset, $whence = SEEK_SET)` | Seek to a position in the stream. | |
-| `rewind()` | Seek to the beginning of the stream. | |
-| `isWritable()` | Returns whether or not the stream is writable. | |
-| `write($string)` | Write data to the stream. | |
-| `isReadable()` | Returns whether or not the stream is readable. | |
-| `read($length)` | Read data from the stream. | |
-| `getContents()` | Returns the remaining contents in a string | |
-| `getMetadata($key = null)()` | Get stream metadata as an associative array or retrieve a specific key. | |
-
-## `Psr\Http\Message\UriInterface` Methods
-
-| Method Name | Description | Notes |
-|------------------------------------| ----------- | ----- |
-| `getScheme()` | Retrieve the scheme component of the URI. | |
-| `getAuthority()` | Retrieve the authority component of the URI. | |
-| `getUserInfo()` | Retrieve the user information component of the URI. | |
-| `getHost()` | Retrieve the host component of the URI. | |
-| `getPort()` | Retrieve the port component of the URI. | |
-| `getPath()` | Retrieve the path component of the URI. | |
-| `getQuery()` | Retrieve the query string of the URI. | |
-| `getFragment()` | Retrieve the fragment component of the URI. | |
-| `withScheme($scheme)` | Return an instance with the specified scheme. | |
-| `withUserInfo($user, $password = null)` | Return an instance with the specified user information. | |
-| `withHost($host)` | Return an instance with the specified host. | |
-| `withPort($port)` | Return an instance with the specified port. | |
-| `withPath($path)` | Return an instance with the specified path. | |
-| `withQuery($query)` | Return an instance with the specified query string. | |
-| `withFragment($fragment)` | Return an instance with the specified URI fragment. | |
-| `__toString()` | Return the string representation as a URI reference. | |
-
-## `Psr\Http\Message\UploadedFileInterface` Methods
-
-| Method Name | Description | Notes |
-|------------------------------------| ----------- | ----- |
-| `getStream()` | Retrieve a stream representing the uploaded file. | |
-| `moveTo($targetPath)` | Move the uploaded file to a new location. | |
-| `getSize()` | Retrieve the file size. | |
-| `getError()` | Retrieve the error associated with the uploaded file. | |
-| `getClientFilename()` | Retrieve the filename sent by the client. | |
-| `getClientMediaType()` | Retrieve the media type sent by the client. | |
-
-> `RequestInterface`, `ServerRequestInterface`, `ResponseInterface` extend `MessageInterface` because the `Request` and the `Response` are `HTTP Messages`.
-> When using `ServerRequestInterface`, both `RequestInterface` and `Psr\Http\Message\MessageInterface` methods are considered.
-
diff --git a/advancedcontentfilter/vendor/psr/http-message/docs/PSR7-Usage.md b/advancedcontentfilter/vendor/psr/http-message/docs/PSR7-Usage.md
deleted file mode 100644
index b6d048a3..00000000
--- a/advancedcontentfilter/vendor/psr/http-message/docs/PSR7-Usage.md
+++ /dev/null
@@ -1,159 +0,0 @@
-### PSR-7 Usage
-
-All PSR-7 applications comply with these interfaces
-They were created to establish a standard between middleware implementations.
-
-> `RequestInterface`, `ServerRequestInterface`, `ResponseInterface` extend `MessageInterface` because the `Request` and the `Response` are `HTTP Messages`.
-> When using `ServerRequestInterface`, both `RequestInterface` and `Psr\Http\Message\MessageInterface` methods are considered.
-
-
-The following examples will illustrate how basic operations are done in PSR-7.
-
-##### Examples
-
-
-For this examples to work (at least) a PSR-7 implementation package is required. (eg: zendframework/zend-diactoros, guzzlehttp/psr7, slim/slim, etc)
-All PSR-7 implementations should have the same behaviour.
-
-The following will be assumed:
-`$request` is an object of `Psr\Http\Message\RequestInterface` and
-
-`$response` is an object implementing `Psr\Http\Message\RequestInterface`
-
-
-### Working with HTTP Headers
-
-#### Adding headers to response:
-
-```php
-$response->withHeader('My-Custom-Header', 'My Custom Message');
-```
-
-#### Appending values to headers
-
-```php
-$response->withAddedHeader('My-Custom-Header', 'The second message');
-```
-
-#### Checking if header exists:
-
-```php
-$request->hasHeader('My-Custom-Header'); // will return false
-$response->hasHeader('My-Custom-Header'); // will return true
-```
-
-> Note: My-Custom-Header was only added in the Response
-
-#### Getting comma-separated values from a header (also applies to request)
-
-```php
-// getting value from request headers
-$request->getHeaderLine('Content-Type'); // will return: "text/html; charset=UTF-8"
-// getting value from response headers
-$response->getHeaderLine('My-Custom-Header'); // will return: "My Custom Message; The second message"
-```
-
-#### Getting array of value from a header (also applies to request)
-```php
-// getting value from request headers
-$request->getHeader('Content-Type'); // will return: ["text/html", "charset=UTF-8"]
-// getting value from response headers
-$response->getHeader('My-Custom-Header'); // will return: ["My Custom Message", "The second message"]
-```
-
-#### Removing headers from HTTP Messages
-```php
-// removing a header from Request, removing deprecated "Content-MD5" header
-$request->withoutHeader('Content-MD5');
-
-// removing a header from Response
-// effect: the browser won't know the size of the stream
-// the browser will download the stream till it ends
-$response->withoutHeader('Content-Length');
-```
-
-### Working with HTTP Message Body
-
-When working with the PSR-7 there are two methods of implementation:
-#### 1. Getting the body separately
-
-> This method makes the body handling easier to understand and is useful when repeatedly calling body methods. (You only call `getBody()` once). Using this method mistakes like `$response->write()` are also prevented.
-
-```php
-$body = $response->getBody();
-// operations on body, eg. read, write, seek
-// ...
-// replacing the old body
-$response->withBody($body);
-// this last statement is optional as we working with objects
-// in this case the "new" body is same with the "old" one
-// the $body variable has the same value as the one in $request, only the reference is passed
-```
-
-#### 2. Working directly on response
-
-> This method is useful when only performing few operations as the `$request->getBody()` statement fragment is required
-
-```php
-$response->getBody()->write('hello');
-```
-
-### Getting the body contents
-
-The following snippet gets the contents of a stream contents.
-> Note: Streams must be rewinded, if content was written into streams, it will be ignored when calling `getContents()` because the stream pointer is set to the last character, which is `\0` - meaning end of stream.
-```php
-$body = $response->getBody();
-$body->rewind(); // or $body->seek(0);
-$bodyText = $body->getContents();
-```
-> Note: If `$body->seek(1)` is called before `$body->getContents()`, the first character will be ommited as the starting pointer is set to `1`, not `0`. This is why using `$body->rewind()` is recommended.
-
-### Append to body
-
-```php
-$response->getBody()->write('Hello'); // writing directly
-$body = $request->getBody(); // which is a `StreamInterface`
-$body->write('xxxxx');
-```
-
-### Prepend to body
-Prepending is different when it comes to streams. The content must be copied before writing the content to be prepended.
-The following example will explain the behaviour of streams.
-
-```php
-// assuming our response is initially empty
-$body = $repsonse->getBody();
-// writing the string "abcd"
-$body->write('abcd');
-
-// seeking to start of stream
-$body->seek(0);
-// writing 'ef'
-$body->write('ef'); // at this point the stream contains "efcd"
-```
-
-#### Prepending by rewriting separately
-
-```php
-// assuming our response body stream only contains: "abcd"
-$body = $response->getBody();
-$body->rewind();
-$contents = $body->getContents(); // abcd
-// seeking the stream to beginning
-$body->rewind();
-$body->write('ef'); // stream contains "efcd"
-$body->write($contents); // stream contains "efabcd"
-```
-
-> Note: `getContents()` seeks the stream while reading it, therefore if the second `rewind()` method call was not present the stream would have resulted in `abcdefabcd` because the `write()` method appends to stream if not preceeded by `rewind()` or `seek(0)`.
-
-#### Prepending by using contents as a string
-```php
-$body = $response->getBody();
-$body->rewind();
-$contents = $body->getContents(); // efabcd
-$contents = 'ef'.$contents;
-$body->rewind();
-$body->write($contents);
-```
diff --git a/advancedcontentfilter/vendor/psr/http-message/src/MessageInterface.php b/advancedcontentfilter/vendor/psr/http-message/src/MessageInterface.php
index a83c9851..dd46e5ec 100644
--- a/advancedcontentfilter/vendor/psr/http-message/src/MessageInterface.php
+++ b/advancedcontentfilter/vendor/psr/http-message/src/MessageInterface.php
@@ -23,7 +23,7 @@ interface MessageInterface
*
* @return string HTTP protocol version.
*/
- public function getProtocolVersion(): string;
+ public function getProtocolVersion();
/**
* Return an instance with the specified HTTP protocol version.
@@ -38,7 +38,7 @@ interface MessageInterface
* @param string $version HTTP protocol version
* @return static
*/
- public function withProtocolVersion(string $version): MessageInterface;
+ public function withProtocolVersion($version);
/**
* Retrieves all message header values.
@@ -65,7 +65,7 @@ interface MessageInterface
* key MUST be a header name, and each value MUST be an array of strings
* for that header.
*/
- public function getHeaders(): array;
+ public function getHeaders();
/**
* Checks if a header exists by the given case-insensitive name.
@@ -75,7 +75,7 @@ interface MessageInterface
* name using a case-insensitive string comparison. Returns false if
* no matching header name is found in the message.
*/
- public function hasHeader(string $name): bool;
+ public function hasHeader($name);
/**
* Retrieves a message header value by the given case-insensitive name.
@@ -91,7 +91,7 @@ interface MessageInterface
* header. If the header does not appear in the message, this method MUST
* return an empty array.
*/
- public function getHeader(string $name): array;
+ public function getHeader($name);
/**
* Retrieves a comma-separated string of the values for a single header.
@@ -112,7 +112,7 @@ interface MessageInterface
* concatenated together using a comma. If the header does not appear in
* the message, this method MUST return an empty string.
*/
- public function getHeaderLine(string $name): string;
+ public function getHeaderLine($name);
/**
* Return an instance with the provided value replacing the specified header.
@@ -129,7 +129,7 @@ interface MessageInterface
* @return static
* @throws \InvalidArgumentException for invalid header names or values.
*/
- public function withHeader(string $name, $value): MessageInterface;
+ public function withHeader($name, $value);
/**
* Return an instance with the specified header appended with the given value.
@@ -147,7 +147,7 @@ interface MessageInterface
* @return static
* @throws \InvalidArgumentException for invalid header names or values.
*/
- public function withAddedHeader(string $name, $value): MessageInterface;
+ public function withAddedHeader($name, $value);
/**
* Return an instance without the specified header.
@@ -161,14 +161,14 @@ interface MessageInterface
* @param string $name Case-insensitive header field name to remove.
* @return static
*/
- public function withoutHeader(string $name): MessageInterface;
+ public function withoutHeader($name);
/**
* Gets the body of the message.
*
* @return StreamInterface Returns the body as a stream.
*/
- public function getBody(): StreamInterface;
+ public function getBody();
/**
* Return an instance with the specified message body.
@@ -183,5 +183,5 @@ interface MessageInterface
* @return static
* @throws \InvalidArgumentException When the body is not valid.
*/
- public function withBody(StreamInterface $body): MessageInterface;
+ public function withBody(StreamInterface $body);
}
diff --git a/advancedcontentfilter/vendor/psr/http-message/src/RequestInterface.php b/advancedcontentfilter/vendor/psr/http-message/src/RequestInterface.php
index 33f85e55..a96d4fd6 100644
--- a/advancedcontentfilter/vendor/psr/http-message/src/RequestInterface.php
+++ b/advancedcontentfilter/vendor/psr/http-message/src/RequestInterface.php
@@ -39,7 +39,7 @@ interface RequestInterface extends MessageInterface
*
* @return string
*/
- public function getRequestTarget(): string;
+ public function getRequestTarget();
/**
* Return an instance with the specific request-target.
@@ -55,18 +55,17 @@ interface RequestInterface extends MessageInterface
*
* @link http://tools.ietf.org/html/rfc7230#section-5.3 (for the various
* request-target forms allowed in request messages)
- * @param string $requestTarget
+ * @param mixed $requestTarget
* @return static
*/
- public function withRequestTarget(string $requestTarget): RequestInterface;
-
+ public function withRequestTarget($requestTarget);
/**
* Retrieves the HTTP method of the request.
*
* @return string Returns the request method.
*/
- public function getMethod(): string;
+ public function getMethod();
/**
* Return an instance with the provided HTTP method.
@@ -83,7 +82,7 @@ interface RequestInterface extends MessageInterface
* @return static
* @throws \InvalidArgumentException for invalid HTTP methods.
*/
- public function withMethod(string $method): RequestInterface;
+ public function withMethod($method);
/**
* Retrieves the URI instance.
@@ -94,7 +93,7 @@ interface RequestInterface extends MessageInterface
* @return UriInterface Returns a UriInterface instance
* representing the URI of the request.
*/
- public function getUri(): UriInterface;
+ public function getUri();
/**
* Returns an instance with the provided URI.
@@ -126,5 +125,5 @@ interface RequestInterface extends MessageInterface
* @param bool $preserveHost Preserve the original state of the Host header.
* @return static
*/
- public function withUri(UriInterface $uri, bool $preserveHost = false): RequestInterface;
+ public function withUri(UriInterface $uri, $preserveHost = false);
}
diff --git a/advancedcontentfilter/vendor/psr/http-message/src/ResponseInterface.php b/advancedcontentfilter/vendor/psr/http-message/src/ResponseInterface.php
index e9299a91..c306514e 100644
--- a/advancedcontentfilter/vendor/psr/http-message/src/ResponseInterface.php
+++ b/advancedcontentfilter/vendor/psr/http-message/src/ResponseInterface.php
@@ -27,7 +27,7 @@ interface ResponseInterface extends MessageInterface
*
* @return int Status code.
*/
- public function getStatusCode(): int;
+ public function getStatusCode();
/**
* Return an instance with the specified status code and, optionally, reason phrase.
@@ -49,7 +49,7 @@ interface ResponseInterface extends MessageInterface
* @return static
* @throws \InvalidArgumentException For invalid status code arguments.
*/
- public function withStatus(int $code, string $reasonPhrase = ''): ResponseInterface;
+ public function withStatus($code, $reasonPhrase = '');
/**
* Gets the response reason phrase associated with the status code.
@@ -64,5 +64,5 @@ interface ResponseInterface extends MessageInterface
* @link http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
* @return string Reason phrase; must return an empty string if none present.
*/
- public function getReasonPhrase(): string;
+ public function getReasonPhrase();
}
diff --git a/advancedcontentfilter/vendor/psr/http-message/src/ServerRequestInterface.php b/advancedcontentfilter/vendor/psr/http-message/src/ServerRequestInterface.php
index 8625d0e1..02512340 100644
--- a/advancedcontentfilter/vendor/psr/http-message/src/ServerRequestInterface.php
+++ b/advancedcontentfilter/vendor/psr/http-message/src/ServerRequestInterface.php
@@ -51,7 +51,7 @@ interface ServerRequestInterface extends RequestInterface
*
* @return array
*/
- public function getServerParams(): array;
+ public function getServerParams();
/**
* Retrieve cookies.
@@ -63,7 +63,7 @@ interface ServerRequestInterface extends RequestInterface
*
* @return array
*/
- public function getCookieParams(): array;
+ public function getCookieParams();
/**
* Return an instance with the specified cookies.
@@ -82,7 +82,7 @@ interface ServerRequestInterface extends RequestInterface
* @param array $cookies Array of key/value pairs representing cookies.
* @return static
*/
- public function withCookieParams(array $cookies): ServerRequestInterface;
+ public function withCookieParams(array $cookies);
/**
* Retrieve query string arguments.
@@ -96,7 +96,7 @@ interface ServerRequestInterface extends RequestInterface
*
* @return array
*/
- public function getQueryParams(): array;
+ public function getQueryParams();
/**
* Return an instance with the specified query string arguments.
@@ -120,7 +120,7 @@ interface ServerRequestInterface extends RequestInterface
* $_GET.
* @return static
*/
- public function withQueryParams(array $query): ServerRequestInterface;
+ public function withQueryParams(array $query);
/**
* Retrieve normalized file upload data.
@@ -134,7 +134,7 @@ interface ServerRequestInterface extends RequestInterface
* @return array An array tree of UploadedFileInterface instances; an empty
* array MUST be returned if no data is present.
*/
- public function getUploadedFiles(): array;
+ public function getUploadedFiles();
/**
* Create a new instance with the specified uploaded files.
@@ -147,7 +147,7 @@ interface ServerRequestInterface extends RequestInterface
* @return static
* @throws \InvalidArgumentException if an invalid structure is provided.
*/
- public function withUploadedFiles(array $uploadedFiles): ServerRequestInterface;
+ public function withUploadedFiles(array $uploadedFiles);
/**
* Retrieve any parameters provided in the request body.
@@ -194,7 +194,7 @@ interface ServerRequestInterface extends RequestInterface
* @throws \InvalidArgumentException if an unsupported argument type is
* provided.
*/
- public function withParsedBody($data): ServerRequestInterface;
+ public function withParsedBody($data);
/**
* Retrieve attributes derived from the request.
@@ -207,7 +207,7 @@ interface ServerRequestInterface extends RequestInterface
*
* @return array Attributes derived from the request.
*/
- public function getAttributes(): array;
+ public function getAttributes();
/**
* Retrieve a single derived request attribute.
@@ -224,7 +224,7 @@ interface ServerRequestInterface extends RequestInterface
* @param mixed $default Default value to return if the attribute does not exist.
* @return mixed
*/
- public function getAttribute(string $name, $default = null);
+ public function getAttribute($name, $default = null);
/**
* Return an instance with the specified derived request attribute.
@@ -241,7 +241,7 @@ interface ServerRequestInterface extends RequestInterface
* @param mixed $value The value of the attribute.
* @return static
*/
- public function withAttribute(string $name, $value): ServerRequestInterface;
+ public function withAttribute($name, $value);
/**
* Return an instance that removes the specified derived request attribute.
@@ -257,5 +257,5 @@ interface ServerRequestInterface extends RequestInterface
* @param string $name The attribute name.
* @return static
*/
- public function withoutAttribute(string $name): ServerRequestInterface;
+ public function withoutAttribute($name);
}
diff --git a/advancedcontentfilter/vendor/psr/http-message/src/StreamInterface.php b/advancedcontentfilter/vendor/psr/http-message/src/StreamInterface.php
index a62aabb8..f68f3912 100644
--- a/advancedcontentfilter/vendor/psr/http-message/src/StreamInterface.php
+++ b/advancedcontentfilter/vendor/psr/http-message/src/StreamInterface.php
@@ -25,14 +25,14 @@ interface StreamInterface
* @see http://php.net/manual/en/language.oop5.magic.php#object.tostring
* @return string
*/
- public function __toString(): string;
+ public function __toString();
/**
* Closes the stream and any underlying resources.
*
* @return void
*/
- public function close(): void;
+ public function close();
/**
* Separates any underlying resources from the stream.
@@ -48,7 +48,7 @@ interface StreamInterface
*
* @return int|null Returns the size in bytes if known, or null if unknown.
*/
- public function getSize(): ?int;
+ public function getSize();
/**
* Returns the current position of the file read/write pointer
@@ -56,21 +56,21 @@ interface StreamInterface
* @return int Position of the file pointer
* @throws \RuntimeException on error.
*/
- public function tell(): int;
+ public function tell();
/**
* Returns true if the stream is at the end of the stream.
*
* @return bool
*/
- public function eof(): bool;
+ public function eof();
/**
* Returns whether or not the stream is seekable.
*
* @return bool
*/
- public function isSeekable(): bool;
+ public function isSeekable();
/**
* Seek to a position in the stream.
@@ -84,7 +84,7 @@ interface StreamInterface
* SEEK_END: Set position to end-of-stream plus offset.
* @throws \RuntimeException on failure.
*/
- public function seek(int $offset, int $whence = SEEK_SET): void;
+ public function seek($offset, $whence = SEEK_SET);
/**
* Seek to the beginning of the stream.
@@ -96,14 +96,14 @@ interface StreamInterface
* @link http://www.php.net/manual/en/function.fseek.php
* @throws \RuntimeException on failure.
*/
- public function rewind(): void;
+ public function rewind();
/**
* Returns whether or not the stream is writable.
*
* @return bool
*/
- public function isWritable(): bool;
+ public function isWritable();
/**
* Write data to the stream.
@@ -112,14 +112,14 @@ interface StreamInterface
* @return int Returns the number of bytes written to the stream.
* @throws \RuntimeException on failure.
*/
- public function write(string $string): int;
+ public function write($string);
/**
* Returns whether or not the stream is readable.
*
* @return bool
*/
- public function isReadable(): bool;
+ public function isReadable();
/**
* Read data from the stream.
@@ -131,7 +131,7 @@ interface StreamInterface
* if no bytes are available.
* @throws \RuntimeException if an error occurs.
*/
- public function read(int $length): string;
+ public function read($length);
/**
* Returns the remaining contents in a string
@@ -140,7 +140,7 @@ interface StreamInterface
* @throws \RuntimeException if unable to read or an error occurs while
* reading.
*/
- public function getContents(): string;
+ public function getContents();
/**
* Get stream metadata as an associative array or retrieve a specific key.
@@ -149,10 +149,10 @@ interface StreamInterface
* stream_get_meta_data() function.
*
* @link http://php.net/manual/en/function.stream-get-meta-data.php
- * @param string|null $key Specific metadata to retrieve.
+ * @param string $key Specific metadata to retrieve.
* @return array|mixed|null Returns an associative array if no key is
* provided. Returns a specific key value if a key is provided and the
* value is found, or null if the key is not found.
*/
- public function getMetadata(?string $key = null);
+ public function getMetadata($key = null);
}
diff --git a/advancedcontentfilter/vendor/psr/http-message/src/UploadedFileInterface.php b/advancedcontentfilter/vendor/psr/http-message/src/UploadedFileInterface.php
index dd19d653..f8a6901e 100644
--- a/advancedcontentfilter/vendor/psr/http-message/src/UploadedFileInterface.php
+++ b/advancedcontentfilter/vendor/psr/http-message/src/UploadedFileInterface.php
@@ -28,7 +28,7 @@ interface UploadedFileInterface
* @throws \RuntimeException in cases when no stream is available or can be
* created.
*/
- public function getStream(): StreamInterface;
+ public function getStream();
/**
* Move the uploaded file to a new location.
@@ -62,7 +62,7 @@ interface UploadedFileInterface
* @throws \RuntimeException on any error during the move operation, or on
* the second or subsequent call to the method.
*/
- public function moveTo(string $targetPath): void;
+ public function moveTo($targetPath);
/**
* Retrieve the file size.
@@ -73,7 +73,7 @@ interface UploadedFileInterface
*
* @return int|null The file size in bytes or null if unknown.
*/
- public function getSize(): ?int;
+ public function getSize();
/**
* Retrieve the error associated with the uploaded file.
@@ -89,7 +89,7 @@ interface UploadedFileInterface
* @see http://php.net/manual/en/features.file-upload.errors.php
* @return int One of PHP's UPLOAD_ERR_XXX constants.
*/
- public function getError(): int;
+ public function getError();
/**
* Retrieve the filename sent by the client.
@@ -104,7 +104,7 @@ interface UploadedFileInterface
* @return string|null The filename sent by the client or null if none
* was provided.
*/
- public function getClientFilename(): ?string;
+ public function getClientFilename();
/**
* Retrieve the media type sent by the client.
@@ -119,5 +119,5 @@ interface UploadedFileInterface
* @return string|null The media type sent by the client or null if none
* was provided.
*/
- public function getClientMediaType(): ?string;
+ public function getClientMediaType();
}
diff --git a/advancedcontentfilter/vendor/psr/http-message/src/UriInterface.php b/advancedcontentfilter/vendor/psr/http-message/src/UriInterface.php
index 15e2cf28..9d7ab9ea 100644
--- a/advancedcontentfilter/vendor/psr/http-message/src/UriInterface.php
+++ b/advancedcontentfilter/vendor/psr/http-message/src/UriInterface.php
@@ -1,5 +1,4 @@
=7.0",
- "psr/http-message": "^1.0 || ^2.0"
- },
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Server\\": "src/"
- }
- },
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- }
-}
diff --git a/advancedcontentfilter/vendor/psr/http-server-handler/src/RequestHandlerInterface.php b/advancedcontentfilter/vendor/psr/http-server-handler/src/RequestHandlerInterface.php
deleted file mode 100644
index 83911e26..00000000
--- a/advancedcontentfilter/vendor/psr/http-server-handler/src/RequestHandlerInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-=7.0",
- "psr/http-message": "^1.0 || ^2.0",
- "psr/http-server-handler": "^1.0"
- },
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Server\\": "src/"
- }
- },
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- }
-}
diff --git a/advancedcontentfilter/vendor/psr/http-server-middleware/src/MiddlewareInterface.php b/advancedcontentfilter/vendor/psr/http-server-middleware/src/MiddlewareInterface.php
deleted file mode 100644
index a6c14f8c..00000000
--- a/advancedcontentfilter/vendor/psr/http-server-middleware/src/MiddlewareInterface.php
+++ /dev/null
@@ -1,25 +0,0 @@
- true,
'null' => null,
@@ -114,7 +110,6 @@ abstract class LoggerInterfaceTest extends TestCase
'nested' => array('with object' => new DummyTest),
'object' => new \DateTime,
'resource' => fopen('php://memory', 'r'),
- 'closed' => $closed,
);
$this->getLogger()->warning('Crazy context data', $context);
@@ -136,3 +131,10 @@ abstract class LoggerInterfaceTest extends TestCase
$this->assertEquals($expected, $this->getLogs());
}
}
+
+class DummyTest
+{
+ public function __toString()
+ {
+ }
+}
diff --git a/advancedcontentfilter/vendor/psr/log/Psr/Log/Test/TestLogger.php b/advancedcontentfilter/vendor/psr/log/Psr/Log/Test/TestLogger.php
deleted file mode 100644
index 1be32304..00000000
--- a/advancedcontentfilter/vendor/psr/log/Psr/Log/Test/TestLogger.php
+++ /dev/null
@@ -1,147 +0,0 @@
- $level,
- 'message' => $message,
- 'context' => $context,
- ];
-
- $this->recordsByLevel[$record['level']][] = $record;
- $this->records[] = $record;
- }
-
- public function hasRecords($level)
- {
- return isset($this->recordsByLevel[$level]);
- }
-
- public function hasRecord($record, $level)
- {
- if (is_string($record)) {
- $record = ['message' => $record];
- }
- return $this->hasRecordThatPasses(function ($rec) use ($record) {
- if ($rec['message'] !== $record['message']) {
- return false;
- }
- if (isset($record['context']) && $rec['context'] !== $record['context']) {
- return false;
- }
- return true;
- }, $level);
- }
-
- public function hasRecordThatContains($message, $level)
- {
- return $this->hasRecordThatPasses(function ($rec) use ($message) {
- return strpos($rec['message'], $message) !== false;
- }, $level);
- }
-
- public function hasRecordThatMatches($regex, $level)
- {
- return $this->hasRecordThatPasses(function ($rec) use ($regex) {
- return preg_match($regex, $rec['message']) > 0;
- }, $level);
- }
-
- public function hasRecordThatPasses(callable $predicate, $level)
- {
- if (!isset($this->recordsByLevel[$level])) {
- return false;
- }
- foreach ($this->recordsByLevel[$level] as $i => $rec) {
- if (call_user_func($predicate, $rec, $i)) {
- return true;
- }
- }
- return false;
- }
-
- public function __call($method, $args)
- {
- if (preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches) > 0) {
- $genericMethod = $matches[1] . ('Records' !== $matches[3] ? 'Record' : '') . $matches[3];
- $level = strtolower($matches[2]);
- if (method_exists($this, $genericMethod)) {
- $args[] = $level;
- return call_user_func_array([$this, $genericMethod], $args);
- }
- }
- throw new \BadMethodCallException('Call to undefined method ' . get_class($this) . '::' . $method . '()');
- }
-
- public function reset()
- {
- $this->records = [];
- $this->recordsByLevel = [];
- }
-}
diff --git a/advancedcontentfilter/vendor/psr/log/README.md b/advancedcontentfilter/vendor/psr/log/README.md
index a9f20c43..574bc1cb 100644
--- a/advancedcontentfilter/vendor/psr/log/README.md
+++ b/advancedcontentfilter/vendor/psr/log/README.md
@@ -7,13 +7,6 @@ This repository holds all interfaces/classes/traits related to
Note that this is not a logger of its own. It is merely an interface that
describes a logger. See the specification for more details.
-Installation
-------------
-
-```bash
-composer require psr/log
-```
-
Usage
-----
@@ -38,12 +31,6 @@ class Foo
if ($this->logger) {
$this->logger->info('Doing work');
}
-
- try {
- $this->doSomethingElse();
- } catch (Exception $exception) {
- $this->logger->error('Oh no!', array('exception' => $exception));
- }
// do something useful
}
diff --git a/advancedcontentfilter/vendor/psr/log/composer.json b/advancedcontentfilter/vendor/psr/log/composer.json
index ca056953..87934d70 100644
--- a/advancedcontentfilter/vendor/psr/log/composer.json
+++ b/advancedcontentfilter/vendor/psr/log/composer.json
@@ -7,7 +7,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
+ "homepage": "http://www.php-fig.org/"
}
],
"require": {
@@ -20,7 +20,7 @@
},
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "1.0.x-dev"
}
}
}
diff --git a/advancedcontentfilter/vendor/psr/simple-cache/.editorconfig b/advancedcontentfilter/vendor/psr/simple-cache/.editorconfig
new file mode 100644
index 00000000..48542cbb
--- /dev/null
+++ b/advancedcontentfilter/vendor/psr/simple-cache/.editorconfig
@@ -0,0 +1,12 @@
+; This file is for unifying the coding style for different editors and IDEs.
+; More information at http://editorconfig.org
+
+root = true
+
+[*]
+charset = utf-8
+indent_size = 4
+indent_style = space
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
diff --git a/advancedcontentfilter/vendor/psr/simple-cache/LICENSE.md b/advancedcontentfilter/vendor/psr/simple-cache/LICENSE.md
new file mode 100644
index 00000000..e49a7c85
--- /dev/null
+++ b/advancedcontentfilter/vendor/psr/simple-cache/LICENSE.md
@@ -0,0 +1,21 @@
+# The MIT License (MIT)
+
+Copyright (c) 2016 PHP Framework Interoperability Group
+
+> Permission is hereby granted, free of charge, to any person obtaining a copy
+> of this software and associated documentation files (the "Software"), to deal
+> in the Software without restriction, including without limitation the rights
+> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+> copies of the Software, and to permit persons to whom the Software is
+> furnished to do so, subject to the following conditions:
+>
+> The above copyright notice and this permission notice shall be included in
+> all copies or substantial portions of the Software.
+>
+> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+> THE SOFTWARE.
diff --git a/advancedcontentfilter/vendor/psr/simple-cache/README.md b/advancedcontentfilter/vendor/psr/simple-cache/README.md
new file mode 100644
index 00000000..43641d17
--- /dev/null
+++ b/advancedcontentfilter/vendor/psr/simple-cache/README.md
@@ -0,0 +1,8 @@
+PHP FIG Simple Cache PSR
+========================
+
+This repository holds all interfaces related to PSR-16.
+
+Note that this is not a cache implementation of its own. It is merely an interface that describes a cache implementation. See [the specification](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-16-simple-cache.md) for more details.
+
+You can find implementations of the specification by looking for packages providing the [psr/simple-cache-implementation](https://packagist.org/providers/psr/simple-cache-implementation) virtual package.
diff --git a/advancedcontentfilter/vendor/psr/simple-cache/composer.json b/advancedcontentfilter/vendor/psr/simple-cache/composer.json
new file mode 100644
index 00000000..2978fa55
--- /dev/null
+++ b/advancedcontentfilter/vendor/psr/simple-cache/composer.json
@@ -0,0 +1,25 @@
+{
+ "name": "psr/simple-cache",
+ "description": "Common interfaces for simple caching",
+ "keywords": ["psr", "psr-16", "cache", "simple-cache", "caching"],
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\SimpleCache\\": "src/"
+ }
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ }
+}
diff --git a/advancedcontentfilter/vendor/psr/simple-cache/src/CacheException.php b/advancedcontentfilter/vendor/psr/simple-cache/src/CacheException.php
new file mode 100644
index 00000000..eba53815
--- /dev/null
+++ b/advancedcontentfilter/vendor/psr/simple-cache/src/CacheException.php
@@ -0,0 +1,10 @@
+ value pairs. Cache keys that do not exist or are stale will have $default as value.
+ *
+ * @throws \Psr\SimpleCache\InvalidArgumentException
+ * MUST be thrown if $keys is neither an array nor a Traversable,
+ * or if any of the $keys are not a legal value.
+ */
+ public function getMultiple($keys, $default = null);
+
+ /**
+ * Persists a set of key => value pairs in the cache, with an optional TTL.
+ *
+ * @param iterable $values A list of key => value pairs for a multiple-set operation.
+ * @param null|int|\DateInterval $ttl Optional. The TTL value of this item. If no value is sent and
+ * the driver supports TTL then the library may set a default value
+ * for it or let the driver take care of that.
+ *
+ * @return bool True on success and false on failure.
+ *
+ * @throws \Psr\SimpleCache\InvalidArgumentException
+ * MUST be thrown if $values is neither an array nor a Traversable,
+ * or if any of the $values are not a legal value.
+ */
+ public function setMultiple($values, $ttl = null);
+
+ /**
+ * Deletes multiple cache items in a single operation.
+ *
+ * @param iterable $keys A list of string-based keys to be deleted.
+ *
+ * @return bool True if the items were successfully removed. False if there was an error.
+ *
+ * @throws \Psr\SimpleCache\InvalidArgumentException
+ * MUST be thrown if $keys is neither an array nor a Traversable,
+ * or if any of the $keys are not a legal value.
+ */
+ public function deleteMultiple($keys);
+
+ /**
+ * Determines whether an item is present in the cache.
+ *
+ * NOTE: It is recommended that has() is only to be used for cache warming type purposes
+ * and not to be used within your live applications operations for get/set, as this method
+ * is subject to a race condition where your has() will return true and immediately after,
+ * another script can remove it making the state of your app out of date.
+ *
+ * @param string $key The cache item key.
+ *
+ * @return bool
+ *
+ * @throws \Psr\SimpleCache\InvalidArgumentException
+ * MUST be thrown if the $key string is not a legal value.
+ */
+ public function has($key);
+}
diff --git a/advancedcontentfilter/vendor/psr/simple-cache/src/InvalidArgumentException.php b/advancedcontentfilter/vendor/psr/simple-cache/src/InvalidArgumentException.php
new file mode 100644
index 00000000..6a9524a2
--- /dev/null
+++ b/advancedcontentfilter/vendor/psr/simple-cache/src/InvalidArgumentException.php
@@ -0,0 +1,13 @@
+container = $container;
+ }
- $this->routeResolver = $routeResolver ?? new RouteResolver($this->routeCollector);
- $routeRunner = new RouteRunner($this->routeResolver, $this->routeCollector->getRouteParser(), $this);
+ /**
+ * Enable access to the DI container by consumers of $app
+ *
+ * @return ContainerInterface
+ */
+ public function getContainer()
+ {
+ return $this->container;
+ }
- if (!$middlewareDispatcher) {
- $middlewareDispatcher = new MiddlewareDispatcher($routeRunner, $this->callableResolver, $container);
- } else {
- $middlewareDispatcher->seedMiddlewareStack($routeRunner);
+ /**
+ * Add middleware
+ *
+ * This method prepends new middleware to the app's middleware stack.
+ *
+ * @param callable|string $callable The callback routine
+ *
+ * @return static
+ */
+ public function add($callable)
+ {
+ return $this->addMiddleware(new DeferredCallable($callable, $this->container));
+ }
+
+ /**
+ * Calling a non-existant method on App checks to see if there's an item
+ * in the container that is callable and if so, calls it.
+ *
+ * @param string $method
+ * @param array $args
+ * @return mixed
+ */
+ public function __call($method, $args)
+ {
+ if ($this->container->has($method)) {
+ $obj = $this->container->get($method);
+ if (is_callable($obj)) {
+ return call_user_func_array($obj, $args);
+ }
}
- $this->middlewareDispatcher = $middlewareDispatcher;
+ throw new \BadMethodCallException("Method $method is not a valid method");
}
- /**
- * @return RouteResolverInterface
- */
- public function getRouteResolver(): RouteResolverInterface
- {
- return $this->routeResolver;
- }
+ /********************************************************************************
+ * Router proxy methods
+ *******************************************************************************/
/**
- * @return MiddlewareDispatcherInterface
- */
- public function getMiddlewareDispatcher(): MiddlewareDispatcherInterface
- {
- return $this->middlewareDispatcher;
- }
-
- /**
- * @param MiddlewareInterface|string|callable $middleware
- */
- public function add($middleware): self
- {
- $this->middlewareDispatcher->add($middleware);
- return $this;
- }
-
- /**
- * @param MiddlewareInterface $middleware
- */
- public function addMiddleware(MiddlewareInterface $middleware): self
- {
- $this->middlewareDispatcher->addMiddleware($middleware);
- return $this;
- }
-
- /**
- * Add the Slim built-in routing middleware to the app middleware stack
+ * Add GET route
*
- * This method can be used to control middleware order and is not required for default routing operation.
+ * @param string $pattern The route URI pattern
+ * @param callable|string $callable The route callback routine
*
- * @return RoutingMiddleware
+ * @return \Slim\Interfaces\RouteInterface
*/
- public function addRoutingMiddleware(): RoutingMiddleware
+ public function get($pattern, $callable)
{
- $routingMiddleware = new RoutingMiddleware(
- $this->getRouteResolver(),
- $this->getRouteCollector()->getRouteParser()
- );
- $this->add($routingMiddleware);
- return $routingMiddleware;
+ return $this->map(['GET'], $pattern, $callable);
}
/**
- * Add the Slim built-in error middleware to the app middleware stack
+ * Add POST route
*
- * @param bool $displayErrorDetails
- * @param bool $logErrors
- * @param bool $logErrorDetails
- * @param LoggerInterface|null $logger
+ * @param string $pattern The route URI pattern
+ * @param callable|string $callable The route callback routine
*
- * @return ErrorMiddleware
+ * @return \Slim\Interfaces\RouteInterface
*/
- public function addErrorMiddleware(
- bool $displayErrorDetails,
- bool $logErrors,
- bool $logErrorDetails,
- ?LoggerInterface $logger = null
- ): ErrorMiddleware {
- $errorMiddleware = new ErrorMiddleware(
- $this->getCallableResolver(),
- $this->getResponseFactory(),
- $displayErrorDetails,
- $logErrors,
- $logErrorDetails,
- $logger
- );
- $this->add($errorMiddleware);
- return $errorMiddleware;
+ public function post($pattern, $callable)
+ {
+ return $this->map(['POST'], $pattern, $callable);
}
/**
- * Add the Slim body parsing middleware to the app middleware stack
+ * Add PUT route
*
- * @param callable[] $bodyParsers
+ * @param string $pattern The route URI pattern
+ * @param callable|string $callable The route callback routine
*
- * @return BodyParsingMiddleware
+ * @return \Slim\Interfaces\RouteInterface
*/
- public function addBodyParsingMiddleware(array $bodyParsers = []): BodyParsingMiddleware
+ public function put($pattern, $callable)
{
- $bodyParsingMiddleware = new BodyParsingMiddleware($bodyParsers);
- $this->add($bodyParsingMiddleware);
- return $bodyParsingMiddleware;
+ return $this->map(['PUT'], $pattern, $callable);
}
+ /**
+ * Add PATCH route
+ *
+ * @param string $pattern The route URI pattern
+ * @param callable|string $callable The route callback routine
+ *
+ * @return \Slim\Interfaces\RouteInterface
+ */
+ public function patch($pattern, $callable)
+ {
+ return $this->map(['PATCH'], $pattern, $callable);
+ }
+
+ /**
+ * Add DELETE route
+ *
+ * @param string $pattern The route URI pattern
+ * @param callable|string $callable The route callback routine
+ *
+ * @return \Slim\Interfaces\RouteInterface
+ */
+ public function delete($pattern, $callable)
+ {
+ return $this->map(['DELETE'], $pattern, $callable);
+ }
+
+ /**
+ * Add OPTIONS route
+ *
+ * @param string $pattern The route URI pattern
+ * @param callable|string $callable The route callback routine
+ *
+ * @return \Slim\Interfaces\RouteInterface
+ */
+ public function options($pattern, $callable)
+ {
+ return $this->map(['OPTIONS'], $pattern, $callable);
+ }
+
+ /**
+ * Add route for any HTTP method
+ *
+ * @param string $pattern The route URI pattern
+ * @param callable|string $callable The route callback routine
+ *
+ * @return \Slim\Interfaces\RouteInterface
+ */
+ public function any($pattern, $callable)
+ {
+ return $this->map(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'], $pattern, $callable);
+ }
+
+ /**
+ * Add route with multiple methods
+ *
+ * @param string[] $methods Numeric array of HTTP method names
+ * @param string $pattern The route URI pattern
+ * @param callable|string $callable The route callback routine
+ *
+ * @return RouteInterface
+ */
+ public function map(array $methods, $pattern, $callable)
+ {
+ if ($callable instanceof Closure) {
+ $callable = $callable->bindTo($this->container);
+ }
+
+ $route = $this->container->get('router')->map($methods, $pattern, $callable);
+ if (is_callable([$route, 'setContainer'])) {
+ $route->setContainer($this->container);
+ }
+
+ if (is_callable([$route, 'setOutputBuffering'])) {
+ $route->setOutputBuffering($this->container->get('settings')['outputBuffering']);
+ }
+
+ return $route;
+ }
+
+ /**
+ * Route Groups
+ *
+ * This method accepts a route pattern and a callback. All route
+ * declarations in the callback will be prepended by the group(s)
+ * that it is in.
+ *
+ * @param string $pattern
+ * @param callable $callable
+ *
+ * @return RouteGroupInterface
+ */
+ public function group($pattern, $callable)
+ {
+ /** @var RouteGroup $group */
+ $group = $this->container->get('router')->pushGroup($pattern, $callable);
+ $group->setContainer($this->container);
+ $group($this);
+ $this->container->get('router')->popGroup();
+ return $group;
+ }
+
+ /********************************************************************************
+ * Runner
+ *******************************************************************************/
+
/**
* Run application
*
* This method traverses the application middleware stack and then sends the
* resultant Response object to the HTTP client.
*
- * @param ServerRequestInterface|null $request
- * @return void
+ * @param bool|false $silent
+ * @return ResponseInterface
+ *
+ * @throws Exception
+ * @throws MethodNotAllowedException
+ * @throws NotFoundException
*/
- public function run(?ServerRequestInterface $request = null): void
+ public function run($silent = false)
{
- if (!$request) {
- $serverRequestCreator = ServerRequestCreatorFactory::create();
- $request = $serverRequestCreator->createServerRequestFromGlobals();
+ $response = $this->container->get('response');
+
+ try {
+ ob_start();
+ $response = $this->process($this->container->get('request'), $response);
+ } catch (InvalidMethodException $e) {
+ $response = $this->processInvalidMethod($e->getRequest(), $response);
+ } finally {
+ $output = ob_get_clean();
}
- $response = $this->handle($request);
- $responseEmitter = new ResponseEmitter();
- $responseEmitter->emit($response);
+ if (!empty($output) && $response->getBody()->isWritable()) {
+ $outputBuffering = $this->container->get('settings')['outputBuffering'];
+ if ($outputBuffering === 'prepend') {
+ // prepend output buffer content
+ $body = new Http\Body(fopen('php://temp', 'r+'));
+ $body->write($output . $response->getBody());
+ $response = $response->withBody($body);
+ } elseif ($outputBuffering === 'append') {
+ // append output buffer content
+ $response->getBody()->write($output);
+ }
+ }
+
+ $response = $this->finalize($response);
+
+ if (!$silent) {
+ $this->respond($response);
+ }
+
+ return $response;
}
/**
- * Handle a request
+ * Pull route info for a request with a bad method to decide whether to
+ * return a not-found error (default) or a bad-method error, then run
+ * the handler for that error, returning the resulting response.
+ *
+ * Used for cases where an incoming request has an unrecognized method,
+ * rather than throwing an exception and not catching it all the way up.
+ *
+ * @param ServerRequestInterface $request
+ * @param ResponseInterface $response
+ * @return ResponseInterface
+ */
+ protected function processInvalidMethod(ServerRequestInterface $request, ResponseInterface $response)
+ {
+ $router = $this->container->get('router');
+ if (is_callable([$request->getUri(), 'getBasePath']) && is_callable([$router, 'setBasePath'])) {
+ $router->setBasePath($request->getUri()->getBasePath());
+ }
+
+ $request = $this->dispatchRouterAndPrepareRoute($request, $router);
+ $routeInfo = $request->getAttribute('routeInfo', [RouterInterface::DISPATCH_STATUS => Dispatcher::NOT_FOUND]);
+
+ if ($routeInfo[RouterInterface::DISPATCH_STATUS] === Dispatcher::METHOD_NOT_ALLOWED) {
+ return $this->handleException(
+ new MethodNotAllowedException($request, $response, $routeInfo[RouterInterface::ALLOWED_METHODS]),
+ $request,
+ $response
+ );
+ }
+
+ return $this->handleException(new NotFoundException($request, $response), $request, $response);
+ }
+
+ /**
+ * Process a request
*
* This method traverses the application middleware stack and then returns the
* resultant Response object.
*
* @param ServerRequestInterface $request
+ * @param ResponseInterface $response
* @return ResponseInterface
+ *
+ * @throws Exception
+ * @throws MethodNotAllowedException
+ * @throws NotFoundException
*/
- public function handle(ServerRequestInterface $request): ResponseInterface
+ public function process(ServerRequestInterface $request, ResponseInterface $response)
{
- $response = $this->middlewareDispatcher->handle($request);
+ // Ensure basePath is set
+ $router = $this->container->get('router');
+ if (is_callable([$request->getUri(), 'getBasePath']) && is_callable([$router, 'setBasePath'])) {
+ $router->setBasePath($request->getUri()->getBasePath());
+ }
- /**
- * This is to be in compliance with RFC 2616, Section 9.
- * If the incoming request method is HEAD, we need to ensure that the response body
- * is empty as the request may fall back on a GET route handler due to FastRoute's
- * routing logic which could potentially append content to the response body
- * https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4
- */
- $method = strtoupper($request->getMethod());
- if ($method === 'HEAD') {
- $emptyBody = $this->responseFactory->createResponse()->getBody();
- return $response->withBody($emptyBody);
+ // Dispatch the Router first if the setting for this is on
+ if ($this->container->get('settings')['determineRouteBeforeAppMiddleware'] === true) {
+ // Dispatch router (note: you won't be able to alter routes after this)
+ $request = $this->dispatchRouterAndPrepareRoute($request, $router);
+ }
+
+ // Traverse middleware stack
+ try {
+ $response = $this->callMiddlewareStack($request, $response);
+ } catch (Exception $e) {
+ $response = $this->handleException($e, $request, $response);
+ } catch (Throwable $e) {
+ $response = $this->handlePhpError($e, $request, $response);
}
return $response;
}
+
+ /**
+ * Send the response to the client
+ *
+ * @param ResponseInterface $response
+ */
+ public function respond(ResponseInterface $response)
+ {
+ // Send response
+ if (!headers_sent()) {
+ // Headers
+ foreach ($response->getHeaders() as $name => $values) {
+ foreach ($values as $value) {
+ header(sprintf('%s: %s', $name, $value), false);
+ }
+ }
+
+ // Set the status _after_ the headers, because of PHP's "helpful" behavior with location headers.
+ // See https://github.com/slimphp/Slim/issues/1730
+
+ // Status
+ header(sprintf(
+ 'HTTP/%s %s %s',
+ $response->getProtocolVersion(),
+ $response->getStatusCode(),
+ $response->getReasonPhrase()
+ ));
+ }
+
+ // Body
+ if (!$this->isEmptyResponse($response)) {
+ $body = $response->getBody();
+ if ($body->isSeekable()) {
+ $body->rewind();
+ }
+ $settings = $this->container->get('settings');
+ $chunkSize = $settings['responseChunkSize'];
+
+ $contentLength = $response->getHeaderLine('Content-Length');
+ if (!$contentLength) {
+ $contentLength = $body->getSize();
+ }
+
+
+ if (isset($contentLength)) {
+ $amountToRead = $contentLength;
+ while ($amountToRead > 0 && !$body->eof()) {
+ $data = $body->read(min($chunkSize, $amountToRead));
+ echo $data;
+
+ $amountToRead -= strlen($data);
+
+ if (connection_status() != CONNECTION_NORMAL) {
+ break;
+ }
+ }
+ } else {
+ while (!$body->eof()) {
+ echo $body->read($chunkSize);
+ if (connection_status() != CONNECTION_NORMAL) {
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Invoke application
+ *
+ * This method implements the middleware interface. It receives
+ * Request and Response objects, and it returns a Response object
+ * after compiling the routes registered in the Router and dispatching
+ * the Request object to the appropriate Route callback routine.
+ *
+ * @param ServerRequestInterface $request The most recent Request object
+ * @param ResponseInterface $response The most recent Response object
+ *
+ * @return ResponseInterface
+ * @throws MethodNotAllowedException
+ * @throws NotFoundException
+ */
+ public function __invoke(ServerRequestInterface $request, ResponseInterface $response)
+ {
+ // Get the route info
+ $routeInfo = $request->getAttribute('routeInfo');
+
+ /** @var \Slim\Interfaces\RouterInterface $router */
+ $router = $this->container->get('router');
+
+ // If router hasn't been dispatched or the URI changed then dispatch
+ if (null === $routeInfo || ($routeInfo['request'] !== [$request->getMethod(), (string) $request->getUri()])) {
+ $request = $this->dispatchRouterAndPrepareRoute($request, $router);
+ $routeInfo = $request->getAttribute('routeInfo');
+ }
+
+ if ($routeInfo[0] === Dispatcher::FOUND) {
+ $route = $router->lookupRoute($routeInfo[1]);
+ return $route->run($request, $response);
+ } elseif ($routeInfo[0] === Dispatcher::METHOD_NOT_ALLOWED) {
+ if (!$this->container->has('notAllowedHandler')) {
+ throw new MethodNotAllowedException($request, $response, $routeInfo[1]);
+ }
+ /** @var callable $notAllowedHandler */
+ $notAllowedHandler = $this->container->get('notAllowedHandler');
+ return $notAllowedHandler($request, $response, $routeInfo[1]);
+ }
+
+ if (!$this->container->has('notFoundHandler')) {
+ throw new NotFoundException($request, $response);
+ }
+ /** @var callable $notFoundHandler */
+ $notFoundHandler = $this->container->get('notFoundHandler');
+ return $notFoundHandler($request, $response);
+ }
+
+ /**
+ * Perform a sub-request from within an application route
+ *
+ * This method allows you to prepare and initiate a sub-request, run within
+ * the context of the current request. This WILL NOT issue a remote HTTP
+ * request. Instead, it will route the provided URL, method, headers,
+ * cookies, body, and server variables against the set of registered
+ * application routes. The result response object is returned.
+ *
+ * @param string $method The request method (e.g., GET, POST, PUT, etc.)
+ * @param string $path The request URI path
+ * @param string $query The request URI query string
+ * @param array $headers The request headers (key-value array)
+ * @param array $cookies The request cookies (key-value array)
+ * @param string $bodyContent The request body
+ * @param ResponseInterface $response The response object (optional)
+ * @return ResponseInterface
+ */
+ public function subRequest(
+ $method,
+ $path,
+ $query = '',
+ array $headers = [],
+ array $cookies = [],
+ $bodyContent = '',
+ ResponseInterface $response = null
+ ) {
+ $env = $this->container->get('environment');
+ $uri = Uri::createFromEnvironment($env)->withPath($path)->withQuery($query);
+ $headers = new Headers($headers);
+ $serverParams = $env->all();
+ $body = new Body(fopen('php://temp', 'r+'));
+ $body->write($bodyContent);
+ $body->rewind();
+ $request = new Request($method, $uri, $headers, $cookies, $serverParams, $body);
+
+ if (!$response) {
+ $response = $this->container->get('response');
+ }
+
+ return $this($request, $response);
+ }
+
+ /**
+ * Dispatch the router to find the route. Prepare the route for use.
+ *
+ * @param ServerRequestInterface $request
+ * @param RouterInterface $router
+ * @return ServerRequestInterface
+ */
+ protected function dispatchRouterAndPrepareRoute(ServerRequestInterface $request, RouterInterface $router)
+ {
+ $routeInfo = $router->dispatch($request);
+
+ if ($routeInfo[0] === Dispatcher::FOUND) {
+ $routeArguments = [];
+ foreach ($routeInfo[2] as $k => $v) {
+ $routeArguments[$k] = urldecode($v);
+ }
+
+ $route = $router->lookupRoute($routeInfo[1]);
+ $route->prepare($request, $routeArguments);
+
+ // add route to the request's attributes in case a middleware or handler needs access to the route
+ $request = $request->withAttribute('route', $route);
+ }
+
+ $routeInfo['request'] = [$request->getMethod(), (string) $request->getUri()];
+
+ return $request->withAttribute('routeInfo', $routeInfo);
+ }
+
+ /**
+ * Finalize response
+ *
+ * @param ResponseInterface $response
+ * @return ResponseInterface
+ */
+ protected function finalize(ResponseInterface $response)
+ {
+ // stop PHP sending a Content-Type automatically
+ ini_set('default_mimetype', '');
+
+ if ($this->isEmptyResponse($response)) {
+ return $response->withoutHeader('Content-Type')->withoutHeader('Content-Length');
+ }
+
+ // Add Content-Length header if `addContentLengthHeader` setting is set
+ if (isset($this->container->get('settings')['addContentLengthHeader']) &&
+ $this->container->get('settings')['addContentLengthHeader'] == true) {
+ if (ob_get_length() > 0) {
+ throw new \RuntimeException("Unexpected data in output buffer. " .
+ "Maybe you have characters before an opening getBody()->getSize();
+ if ($size !== null && !$response->hasHeader('Content-Length')) {
+ $response = $response->withHeader('Content-Length', (string) $size);
+ }
+ }
+
+ return $response;
+ }
+
+ /**
+ * Helper method, which returns true if the provided response must not output a body and false
+ * if the response could have a body.
+ *
+ * @see https://tools.ietf.org/html/rfc7231
+ *
+ * @param ResponseInterface $response
+ * @return bool
+ */
+ protected function isEmptyResponse(ResponseInterface $response)
+ {
+ if (method_exists($response, 'isEmpty')) {
+ return $response->isEmpty();
+ }
+
+ return in_array($response->getStatusCode(), [204, 205, 304]);
+ }
+
+ /**
+ * Call relevant handler from the Container if needed. If it doesn't exist,
+ * then just re-throw.
+ *
+ * @param Exception $e
+ * @param ServerRequestInterface $request
+ * @param ResponseInterface $response
+ *
+ * @return ResponseInterface
+ * @throws Exception if a handler is needed and not found
+ */
+ protected function handleException(Exception $e, ServerRequestInterface $request, ResponseInterface $response)
+ {
+ if ($e instanceof MethodNotAllowedException) {
+ $handler = 'notAllowedHandler';
+ $params = [$e->getRequest(), $e->getResponse(), $e->getAllowedMethods()];
+ } elseif ($e instanceof NotFoundException) {
+ $handler = 'notFoundHandler';
+ $params = [$e->getRequest(), $e->getResponse(), $e];
+ } elseif ($e instanceof SlimException) {
+ // This is a Stop exception and contains the response
+ return $e->getResponse();
+ } else {
+ // Other exception, use $request and $response params
+ $handler = 'errorHandler';
+ $params = [$request, $response, $e];
+ }
+
+ if ($this->container->has($handler)) {
+ $callable = $this->container->get($handler);
+ // Call the registered handler
+ return call_user_func_array($callable, $params);
+ }
+
+ // No handlers found, so just throw the exception
+ throw $e;
+ }
+
+ /**
+ * Call relevant handler from the Container if needed. If it doesn't exist,
+ * then just re-throw.
+ *
+ * @param Throwable $e
+ * @param ServerRequestInterface $request
+ * @param ResponseInterface $response
+ * @return ResponseInterface
+ * @throws Throwable
+ */
+ protected function handlePhpError(Throwable $e, ServerRequestInterface $request, ResponseInterface $response)
+ {
+ $handler = 'phpErrorHandler';
+ $params = [$request, $response, $e];
+
+ if ($this->container->has($handler)) {
+ $callable = $this->container->get($handler);
+ // Call the registered handler
+ return call_user_func_array($callable, $params);
+ }
+
+ // No handlers found, so just throw the exception
+ throw $e;
+ }
}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/CallableResolver.php b/advancedcontentfilter/vendor/slim/slim/Slim/CallableResolver.php
index 66f225de..2211a329 100644
--- a/advancedcontentfilter/vendor/slim/slim/Slim/CallableResolver.php
+++ b/advancedcontentfilter/vendor/slim/slim/Slim/CallableResolver.php
@@ -1,193 +1,110 @@
container = $container;
}
/**
- * {@inheritdoc}
+ * Resolve toResolve into a closure so that the router can dispatch.
+ *
+ * If toResolve is of the format 'class:method', then try to extract 'class'
+ * from the container otherwise instantiate it and then dispatch 'method'.
+ *
+ * @param mixed $toResolve
+ *
+ * @return callable
+ *
+ * @throws RuntimeException if the callable does not exist
+ * @throws RuntimeException if the callable is not resolvable
*/
- public function resolve($toResolve): callable
+ public function resolve($toResolve)
{
- $toResolve = $this->prepareToResolve($toResolve);
if (is_callable($toResolve)) {
- return $this->bindToContainer($toResolve);
+ return $toResolve;
}
- $resolved = $toResolve;
- if (is_string($toResolve)) {
- $resolved = $this->resolveSlimNotation($toResolve);
- $resolved[1] ??= '__invoke';
+
+ if (!is_string($toResolve)) {
+ $this->assertCallable($toResolve);
}
- $callable = $this->assertCallable($resolved, $toResolve);
- return $this->bindToContainer($callable);
- }
- /**
- * {@inheritdoc}
- */
- public function resolveRoute($toResolve): callable
- {
- return $this->resolveByPredicate($toResolve, [$this, 'isRoute'], 'handle');
- }
+ // check for slim callable as "class:method"
+ if (preg_match(self::CALLABLE_PATTERN, $toResolve, $matches)) {
+ $resolved = $this->resolveCallable($matches[1], $matches[2]);
+ $this->assertCallable($resolved);
- /**
- * {@inheritdoc}
- */
- public function resolveMiddleware($toResolve): callable
- {
- return $this->resolveByPredicate($toResolve, [$this, 'isMiddleware'], 'process');
- }
-
- /**
- * @param string|callable $toResolve
- *
- * @throws RuntimeException
- */
- private function resolveByPredicate($toResolve, callable $predicate, string $defaultMethod): callable
- {
- $toResolve = $this->prepareToResolve($toResolve);
- if (is_callable($toResolve)) {
- return $this->bindToContainer($toResolve);
+ return $resolved;
}
- $resolved = $toResolve;
- if ($predicate($toResolve)) {
- $resolved = [$toResolve, $defaultMethod];
- }
- if (is_string($toResolve)) {
- [$instance, $method] = $this->resolveSlimNotation($toResolve);
- if ($method === null && $predicate($instance)) {
- $method = $defaultMethod;
- }
- $resolved = [$instance, $method ?? '__invoke'];
- }
- $callable = $this->assertCallable($resolved, $toResolve);
- return $this->bindToContainer($callable);
- }
- /**
- * @param mixed $toResolve
- */
- private function isRoute($toResolve): bool
- {
- return $toResolve instanceof RequestHandlerInterface;
- }
+ $resolved = $this->resolveCallable($toResolve);
+ $this->assertCallable($resolved);
- /**
- * @param mixed $toResolve
- */
- private function isMiddleware($toResolve): bool
- {
- return $toResolve instanceof MiddlewareInterface;
- }
-
- /**
- * @throws RuntimeException
- *
- * @return array{object, string|null} [Instance, Method Name]
- */
- private function resolveSlimNotation(string $toResolve): array
- {
- preg_match(CallableResolver::$callablePattern, $toResolve, $matches);
- [$class, $method] = $matches ? [$matches[1], $matches[2]] : [$toResolve, null];
-
- /** @var string $class */
- /** @var string|null $method */
- if ($this->container && $this->container->has($class)) {
- $instance = $this->container->get($class);
- if (!is_object($instance)) {
- throw new RuntimeException(sprintf('%s container entry is not an object', $class));
- }
- } else {
- if (!class_exists($class)) {
- if ($method) {
- $class .= '::' . $method . '()';
- }
- throw new RuntimeException(sprintf('Callable %s does not exist', $class));
- }
- $instance = new $class($this->container);
- }
- return [$instance, $method];
- }
-
- /**
- * @param mixed $resolved
- * @param mixed $toResolve
- *
- * @throws RuntimeException
- */
- private function assertCallable($resolved, $toResolve): callable
- {
- if (!is_callable($resolved)) {
- if (is_callable($toResolve) || is_object($toResolve) || is_array($toResolve)) {
- $formatedToResolve = ($toResolveJson = json_encode($toResolve)) !== false ? $toResolveJson : '';
- } else {
- $formatedToResolve = is_string($toResolve) ? $toResolve : '';
- }
- throw new RuntimeException(sprintf('%s is not resolvable', $formatedToResolve));
- }
return $resolved;
}
- private function bindToContainer(callable $callable): callable
+ /**
+ * Check if string is something in the DIC
+ * that's callable or is a class name which has an __invoke() method.
+ *
+ * @param string $class
+ * @param string $method
+ * @return callable
+ *
+ * @throws \RuntimeException if the callable does not exist
+ */
+ protected function resolveCallable($class, $method = '__invoke')
{
- if (is_array($callable) && $callable[0] instanceof Closure) {
- $callable = $callable[0];
+ if ($this->container->has($class)) {
+ return [$this->container->get($class), $method];
}
- if ($this->container && $callable instanceof Closure) {
- /** @var Closure $callable */
- $callable = $callable->bindTo($this->container);
+
+ if (!class_exists($class)) {
+ throw new RuntimeException(sprintf('Callable %s does not exist', $class));
}
- return $callable;
+
+ return [new $class($this->container), $method];
}
/**
- * @param string|callable $toResolve
- * @return string|callable
+ * @param Callable $callable
+ *
+ * @throws \RuntimeException if the callable is not resolvable
*/
- private function prepareToResolve($toResolve)
+ protected function assertCallable($callable)
{
- if (!is_array($toResolve)) {
- return $toResolve;
+ if (!is_callable($callable)) {
+ throw new RuntimeException(sprintf(
+ '%s is not resolvable',
+ is_array($callable) || is_object($callable) ? json_encode($callable) : $callable
+ ));
}
- $candidate = $toResolve;
- $class = array_shift($candidate);
- $method = array_shift($candidate);
- if (is_string($class) && is_string($method)) {
- return $class . ':' . $method;
- }
- return $toResolve;
}
}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/CallableResolverAwareTrait.php b/advancedcontentfilter/vendor/slim/slim/Slim/CallableResolverAwareTrait.php
new file mode 100644
index 00000000..ffb4eb28
--- /dev/null
+++ b/advancedcontentfilter/vendor/slim/slim/Slim/CallableResolverAwareTrait.php
@@ -0,0 +1,47 @@
+container instanceof ContainerInterface) {
+ return $callable;
+ }
+
+ /** @var CallableResolverInterface $resolver */
+ $resolver = $this->container->get('callableResolver');
+
+ return $resolver->resolve($callable);
+ }
+}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Collection.php b/advancedcontentfilter/vendor/slim/slim/Slim/Collection.php
new file mode 100644
index 00000000..728bb73e
--- /dev/null
+++ b/advancedcontentfilter/vendor/slim/slim/Slim/Collection.php
@@ -0,0 +1,202 @@
+replace($items);
+ }
+
+ /********************************************************************************
+ * Collection interface
+ *******************************************************************************/
+
+ /**
+ * Set collection item
+ *
+ * @param string $key The data key
+ * @param mixed $value The data value
+ */
+ public function set($key, $value)
+ {
+ $this->data[$key] = $value;
+ }
+
+ /**
+ * Get collection item for key
+ *
+ * @param string $key The data key
+ * @param mixed $default The default value to return if data key does not exist
+ *
+ * @return mixed The key's value, or the default value
+ */
+ public function get($key, $default = null)
+ {
+ return $this->has($key) ? $this->data[$key] : $default;
+ }
+
+ /**
+ * Add item to collection, replacing existing items with the same data key
+ *
+ * @param array $items Key-value array of data to append to this collection
+ */
+ public function replace(array $items)
+ {
+ foreach ($items as $key => $value) {
+ $this->set($key, $value);
+ }
+ }
+
+ /**
+ * Get all items in collection
+ *
+ * @return array The collection's source data
+ */
+ public function all()
+ {
+ return $this->data;
+ }
+
+ /**
+ * Get collection keys
+ *
+ * @return array The collection's source data keys
+ */
+ public function keys()
+ {
+ return array_keys($this->data);
+ }
+
+ /**
+ * Does this collection have a given key?
+ *
+ * @param string $key The data key
+ *
+ * @return bool
+ */
+ public function has($key)
+ {
+ return array_key_exists($key, $this->data);
+ }
+
+ /**
+ * Remove item from collection
+ *
+ * @param string $key The data key
+ */
+ public function remove($key)
+ {
+ unset($this->data[$key]);
+ }
+
+ /**
+ * Remove all items from collection
+ */
+ public function clear()
+ {
+ $this->data = [];
+ }
+
+ /********************************************************************************
+ * ArrayAccess interface
+ *******************************************************************************/
+
+ /**
+ * Does this collection have a given key?
+ *
+ * @param string $key The data key
+ *
+ * @return bool
+ */
+ public function offsetExists($key)
+ {
+ return $this->has($key);
+ }
+
+ /**
+ * Get collection item for key
+ *
+ * @param string $key The data key
+ *
+ * @return mixed The key's value, or the default value
+ */
+ public function offsetGet($key)
+ {
+ return $this->get($key);
+ }
+
+ /**
+ * Set collection item
+ *
+ * @param string $key The data key
+ * @param mixed $value The data value
+ */
+ public function offsetSet($key, $value)
+ {
+ $this->set($key, $value);
+ }
+
+ /**
+ * Remove item from collection
+ *
+ * @param string $key The data key
+ */
+ public function offsetUnset($key)
+ {
+ $this->remove($key);
+ }
+
+ /**
+ * Get number of items in collection
+ *
+ * @return int
+ */
+ public function count()
+ {
+ return count($this->data);
+ }
+
+ /********************************************************************************
+ * IteratorAggregate interface
+ *******************************************************************************/
+
+ /**
+ * Get collection iterator
+ *
+ * @return \ArrayIterator
+ */
+ public function getIterator()
+ {
+ return new ArrayIterator($this->data);
+ }
+}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Container.php b/advancedcontentfilter/vendor/slim/slim/Slim/Container.php
new file mode 100644
index 00000000..1f713ac4
--- /dev/null
+++ b/advancedcontentfilter/vendor/slim/slim/Slim/Container.php
@@ -0,0 +1,179 @@
+ '1.1',
+ 'responseChunkSize' => 4096,
+ 'outputBuffering' => 'append',
+ 'determineRouteBeforeAppMiddleware' => false,
+ 'displayErrorDetails' => false,
+ 'addContentLengthHeader' => true,
+ 'routerCacheFile' => false,
+ ];
+
+ /**
+ * Create new container
+ *
+ * @param array $values The parameters or objects.
+ */
+ public function __construct(array $values = [])
+ {
+ parent::__construct($values);
+
+ $userSettings = isset($values['settings']) ? $values['settings'] : [];
+ $this->registerDefaultServices($userSettings);
+ }
+
+ /**
+ * This function registers the default services that Slim needs to work.
+ *
+ * All services are shared - that is, they are registered such that the
+ * same instance is returned on subsequent calls.
+ *
+ * @param array $userSettings Associative array of application settings
+ *
+ * @return void
+ */
+ private function registerDefaultServices($userSettings)
+ {
+ $defaultSettings = $this->defaultSettings;
+
+ /**
+ * This service MUST return an array or an
+ * instance of \ArrayAccess.
+ *
+ * @return array|\ArrayAccess
+ */
+ $this['settings'] = function () use ($userSettings, $defaultSettings) {
+ return new Collection(array_merge($defaultSettings, $userSettings));
+ };
+
+ $defaultProvider = new DefaultServicesProvider();
+ $defaultProvider->register($this);
+ }
+
+ /********************************************************************************
+ * Methods to satisfy Psr\Container\ContainerInterface
+ *******************************************************************************/
+
+ /**
+ * Finds an entry of the container by its identifier and returns it.
+ *
+ * @param string $id Identifier of the entry to look for.
+ *
+ * @throws ContainerValueNotFoundException No entry was found for this identifier.
+ * @throws ContainerException Error while retrieving the entry.
+ *
+ * @return mixed Entry.
+ */
+ public function get($id)
+ {
+ if (!$this->offsetExists($id)) {
+ throw new ContainerValueNotFoundException(sprintf('Identifier "%s" is not defined.', $id));
+ }
+ try {
+ return $this->offsetGet($id);
+ } catch (\InvalidArgumentException $exception) {
+ if ($this->exceptionThrownByContainer($exception)) {
+ throw new SlimContainerException(
+ sprintf('Container error while retrieving "%s"', $id),
+ null,
+ $exception
+ );
+ } else {
+ throw $exception;
+ }
+ }
+ }
+
+ /**
+ * Tests whether an exception needs to be recast for compliance with Container-Interop. This will be if the
+ * exception was thrown by Pimple.
+ *
+ * @param \InvalidArgumentException $exception
+ *
+ * @return bool
+ */
+ private function exceptionThrownByContainer(\InvalidArgumentException $exception)
+ {
+ $trace = $exception->getTrace()[0];
+
+ return $trace['class'] === PimpleContainer::class && $trace['function'] === 'offsetGet';
+ }
+
+ /**
+ * Returns true if the container can return an entry for the given identifier.
+ * Returns false otherwise.
+ *
+ * @param string $id Identifier of the entry to look for.
+ *
+ * @return boolean
+ */
+ public function has($id)
+ {
+ return $this->offsetExists($id);
+ }
+
+
+ /********************************************************************************
+ * Magic methods for convenience
+ *******************************************************************************/
+
+ public function __get($name)
+ {
+ return $this->get($name);
+ }
+
+ public function __isset($name)
+ {
+ return $this->has($name);
+ }
+}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/DefaultServicesProvider.php b/advancedcontentfilter/vendor/slim/slim/Slim/DefaultServicesProvider.php
new file mode 100644
index 00000000..13fe1fb3
--- /dev/null
+++ b/advancedcontentfilter/vendor/slim/slim/Slim/DefaultServicesProvider.php
@@ -0,0 +1,211 @@
+get('environment'));
+ };
+ }
+
+ if (!isset($container['response'])) {
+ /**
+ * PSR-7 Response object
+ *
+ * @param Container $container
+ *
+ * @return ResponseInterface
+ */
+ $container['response'] = function ($container) {
+ $headers = new Headers(['Content-Type' => 'text/html; charset=UTF-8']);
+ $response = new Response(200, $headers);
+
+ return $response->withProtocolVersion($container->get('settings')['httpVersion']);
+ };
+ }
+
+ if (!isset($container['router'])) {
+ /**
+ * This service MUST return a SHARED instance
+ * of \Slim\Interfaces\RouterInterface.
+ *
+ * @param Container $container
+ *
+ * @return RouterInterface
+ */
+ $container['router'] = function ($container) {
+ $routerCacheFile = false;
+ if (isset($container->get('settings')['routerCacheFile'])) {
+ $routerCacheFile = $container->get('settings')['routerCacheFile'];
+ }
+
+
+ $router = (new Router)->setCacheFile($routerCacheFile);
+ if (method_exists($router, 'setContainer')) {
+ $router->setContainer($container);
+ }
+
+ return $router;
+ };
+ }
+
+ if (!isset($container['foundHandler'])) {
+ /**
+ * This service MUST return a SHARED instance
+ * of \Slim\Interfaces\InvocationStrategyInterface.
+ *
+ * @return InvocationStrategyInterface
+ */
+ $container['foundHandler'] = function () {
+ return new RequestResponse;
+ };
+ }
+
+ if (!isset($container['phpErrorHandler'])) {
+ /**
+ * This service MUST return a callable
+ * that accepts three arguments:
+ *
+ * 1. Instance of \Psr\Http\Message\ServerRequestInterface
+ * 2. Instance of \Psr\Http\Message\ResponseInterface
+ * 3. Instance of \Error
+ *
+ * The callable MUST return an instance of
+ * \Psr\Http\Message\ResponseInterface.
+ *
+ * @param Container $container
+ *
+ * @return callable
+ */
+ $container['phpErrorHandler'] = function ($container) {
+ return new PhpError($container->get('settings')['displayErrorDetails']);
+ };
+ }
+
+ if (!isset($container['errorHandler'])) {
+ /**
+ * This service MUST return a callable
+ * that accepts three arguments:
+ *
+ * 1. Instance of \Psr\Http\Message\ServerRequestInterface
+ * 2. Instance of \Psr\Http\Message\ResponseInterface
+ * 3. Instance of \Exception
+ *
+ * The callable MUST return an instance of
+ * \Psr\Http\Message\ResponseInterface.
+ *
+ * @param Container $container
+ *
+ * @return callable
+ */
+ $container['errorHandler'] = function ($container) {
+ return new Error(
+ $container->get('settings')['displayErrorDetails']
+ );
+ };
+ }
+
+ if (!isset($container['notFoundHandler'])) {
+ /**
+ * This service MUST return a callable
+ * that accepts two arguments:
+ *
+ * 1. Instance of \Psr\Http\Message\ServerRequestInterface
+ * 2. Instance of \Psr\Http\Message\ResponseInterface
+ *
+ * The callable MUST return an instance of
+ * \Psr\Http\Message\ResponseInterface.
+ *
+ * @return callable
+ */
+ $container['notFoundHandler'] = function () {
+ return new NotFound;
+ };
+ }
+
+ if (!isset($container['notAllowedHandler'])) {
+ /**
+ * This service MUST return a callable
+ * that accepts three arguments:
+ *
+ * 1. Instance of \Psr\Http\Message\ServerRequestInterface
+ * 2. Instance of \Psr\Http\Message\ResponseInterface
+ * 3. Array of allowed HTTP methods
+ *
+ * The callable MUST return an instance of
+ * \Psr\Http\Message\ResponseInterface.
+ *
+ * @return callable
+ */
+ $container['notAllowedHandler'] = function () {
+ return new NotAllowed;
+ };
+ }
+
+ if (!isset($container['callableResolver'])) {
+ /**
+ * Instance of \Slim\Interfaces\CallableResolverInterface
+ *
+ * @param Container $container
+ *
+ * @return CallableResolverInterface
+ */
+ $container['callableResolver'] = function ($container) {
+ return new CallableResolver($container);
+ };
+ }
+ }
+}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/DeferredCallable.php b/advancedcontentfilter/vendor/slim/slim/Slim/DeferredCallable.php
new file mode 100644
index 00000000..22887c0f
--- /dev/null
+++ b/advancedcontentfilter/vendor/slim/slim/Slim/DeferredCallable.php
@@ -0,0 +1,45 @@
+callable = $callable;
+ $this->container = $container;
+ }
+
+ public function __invoke()
+ {
+ $callable = $this->resolveCallable($this->callable);
+ if ($callable instanceof Closure) {
+ $callable = $callable->bindTo($this->container);
+ }
+
+ $args = func_get_args();
+
+ return call_user_func_array($callable, $args);
+ }
+}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Error/AbstractErrorRenderer.php b/advancedcontentfilter/vendor/slim/slim/Slim/Error/AbstractErrorRenderer.php
deleted file mode 100644
index 90b290d4..00000000
--- a/advancedcontentfilter/vendor/slim/slim/Slim/Error/AbstractErrorRenderer.php
+++ /dev/null
@@ -1,46 +0,0 @@
-getTitle();
- }
-
- return $this->defaultErrorTitle;
- }
-
- protected function getErrorDescription(Throwable $exception): string
- {
- if ($exception instanceof HttpException) {
- return $exception->getDescription();
- }
-
- return $this->defaultErrorDescription;
- }
-}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Error/Renderers/HtmlErrorRenderer.php b/advancedcontentfilter/vendor/slim/slim/Slim/Error/Renderers/HtmlErrorRenderer.php
deleted file mode 100644
index e030522a..00000000
--- a/advancedcontentfilter/vendor/slim/slim/Slim/Error/Renderers/HtmlErrorRenderer.php
+++ /dev/null
@@ -1,84 +0,0 @@
-The application could not run because of the following error:
';
- $html .= 'Details
';
- $html .= $this->renderExceptionFragment($exception);
- } else {
- $html = "{$this->getErrorDescription($exception)}
";
- }
-
- return $this->renderHtmlBody($this->getErrorTitle($exception), $html);
- }
-
- private function renderExceptionFragment(Throwable $exception): string
- {
- $html = sprintf('Type: %s
', get_class($exception));
-
- /** @var int|string $code */
- $code = $exception->getCode();
- $html .= sprintf('Code: %s
', $code);
-
- $html .= sprintf('Message: %s
', htmlentities($exception->getMessage()));
-
- $html .= sprintf('File: %s
', $exception->getFile());
-
- $html .= sprintf('Line: %s
', $exception->getLine());
-
- $html .= 'Trace
';
- $html .= sprintf('%s
', htmlentities($exception->getTraceAsString()));
-
- return $html;
- }
-
- public function renderHtmlBody(string $title = '', string $html = ''): string
- {
- return sprintf(
- '' .
- '' .
- ' ' .
- ' ' .
- ' ' .
- ' %s' .
- ' ' .
- ' ' .
- ' ' .
- ' %s
' .
- ' %s
' .
- ' Go Back' .
- ' ' .
- '',
- $title,
- $title,
- $html
- );
- }
-}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Error/Renderers/JsonErrorRenderer.php b/advancedcontentfilter/vendor/slim/slim/Slim/Error/Renderers/JsonErrorRenderer.php
deleted file mode 100644
index 63d905b3..00000000
--- a/advancedcontentfilter/vendor/slim/slim/Slim/Error/Renderers/JsonErrorRenderer.php
+++ /dev/null
@@ -1,56 +0,0 @@
- $this->getErrorTitle($exception)];
-
- if ($displayErrorDetails) {
- $error['exception'] = [];
- do {
- $error['exception'][] = $this->formatExceptionFragment($exception);
- } while ($exception = $exception->getPrevious());
- }
-
- return (string) json_encode($error, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
- }
-
- /**
- * @return array
- */
- private function formatExceptionFragment(Throwable $exception): array
- {
- /** @var int|string $code */
- $code = $exception->getCode();
- return [
- 'type' => get_class($exception),
- 'code' => $code,
- 'message' => $exception->getMessage(),
- 'file' => $exception->getFile(),
- 'line' => $exception->getLine(),
- ];
- }
-}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Error/Renderers/PlainTextErrorRenderer.php b/advancedcontentfilter/vendor/slim/slim/Slim/Error/Renderers/PlainTextErrorRenderer.php
deleted file mode 100644
index 3d80c74b..00000000
--- a/advancedcontentfilter/vendor/slim/slim/Slim/Error/Renderers/PlainTextErrorRenderer.php
+++ /dev/null
@@ -1,59 +0,0 @@
-getErrorTitle($exception)}\n";
-
- if ($displayErrorDetails) {
- $text .= $this->formatExceptionFragment($exception);
-
- while ($exception = $exception->getPrevious()) {
- $text .= "\nPrevious Error:\n";
- $text .= $this->formatExceptionFragment($exception);
- }
- }
-
- return $text;
- }
-
- private function formatExceptionFragment(Throwable $exception): string
- {
- $text = sprintf("Type: %s\n", get_class($exception));
-
- $code = $exception->getCode();
- /** @var int|string $code */
- $text .= sprintf("Code: %s\n", $code);
-
- $text .= sprintf("Message: %s\n", htmlentities($exception->getMessage()));
-
- $text .= sprintf("File: %s\n", $exception->getFile());
-
- $text .= sprintf("Line: %s\n", $exception->getLine());
-
- $text .= sprintf('Trace: %s', $exception->getTraceAsString());
-
- return $text;
- }
-}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Error/Renderers/XmlErrorRenderer.php b/advancedcontentfilter/vendor/slim/slim/Slim/Error/Renderers/XmlErrorRenderer.php
deleted file mode 100644
index 1171b79b..00000000
--- a/advancedcontentfilter/vendor/slim/slim/Slim/Error/Renderers/XmlErrorRenderer.php
+++ /dev/null
@@ -1,54 +0,0 @@
-\n";
- $xml .= "\n " . $this->createCdataSection($this->getErrorTitle($exception)) . "\n";
-
- if ($displayErrorDetails) {
- do {
- $xml .= " \n";
- $xml .= ' ' . get_class($exception) . "\n";
- $xml .= ' ' . $exception->getCode() . "
\n";
- $xml .= ' ' . $this->createCdataSection($exception->getMessage()) . "\n";
- $xml .= ' ' . $exception->getFile() . "\n";
- $xml .= ' ' . $exception->getLine() . "\n";
- $xml .= " \n";
- } while ($exception = $exception->getPrevious());
- }
-
- $xml .= '';
-
- return $xml;
- }
-
- /**
- * Returns a CDATA section with the given content.
- */
- private function createCdataSection(string $content): string
- {
- return sprintf('', str_replace(']]>', ']]]]>', $content));
- }
-}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Exception/ContainerException.php b/advancedcontentfilter/vendor/slim/slim/Slim/Exception/ContainerException.php
new file mode 100644
index 00000000..06163f1d
--- /dev/null
+++ b/advancedcontentfilter/vendor/slim/slim/Slim/Exception/ContainerException.php
@@ -0,0 +1,20 @@
+request = $request;
- }
-
- public function getRequest(): ServerRequestInterface
- {
- return $this->request;
- }
-
- public function getTitle(): string
- {
- return $this->title;
- }
-
- public function setTitle(string $title): self
- {
- $this->title = $title;
- return $this;
- }
-
- public function getDescription(): string
- {
- return $this->description;
- }
-
- public function setDescription(string $description): self
- {
- $this->description = $description;
- return $this;
- }
-}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Exception/HttpForbiddenException.php b/advancedcontentfilter/vendor/slim/slim/Slim/Exception/HttpForbiddenException.php
deleted file mode 100644
index dd3bb230..00000000
--- a/advancedcontentfilter/vendor/slim/slim/Slim/Exception/HttpForbiddenException.php
+++ /dev/null
@@ -1,27 +0,0 @@
-allowedMethods;
- }
-
- /**
- * @param string[] $methods
- */
- public function setAllowedMethods(array $methods): self
- {
- $this->allowedMethods = $methods;
- $this->message = 'Method not allowed. Must be one of: ' . implode(', ', $methods);
- return $this;
- }
-}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Exception/HttpNotFoundException.php b/advancedcontentfilter/vendor/slim/slim/Slim/Exception/HttpNotFoundException.php
deleted file mode 100644
index 865146d6..00000000
--- a/advancedcontentfilter/vendor/slim/slim/Slim/Exception/HttpNotFoundException.php
+++ /dev/null
@@ -1,27 +0,0 @@
-message = $message;
- }
-
- parent::__construct($request, $this->message, $this->code, $previous);
- }
-}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Exception/HttpTooManyRequestsException.php b/advancedcontentfilter/vendor/slim/slim/Slim/Exception/HttpTooManyRequestsException.php
deleted file mode 100644
index be4b29bb..00000000
--- a/advancedcontentfilter/vendor/slim/slim/Slim/Exception/HttpTooManyRequestsException.php
+++ /dev/null
@@ -1,28 +0,0 @@
-request = $request;
+ parent::__construct(sprintf('Unsupported HTTP method "%s" provided', $method));
+ }
+
+ public function getRequest()
+ {
+ return $this->request;
+ }
+}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Exception/MethodNotAllowedException.php b/advancedcontentfilter/vendor/slim/slim/Slim/Exception/MethodNotAllowedException.php
new file mode 100644
index 00000000..951f5dfb
--- /dev/null
+++ b/advancedcontentfilter/vendor/slim/slim/Slim/Exception/MethodNotAllowedException.php
@@ -0,0 +1,45 @@
+allowedMethods = $allowedMethods;
+ }
+
+ /**
+ * Get allowed methods
+ *
+ * @return string[]
+ */
+ public function getAllowedMethods()
+ {
+ return $this->allowedMethods;
+ }
+}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Exception/NotFoundException.php b/advancedcontentfilter/vendor/slim/slim/Slim/Exception/NotFoundException.php
new file mode 100644
index 00000000..9e72e14e
--- /dev/null
+++ b/advancedcontentfilter/vendor/slim/slim/Slim/Exception/NotFoundException.php
@@ -0,0 +1,14 @@
+request = $request;
+ $this->response = $response;
+ }
+
+ /**
+ * Get request
+ *
+ * @return ServerRequestInterface
+ */
+ public function getRequest()
+ {
+ return $this->request;
+ }
+
+ /**
+ * Get response
+ *
+ * @return ResponseInterface
+ */
+ public function getResponse()
+ {
+ return $this->response;
+ }
+}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Factory/AppFactory.php b/advancedcontentfilter/vendor/slim/slim/Slim/Factory/AppFactory.php
deleted file mode 100644
index 6fc5f86e..00000000
--- a/advancedcontentfilter/vendor/slim/slim/Slim/Factory/AppFactory.php
+++ /dev/null
@@ -1,206 +0,0 @@
-has(ResponseFactoryInterface::class)
- && (
- $responseFactoryFromContainer = $container->get(ResponseFactoryInterface::class)
- ) instanceof ResponseFactoryInterface
- ? $responseFactoryFromContainer
- : self::determineResponseFactory();
-
- $callableResolver = $container->has(CallableResolverInterface::class)
- && (
- $callableResolverFromContainer = $container->get(CallableResolverInterface::class)
- ) instanceof CallableResolverInterface
- ? $callableResolverFromContainer
- : null;
-
- $routeCollector = $container->has(RouteCollectorInterface::class)
- && (
- $routeCollectorFromContainer = $container->get(RouteCollectorInterface::class)
- ) instanceof RouteCollectorInterface
- ? $routeCollectorFromContainer
- : null;
-
- $routeResolver = $container->has(RouteResolverInterface::class)
- && (
- $routeResolverFromContainer = $container->get(RouteResolverInterface::class)
- ) instanceof RouteResolverInterface
- ? $routeResolverFromContainer
- : null;
-
- $middlewareDispatcher = $container->has(MiddlewareDispatcherInterface::class)
- && (
- $middlewareDispatcherFromContainer = $container->get(MiddlewareDispatcherInterface::class)
- ) instanceof MiddlewareDispatcherInterface
- ? $middlewareDispatcherFromContainer
- : null;
-
- return new App(
- $responseFactory,
- $container,
- $callableResolver,
- $routeCollector,
- $routeResolver,
- $middlewareDispatcher
- );
- }
-
- /**
- * @throws RuntimeException
- */
- public static function determineResponseFactory(): ResponseFactoryInterface
- {
- if (static::$responseFactory) {
- if (static::$streamFactory) {
- return static::attemptResponseFactoryDecoration(static::$responseFactory, static::$streamFactory);
- }
- return static::$responseFactory;
- }
-
- $psr17FactoryProvider = static::$psr17FactoryProvider ?? new Psr17FactoryProvider();
-
- /** @var Psr17Factory $psr17factory */
- foreach ($psr17FactoryProvider->getFactories() as $psr17factory) {
- if ($psr17factory::isResponseFactoryAvailable()) {
- $responseFactory = $psr17factory::getResponseFactory();
-
- if (static::$streamFactory || $psr17factory::isStreamFactoryAvailable()) {
- $streamFactory = static::$streamFactory ?? $psr17factory::getStreamFactory();
- return static::attemptResponseFactoryDecoration($responseFactory, $streamFactory);
- }
-
- return $responseFactory;
- }
- }
-
- throw new RuntimeException(
- "Could not detect any PSR-17 ResponseFactory implementations. " .
- "Please install a supported implementation in order to use `AppFactory::create()`. " .
- "See https://github.com/slimphp/Slim/blob/4.x/README.md for a list of supported implementations."
- );
- }
-
- protected static function attemptResponseFactoryDecoration(
- ResponseFactoryInterface $responseFactory,
- StreamFactoryInterface $streamFactory
- ): ResponseFactoryInterface {
- if (
- static::$slimHttpDecoratorsAutomaticDetectionEnabled
- && SlimHttpPsr17Factory::isResponseFactoryAvailable()
- ) {
- return SlimHttpPsr17Factory::createDecoratedResponseFactory($responseFactory, $streamFactory);
- }
-
- return $responseFactory;
- }
-
- public static function setPsr17FactoryProvider(Psr17FactoryProviderInterface $psr17FactoryProvider): void
- {
- static::$psr17FactoryProvider = $psr17FactoryProvider;
- }
-
- public static function setResponseFactory(ResponseFactoryInterface $responseFactory): void
- {
- static::$responseFactory = $responseFactory;
- }
-
- public static function setStreamFactory(StreamFactoryInterface $streamFactory): void
- {
- static::$streamFactory = $streamFactory;
- }
-
- public static function setContainer(ContainerInterface $container): void
- {
- static::$container = $container;
- }
-
- public static function setCallableResolver(CallableResolverInterface $callableResolver): void
- {
- static::$callableResolver = $callableResolver;
- }
-
- public static function setRouteCollector(RouteCollectorInterface $routeCollector): void
- {
- static::$routeCollector = $routeCollector;
- }
-
- public static function setRouteResolver(RouteResolverInterface $routeResolver): void
- {
- static::$routeResolver = $routeResolver;
- }
-
- public static function setMiddlewareDispatcher(MiddlewareDispatcherInterface $middlewareDispatcher): void
- {
- static::$middlewareDispatcher = $middlewareDispatcher;
- }
-
- public static function setSlimHttpDecoratorsAutomaticDetection(bool $enabled): void
- {
- static::$slimHttpDecoratorsAutomaticDetectionEnabled = $enabled;
- }
-}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Factory/Psr17/GuzzlePsr17Factory.php b/advancedcontentfilter/vendor/slim/slim/Slim/Factory/Psr17/GuzzlePsr17Factory.php
deleted file mode 100644
index 32a548a6..00000000
--- a/advancedcontentfilter/vendor/slim/slim/Slim/Factory/Psr17/GuzzlePsr17Factory.php
+++ /dev/null
@@ -1,19 +0,0 @@
-serverRequestCreator = $serverRequestCreator;
- $this->serverRequestCreatorMethod = $serverRequestCreatorMethod;
- }
-
- /**
- * {@inheritdoc}
- */
- public function createServerRequestFromGlobals(): ServerRequestInterface
- {
- /** @var callable $callable */
- $callable = [$this->serverRequestCreator, $this->serverRequestCreatorMethod];
- return (Closure::fromCallable($callable))();
- }
-}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Factory/Psr17/SlimHttpPsr17Factory.php b/advancedcontentfilter/vendor/slim/slim/Slim/Factory/Psr17/SlimHttpPsr17Factory.php
deleted file mode 100644
index 5d636318..00000000
--- a/advancedcontentfilter/vendor/slim/slim/Slim/Factory/Psr17/SlimHttpPsr17Factory.php
+++ /dev/null
@@ -1,39 +0,0 @@
-serverRequestCreator = $serverRequestCreator;
- }
-
- /**
- * {@inheritdoc}
- */
- public function createServerRequestFromGlobals(): ServerRequestInterface
- {
- if (!static::isServerRequestDecoratorAvailable()) {
- throw new RuntimeException('The Slim-Http ServerRequest decorator is not available.');
- }
-
- $request = $this->serverRequestCreator->createServerRequestFromGlobals();
-
- if (
- !((
- $decoratedServerRequest = new static::$serverRequestDecoratorClass($request)
- ) instanceof ServerRequestInterface)
- ) {
- throw new RuntimeException(get_called_class() . ' could not instantiate a decorated server request.');
- }
-
- return $decoratedServerRequest;
- }
-
- public static function isServerRequestDecoratorAvailable(): bool
- {
- return class_exists(static::$serverRequestDecoratorClass);
- }
-}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Factory/Psr17/SlimPsr17Factory.php b/advancedcontentfilter/vendor/slim/slim/Slim/Factory/Psr17/SlimPsr17Factory.php
deleted file mode 100644
index 46c46f9c..00000000
--- a/advancedcontentfilter/vendor/slim/slim/Slim/Factory/Psr17/SlimPsr17Factory.php
+++ /dev/null
@@ -1,19 +0,0 @@
-getFactories() as $psr17Factory) {
- if ($psr17Factory::isServerRequestCreatorAvailable()) {
- $serverRequestCreator = $psr17Factory::getServerRequestCreator();
- return static::attemptServerRequestCreatorDecoration($serverRequestCreator);
- }
- }
-
- throw new RuntimeException(
- "Could not detect any ServerRequest creator implementations. " .
- "Please install a supported implementation in order to use `App::run()` " .
- "without having to pass in a `ServerRequest` object. " .
- "See https://github.com/slimphp/Slim/blob/4.x/README.md for a list of supported implementations."
- );
- }
-
- protected static function attemptServerRequestCreatorDecoration(
- ServerRequestCreatorInterface $serverRequestCreator
- ): ServerRequestCreatorInterface {
- if (
- static::$slimHttpDecoratorsAutomaticDetectionEnabled
- && SlimHttpServerRequestCreator::isServerRequestDecoratorAvailable()
- ) {
- return new SlimHttpServerRequestCreator($serverRequestCreator);
- }
-
- return $serverRequestCreator;
- }
-
- public static function setPsr17FactoryProvider(Psr17FactoryProviderInterface $psr17FactoryProvider): void
- {
- static::$psr17FactoryProvider = $psr17FactoryProvider;
- }
-
- public static function setServerRequestCreator(ServerRequestCreatorInterface $serverRequestCreator): void
- {
- self::$serverRequestCreator = $serverRequestCreator;
- }
-
- public static function setSlimHttpDecoratorsAutomaticDetection(bool $enabled): void
- {
- static::$slimHttpDecoratorsAutomaticDetectionEnabled = $enabled;
- }
-}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/AbstractError.php b/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/AbstractError.php
new file mode 100644
index 00000000..42f8dde3
--- /dev/null
+++ b/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/AbstractError.php
@@ -0,0 +1,99 @@
+displayErrorDetails = (bool) $displayErrorDetails;
+ }
+
+ /**
+ * Write to the error log if displayErrorDetails is false
+ *
+ * @param \Exception|\Throwable $throwable
+ *
+ * @return void
+ */
+ protected function writeToErrorLog($throwable)
+ {
+ if ($this->displayErrorDetails) {
+ return;
+ }
+
+ $message = 'Slim Application Error:' . PHP_EOL;
+ $message .= $this->renderThrowableAsText($throwable);
+ while ($throwable = $throwable->getPrevious()) {
+ $message .= PHP_EOL . 'Previous error:' . PHP_EOL;
+ $message .= $this->renderThrowableAsText($throwable);
+ }
+
+ $message .= PHP_EOL . 'View in rendered output by enabling the "displayErrorDetails" setting.' . PHP_EOL;
+
+ $this->logError($message);
+ }
+
+ /**
+ * Render error as Text.
+ *
+ * @param \Exception|\Throwable $throwable
+ *
+ * @return string
+ */
+ protected function renderThrowableAsText($throwable)
+ {
+ $text = sprintf('Type: %s' . PHP_EOL, get_class($throwable));
+
+ if ($code = $throwable->getCode()) {
+ $text .= sprintf('Code: %s' . PHP_EOL, $code);
+ }
+
+ if ($message = $throwable->getMessage()) {
+ $text .= sprintf('Message: %s' . PHP_EOL, htmlentities($message));
+ }
+
+ if ($file = $throwable->getFile()) {
+ $text .= sprintf('File: %s' . PHP_EOL, $file);
+ }
+
+ if ($line = $throwable->getLine()) {
+ $text .= sprintf('Line: %s' . PHP_EOL, $line);
+ }
+
+ if ($trace = $throwable->getTraceAsString()) {
+ $text .= sprintf('Trace: %s', $trace);
+ }
+
+ return $text;
+ }
+
+ /**
+ * Wraps the error_log function so that this can be easily tested
+ *
+ * @param $message
+ */
+ protected function logError($message)
+ {
+ error_log($message);
+ }
+}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/AbstractHandler.php b/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/AbstractHandler.php
new file mode 100644
index 00000000..b166a156
--- /dev/null
+++ b/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/AbstractHandler.php
@@ -0,0 +1,59 @@
+getHeaderLine('Accept');
+ $selectedContentTypes = array_intersect(explode(',', $acceptHeader), $this->knownContentTypes);
+
+ if (count($selectedContentTypes)) {
+ return current($selectedContentTypes);
+ }
+
+ // handle +json and +xml specially
+ if (preg_match('/\+(json|xml)/', $acceptHeader, $matches)) {
+ $mediaType = 'application/' . $matches[1];
+ if (in_array($mediaType, $this->knownContentTypes)) {
+ return $mediaType;
+ }
+ }
+
+ return 'text/html';
+ }
+}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/Error.php b/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/Error.php
new file mode 100644
index 00000000..dd0bc8d4
--- /dev/null
+++ b/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/Error.php
@@ -0,0 +1,224 @@
+determineContentType($request);
+ switch ($contentType) {
+ case 'application/json':
+ $output = $this->renderJsonErrorMessage($exception);
+ break;
+
+ case 'text/xml':
+ case 'application/xml':
+ $output = $this->renderXmlErrorMessage($exception);
+ break;
+
+ case 'text/html':
+ $output = $this->renderHtmlErrorMessage($exception);
+ break;
+
+ default:
+ throw new UnexpectedValueException('Cannot render unknown content type ' . $contentType);
+ }
+
+ $this->writeToErrorLog($exception);
+
+ $body = new Body(fopen('php://temp', 'r+'));
+ $body->write($output);
+
+ return $response
+ ->withStatus(500)
+ ->withHeader('Content-type', $contentType)
+ ->withBody($body);
+ }
+
+ /**
+ * Render HTML error page
+ *
+ * @param \Exception $exception
+ *
+ * @return string
+ */
+ protected function renderHtmlErrorMessage(\Exception $exception)
+ {
+ $title = 'Slim Application Error';
+
+ if ($this->displayErrorDetails) {
+ $html = 'The application could not run because of the following error:
';
+ $html .= 'Details
';
+ $html .= $this->renderHtmlException($exception);
+
+ while ($exception = $exception->getPrevious()) {
+ $html .= 'Previous exception
';
+ $html .= $this->renderHtmlExceptionOrError($exception);
+ }
+ } else {
+ $html = 'A website error has occurred. Sorry for the temporary inconvenience.
';
+ }
+
+ $output = sprintf(
+ "" .
+ "%s%s
%s",
+ $title,
+ $title,
+ $html
+ );
+
+ return $output;
+ }
+
+ /**
+ * Render exception as HTML.
+ *
+ * Provided for backwards compatibility; use renderHtmlExceptionOrError().
+ *
+ * @param \Exception $exception
+ *
+ * @return string
+ */
+ protected function renderHtmlException(\Exception $exception)
+ {
+ return $this->renderHtmlExceptionOrError($exception);
+ }
+
+ /**
+ * Render exception or error as HTML.
+ *
+ * @param \Exception|\Error $exception
+ *
+ * @return string
+ */
+ protected function renderHtmlExceptionOrError($exception)
+ {
+ if (!$exception instanceof \Exception && !$exception instanceof \Error) {
+ throw new \RuntimeException("Unexpected type. Expected Exception or Error.");
+ }
+
+ $html = sprintf('Type: %s
', get_class($exception));
+
+ if (($code = $exception->getCode())) {
+ $html .= sprintf('Code: %s
', $code);
+ }
+
+ if (($message = $exception->getMessage())) {
+ $html .= sprintf('Message: %s
', htmlentities($message));
+ }
+
+ if (($file = $exception->getFile())) {
+ $html .= sprintf('File: %s
', $file);
+ }
+
+ if (($line = $exception->getLine())) {
+ $html .= sprintf('Line: %s
', $line);
+ }
+
+ if (($trace = $exception->getTraceAsString())) {
+ $html .= 'Trace
';
+ $html .= sprintf('%s
', htmlentities($trace));
+ }
+
+ return $html;
+ }
+
+ /**
+ * Render JSON error
+ *
+ * @param \Exception $exception
+ *
+ * @return string
+ */
+ protected function renderJsonErrorMessage(\Exception $exception)
+ {
+ $error = [
+ 'message' => 'Slim Application Error',
+ ];
+
+ if ($this->displayErrorDetails) {
+ $error['exception'] = [];
+
+ do {
+ $error['exception'][] = [
+ 'type' => get_class($exception),
+ 'code' => $exception->getCode(),
+ 'message' => $exception->getMessage(),
+ 'file' => $exception->getFile(),
+ 'line' => $exception->getLine(),
+ 'trace' => explode("\n", $exception->getTraceAsString()),
+ ];
+ } while ($exception = $exception->getPrevious());
+ }
+
+ return json_encode($error, JSON_PRETTY_PRINT);
+ }
+
+ /**
+ * Render XML error
+ *
+ * @param \Exception $exception
+ *
+ * @return string
+ */
+ protected function renderXmlErrorMessage(\Exception $exception)
+ {
+ $xml = "\n Slim Application Error\n";
+ if ($this->displayErrorDetails) {
+ do {
+ $xml .= " \n";
+ $xml .= " " . get_class($exception) . "\n";
+ $xml .= " " . $exception->getCode() . "
\n";
+ $xml .= " " . $this->createCdataSection($exception->getMessage()) . "\n";
+ $xml .= " " . $exception->getFile() . "\n";
+ $xml .= " " . $exception->getLine() . "\n";
+ $xml .= " " . $this->createCdataSection($exception->getTraceAsString()) . "\n";
+ $xml .= " \n";
+ } while ($exception = $exception->getPrevious());
+ }
+ $xml .= "";
+
+ return $xml;
+ }
+
+ /**
+ * Returns a CDATA section with the given content.
+ *
+ * @param string $content
+ * @return string
+ */
+ private function createCdataSection($content)
+ {
+ return sprintf('', str_replace(']]>', ']]]]>', $content));
+ }
+}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/ErrorHandler.php b/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/ErrorHandler.php
deleted file mode 100644
index f9606e36..00000000
--- a/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/ErrorHandler.php
+++ /dev/null
@@ -1,308 +0,0 @@
-
- */
- protected array $errorRenderers = [
- 'application/json' => JsonErrorRenderer::class,
- 'application/xml' => XmlErrorRenderer::class,
- 'text/xml' => XmlErrorRenderer::class,
- 'text/html' => HtmlErrorRenderer::class,
- 'text/plain' => PlainTextErrorRenderer::class,
- ];
-
- protected bool $displayErrorDetails = false;
-
- protected bool $logErrors;
-
- protected bool $logErrorDetails = false;
-
- protected ?string $contentType = null;
-
- protected ?string $method = null;
-
- protected ServerRequestInterface $request;
-
- protected Throwable $exception;
-
- protected int $statusCode;
-
- protected CallableResolverInterface $callableResolver;
-
- protected ResponseFactoryInterface $responseFactory;
-
- protected LoggerInterface $logger;
-
- public function __construct(
- CallableResolverInterface $callableResolver,
- ResponseFactoryInterface $responseFactory,
- ?LoggerInterface $logger = null
- ) {
- $this->callableResolver = $callableResolver;
- $this->responseFactory = $responseFactory;
- $this->logger = $logger ?: $this->getDefaultLogger();
- }
-
- /**
- * Invoke error handler
- *
- * @param ServerRequestInterface $request The most recent Request object
- * @param Throwable $exception The caught Exception object
- * @param bool $displayErrorDetails Whether or not to display the error details
- * @param bool $logErrors Whether or not to log errors
- * @param bool $logErrorDetails Whether or not to log error details
- */
- public function __invoke(
- ServerRequestInterface $request,
- Throwable $exception,
- bool $displayErrorDetails,
- bool $logErrors,
- bool $logErrorDetails
- ): ResponseInterface {
- $this->displayErrorDetails = $displayErrorDetails;
- $this->logErrors = $logErrors;
- $this->logErrorDetails = $logErrorDetails;
- $this->request = $request;
- $this->exception = $exception;
- $this->method = $request->getMethod();
- $this->statusCode = $this->determineStatusCode();
- if ($this->contentType === null) {
- $this->contentType = $this->determineContentType($request);
- }
-
- if ($logErrors) {
- $this->writeToErrorLog();
- }
-
- return $this->respond();
- }
-
- /**
- * Force the content type for all error handler responses.
- *
- * @param string|null $contentType The content type
- */
- public function forceContentType(?string $contentType): void
- {
- $this->contentType = $contentType;
- }
-
- protected function determineStatusCode(): int
- {
- if ($this->method === 'OPTIONS') {
- return 200;
- }
-
- if ($this->exception instanceof HttpException) {
- return $this->exception->getCode();
- }
-
- return 500;
- }
-
- /**
- * Determine which content type we know about is wanted using Accept header
- *
- * Note: This method is a bare-bones implementation designed specifically for
- * Slim's error handling requirements. Consider a fully-feature solution such
- * as willdurand/negotiation for any other situation.
- */
- protected function determineContentType(ServerRequestInterface $request): ?string
- {
- $acceptHeader = $request->getHeaderLine('Accept');
- $selectedContentTypes = array_intersect(
- explode(',', $acceptHeader),
- array_keys($this->errorRenderers)
- );
- $count = count($selectedContentTypes);
-
- if ($count) {
- $current = current($selectedContentTypes);
-
- /**
- * Ensure other supported content types take precedence over text/plain
- * when multiple content types are provided via Accept header.
- */
- if ($current === 'text/plain' && $count > 1) {
- $next = next($selectedContentTypes);
- if (is_string($next)) {
- return $next;
- }
- }
-
- if (is_string($current)) {
- return $current;
- }
- }
-
- if (preg_match('/\+(json|xml)/', $acceptHeader, $matches)) {
- $mediaType = 'application/' . $matches[1];
- if (array_key_exists($mediaType, $this->errorRenderers)) {
- return $mediaType;
- }
- }
-
- return null;
- }
-
- /**
- * Determine which renderer to use based on content type
- *
- * @throws RuntimeException
- */
- protected function determineRenderer(): callable
- {
- if ($this->contentType !== null && array_key_exists($this->contentType, $this->errorRenderers)) {
- $renderer = $this->errorRenderers[$this->contentType];
- } else {
- $renderer = $this->defaultErrorRenderer;
- }
-
- return $this->callableResolver->resolve($renderer);
- }
-
- /**
- * Register an error renderer for a specific content-type
- *
- * @param string $contentType The content-type this renderer should be registered to
- * @param ErrorRendererInterface|string|callable $errorRenderer The error renderer
- */
- public function registerErrorRenderer(string $contentType, $errorRenderer): void
- {
- $this->errorRenderers[$contentType] = $errorRenderer;
- }
-
- /**
- * Set the default error renderer
- *
- * @param string $contentType The content type of the default error renderer
- * @param ErrorRendererInterface|string|callable $errorRenderer The default error renderer
- */
- public function setDefaultErrorRenderer(string $contentType, $errorRenderer): void
- {
- $this->defaultErrorRendererContentType = $contentType;
- $this->defaultErrorRenderer = $errorRenderer;
- }
-
- /**
- * Set the renderer for the error logger
- *
- * @param ErrorRendererInterface|string|callable $logErrorRenderer
- */
- public function setLogErrorRenderer($logErrorRenderer): void
- {
- $this->logErrorRenderer = $logErrorRenderer;
- }
-
- /**
- * Write to the error log if $logErrors has been set to true
- */
- protected function writeToErrorLog(): void
- {
- $renderer = $this->callableResolver->resolve($this->logErrorRenderer);
- $error = $renderer($this->exception, $this->logErrorDetails);
- if (!$this->displayErrorDetails) {
- $error .= "\nTips: To display error details in HTTP response ";
- $error .= 'set "displayErrorDetails" to true in the ErrorHandler constructor.';
- }
- $this->logError($error);
- }
-
- /**
- * Wraps the error_log function so that this can be easily tested
- */
- protected function logError(string $error): void
- {
- $this->logger->error($error);
- }
-
- /**
- * Returns a default logger implementation.
- */
- protected function getDefaultLogger(): LoggerInterface
- {
- return new Logger();
- }
-
- protected function respond(): ResponseInterface
- {
- $response = $this->responseFactory->createResponse($this->statusCode);
- if ($this->contentType !== null && array_key_exists($this->contentType, $this->errorRenderers)) {
- $response = $response->withHeader('Content-type', $this->contentType);
- } else {
- $response = $response->withHeader('Content-type', $this->defaultErrorRendererContentType);
- }
-
- if ($this->exception instanceof HttpMethodNotAllowedException) {
- $allowedMethods = implode(', ', $this->exception->getAllowedMethods());
- $response = $response->withHeader('Allow', $allowedMethods);
- }
-
- $renderer = $this->determineRenderer();
- $body = call_user_func($renderer, $this->exception, $this->displayErrorDetails);
- if ($body !== false) {
- /** @var string $body */
- $response->getBody()->write($body);
- }
-
- return $response;
- }
-}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/NotAllowed.php b/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/NotAllowed.php
new file mode 100644
index 00000000..345f0ff8
--- /dev/null
+++ b/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/NotAllowed.php
@@ -0,0 +1,147 @@
+getMethod() === 'OPTIONS') {
+ $status = 200;
+ $contentType = 'text/plain';
+ $output = $this->renderPlainOptionsMessage($methods);
+ } else {
+ $status = 405;
+ $contentType = $this->determineContentType($request);
+ switch ($contentType) {
+ case 'application/json':
+ $output = $this->renderJsonNotAllowedMessage($methods);
+ break;
+
+ case 'text/xml':
+ case 'application/xml':
+ $output = $this->renderXmlNotAllowedMessage($methods);
+ break;
+
+ case 'text/html':
+ $output = $this->renderHtmlNotAllowedMessage($methods);
+ break;
+ default:
+ throw new UnexpectedValueException('Cannot render unknown content type ' . $contentType);
+ }
+ }
+
+ $body = new Body(fopen('php://temp', 'r+'));
+ $body->write($output);
+ $allow = implode(', ', $methods);
+
+ return $response
+ ->withStatus($status)
+ ->withHeader('Content-type', $contentType)
+ ->withHeader('Allow', $allow)
+ ->withBody($body);
+ }
+
+ /**
+ * Render PLAIN message for OPTIONS response
+ *
+ * @param array $methods
+ * @return string
+ */
+ protected function renderPlainOptionsMessage($methods)
+ {
+ $allow = implode(', ', $methods);
+
+ return 'Allowed methods: ' . $allow;
+ }
+
+ /**
+ * Render JSON not allowed message
+ *
+ * @param array $methods
+ * @return string
+ */
+ protected function renderJsonNotAllowedMessage($methods)
+ {
+ $allow = implode(', ', $methods);
+
+ return '{"message":"Method not allowed. Must be one of: ' . $allow . '"}';
+ }
+
+ /**
+ * Render XML not allowed message
+ *
+ * @param array $methods
+ * @return string
+ */
+ protected function renderXmlNotAllowedMessage($methods)
+ {
+ $allow = implode(', ', $methods);
+
+ return "Method not allowed. Must be one of: $allow";
+ }
+
+ /**
+ * Render HTML not allowed message
+ *
+ * @param array $methods
+ * @return string
+ */
+ protected function renderHtmlNotAllowedMessage($methods)
+ {
+ $allow = implode(', ', $methods);
+ $output = <<
+
+ Method not allowed
+
+
+
+ Method not allowed
+ Method not allowed. Must be one of: $allow
+
+
+END;
+
+ return $output;
+ }
+}
diff --git a/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/NotFound.php b/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/NotFound.php
new file mode 100644
index 00000000..b3330321
--- /dev/null
+++ b/advancedcontentfilter/vendor/slim/slim/Slim/Handlers/NotFound.php
@@ -0,0 +1,141 @@
+getMethod() === 'OPTIONS') {
+ $contentType = 'text/plain';
+ $output = $this->renderPlainNotFoundOutput();
+ } else {
+ $contentType = $this->determineContentType($request);
+ switch ($contentType) {
+ case 'application/json':
+ $output = $this->renderJsonNotFoundOutput();
+ break;
+
+ case 'text/xml':
+ case 'application/xml':
+ $output = $this->renderXmlNotFoundOutput();
+ break;
+
+ case 'text/html':
+ $output = $this->renderHtmlNotFoundOutput($request);
+ break;
+
+ default:
+ throw new UnexpectedValueException('Cannot render unknown content type ' . $contentType);
+ }
+ }
+
+ $body = new Body(fopen('php://temp', 'r+'));
+ $body->write($output);
+
+ return $response->withStatus(404)
+ ->withHeader('Content-Type', $contentType)
+ ->withBody($body);
+ }
+
+ /**
+ * Render plain not found message
+ *
+ * @return ResponseInterface
+ */
+ protected function renderPlainNotFoundOutput()
+ {
+ return 'Not found';
+ }
+
+ /**
+ * Return a response for application/json content not found
+ *
+ * @return ResponseInterface
+ */
+ protected function renderJsonNotFoundOutput()
+ {
+ return '{"message":"Not found"}';
+ }
+
+ /**
+ * Return a response for xml content not found
+ *
+ * @return ResponseInterface
+ */
+ protected function renderXmlNotFoundOutput()
+ {
+ return 'Not found';
+ }
+
+ /**
+ * Return a response for text/html content not found
+ *
+ * @param ServerRequestInterface $request The most recent Request object
+ *
+ * @return ResponseInterface
+ */
+ protected function renderHtmlNotFoundOutput(ServerRequestInterface $request)
+ {
+ $homeUrl = (string)($request->getUri()->withPath('')->withQuery('')->withFragment(''));
+ return <<
+
+ Page Not Found
+
+
+
+ Page Not Found
+
+ The page you are looking for could not be found. Check the address bar
+ to ensure your URL is spelled correctly. If all else fails, you can
+ visit our home page at the link below.
+
+ Visit the Home Page
+
+