mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 09:35:11 +00:00
Merge branch 'dev' of /home/macgirvin/./streams into dev
This commit is contained in:
commit
29b1a26202
267 changed files with 18438 additions and 10285 deletions
33
Zotlabs/Lib/Yaml.php
Normal file
33
Zotlabs/Lib/Yaml.php
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
|
||||
namespace Zotlabs\Lib;
|
||||
|
||||
|
||||
use Symfony\Component\Yaml\Yaml as Syaml;
|
||||
use Symfony\Component\Yaml\Exception\ParseException;
|
||||
|
||||
|
||||
class Yaml
|
||||
{
|
||||
|
||||
public static function decode($data)
|
||||
{
|
||||
try {
|
||||
$value = Syaml::parse($data);
|
||||
} catch (ParseException $exception) {
|
||||
logger('Unable to parse the YAML string: ' . $exception->getMessage());
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
public static function encode($data)
|
||||
{
|
||||
return Syaml::dump($data);
|
||||
}
|
||||
|
||||
public static function fromJSON($data)
|
||||
{
|
||||
return Syaml::dump(json_decode($data,true));
|
||||
}
|
||||
|
||||
}
|
|
@ -7,6 +7,8 @@ use Zotlabs\Web\Controller;
|
|||
use Zotlabs\Web\HTTPSig;
|
||||
use Zotlabs\Lib\ActivityStreams;
|
||||
use Zotlabs\Lib\Activity;
|
||||
use Zotlabs\Lib\Yaml;
|
||||
|
||||
|
||||
class Ap_probe extends Controller
|
||||
{
|
||||
|
@ -36,6 +38,7 @@ class Ap_probe extends Controller
|
|||
|
||||
if ($x) {
|
||||
$o .= '<pre>' . str_replace('\\n', "\n", htmlspecialchars(json_encode($x, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT))) . '</pre>';
|
||||
$o .= '<pre>' . str_replace('\\n', "\n", htmlspecialchars(Yaml::encode($x))) . '</pre>';
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -440,8 +440,16 @@ class Linkinfo extends Controller
|
|||
$body = mb_convert_encoding($body, 'UTF-8', $cp);
|
||||
$body = mb_convert_encoding($body, 'HTML-ENTITIES', "UTF-8");
|
||||
|
||||
$doc = new DOMDocument();
|
||||
@$doc->loadHTML($body);
|
||||
if (! $body) {
|
||||
return $siteinfo;
|
||||
}
|
||||
|
||||
try {
|
||||
$doc = new DOMDocument();
|
||||
$doc->loadHTML($body);
|
||||
} catch (Exception $e) {
|
||||
return $siteinfo;
|
||||
}
|
||||
|
||||
self::deletexnode($doc, 'style');
|
||||
self::deletexnode($doc, 'script');
|
||||
|
@ -457,13 +465,11 @@ class Linkinfo extends Controller
|
|||
|
||||
$xpath = new DomXPath($doc);
|
||||
|
||||
//$list = $xpath->query("head/title");
|
||||
$list = $xpath->query("//title");
|
||||
foreach ($list as $node) {
|
||||
$siteinfo["title"] = html_entity_decode($node->nodeValue, ENT_QUOTES, "UTF-8");
|
||||
}
|
||||
|
||||
//$list = $xpath->query("head/meta[@name]");
|
||||
$list = $xpath->query("//meta[@name]");
|
||||
foreach ($list as $node) {
|
||||
$attr = [];
|
||||
|
@ -517,7 +523,6 @@ class Linkinfo extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
//$list = $xpath->query("head/meta[@property]");
|
||||
$list = $xpath->query("//meta[@property]");
|
||||
foreach ($list as $node) {
|
||||
$attr = [];
|
||||
|
|
|
@ -3,22 +3,25 @@
|
|||
"type" : "application",
|
||||
"description" : "Zot social server",
|
||||
"keywords" : [
|
||||
"identity",
|
||||
"decentralisation",
|
||||
"permission",
|
||||
"SSO",
|
||||
"ZOT",
|
||||
"ZOT6"
|
||||
"identity",
|
||||
"decentralisation",
|
||||
"permission",
|
||||
"SSO",
|
||||
"ZOT",
|
||||
"ZOT6",
|
||||
"Nomad",
|
||||
"Fediverse",
|
||||
"activitypub"
|
||||
],
|
||||
"homepage" : "http://codeberg.org/zot/zap/",
|
||||
"license" : "MIT",
|
||||
"license" : "Unlicense",
|
||||
"authors" : [{
|
||||
"name" : "Mike Macgirvin",
|
||||
"role" : "founder"
|
||||
}
|
||||
],
|
||||
"support" : {
|
||||
"issues" : "https://codeberg.org/zot/zap/issues",
|
||||
"issues" : "https://z.macgirvin.com/channel/zap",
|
||||
"source" : "https://codeberg.org/zot/zap/"
|
||||
},
|
||||
"require" : {
|
||||
|
@ -45,7 +48,8 @@
|
|||
"forkawesome/fork-awesome": "^1.1",
|
||||
"p3k/emoji-detector": "^0.2.1",
|
||||
"phpseclib/phpseclib": "^2.0",
|
||||
"ext-json": "*"
|
||||
"ext-json": "*",
|
||||
"symfony/yaml": "^6.0"
|
||||
},
|
||||
"require-dev" : {
|
||||
"phpunit/phpunit" : "@stable",
|
||||
|
|
1862
composer.lock
generated
1862
composer.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -2437,7 +2437,7 @@ function item_update_parent_commented($item) {
|
|||
$update_parent = false;
|
||||
|
||||
if($update_parent) {
|
||||
$z = q("select max(created) as commented from item where parent_mid = '%s' and uid = %d and item_delayed = 0 ",
|
||||
$z = q("select max(created) as commented from item where parent_mid = '%s' and uid = %d and item_delayed = 0 and item_deleted = 0",
|
||||
dbesc($item['parent_mid']),
|
||||
intval($item['uid'])
|
||||
);
|
||||
|
@ -4799,7 +4799,7 @@ function sync_an_item($channel_id,$item_id) {
|
|||
if($r) {
|
||||
xchan_query($r);
|
||||
$sync_item = fetch_post_tags($r);
|
||||
Libsync::build_sync_packet($channel_d,array('item' => array(encode_item($sync_item[0],true))));
|
||||
Libsync::build_sync_packet($channel_id,array('item' => array(encode_item($sync_item[0],true))));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
1
vendor/bin/yaml-lint
vendored
Symbolic link
1
vendor/bin/yaml-lint
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../symfony/yaml/Resources/bin/yaml-lint
|
|
@ -5,20 +5,16 @@ on: [push, pull_request]
|
|||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [14, 16]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v1
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 12.x
|
||||
- name: npm install
|
||||
run: npm install
|
||||
env:
|
||||
CI: true
|
||||
- name: lint
|
||||
run: npm run lint
|
||||
env:
|
||||
CI: true
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- run: npm install
|
||||
- run: npm run lint
|
||||
|
||||
mocha:
|
||||
runs-on: ubuntu-latest
|
||||
|
@ -55,7 +51,7 @@ jobs:
|
|||
run: docker-compose down -v
|
||||
- name: Upload reports
|
||||
if: always()
|
||||
uses: actions/upload-artifact@master
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: reports
|
||||
path: wdio/reports
|
||||
|
@ -78,7 +74,7 @@ jobs:
|
|||
run: docker-compose down -v
|
||||
- name: Upload reports
|
||||
if: always()
|
||||
uses: actions/upload-artifact@master
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: reports
|
||||
path: wdio/reports
|
||||
|
|
|
@ -4,7 +4,6 @@ services:
|
|||
build: server/php
|
||||
ports:
|
||||
- 127.0.0.1:80:80
|
||||
- ${SERVER_HOST:-127.0.0.1}:${SERVER_PORT-}:80
|
||||
volumes:
|
||||
- .:/var/www/html
|
||||
mocha:
|
||||
|
@ -16,7 +15,6 @@ services:
|
|||
- example
|
||||
chromedriver:
|
||||
image: blueimp/chromedriver
|
||||
init: true
|
||||
tmpfs: /tmp
|
||||
environment:
|
||||
- DISABLE_X11=false
|
||||
|
@ -28,7 +26,6 @@ services:
|
|||
- 127.0.0.1:5900:5900
|
||||
geckodriver:
|
||||
image: blueimp/geckodriver
|
||||
init: true
|
||||
tmpfs: /tmp
|
||||
shm_size: 2g
|
||||
environment:
|
||||
|
@ -41,18 +38,17 @@ services:
|
|||
- 127.0.0.1:5901:5900
|
||||
wdio:
|
||||
image: blueimp/wdio
|
||||
init: true
|
||||
read_only: true
|
||||
tmpfs:
|
||||
- /tmp
|
||||
environment:
|
||||
- WAIT_FOR_HOSTS= chromedriver:4444 geckodriver:4444 example:80
|
||||
- WAIT_FOR_HOSTS=chromedriver:4444 geckodriver:4444 example:80
|
||||
- WINDOWS_HOST
|
||||
- MACOS_ASSETS_DIR=$PWD/wdio/assets/
|
||||
- WINDOWS_ASSETS_DIR
|
||||
volumes:
|
||||
- ./wdio:/opt:ro
|
||||
- ./wdio/reports:/opt/reports
|
||||
- ./wdio:/app:ro
|
||||
- ./wdio/reports:/app/reports
|
||||
depends_on:
|
||||
- chromedriver
|
||||
- geckodriver
|
||||
|
|
|
@ -81,7 +81,8 @@
|
|||
crop: '@',
|
||||
orientation: '@',
|
||||
forceResize: '@',
|
||||
disabled: '@disableImageResize'
|
||||
disabled: '@disableImageResize',
|
||||
imageSmoothingQuality: '@imageSmoothingQuality'
|
||||
},
|
||||
{
|
||||
action: 'saveImage',
|
||||
|
|
|
@ -120,7 +120,7 @@
|
|||
options.processQueue = processQueue;
|
||||
},
|
||||
|
||||
// Returns the number of files currently in the processsing queue:
|
||||
// Returns the number of files currently in the processing queue:
|
||||
processing: function () {
|
||||
return this._processing;
|
||||
},
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
*/
|
||||
|
||||
// Function returning the current number of files,
|
||||
// has to be overriden for maxNumberOfFiles validation:
|
||||
// has to be overridden for maxNumberOfFiles validation:
|
||||
getNumberOfFiles: $.noop,
|
||||
|
||||
// Error and info messages:
|
||||
|
|
|
@ -455,7 +455,7 @@
|
|||
_initProgressListener: function (options) {
|
||||
var that = this,
|
||||
xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();
|
||||
// Accesss to the native XHR object is required to add event listeners
|
||||
// Access to the native XHR object is required to add event listeners
|
||||
// for the upload progress event:
|
||||
if (xhr.upload) {
|
||||
$(xhr.upload).on('progress', function (e) {
|
||||
|
@ -489,15 +489,14 @@
|
|||
name = String(name);
|
||||
if (map[name]) {
|
||||
// eslint-disable-next-line no-param-reassign
|
||||
name = name.replace(/(?: \(([\d]+)\))?(\.[^.]+)?$/, function (
|
||||
_,
|
||||
p1,
|
||||
p2
|
||||
) {
|
||||
var index = p1 ? Number(p1) + 1 : 1;
|
||||
var ext = p2 || '';
|
||||
return ' (' + index + ')' + ext;
|
||||
});
|
||||
name = name.replace(
|
||||
/(?: \(([\d]+)\))?(\.[^.]+)?$/,
|
||||
function (_, p1, p2) {
|
||||
var index = p1 ? Number(p1) + 1 : 1;
|
||||
var ext = p2 || '';
|
||||
return ' (' + index + ')' + ext;
|
||||
}
|
||||
);
|
||||
return this._getUniqueFilename(name, map);
|
||||
}
|
||||
map[name] = true;
|
||||
|
@ -1172,7 +1171,7 @@
|
|||
data.fileInputClone = inputClone;
|
||||
$('<form></form>').append(inputClone)[0].reset();
|
||||
// Detaching allows to insert the fileInput on another form
|
||||
// without loosing the file input value:
|
||||
// without losing the file input value:
|
||||
input.after(inputClone).detach();
|
||||
// If the fileInput had focus before it was detached,
|
||||
// restore focus to the inputClone.
|
||||
|
@ -1298,8 +1297,7 @@
|
|||
_getSingleFileInputFiles: function (fileInput) {
|
||||
// eslint-disable-next-line no-param-reassign
|
||||
fileInput = $(fileInput);
|
||||
var entries =
|
||||
fileInput.prop('webkitEntries') || fileInput.prop('entries'),
|
||||
var entries = fileInput.prop('entries'),
|
||||
files,
|
||||
value;
|
||||
if (entries && entries.length) {
|
||||
|
|
|
@ -660,9 +660,8 @@
|
|||
) {
|
||||
return;
|
||||
}
|
||||
return (typeof handler === 'string'
|
||||
? instance[handler]
|
||||
: handler
|
||||
return (
|
||||
typeof handler === 'string' ? instance[handler] : handler
|
||||
).apply(instance, arguments);
|
||||
}
|
||||
|
||||
|
@ -699,9 +698,8 @@
|
|||
_delay: function (handler, delay) {
|
||||
var instance = this;
|
||||
function handlerProxy() {
|
||||
return (typeof handler === 'string'
|
||||
? instance[handler]
|
||||
: handler
|
||||
return (
|
||||
typeof handler === 'string' ? instance[handler] : handler
|
||||
).apply(instance, arguments);
|
||||
}
|
||||
return setTimeout(handlerProxy, delay || 0);
|
||||
|
@ -737,9 +735,8 @@
|
|||
|
||||
data = data || {};
|
||||
event = $.Event(event);
|
||||
event.type = (type === this.widgetEventPrefix
|
||||
? type
|
||||
: this.widgetEventPrefix + type
|
||||
event.type = (
|
||||
type === this.widgetEventPrefix ? type : this.widgetEventPrefix + type
|
||||
).toLowerCase();
|
||||
|
||||
// The original event may come from any element
|
||||
|
|
5879
vendor/blueimp/jquery-file-upload/package-lock.json
generated
vendored
5879
vendor/blueimp/jquery-file-upload/package-lock.json
generated
vendored
File diff suppressed because it is too large
Load diff
10
vendor/blueimp/jquery-file-upload/package.json
vendored
10
vendor/blueimp/jquery-file-upload/package.json
vendored
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "blueimp-file-upload",
|
||||
"version": "10.31.0",
|
||||
"version": "10.32.0",
|
||||
"title": "jQuery File Upload",
|
||||
"description": "File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.",
|
||||
"keywords": [
|
||||
|
@ -45,13 +45,13 @@
|
|||
"devDependencies": {
|
||||
"eslint": "7",
|
||||
"eslint-config-blueimp": "2",
|
||||
"eslint-config-prettier": "6",
|
||||
"eslint-plugin-jsdoc": "29",
|
||||
"eslint-plugin-prettier": "3",
|
||||
"eslint-config-prettier": "8",
|
||||
"eslint-plugin-jsdoc": "36",
|
||||
"eslint-plugin-prettier": "4",
|
||||
"prettier": "2",
|
||||
"stylelint": "13",
|
||||
"stylelint-config-prettier": "8",
|
||||
"stylelint-config-recommended": "3"
|
||||
"stylelint-config-recommended": "5"
|
||||
},
|
||||
"stylelint": {
|
||||
"extends": [
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
runtime: go
|
||||
api_version: go1
|
||||
|
||||
handlers:
|
||||
- url: /(favicon\.ico|robots\.txt)
|
||||
static_files: static/\1
|
||||
upload: static/(.*)
|
||||
expiration: '1d'
|
||||
- url: /.*
|
||||
script: _go_app
|
|
@ -1,361 +0,0 @@
|
|||
/*
|
||||
* jQuery File Upload Plugin GAE Go Example
|
||||
* https://github.com/blueimp/jQuery-File-Upload
|
||||
*
|
||||
* Copyright 2011, Sebastian Tschan
|
||||
* https://blueimp.net
|
||||
*
|
||||
* Licensed under the MIT license:
|
||||
* https://opensource.org/licenses/MIT
|
||||
*/
|
||||
|
||||
package app
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/disintegration/gift"
|
||||
"golang.org/x/net/context"
|
||||
"google.golang.org/appengine"
|
||||
"google.golang.org/appengine/memcache"
|
||||
"hash/crc32"
|
||||
"image"
|
||||
"image/gif"
|
||||
"image/jpeg"
|
||||
"image/png"
|
||||
"io"
|
||||
"log"
|
||||
"mime/multipart"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
WEBSITE = "https://blueimp.github.io/jQuery-File-Upload/"
|
||||
MIN_FILE_SIZE = 1 // bytes
|
||||
// Max file size is memcache limit (1MB) minus key size minus overhead:
|
||||
MAX_FILE_SIZE = 999000 // bytes
|
||||
IMAGE_TYPES = "image/(gif|p?jpeg|(x-)?png)"
|
||||
ACCEPT_FILE_TYPES = IMAGE_TYPES
|
||||
THUMB_MAX_WIDTH = 80
|
||||
THUMB_MAX_HEIGHT = 80
|
||||
EXPIRATION_TIME = 300 // seconds
|
||||
// If empty, only allow redirects to the referer protocol+host.
|
||||
// Set to a regexp string for custom pattern matching:
|
||||
REDIRECT_ALLOW_TARGET = ""
|
||||
)
|
||||
|
||||
var (
|
||||
imageTypes = regexp.MustCompile(IMAGE_TYPES)
|
||||
acceptFileTypes = regexp.MustCompile(ACCEPT_FILE_TYPES)
|
||||
thumbSuffix = "." + fmt.Sprint(THUMB_MAX_WIDTH) + "x" +
|
||||
fmt.Sprint(THUMB_MAX_HEIGHT)
|
||||
)
|
||||
|
||||
func escape(s string) string {
|
||||
return strings.Replace(url.QueryEscape(s), "+", "%20", -1)
|
||||
}
|
||||
|
||||
func extractKey(r *http.Request) string {
|
||||
// Use RequestURI instead of r.URL.Path, as we need the encoded form:
|
||||
path := strings.Split(r.RequestURI, "?")[0]
|
||||
// Also adjust double encoded slashes:
|
||||
return strings.Replace(path[1:], "%252F", "%2F", -1)
|
||||
}
|
||||
|
||||
func check(err error) {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
type FileInfo struct {
|
||||
Key string `json:"-"`
|
||||
ThumbnailKey string `json:"-"`
|
||||
Url string `json:"url,omitempty"`
|
||||
ThumbnailUrl string `json:"thumbnailUrl,omitempty"`
|
||||
Name string `json:"name"`
|
||||
Type string `json:"type"`
|
||||
Size int64 `json:"size"`
|
||||
Error string `json:"error,omitempty"`
|
||||
DeleteUrl string `json:"deleteUrl,omitempty"`
|
||||
DeleteType string `json:"deleteType,omitempty"`
|
||||
}
|
||||
|
||||
func (fi *FileInfo) ValidateType() (valid bool) {
|
||||
if acceptFileTypes.MatchString(fi.Type) {
|
||||
return true
|
||||
}
|
||||
fi.Error = "Filetype not allowed"
|
||||
return false
|
||||
}
|
||||
|
||||
func (fi *FileInfo) ValidateSize() (valid bool) {
|
||||
if fi.Size < MIN_FILE_SIZE {
|
||||
fi.Error = "File is too small"
|
||||
} else if fi.Size > MAX_FILE_SIZE {
|
||||
fi.Error = "File is too big"
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (fi *FileInfo) CreateUrls(r *http.Request, c context.Context) {
|
||||
u := &url.URL{
|
||||
Scheme: r.URL.Scheme,
|
||||
Host: appengine.DefaultVersionHostname(c),
|
||||
Path: "/",
|
||||
}
|
||||
uString := u.String()
|
||||
fi.Url = uString + fi.Key
|
||||
fi.DeleteUrl = fi.Url
|
||||
fi.DeleteType = "DELETE"
|
||||
if fi.ThumbnailKey != "" {
|
||||
fi.ThumbnailUrl = uString + fi.ThumbnailKey
|
||||
}
|
||||
}
|
||||
|
||||
func (fi *FileInfo) SetKey(checksum uint32) {
|
||||
fi.Key = escape(string(fi.Type)) + "/" +
|
||||
escape(fmt.Sprint(checksum)) + "/" +
|
||||
escape(string(fi.Name))
|
||||
}
|
||||
|
||||
func (fi *FileInfo) createThumb(buffer *bytes.Buffer, c context.Context) {
|
||||
if imageTypes.MatchString(fi.Type) {
|
||||
src, _, err := image.Decode(bytes.NewReader(buffer.Bytes()))
|
||||
check(err)
|
||||
filter := gift.New(gift.ResizeToFit(
|
||||
THUMB_MAX_WIDTH,
|
||||
THUMB_MAX_HEIGHT,
|
||||
gift.LanczosResampling,
|
||||
))
|
||||
dst := image.NewNRGBA(filter.Bounds(src.Bounds()))
|
||||
filter.Draw(dst, src)
|
||||
buffer.Reset()
|
||||
bWriter := bufio.NewWriter(buffer)
|
||||
switch fi.Type {
|
||||
case "image/jpeg", "image/pjpeg":
|
||||
err = jpeg.Encode(bWriter, dst, nil)
|
||||
case "image/gif":
|
||||
err = gif.Encode(bWriter, dst, nil)
|
||||
default:
|
||||
err = png.Encode(bWriter, dst)
|
||||
}
|
||||
check(err)
|
||||
bWriter.Flush()
|
||||
thumbnailKey := fi.Key + thumbSuffix + filepath.Ext(fi.Name)
|
||||
item := &memcache.Item{
|
||||
Key: thumbnailKey,
|
||||
Value: buffer.Bytes(),
|
||||
}
|
||||
err = memcache.Set(c, item)
|
||||
check(err)
|
||||
fi.ThumbnailKey = thumbnailKey
|
||||
}
|
||||
}
|
||||
|
||||
func handleUpload(r *http.Request, p *multipart.Part) (fi *FileInfo) {
|
||||
fi = &FileInfo{
|
||||
Name: p.FileName(),
|
||||
Type: p.Header.Get("Content-Type"),
|
||||
}
|
||||
if !fi.ValidateType() {
|
||||
return
|
||||
}
|
||||
defer func() {
|
||||
if rec := recover(); rec != nil {
|
||||
log.Println(rec)
|
||||
fi.Error = rec.(error).Error()
|
||||
}
|
||||
}()
|
||||
var buffer bytes.Buffer
|
||||
hash := crc32.NewIEEE()
|
||||
mw := io.MultiWriter(&buffer, hash)
|
||||
lr := &io.LimitedReader{R: p, N: MAX_FILE_SIZE + 1}
|
||||
_, err := io.Copy(mw, lr)
|
||||
check(err)
|
||||
fi.Size = MAX_FILE_SIZE + 1 - lr.N
|
||||
if !fi.ValidateSize() {
|
||||
return
|
||||
}
|
||||
fi.SetKey(hash.Sum32())
|
||||
item := &memcache.Item{
|
||||
Key: fi.Key,
|
||||
Value: buffer.Bytes(),
|
||||
}
|
||||
context := appengine.NewContext(r)
|
||||
err = memcache.Set(context, item)
|
||||
check(err)
|
||||
fi.createThumb(&buffer, context)
|
||||
fi.CreateUrls(r, context)
|
||||
return
|
||||
}
|
||||
|
||||
func getFormValue(p *multipart.Part) string {
|
||||
var b bytes.Buffer
|
||||
io.CopyN(&b, p, int64(1<<20)) // Copy max: 1 MiB
|
||||
return b.String()
|
||||
}
|
||||
|
||||
func handleUploads(r *http.Request) (fileInfos []*FileInfo) {
|
||||
fileInfos = make([]*FileInfo, 0)
|
||||
mr, err := r.MultipartReader()
|
||||
check(err)
|
||||
r.Form, err = url.ParseQuery(r.URL.RawQuery)
|
||||
check(err)
|
||||
part, err := mr.NextPart()
|
||||
for err == nil {
|
||||
if name := part.FormName(); name != "" {
|
||||
if part.FileName() != "" {
|
||||
fileInfos = append(fileInfos, handleUpload(r, part))
|
||||
} else {
|
||||
r.Form[name] = append(r.Form[name], getFormValue(part))
|
||||
}
|
||||
}
|
||||
part, err = mr.NextPart()
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func validateRedirect(r *http.Request, redirect string) bool {
|
||||
if redirect != "" {
|
||||
var redirectAllowTarget *regexp.Regexp
|
||||
if REDIRECT_ALLOW_TARGET != "" {
|
||||
redirectAllowTarget = regexp.MustCompile(REDIRECT_ALLOW_TARGET)
|
||||
} else {
|
||||
referer := r.Referer()
|
||||
if referer == "" {
|
||||
return false
|
||||
}
|
||||
refererUrl, err := url.Parse(referer)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
redirectAllowTarget = regexp.MustCompile("^" + regexp.QuoteMeta(
|
||||
refererUrl.Scheme+"://"+refererUrl.Host+"/",
|
||||
))
|
||||
}
|
||||
return redirectAllowTarget.MatchString(redirect)
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func get(w http.ResponseWriter, r *http.Request) {
|
||||
if r.URL.Path == "/" {
|
||||
http.Redirect(w, r, WEBSITE, http.StatusFound)
|
||||
return
|
||||
}
|
||||
// Use RequestURI instead of r.URL.Path, as we need the encoded form:
|
||||
key := extractKey(r)
|
||||
parts := strings.Split(key, "/")
|
||||
if len(parts) == 3 {
|
||||
context := appengine.NewContext(r)
|
||||
item, err := memcache.Get(context, key)
|
||||
if err == nil {
|
||||
w.Header().Add("X-Content-Type-Options", "nosniff")
|
||||
contentType, _ := url.QueryUnescape(parts[0])
|
||||
if !imageTypes.MatchString(contentType) {
|
||||
contentType = "application/octet-stream"
|
||||
}
|
||||
w.Header().Add("Content-Type", contentType)
|
||||
w.Header().Add(
|
||||
"Cache-Control",
|
||||
fmt.Sprintf("public,max-age=%d", EXPIRATION_TIME),
|
||||
)
|
||||
w.Write(item.Value)
|
||||
return
|
||||
}
|
||||
}
|
||||
http.Error(w, "404 Not Found", http.StatusNotFound)
|
||||
}
|
||||
|
||||
func post(w http.ResponseWriter, r *http.Request) {
|
||||
result := make(map[string][]*FileInfo, 1)
|
||||
result["files"] = handleUploads(r)
|
||||
b, err := json.Marshal(result)
|
||||
check(err)
|
||||
if redirect := r.FormValue("redirect"); validateRedirect(r, redirect) {
|
||||
if strings.Contains(redirect, "%s") {
|
||||
redirect = fmt.Sprintf(
|
||||
redirect,
|
||||
escape(string(b)),
|
||||
)
|
||||
}
|
||||
http.Redirect(w, r, redirect, http.StatusFound)
|
||||
return
|
||||
}
|
||||
w.Header().Set("Cache-Control", "no-cache")
|
||||
jsonType := "application/json"
|
||||
if strings.Index(r.Header.Get("Accept"), jsonType) != -1 {
|
||||
w.Header().Set("Content-Type", jsonType)
|
||||
}
|
||||
fmt.Fprintln(w, string(b))
|
||||
}
|
||||
|
||||
func delete(w http.ResponseWriter, r *http.Request) {
|
||||
key := extractKey(r)
|
||||
parts := strings.Split(key, "/")
|
||||
if len(parts) == 3 {
|
||||
result := make(map[string]bool, 1)
|
||||
context := appengine.NewContext(r)
|
||||
err := memcache.Delete(context, key)
|
||||
if err == nil {
|
||||
result[key] = true
|
||||
contentType, _ := url.QueryUnescape(parts[0])
|
||||
if imageTypes.MatchString(contentType) {
|
||||
thumbnailKey := key + thumbSuffix + filepath.Ext(parts[2])
|
||||
err := memcache.Delete(context, thumbnailKey)
|
||||
if err == nil {
|
||||
result[thumbnailKey] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
b, err := json.Marshal(result)
|
||||
check(err)
|
||||
fmt.Fprintln(w, string(b))
|
||||
} else {
|
||||
http.Error(w, "405 Method not allowed", http.StatusMethodNotAllowed)
|
||||
}
|
||||
}
|
||||
|
||||
func handle(w http.ResponseWriter, r *http.Request) {
|
||||
params, err := url.ParseQuery(r.URL.RawQuery)
|
||||
check(err)
|
||||
w.Header().Add("Access-Control-Allow-Origin", "*")
|
||||
w.Header().Add(
|
||||
"Access-Control-Allow-Methods",
|
||||
"OPTIONS, HEAD, GET, POST, DELETE",
|
||||
)
|
||||
w.Header().Add(
|
||||
"Access-Control-Allow-Headers",
|
||||
"Content-Type, Content-Range, Content-Disposition",
|
||||
)
|
||||
switch r.Method {
|
||||
case "OPTIONS", "HEAD":
|
||||
return
|
||||
case "GET":
|
||||
get(w, r)
|
||||
case "POST":
|
||||
if len(params["_method"]) > 0 && params["_method"][0] == "DELETE" {
|
||||
delete(w, r)
|
||||
} else {
|
||||
post(w, r)
|
||||
}
|
||||
case "DELETE":
|
||||
delete(w, r)
|
||||
default:
|
||||
http.Error(w, "501 Not Implemented", http.StatusNotImplemented)
|
||||
}
|
||||
}
|
||||
|
||||
func init() {
|
||||
http.HandleFunc("/", handle)
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
User-agent: *
|
||||
Disallow:
|
|
@ -3,13 +3,16 @@ api_version: 1
|
|||
threadsafe: true
|
||||
|
||||
libraries:
|
||||
- name: PIL
|
||||
version: latest
|
||||
- name: PIL
|
||||
version: latest
|
||||
|
||||
handlers:
|
||||
- url: /(favicon\.ico|robots\.txt)
|
||||
static_files: static/\1
|
||||
upload: static/(.*)
|
||||
expiration: '1d'
|
||||
- url: /.*
|
||||
script: main.app
|
||||
- url: /(favicon\.ico|robots\.txt)
|
||||
static_files: static/\1
|
||||
upload: static/(.*)
|
||||
expiration: '1d'
|
||||
- url: /.*
|
||||
script: main.app
|
||||
|
||||
automatic_scaling:
|
||||
max_instances: 1
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
FROM php:7.4-apache
|
||||
FROM php:8.0.11-apache
|
||||
|
||||
# Enable the Apache Headers module:
|
||||
RUN ln -s /etc/apache2/mods-available/headers.load \
|
||||
|
|
|
@ -305,7 +305,7 @@ module.exports = {
|
|||
*
|
||||
* Set it to zero if you want to disable truncating altogether.
|
||||
*
|
||||
* This is especially userful when doing assertions on arrays: having this
|
||||
* This is especially useful when doing assertions on arrays: having this
|
||||
* set to a reasonable large value makes the failure messages readily
|
||||
* inspectable.
|
||||
*
|
||||
|
|
|
@ -1980,7 +1980,7 @@ Mocha.prototype.global = function(global) {
|
|||
});
|
||||
return this;
|
||||
};
|
||||
// for backwards compability, 'globals' is an alias of 'global'
|
||||
// for backwards compatibility, 'globals' is an alias of 'global'
|
||||
Mocha.prototype.globals = Mocha.prototype.global;
|
||||
|
||||
/**
|
||||
|
@ -2170,7 +2170,7 @@ Mocha.prototype.enableTimeouts = function(enableTimeouts) {
|
|||
*
|
||||
* @public
|
||||
* @see [CLI option](../#-async-only-a)
|
||||
* @param {boolean} [asyncOnly=true] - Wether to force `done` callback or promise.
|
||||
* @param {boolean} [asyncOnly=true] - Whether to force `done` callback or promise.
|
||||
* @return {Mocha} this
|
||||
* @chainable
|
||||
*/
|
||||
|
@ -8144,7 +8144,7 @@ exports.isPromise = function isPromise(value) {
|
|||
* Clamps a numeric value to an inclusive range.
|
||||
*
|
||||
* @param {number} value - Value to be clamped.
|
||||
* @param {numer[]} range - Two element array specifying [min, max] range.
|
||||
* @param {number[]} range - Two element array specifying [min, max] range.
|
||||
* @returns {number} clamped value
|
||||
*/
|
||||
exports.clamp = function clamp(value, range) {
|
||||
|
@ -8677,7 +8677,7 @@ function alloc (size, fill, encoding) {
|
|||
if (fill !== undefined) {
|
||||
// Only pay attention to encoding if it's a string. This
|
||||
// prevents accidentally sending in a number that would
|
||||
// be interpretted as a start offset.
|
||||
// be interpreted as a start offset.
|
||||
return typeof encoding === 'string'
|
||||
? createBuffer(size).fill(fill, encoding)
|
||||
: createBuffer(size).fill(fill)
|
||||
|
@ -8969,7 +8969,7 @@ function slowToString (encoding, start, end) {
|
|||
return ''
|
||||
}
|
||||
|
||||
// Force coersion to uint32. This will also coerce falsey/NaN values to 0.
|
||||
// Force coercion to uint32. This will also coerce falsey/NaN values to 0.
|
||||
end >>>= 0
|
||||
start >>>= 0
|
||||
|
||||
|
@ -14499,7 +14499,7 @@ function defaultClearTimeout () {
|
|||
} ())
|
||||
function runTimeout(fun) {
|
||||
if (cachedSetTimeout === setTimeout) {
|
||||
//normal enviroments in sane situations
|
||||
//normal environments in sane situations
|
||||
return setTimeout(fun, 0);
|
||||
}
|
||||
// if setTimeout wasn't available but was latter defined
|
||||
|
@ -14508,14 +14508,14 @@ function runTimeout(fun) {
|
|||
return setTimeout(fun, 0);
|
||||
}
|
||||
try {
|
||||
// when when somebody has screwed with setTimeout but no I.E. maddness
|
||||
// when when somebody has screwed with setTimeout but no I.E. madness
|
||||
return cachedSetTimeout(fun, 0);
|
||||
} catch(e){
|
||||
try {
|
||||
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
||||
return cachedSetTimeout.call(null, fun, 0);
|
||||
} catch(e){
|
||||
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
|
||||
// same as above but when it's a version of I.E. that must have the global object for 'this', hopefully our context correct otherwise it will throw a global error
|
||||
return cachedSetTimeout.call(this, fun, 0);
|
||||
}
|
||||
}
|
||||
|
@ -14524,7 +14524,7 @@ function runTimeout(fun) {
|
|||
}
|
||||
function runClearTimeout(marker) {
|
||||
if (cachedClearTimeout === clearTimeout) {
|
||||
//normal enviroments in sane situations
|
||||
//normal environments in sane situations
|
||||
return clearTimeout(marker);
|
||||
}
|
||||
// if clearTimeout wasn't available but was latter defined
|
||||
|
@ -14533,14 +14533,14 @@ function runClearTimeout(marker) {
|
|||
return clearTimeout(marker);
|
||||
}
|
||||
try {
|
||||
// when when somebody has screwed with setTimeout but no I.E. maddness
|
||||
// when when somebody has screwed with setTimeout but no I.E. madness
|
||||
return cachedClearTimeout(marker);
|
||||
} catch (e){
|
||||
try {
|
||||
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
||||
return cachedClearTimeout.call(null, marker);
|
||||
} catch (e){
|
||||
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
|
||||
// same as above but when it's a version of I.E. that must have the global object for 'this', hopefully our context correct otherwise it will throw a global error.
|
||||
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
|
||||
return cachedClearTimeout.call(this, marker);
|
||||
}
|
||||
|
@ -14606,7 +14606,7 @@ process.nextTick = function (fun) {
|
|||
}
|
||||
};
|
||||
|
||||
// v8 likes predictible objects
|
||||
// v8 likes predictable objects
|
||||
function Item(fun, array) {
|
||||
this.fun = fun;
|
||||
this.array = array;
|
||||
|
@ -17697,7 +17697,7 @@ exports.debuglog = function(set) {
|
|||
|
||||
|
||||
/**
|
||||
* Echos the value of a value. Trys to print the value out
|
||||
* Echos the value of a value. Tries to print the value out
|
||||
* in the best way possible given the different types.
|
||||
*
|
||||
* @param {Object} obj The object to print out.
|
||||
|
|
|
@ -1,85 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Adds TCP/UDP port forwarding rules to the pf firewall (MacOS/BSD).
|
||||
#
|
||||
# Adds rules for both TCP and UDP in addition to those from /etc/pf.conf.
|
||||
# Requires an existing rdr-anchor entry in /etc/pf.conf.
|
||||
# Only adds rules temporarily, without changing any files.
|
||||
#
|
||||
# Usage: ./forward-ports.sh [[nic:]port=[ip:]port [...]]
|
||||
#
|
||||
# If no network interface is given, forwards from all interfaces.
|
||||
# If no IP is given, forwards to 127.0.0.1.
|
||||
# If no port forwarding rule is given, resets to the rules from /etc/pf.conf.
|
||||
#
|
||||
# e.g. forwarding ports 80 and 443 on network interface en0 to ports 8080 and
|
||||
# 8443 on localhost respectively:
|
||||
# ./forward-ports.sh en0:80=8080 en0:443=8443
|
||||
#
|
||||
# Copyright 2019, Sebastian Tschan
|
||||
# https://blueimp.net
|
||||
#
|
||||
# Licensed under the MIT license:
|
||||
# https://opensource.org/licenses/MIT
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
RULES=
|
||||
NEWLINE='
|
||||
'
|
||||
|
||||
print_usage_exit() {
|
||||
if [ -n "$RULES" ]; then
|
||||
printf '\nError in custom rules:\n%s\n' "$RULES" >&2
|
||||
fi
|
||||
echo "Usage: $0 [[nic:]port=[ip:]port [...]]" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
print_nat_rules() {
|
||||
echo
|
||||
echo 'Loaded NAT rules:'
|
||||
sudo pfctl -s nat 2>/dev/null
|
||||
echo
|
||||
}
|
||||
|
||||
# Print usage and exit if option arguments like "-h" are used:
|
||||
if [ "${1#-}" != "$1" ]; then print_usage_exit; fi
|
||||
|
||||
while test $# -gt 0; do
|
||||
# Separate the from=to parts:
|
||||
from=${1%=*}
|
||||
to=${1#*=}
|
||||
# If from part has a nic defined, extract it, else forward from all:
|
||||
case "$from" in
|
||||
*:*) nic="on ${from%:*}";;
|
||||
*) nic=;;
|
||||
esac
|
||||
# Extract the port to forward from:
|
||||
from_port=${from##*:}
|
||||
# If to part has an IP defined, extract it, else forward to 127.0.0.1:
|
||||
case "$to" in
|
||||
*:*) to_ip=${to%:*};;
|
||||
*) to_ip=127.0.0.1;;
|
||||
esac
|
||||
# Extract the port to forward to:
|
||||
to_port=${to##*:}
|
||||
# Create the packet filter (pf) forwarding rule for both TCP and UDP:
|
||||
rule=$(
|
||||
printf \
|
||||
'rdr pass %s inet proto %s from any to any port %s -> %s port %s' \
|
||||
"$nic" '{tcp udp}' "$from_port" "$to_ip" "$to_port"
|
||||
)
|
||||
# Add it to the list of rules:
|
||||
RULES="$RULES$rule$NEWLINE"
|
||||
shift
|
||||
done
|
||||
|
||||
# Add the rules after the line matching "rdr-anchor" in /etc/pf.conf, print the
|
||||
# combined rules to STDOUT and load the rules into pf from STDIN.
|
||||
# Finally, display the loaded NAT rules or print the script usage on failure:
|
||||
# shellcheck disable=SC2015
|
||||
printf %s "$RULES" | sed -e '/rdr-anchor/r /dev/stdin' /etc/pf.conf |
|
||||
sudo pfctl -Ef - 2>/dev/null && print_nat_rules || print_usage_exit
|
|
@ -1,43 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ "$1" = -t ]; then
|
||||
BIN='/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver'
|
||||
shift
|
||||
else
|
||||
BIN=safaridriver
|
||||
fi
|
||||
|
||||
SCREEN='Capture screen'
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
OUTPUT=$(ffmpeg -f avfoundation -list_devices true -i - 2>&1 | grep "$SCREEN")
|
||||
if [ "$(echo "$OUTPUT" | grep -c ^)" -gt 1 ]; then
|
||||
echo 'Please select the input device by entering its [index] number:' >&2
|
||||
echo "$OUTPUT" >&2
|
||||
read -r INDEX
|
||||
fi
|
||||
else
|
||||
INDEX=$1
|
||||
fi
|
||||
|
||||
echo 'Starting safaridriver on 127.0.0.1:4444 ...' >&2
|
||||
"$BIN" -p 4444 & pid=$!
|
||||
|
||||
# shellcheck disable=SC2064
|
||||
trap "kill $pid; exit" INT TERM
|
||||
|
||||
echo 'Starting mjpeg-server on 127.0.0.1:9000 ...' >&2
|
||||
mjpeg-server -a 127.0.0.1:9000 -- ffmpeg \
|
||||
-loglevel error \
|
||||
-probesize 32 \
|
||||
-fpsprobesize 0 \
|
||||
-analyzeduration 0 \
|
||||
-fflags nobuffer \
|
||||
-f avfoundation \
|
||||
-capture_cursor 1 \
|
||||
-r "${FPS:-15}" \
|
||||
-pixel_format yuyv422 \
|
||||
-i "${INDEX:-$SCREEN}" \
|
||||
-f mpjpeg \
|
||||
-q "${QUALITY:-2}" \
|
||||
-
|
|
@ -1,23 +0,0 @@
|
|||
'use strict'
|
||||
|
||||
/* eslint-disable jsdoc/valid-types */
|
||||
/** @type WebdriverIO.Config */
|
||||
const config = {
|
||||
hostname: process.env.WINDOWS_HOST || 'host.docker.internal',
|
||||
capabilities: [
|
||||
{
|
||||
// Set maxInstances to 1 if screen recordings are enabled:
|
||||
// maxInstances: 1,
|
||||
browserName: 'MicrosoftEdge'
|
||||
}
|
||||
],
|
||||
videos: {
|
||||
enabled: false,
|
||||
inputFormat: 'mjpeg',
|
||||
startDelay: 500,
|
||||
stopDelay: 500
|
||||
},
|
||||
assetsDir: process.env.WINDOWS_ASSETS_DIR || process.env.MACOS_ASSETS_DIR
|
||||
}
|
||||
|
||||
exports.config = Object.assign({}, require('./chrome').config, config)
|
|
@ -1,24 +0,0 @@
|
|||
'use strict'
|
||||
|
||||
/* eslint-disable jsdoc/valid-types */
|
||||
/** @type WebdriverIO.Config */
|
||||
const config = {
|
||||
hostname: process.env.WINDOWS_HOST || 'host.docker.internal',
|
||||
port: 4445,
|
||||
capabilities: [
|
||||
{
|
||||
// IEDriverServer supports no parallel sessions:
|
||||
maxInstances: 1,
|
||||
browserName: 'internet explorer'
|
||||
}
|
||||
],
|
||||
videos: {
|
||||
enabled: true,
|
||||
inputFormat: 'mjpeg',
|
||||
startDelay: 500,
|
||||
stopDelay: 500
|
||||
},
|
||||
assetsDir: process.env.WINDOWS_ASSETS_DIR
|
||||
}
|
||||
|
||||
exports.config = Object.assign({}, require('./chrome').config, config)
|
|
@ -1,24 +0,0 @@
|
|||
'use strict'
|
||||
|
||||
/* eslint-disable jsdoc/valid-types */
|
||||
/** @type WebdriverIO.Config */
|
||||
const config = {
|
||||
// Docker for Mac host address:
|
||||
hostname: 'host.docker.internal',
|
||||
capabilities: [
|
||||
{
|
||||
// safaridriver supports no parallel sessions:
|
||||
maxInstances: 1,
|
||||
browserName: 'safari'
|
||||
}
|
||||
],
|
||||
videos: {
|
||||
enabled: true,
|
||||
inputFormat: 'mjpeg',
|
||||
startDelay: 500,
|
||||
stopDelay: 500
|
||||
},
|
||||
assetsDir: process.env.MACOS_ASSETS_DIR
|
||||
}
|
||||
|
||||
exports.config = Object.assign({}, require('./chrome').config, config)
|
|
@ -5,11 +5,21 @@
|
|||
const cmds = require('wdio-screen-commands')
|
||||
|
||||
/* eslint-disable jsdoc/valid-types */
|
||||
/** @type WebdriverIO.HookFunctions */
|
||||
/** @type WebdriverIO.HookFunctionExtension */
|
||||
const config = {
|
||||
before: async () => {
|
||||
// Add browser commands:
|
||||
browser.addCommand('saveScreenshotByName', cmds.saveScreenshotByName)
|
||||
browser.addCommand('saveAndDiffScreenshot', cmds.saveAndDiffScreenshot)
|
||||
// Add element commands:
|
||||
browser.addCommand('saveScreenshotByName', cmds.saveScreenshotByName, true)
|
||||
browser.addCommand(
|
||||
'saveAndDiffScreenshot',
|
||||
cmds.saveAndDiffScreenshot,
|
||||
true
|
||||
)
|
||||
if (browser.config.appium)
|
||||
await browser.updateSettings(browser.config.appium)
|
||||
if (browser.config.maximizeWindow) await browser.maximizeWindow()
|
||||
},
|
||||
beforeTest: async test => {
|
||||
|
|
|
@ -32,42 +32,47 @@ class FileUpload {
|
|||
* Opens the file upload form.
|
||||
*
|
||||
* @param {number} [timeout] Wait timeout
|
||||
* @returns {FileUpload} FileUpload object
|
||||
*/
|
||||
open(timeout) {
|
||||
browser.url('/')
|
||||
this.fileinput.waitForExist({ timeout })
|
||||
return this
|
||||
async open(timeout) {
|
||||
await browser.url('/')
|
||||
await this.fileinput.waitForExist({ timeout })
|
||||
}
|
||||
/**
|
||||
* Uploads files.
|
||||
*
|
||||
* @param {Array<string>} files Files to upload
|
||||
* @param {number} [timeout] Wait timeout
|
||||
* @returns {FileUpload} FileUpload object
|
||||
*/
|
||||
upload(files, timeout) {
|
||||
this.fileinput.addValue(files.join('\n'))
|
||||
browser.waitUntil(() => !this.processing.length, { timeout })
|
||||
this.start.click()
|
||||
browser.waitUntil(() => !!this.downloads.length, { timeout })
|
||||
browser.waitUntil(() => !this.uploads.length, { timeout })
|
||||
return this
|
||||
async upload(files, timeout) {
|
||||
await this.fileinput.addValue(files.join('\n'))
|
||||
await browser.waitUntil(async () => !(await this.processing.length), {
|
||||
timeout
|
||||
})
|
||||
await this.start.click()
|
||||
await browser.waitUntil(async () => !!(await this.downloads.length), {
|
||||
timeout
|
||||
})
|
||||
await browser.waitUntil(async () => !(await this.uploads.length), {
|
||||
timeout
|
||||
})
|
||||
}
|
||||
/**
|
||||
* Deletes uploaded files.
|
||||
*
|
||||
* @param {number} [timeout] Wait timeout
|
||||
* @returns {FileUpload} FileUpload object
|
||||
*/
|
||||
delete(timeout) {
|
||||
this.toggle.click()
|
||||
browser.waitUntil(() => this.downloads.length === this.checked.length, {
|
||||
async delete(timeout) {
|
||||
await this.toggle.click()
|
||||
await browser.waitUntil(
|
||||
async () => (await this.downloads.length) === (await this.checked.length),
|
||||
{
|
||||
timeout
|
||||
}
|
||||
)
|
||||
await this.remove.click()
|
||||
await browser.waitUntil(async () => !(await this.downloads.length), {
|
||||
timeout
|
||||
})
|
||||
this.remove.click()
|
||||
browser.waitUntil(() => !this.downloads.length, { timeout })
|
||||
return this
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,16 +8,18 @@ const assetsDir = browser.config.assetsDir
|
|||
describe('File Upload', () => {
|
||||
if (!assetsDir) return
|
||||
|
||||
it('uploads files', () => {
|
||||
FileUpload.open().upload([
|
||||
it('uploads files', async () => {
|
||||
await FileUpload.open()
|
||||
await FileUpload.upload([
|
||||
assetsDir + 'black+white-60x40.gif',
|
||||
assetsDir + 'black+white-3x2.jpg'
|
||||
])
|
||||
browser.saveAndDiffScreenshot('Files uploaded')
|
||||
await browser.saveAndDiffScreenshot('Files uploaded')
|
||||
})
|
||||
|
||||
it('deletes files', () => {
|
||||
FileUpload.open().delete()
|
||||
browser.saveAndDiffScreenshot('Files deleted')
|
||||
it('deletes files', async () => {
|
||||
await FileUpload.open()
|
||||
await FileUpload.delete()
|
||||
await browser.saveAndDiffScreenshot('Files deleted')
|
||||
})
|
||||
})
|
||||
|
|
119
vendor/composer/InstalledVersions.php
vendored
119
vendor/composer/InstalledVersions.php
vendored
|
@ -25,24 +25,24 @@ class InstalledVersions
|
|||
private static $installed = array (
|
||||
'root' =>
|
||||
array (
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'pretty_version' => 'dev-dev',
|
||||
'version' => 'dev-dev',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '441261e2d8ac174792bcb1f37f44e74d1d5c0213',
|
||||
'reference' => '193a5403a7eb3ce1dae2fe2cb8e655fa0abbc57d',
|
||||
'name' => 'zot/zap',
|
||||
),
|
||||
'versions' =>
|
||||
array (
|
||||
'blueimp/jquery-file-upload' =>
|
||||
array (
|
||||
'pretty_version' => 'v10.31.0',
|
||||
'version' => '10.31.0.0',
|
||||
'pretty_version' => 'v10.32.0',
|
||||
'version' => '10.32.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '0740f81829698b84efe17e72501e0f420ea0d611',
|
||||
'reference' => '20f6c4a07a6fbff22d79228c893eb1746d2d8962',
|
||||
),
|
||||
'bshaffer/oauth2-server-php' =>
|
||||
array (
|
||||
|
@ -64,30 +64,30 @@ class InstalledVersions
|
|||
),
|
||||
'doctrine/collections' =>
|
||||
array (
|
||||
'pretty_version' => '1.6.7',
|
||||
'version' => '1.6.7.0',
|
||||
'pretty_version' => '1.6.8',
|
||||
'version' => '1.6.8.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '55f8b799269a1a472457bd1a41b4f379d4cfba4a',
|
||||
'reference' => '1958a744696c6bb3bb0d28db2611dc11610e78af',
|
||||
),
|
||||
'ezyang/htmlpurifier' =>
|
||||
array (
|
||||
'pretty_version' => 'v4.13.0',
|
||||
'version' => '4.13.0.0',
|
||||
'pretty_version' => 'v4.14.0',
|
||||
'version' => '4.14.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '08e27c97e4c6ed02f37c5b2b20488046c8d90d75',
|
||||
'reference' => '12ab42bd6e742c70c0a52f7b82477fcd44e64b75',
|
||||
),
|
||||
'forkawesome/fork-awesome' =>
|
||||
array (
|
||||
'pretty_version' => '1.1.7',
|
||||
'version' => '1.1.7.0',
|
||||
'pretty_version' => '1.2',
|
||||
'version' => '1.2.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '326af9c8bee0c80ff4c00cb2fadd4f1edd2a08c3',
|
||||
'reference' => '1e3849530d0266ece3a883649e1398414b92241d',
|
||||
),
|
||||
'jbroadway/urlify' =>
|
||||
array (
|
||||
|
@ -118,21 +118,21 @@ class InstalledVersions
|
|||
),
|
||||
'masterminds/html5' =>
|
||||
array (
|
||||
'pretty_version' => '2.7.4',
|
||||
'version' => '2.7.4.0',
|
||||
'pretty_version' => '2.7.5',
|
||||
'version' => '2.7.5.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '9227822783c75406cfe400984b2f095cdf03d417',
|
||||
'reference' => 'f640ac1bdddff06ea333a920c95bbad8872429ab',
|
||||
),
|
||||
'michelf/php-markdown' =>
|
||||
array (
|
||||
'pretty_version' => '1.9.0',
|
||||
'version' => '1.9.0.0',
|
||||
'pretty_version' => '1.9.1',
|
||||
'version' => '1.9.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'c83178d49e372ca967d1a8c77ae4e051b3a3c75c',
|
||||
'reference' => '5024d623c1a057dcd2d076d25b7d270a1d0d55f3',
|
||||
),
|
||||
'p3k/emoji-detector' =>
|
||||
array (
|
||||
|
@ -145,21 +145,21 @@ class InstalledVersions
|
|||
),
|
||||
'paragonie/random_compat' =>
|
||||
array (
|
||||
'pretty_version' => 'v9.99.99',
|
||||
'version' => '9.99.99.0',
|
||||
'pretty_version' => 'v9.99.100',
|
||||
'version' => '9.99.100.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95',
|
||||
'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a',
|
||||
),
|
||||
'phpseclib/phpseclib' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.32',
|
||||
'version' => '2.0.32.0',
|
||||
'pretty_version' => '2.0.35',
|
||||
'version' => '2.0.35.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'f5c4c19880d45d0be3e7d24ae8ac434844a898cd',
|
||||
'reference' => '4e16cf3f5f927a7d3f5317820af795c0366c0420',
|
||||
),
|
||||
'psr/log' =>
|
||||
array (
|
||||
|
@ -172,18 +172,18 @@ class InstalledVersions
|
|||
),
|
||||
'ramsey/uuid' =>
|
||||
array (
|
||||
'pretty_version' => '3.9.3',
|
||||
'version' => '3.9.3.0',
|
||||
'pretty_version' => '3.9.6',
|
||||
'version' => '3.9.6.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '7e1633a6964b48589b142d60542f9ed31bd37a92',
|
||||
'reference' => 'ffa80ab953edd85d5b6c004f96181a538aad35a3',
|
||||
),
|
||||
'rhumsaa/uuid' =>
|
||||
array (
|
||||
'replaced' =>
|
||||
array (
|
||||
0 => '3.9.3',
|
||||
0 => '3.9.6',
|
||||
),
|
||||
),
|
||||
'sabre/dav' =>
|
||||
|
@ -251,30 +251,30 @@ class InstalledVersions
|
|||
),
|
||||
'smarty/smarty' =>
|
||||
array (
|
||||
'pretty_version' => 'v3.1.39',
|
||||
'version' => '3.1.39.0',
|
||||
'pretty_version' => 'v3.1.40',
|
||||
'version' => '3.1.40.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'e27da524f7bcd7361e3ea5cdfa99c4378a7b5419',
|
||||
'reference' => '9d4f8309ed49702e0d7152f9983c3a9c4b98eb9d',
|
||||
),
|
||||
'symfony/deprecation-contracts' =>
|
||||
array (
|
||||
'pretty_version' => 'v2.4.0',
|
||||
'version' => '2.4.0.0',
|
||||
'pretty_version' => 'v3.0.0',
|
||||
'version' => '3.0.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '5f38c8804a9e97d23e0c8d63341088cd8a22d627',
|
||||
'reference' => 'c726b64c1ccfe2896cb7df2e1331c357ad1c8ced',
|
||||
),
|
||||
'symfony/options-resolver' =>
|
||||
array (
|
||||
'pretty_version' => 'v5.3.0',
|
||||
'version' => '5.3.0.0',
|
||||
'pretty_version' => 'v6.0.0',
|
||||
'version' => '6.0.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '162e886ca035869866d233a2bfef70cc28f9bbe5',
|
||||
'reference' => 'be0facf48a42a232d6c0daadd76e4eb5657a4798',
|
||||
),
|
||||
'symfony/polyfill-ctype' =>
|
||||
array (
|
||||
|
@ -285,32 +285,23 @@ class InstalledVersions
|
|||
),
|
||||
'reference' => '46cd95797e9df938fdd2b03693b5fca5e64b01ce',
|
||||
),
|
||||
'symfony/polyfill-php73' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.23.0',
|
||||
'version' => '1.23.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'fba8933c384d6476ab14fb7b8526e5287ca7e010',
|
||||
),
|
||||
'symfony/polyfill-php80' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.23.0',
|
||||
'version' => '1.23.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'eca0bf41ed421bed1b57c4958bab16aa86b757d0',
|
||||
),
|
||||
'symfony/process' =>
|
||||
array (
|
||||
'pretty_version' => 'v5.3.0',
|
||||
'version' => '5.3.0.0',
|
||||
'pretty_version' => 'v6.0.2',
|
||||
'version' => '6.0.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '53e36cb1c160505cdaf1ef201501669c4c317191',
|
||||
'reference' => '71da2b7f3fdba460fcf61a97c8d3d14bbf3391ad',
|
||||
),
|
||||
'symfony/yaml' =>
|
||||
array (
|
||||
'pretty_version' => 'v6.0.2',
|
||||
'version' => '6.0.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'ed602f38b8636a2ea21af760d2578f3d2f92fc60',
|
||||
),
|
||||
'twbs/bootstrap' =>
|
||||
array (
|
||||
|
@ -348,12 +339,12 @@ class InstalledVersions
|
|||
),
|
||||
'zot/zap' =>
|
||||
array (
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'pretty_version' => 'dev-dev',
|
||||
'version' => 'dev-dev',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '441261e2d8ac174792bcb1f37f44e74d1d5c0213',
|
||||
'reference' => '193a5403a7eb3ce1dae2fe2cb8e655fa0abbc57d',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
|
35
vendor/composer/autoload_classmap.php
vendored
35
vendor/composer/autoload_classmap.php
vendored
|
@ -6,7 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
|
|||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
|
||||
'CommerceGuys\\Intl\\Calculator' => $vendorDir . '/commerceguys/intl/src/Calculator.php',
|
||||
'CommerceGuys\\Intl\\Country\\Country' => $vendorDir . '/commerceguys/intl/src/Country/Country.php',
|
||||
'CommerceGuys\\Intl\\Country\\CountryEntityInterface' => $vendorDir . '/commerceguys/intl/src/Country/CountryEntityInterface.php',
|
||||
|
@ -280,7 +279,6 @@ return array(
|
|||
'HTMLPurifier_VarParser_Flexible' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Flexible.php',
|
||||
'HTMLPurifier_VarParser_Native' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Native.php',
|
||||
'HTMLPurifier_Zipper' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Zipper.php',
|
||||
'JsonException' => $vendorDir . '/symfony/polyfill-php73/Resources/stubs/JsonException.php',
|
||||
'League\\HTMLToMarkdown\\Configuration' => $vendorDir . '/league/html-to-markdown/src/Configuration.php',
|
||||
'League\\HTMLToMarkdown\\ConfigurationAwareInterface' => $vendorDir . '/league/html-to-markdown/src/ConfigurationAwareInterface.php',
|
||||
'League\\HTMLToMarkdown\\Converter\\BlockquoteConverter' => $vendorDir . '/league/html-to-markdown/src/Converter/BlockquoteConverter.php',
|
||||
|
@ -435,6 +433,9 @@ 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\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
||||
'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',
|
||||
'Ramsey\\Uuid\\BinaryUtils' => $vendorDir . '/ramsey/uuid/src/BinaryUtils.php',
|
||||
'Ramsey\\Uuid\\Builder\\DefaultUuidBuilder' => $vendorDir . '/ramsey/uuid/src/Builder/DefaultUuidBuilder.php',
|
||||
'Ramsey\\Uuid\\Builder\\DegradedUuidBuilder' => $vendorDir . '/ramsey/uuid/src/Builder/DegradedUuidBuilder.php',
|
||||
|
@ -1017,7 +1018,6 @@ return array(
|
|||
'Smarty_Template_Source' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_template_source.php',
|
||||
'Smarty_Undefined_Variable' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_undefined_variable.php',
|
||||
'Smarty_Variable' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_variable.php',
|
||||
'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
|
||||
'Symfony\\Component\\OptionsResolver\\Debug\\OptionsResolverIntrospector' => $vendorDir . '/symfony/options-resolver/Debug/OptionsResolverIntrospector.php',
|
||||
'Symfony\\Component\\OptionsResolver\\Exception\\AccessException' => $vendorDir . '/symfony/options-resolver/Exception/AccessException.php',
|
||||
'Symfony\\Component\\OptionsResolver\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/options-resolver/Exception/ExceptionInterface.php',
|
||||
|
@ -1048,15 +1048,23 @@ return array(
|
|||
'Symfony\\Component\\Process\\Pipes\\WindowsPipes' => $vendorDir . '/symfony/process/Pipes/WindowsPipes.php',
|
||||
'Symfony\\Component\\Process\\Process' => $vendorDir . '/symfony/process/Process.php',
|
||||
'Symfony\\Component\\Process\\ProcessUtils' => $vendorDir . '/symfony/process/ProcessUtils.php',
|
||||
'Symfony\\Component\\Yaml\\Command\\LintCommand' => $vendorDir . '/symfony/yaml/Command/LintCommand.php',
|
||||
'Symfony\\Component\\Yaml\\Dumper' => $vendorDir . '/symfony/yaml/Dumper.php',
|
||||
'Symfony\\Component\\Yaml\\Escaper' => $vendorDir . '/symfony/yaml/Escaper.php',
|
||||
'Symfony\\Component\\Yaml\\Exception\\DumpException' => $vendorDir . '/symfony/yaml/Exception/DumpException.php',
|
||||
'Symfony\\Component\\Yaml\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/yaml/Exception/ExceptionInterface.php',
|
||||
'Symfony\\Component\\Yaml\\Exception\\ParseException' => $vendorDir . '/symfony/yaml/Exception/ParseException.php',
|
||||
'Symfony\\Component\\Yaml\\Exception\\RuntimeException' => $vendorDir . '/symfony/yaml/Exception/RuntimeException.php',
|
||||
'Symfony\\Component\\Yaml\\Inline' => $vendorDir . '/symfony/yaml/Inline.php',
|
||||
'Symfony\\Component\\Yaml\\Parser' => $vendorDir . '/symfony/yaml/Parser.php',
|
||||
'Symfony\\Component\\Yaml\\Tag\\TaggedValue' => $vendorDir . '/symfony/yaml/Tag/TaggedValue.php',
|
||||
'Symfony\\Component\\Yaml\\Unescaper' => $vendorDir . '/symfony/yaml/Unescaper.php',
|
||||
'Symfony\\Component\\Yaml\\Yaml' => $vendorDir . '/symfony/yaml/Yaml.php',
|
||||
'Symfony\\Polyfill\\Ctype\\Ctype' => $vendorDir . '/symfony/polyfill-ctype/Ctype.php',
|
||||
'Symfony\\Polyfill\\Php73\\Php73' => $vendorDir . '/symfony/polyfill-php73/Php73.php',
|
||||
'Symfony\\Polyfill\\Php80\\Php80' => $vendorDir . '/symfony/polyfill-php80/Php80.php',
|
||||
'TPC_yyStackEntry' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_configfileparser.php',
|
||||
'TP_yyStackEntry' => $vendorDir . '/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php',
|
||||
'URLify' => $vendorDir . '/jbroadway/urlify/URLify.php',
|
||||
'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
|
||||
'UploadHandler' => $vendorDir . '/blueimp/jquery-file-upload/server/php/UploadHandler.php',
|
||||
'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
|
||||
'Zotlabs\\Access\\AccessControl' => $baseDir . '/Zotlabs/Access/AccessControl.php',
|
||||
'Zotlabs\\Access\\PermissionLimits' => $baseDir . '/Zotlabs/Access/PermissionLimits.php',
|
||||
'Zotlabs\\Access\\PermissionRoles' => $baseDir . '/Zotlabs/Access/PermissionRoles.php',
|
||||
|
@ -1157,7 +1165,6 @@ return array(
|
|||
'Zotlabs\\Module\\Admin\\Channels' => $baseDir . '/Zotlabs/Module/Admin/Channels.php',
|
||||
'Zotlabs\\Module\\Admin\\Cover_photo' => $baseDir . '/Zotlabs/Module/Admin/Cover_photo.php',
|
||||
'Zotlabs\\Module\\Admin\\Dbsync' => $baseDir . '/Zotlabs/Module/Admin/Dbsync.php',
|
||||
'Zotlabs\\Module\\Admin\\Features' => $baseDir . '/Zotlabs/Module/Admin/Features.php',
|
||||
'Zotlabs\\Module\\Admin\\Logs' => $baseDir . '/Zotlabs/Module/Admin/Logs.php',
|
||||
'Zotlabs\\Module\\Admin\\Profile_photo' => $baseDir . '/Zotlabs/Module/Admin/Profile_photo.php',
|
||||
'Zotlabs\\Module\\Admin\\Profs' => $baseDir . '/Zotlabs/Module/Admin/Profs.php',
|
||||
|
@ -1194,6 +1201,7 @@ return array(
|
|||
'Zotlabs\\Module\\Cloud_tiles' => $baseDir . '/Zotlabs/Module/Cloud_tiles.php',
|
||||
'Zotlabs\\Module\\Comment_control' => $baseDir . '/Zotlabs/Module/Comment_control.php',
|
||||
'Zotlabs\\Module\\Common' => $baseDir . '/Zotlabs/Module/Common.php',
|
||||
'Zotlabs\\Module\\Connac' => $baseDir . '/Zotlabs/Module/Connac.php',
|
||||
'Zotlabs\\Module\\Connect' => $baseDir . '/Zotlabs/Module/Connect.php',
|
||||
'Zotlabs\\Module\\Connections' => $baseDir . '/Zotlabs/Module/Connections.php',
|
||||
'Zotlabs\\Module\\Connedit' => $baseDir . '/Zotlabs/Module/Connedit.php',
|
||||
|
@ -1220,7 +1228,9 @@ return array(
|
|||
'Zotlabs\\Module\\Event' => $baseDir . '/Zotlabs/Module/Event.php',
|
||||
'Zotlabs\\Module\\Events' => $baseDir . '/Zotlabs/Module/Events.php',
|
||||
'Zotlabs\\Module\\Expire' => $baseDir . '/Zotlabs/Module/Expire.php',
|
||||
'Zotlabs\\Module\\Fastping' => $baseDir . '/Zotlabs/Module/Fastping.php',
|
||||
'Zotlabs\\Module\\Fbrowser' => $baseDir . '/Zotlabs/Module/Fbrowser.php',
|
||||
'Zotlabs\\Module\\Fedi_id' => $baseDir . '/Zotlabs/Module/Fedi_id.php',
|
||||
'Zotlabs\\Module\\Feed' => $baseDir . '/Zotlabs/Module/Feed.php',
|
||||
'Zotlabs\\Module\\File_upload' => $baseDir . '/Zotlabs/Module/File_upload.php',
|
||||
'Zotlabs\\Module\\Filer' => $baseDir . '/Zotlabs/Module/Filer.php',
|
||||
|
@ -1259,6 +1269,7 @@ return array(
|
|||
'Zotlabs\\Module\\Lostpass' => $baseDir . '/Zotlabs/Module/Lostpass.php',
|
||||
'Zotlabs\\Module\\Magic' => $baseDir . '/Zotlabs/Module/Magic.php',
|
||||
'Zotlabs\\Module\\Manage' => $baseDir . '/Zotlabs/Module/Manage.php',
|
||||
'Zotlabs\\Module\\Manifest' => $baseDir . '/Zotlabs/Module/Manifest.php',
|
||||
'Zotlabs\\Module\\Markup' => $baseDir . '/Zotlabs/Module/Markup.php',
|
||||
'Zotlabs\\Module\\Menu' => $baseDir . '/Zotlabs/Module/Menu.php',
|
||||
'Zotlabs\\Module\\Mitem' => $baseDir . '/Zotlabs/Module/Mitem.php',
|
||||
|
@ -1285,6 +1296,7 @@ return array(
|
|||
'Zotlabs\\Module\\Photos' => $baseDir . '/Zotlabs/Module/Photos.php',
|
||||
'Zotlabs\\Module\\Pin' => $baseDir . '/Zotlabs/Module/Pin.php',
|
||||
'Zotlabs\\Module\\Ping' => $baseDir . '/Zotlabs/Module/Ping.php',
|
||||
'Zotlabs\\Module\\Plike' => $baseDir . '/Zotlabs/Module/Plike.php',
|
||||
'Zotlabs\\Module\\Poco' => $baseDir . '/Zotlabs/Module/Poco.php',
|
||||
'Zotlabs\\Module\\Poke' => $baseDir . '/Zotlabs/Module/Poke.php',
|
||||
'Zotlabs\\Module\\Poster' => $baseDir . '/Zotlabs/Module/Poster.php',
|
||||
|
@ -1324,7 +1336,6 @@ return array(
|
|||
'Zotlabs\\Module\\Share' => $baseDir . '/Zotlabs/Module/Share.php',
|
||||
'Zotlabs\\Module\\Sharedwithme' => $baseDir . '/Zotlabs/Module/Sharedwithme.php',
|
||||
'Zotlabs\\Module\\Siteinfo' => $baseDir . '/Zotlabs/Module/Siteinfo.php',
|
||||
'Zotlabs\\Module\\Sitelist' => $baseDir . '/Zotlabs/Module/Sitelist.php',
|
||||
'Zotlabs\\Module\\Sites' => $baseDir . '/Zotlabs/Module/Sites.php',
|
||||
'Zotlabs\\Module\\Smilies' => $baseDir . '/Zotlabs/Module/Smilies.php',
|
||||
'Zotlabs\\Module\\Sources' => $baseDir . '/Zotlabs/Module/Sources.php',
|
||||
|
@ -1632,6 +1643,12 @@ return array(
|
|||
'Zotlabs\\Update\\_1246' => $baseDir . '/Zotlabs/Update/_1246.php',
|
||||
'Zotlabs\\Update\\_1247' => $baseDir . '/Zotlabs/Update/_1247.php',
|
||||
'Zotlabs\\Update\\_1248' => $baseDir . '/Zotlabs/Update/_1248.php',
|
||||
'Zotlabs\\Update\\_1249' => $baseDir . '/Zotlabs/Update/_1249.php',
|
||||
'Zotlabs\\Update\\_1250' => $baseDir . '/Zotlabs/Update/_1250.php',
|
||||
'Zotlabs\\Update\\_1251' => $baseDir . '/Zotlabs/Update/_1251.php',
|
||||
'Zotlabs\\Update\\_1252' => $baseDir . '/Zotlabs/Update/_1252.php',
|
||||
'Zotlabs\\Update\\_1253' => $baseDir . '/Zotlabs/Update/_1253.php',
|
||||
'Zotlabs\\Update\\_1254' => $baseDir . '/Zotlabs/Update/_1254.php',
|
||||
'Zotlabs\\Web\\Controller' => $baseDir . '/Zotlabs/Web/Controller.php',
|
||||
'Zotlabs\\Web\\HTTPHeaders' => $baseDir . '/Zotlabs/Web/HTTPHeaders.php',
|
||||
'Zotlabs\\Web\\HTTPSig' => $baseDir . '/Zotlabs/Web/HTTPSig.php',
|
||||
|
|
4
vendor/composer/autoload_files.php
vendored
4
vendor/composer/autoload_files.php
vendored
|
@ -7,16 +7,14 @@ $baseDir = dirname($vendorDir);
|
|||
|
||||
return array(
|
||||
'383eaff206634a77a1be54e64e6459c7' => $vendorDir . '/sabre/uri/lib/functions.php',
|
||||
'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
|
||||
'2b9d0f43f9552984cfa82fee95491826' => $vendorDir . '/sabre/event/lib/coroutine.php',
|
||||
'd81bab31d3feb45bfe2f283ea3c8fdf7' => $vendorDir . '/sabre/event/lib/Loop/functions.php',
|
||||
'a1cce3d26cc15c00fcd0b3354bd72c88' => $vendorDir . '/sabre/event/lib/Promise/functions.php',
|
||||
'3569eecfeed3bcf0bad3c998a494ecb8' => $vendorDir . '/sabre/xml/lib/Deserializer/functions.php',
|
||||
'93aa591bc4ca510c520999e34229ee79' => $vendorDir . '/sabre/xml/lib/Serializer/functions.php',
|
||||
'6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
|
||||
'0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php',
|
||||
'ebdb698ed4152ae445614b69b5e4bb6a' => $vendorDir . '/sabre/http/lib/functions.php',
|
||||
'320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
|
||||
'ebdb698ed4152ae445614b69b5e4bb6a' => $vendorDir . '/sabre/http/lib/functions.php',
|
||||
'2cffec82183ee1cea088009cef9a6fc3' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
|
||||
'd08bec471a180204a14ef3c91e951f99' => $vendorDir . '/p3k/emoji-detector/src/Emoji.php',
|
||||
'decc78cc4436b1292c6c0d151b19445c' => $vendorDir . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
|
||||
|
|
3
vendor/composer/autoload_psr4.php
vendored
3
vendor/composer/autoload_psr4.php
vendored
|
@ -9,9 +9,8 @@ return array(
|
|||
'voku\\' => array($vendorDir . '/voku/portable-ascii/src/voku', $vendorDir . '/voku/stop-words/src/voku'),
|
||||
'phpseclib\\' => array($vendorDir . '/phpseclib/phpseclib/phpseclib'),
|
||||
'Zotlabs\\' => array($baseDir . '/Zotlabs'),
|
||||
'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'),
|
||||
'Symfony\\Polyfill\\Php73\\' => array($vendorDir . '/symfony/polyfill-php73'),
|
||||
'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
|
||||
'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'),
|
||||
'Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'),
|
||||
'Symfony\\Component\\OptionsResolver\\' => array($vendorDir . '/symfony/options-resolver'),
|
||||
'Sabre\\Xml\\' => array($vendorDir . '/sabre/xml/lib'),
|
||||
|
|
54
vendor/composer/autoload_static.php
vendored
54
vendor/composer/autoload_static.php
vendored
|
@ -8,16 +8,14 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
{
|
||||
public static $files = array (
|
||||
'383eaff206634a77a1be54e64e6459c7' => __DIR__ . '/..' . '/sabre/uri/lib/functions.php',
|
||||
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
|
||||
'2b9d0f43f9552984cfa82fee95491826' => __DIR__ . '/..' . '/sabre/event/lib/coroutine.php',
|
||||
'd81bab31d3feb45bfe2f283ea3c8fdf7' => __DIR__ . '/..' . '/sabre/event/lib/Loop/functions.php',
|
||||
'a1cce3d26cc15c00fcd0b3354bd72c88' => __DIR__ . '/..' . '/sabre/event/lib/Promise/functions.php',
|
||||
'3569eecfeed3bcf0bad3c998a494ecb8' => __DIR__ . '/..' . '/sabre/xml/lib/Deserializer/functions.php',
|
||||
'93aa591bc4ca510c520999e34229ee79' => __DIR__ . '/..' . '/sabre/xml/lib/Serializer/functions.php',
|
||||
'6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
|
||||
'0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php',
|
||||
'ebdb698ed4152ae445614b69b5e4bb6a' => __DIR__ . '/..' . '/sabre/http/lib/functions.php',
|
||||
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
|
||||
'ebdb698ed4152ae445614b69b5e4bb6a' => __DIR__ . '/..' . '/sabre/http/lib/functions.php',
|
||||
'2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
|
||||
'd08bec471a180204a14ef3c91e951f99' => __DIR__ . '/..' . '/p3k/emoji-detector/src/Emoji.php',
|
||||
'decc78cc4436b1292c6c0d151b19445c' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
|
||||
|
@ -39,9 +37,8 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
),
|
||||
'S' =>
|
||||
array (
|
||||
'Symfony\\Polyfill\\Php80\\' => 23,
|
||||
'Symfony\\Polyfill\\Php73\\' => 23,
|
||||
'Symfony\\Polyfill\\Ctype\\' => 23,
|
||||
'Symfony\\Component\\Yaml\\' => 23,
|
||||
'Symfony\\Component\\Process\\' => 26,
|
||||
'Symfony\\Component\\OptionsResolver\\' => 34,
|
||||
'Sabre\\Xml\\' => 10,
|
||||
|
@ -100,18 +97,14 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
array (
|
||||
0 => __DIR__ . '/../..' . '/Zotlabs',
|
||||
),
|
||||
'Symfony\\Polyfill\\Php80\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/symfony/polyfill-php80',
|
||||
),
|
||||
'Symfony\\Polyfill\\Php73\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/symfony/polyfill-php73',
|
||||
),
|
||||
'Symfony\\Polyfill\\Ctype\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/symfony/polyfill-ctype',
|
||||
),
|
||||
'Symfony\\Component\\Yaml\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/symfony/yaml',
|
||||
),
|
||||
'Symfony\\Component\\Process\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/symfony/process',
|
||||
|
@ -223,7 +216,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
);
|
||||
|
||||
public static $classMap = array (
|
||||
'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
|
||||
'CommerceGuys\\Intl\\Calculator' => __DIR__ . '/..' . '/commerceguys/intl/src/Calculator.php',
|
||||
'CommerceGuys\\Intl\\Country\\Country' => __DIR__ . '/..' . '/commerceguys/intl/src/Country/Country.php',
|
||||
'CommerceGuys\\Intl\\Country\\CountryEntityInterface' => __DIR__ . '/..' . '/commerceguys/intl/src/Country/CountryEntityInterface.php',
|
||||
|
@ -497,7 +489,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
'HTMLPurifier_VarParser_Flexible' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Flexible.php',
|
||||
'HTMLPurifier_VarParser_Native' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Native.php',
|
||||
'HTMLPurifier_Zipper' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Zipper.php',
|
||||
'JsonException' => __DIR__ . '/..' . '/symfony/polyfill-php73/Resources/stubs/JsonException.php',
|
||||
'League\\HTMLToMarkdown\\Configuration' => __DIR__ . '/..' . '/league/html-to-markdown/src/Configuration.php',
|
||||
'League\\HTMLToMarkdown\\ConfigurationAwareInterface' => __DIR__ . '/..' . '/league/html-to-markdown/src/ConfigurationAwareInterface.php',
|
||||
'League\\HTMLToMarkdown\\Converter\\BlockquoteConverter' => __DIR__ . '/..' . '/league/html-to-markdown/src/Converter/BlockquoteConverter.php',
|
||||
|
@ -652,6 +643,9 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
'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\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
|
||||
'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',
|
||||
'Ramsey\\Uuid\\BinaryUtils' => __DIR__ . '/..' . '/ramsey/uuid/src/BinaryUtils.php',
|
||||
'Ramsey\\Uuid\\Builder\\DefaultUuidBuilder' => __DIR__ . '/..' . '/ramsey/uuid/src/Builder/DefaultUuidBuilder.php',
|
||||
'Ramsey\\Uuid\\Builder\\DegradedUuidBuilder' => __DIR__ . '/..' . '/ramsey/uuid/src/Builder/DegradedUuidBuilder.php',
|
||||
|
@ -1234,7 +1228,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
'Smarty_Template_Source' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_template_source.php',
|
||||
'Smarty_Undefined_Variable' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_undefined_variable.php',
|
||||
'Smarty_Variable' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_variable.php',
|
||||
'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
|
||||
'Symfony\\Component\\OptionsResolver\\Debug\\OptionsResolverIntrospector' => __DIR__ . '/..' . '/symfony/options-resolver/Debug/OptionsResolverIntrospector.php',
|
||||
'Symfony\\Component\\OptionsResolver\\Exception\\AccessException' => __DIR__ . '/..' . '/symfony/options-resolver/Exception/AccessException.php',
|
||||
'Symfony\\Component\\OptionsResolver\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/options-resolver/Exception/ExceptionInterface.php',
|
||||
|
@ -1265,15 +1258,23 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
'Symfony\\Component\\Process\\Pipes\\WindowsPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/WindowsPipes.php',
|
||||
'Symfony\\Component\\Process\\Process' => __DIR__ . '/..' . '/symfony/process/Process.php',
|
||||
'Symfony\\Component\\Process\\ProcessUtils' => __DIR__ . '/..' . '/symfony/process/ProcessUtils.php',
|
||||
'Symfony\\Component\\Yaml\\Command\\LintCommand' => __DIR__ . '/..' . '/symfony/yaml/Command/LintCommand.php',
|
||||
'Symfony\\Component\\Yaml\\Dumper' => __DIR__ . '/..' . '/symfony/yaml/Dumper.php',
|
||||
'Symfony\\Component\\Yaml\\Escaper' => __DIR__ . '/..' . '/symfony/yaml/Escaper.php',
|
||||
'Symfony\\Component\\Yaml\\Exception\\DumpException' => __DIR__ . '/..' . '/symfony/yaml/Exception/DumpException.php',
|
||||
'Symfony\\Component\\Yaml\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/yaml/Exception/ExceptionInterface.php',
|
||||
'Symfony\\Component\\Yaml\\Exception\\ParseException' => __DIR__ . '/..' . '/symfony/yaml/Exception/ParseException.php',
|
||||
'Symfony\\Component\\Yaml\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/yaml/Exception/RuntimeException.php',
|
||||
'Symfony\\Component\\Yaml\\Inline' => __DIR__ . '/..' . '/symfony/yaml/Inline.php',
|
||||
'Symfony\\Component\\Yaml\\Parser' => __DIR__ . '/..' . '/symfony/yaml/Parser.php',
|
||||
'Symfony\\Component\\Yaml\\Tag\\TaggedValue' => __DIR__ . '/..' . '/symfony/yaml/Tag/TaggedValue.php',
|
||||
'Symfony\\Component\\Yaml\\Unescaper' => __DIR__ . '/..' . '/symfony/yaml/Unescaper.php',
|
||||
'Symfony\\Component\\Yaml\\Yaml' => __DIR__ . '/..' . '/symfony/yaml/Yaml.php',
|
||||
'Symfony\\Polyfill\\Ctype\\Ctype' => __DIR__ . '/..' . '/symfony/polyfill-ctype/Ctype.php',
|
||||
'Symfony\\Polyfill\\Php73\\Php73' => __DIR__ . '/..' . '/symfony/polyfill-php73/Php73.php',
|
||||
'Symfony\\Polyfill\\Php80\\Php80' => __DIR__ . '/..' . '/symfony/polyfill-php80/Php80.php',
|
||||
'TPC_yyStackEntry' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_configfileparser.php',
|
||||
'TP_yyStackEntry' => __DIR__ . '/..' . '/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php',
|
||||
'URLify' => __DIR__ . '/..' . '/jbroadway/urlify/URLify.php',
|
||||
'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
|
||||
'UploadHandler' => __DIR__ . '/..' . '/blueimp/jquery-file-upload/server/php/UploadHandler.php',
|
||||
'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
|
||||
'Zotlabs\\Access\\AccessControl' => __DIR__ . '/../..' . '/Zotlabs/Access/AccessControl.php',
|
||||
'Zotlabs\\Access\\PermissionLimits' => __DIR__ . '/../..' . '/Zotlabs/Access/PermissionLimits.php',
|
||||
'Zotlabs\\Access\\PermissionRoles' => __DIR__ . '/../..' . '/Zotlabs/Access/PermissionRoles.php',
|
||||
|
@ -1374,7 +1375,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
'Zotlabs\\Module\\Admin\\Channels' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Channels.php',
|
||||
'Zotlabs\\Module\\Admin\\Cover_photo' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Cover_photo.php',
|
||||
'Zotlabs\\Module\\Admin\\Dbsync' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Dbsync.php',
|
||||
'Zotlabs\\Module\\Admin\\Features' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Features.php',
|
||||
'Zotlabs\\Module\\Admin\\Logs' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Logs.php',
|
||||
'Zotlabs\\Module\\Admin\\Profile_photo' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Profile_photo.php',
|
||||
'Zotlabs\\Module\\Admin\\Profs' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Profs.php',
|
||||
|
@ -1411,6 +1411,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
'Zotlabs\\Module\\Cloud_tiles' => __DIR__ . '/../..' . '/Zotlabs/Module/Cloud_tiles.php',
|
||||
'Zotlabs\\Module\\Comment_control' => __DIR__ . '/../..' . '/Zotlabs/Module/Comment_control.php',
|
||||
'Zotlabs\\Module\\Common' => __DIR__ . '/../..' . '/Zotlabs/Module/Common.php',
|
||||
'Zotlabs\\Module\\Connac' => __DIR__ . '/../..' . '/Zotlabs/Module/Connac.php',
|
||||
'Zotlabs\\Module\\Connect' => __DIR__ . '/../..' . '/Zotlabs/Module/Connect.php',
|
||||
'Zotlabs\\Module\\Connections' => __DIR__ . '/../..' . '/Zotlabs/Module/Connections.php',
|
||||
'Zotlabs\\Module\\Connedit' => __DIR__ . '/../..' . '/Zotlabs/Module/Connedit.php',
|
||||
|
@ -1437,7 +1438,9 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
'Zotlabs\\Module\\Event' => __DIR__ . '/../..' . '/Zotlabs/Module/Event.php',
|
||||
'Zotlabs\\Module\\Events' => __DIR__ . '/../..' . '/Zotlabs/Module/Events.php',
|
||||
'Zotlabs\\Module\\Expire' => __DIR__ . '/../..' . '/Zotlabs/Module/Expire.php',
|
||||
'Zotlabs\\Module\\Fastping' => __DIR__ . '/../..' . '/Zotlabs/Module/Fastping.php',
|
||||
'Zotlabs\\Module\\Fbrowser' => __DIR__ . '/../..' . '/Zotlabs/Module/Fbrowser.php',
|
||||
'Zotlabs\\Module\\Fedi_id' => __DIR__ . '/../..' . '/Zotlabs/Module/Fedi_id.php',
|
||||
'Zotlabs\\Module\\Feed' => __DIR__ . '/../..' . '/Zotlabs/Module/Feed.php',
|
||||
'Zotlabs\\Module\\File_upload' => __DIR__ . '/../..' . '/Zotlabs/Module/File_upload.php',
|
||||
'Zotlabs\\Module\\Filer' => __DIR__ . '/../..' . '/Zotlabs/Module/Filer.php',
|
||||
|
@ -1476,6 +1479,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
'Zotlabs\\Module\\Lostpass' => __DIR__ . '/../..' . '/Zotlabs/Module/Lostpass.php',
|
||||
'Zotlabs\\Module\\Magic' => __DIR__ . '/../..' . '/Zotlabs/Module/Magic.php',
|
||||
'Zotlabs\\Module\\Manage' => __DIR__ . '/../..' . '/Zotlabs/Module/Manage.php',
|
||||
'Zotlabs\\Module\\Manifest' => __DIR__ . '/../..' . '/Zotlabs/Module/Manifest.php',
|
||||
'Zotlabs\\Module\\Markup' => __DIR__ . '/../..' . '/Zotlabs/Module/Markup.php',
|
||||
'Zotlabs\\Module\\Menu' => __DIR__ . '/../..' . '/Zotlabs/Module/Menu.php',
|
||||
'Zotlabs\\Module\\Mitem' => __DIR__ . '/../..' . '/Zotlabs/Module/Mitem.php',
|
||||
|
@ -1502,6 +1506,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
'Zotlabs\\Module\\Photos' => __DIR__ . '/../..' . '/Zotlabs/Module/Photos.php',
|
||||
'Zotlabs\\Module\\Pin' => __DIR__ . '/../..' . '/Zotlabs/Module/Pin.php',
|
||||
'Zotlabs\\Module\\Ping' => __DIR__ . '/../..' . '/Zotlabs/Module/Ping.php',
|
||||
'Zotlabs\\Module\\Plike' => __DIR__ . '/../..' . '/Zotlabs/Module/Plike.php',
|
||||
'Zotlabs\\Module\\Poco' => __DIR__ . '/../..' . '/Zotlabs/Module/Poco.php',
|
||||
'Zotlabs\\Module\\Poke' => __DIR__ . '/../..' . '/Zotlabs/Module/Poke.php',
|
||||
'Zotlabs\\Module\\Poster' => __DIR__ . '/../..' . '/Zotlabs/Module/Poster.php',
|
||||
|
@ -1541,7 +1546,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
'Zotlabs\\Module\\Share' => __DIR__ . '/../..' . '/Zotlabs/Module/Share.php',
|
||||
'Zotlabs\\Module\\Sharedwithme' => __DIR__ . '/../..' . '/Zotlabs/Module/Sharedwithme.php',
|
||||
'Zotlabs\\Module\\Siteinfo' => __DIR__ . '/../..' . '/Zotlabs/Module/Siteinfo.php',
|
||||
'Zotlabs\\Module\\Sitelist' => __DIR__ . '/../..' . '/Zotlabs/Module/Sitelist.php',
|
||||
'Zotlabs\\Module\\Sites' => __DIR__ . '/../..' . '/Zotlabs/Module/Sites.php',
|
||||
'Zotlabs\\Module\\Smilies' => __DIR__ . '/../..' . '/Zotlabs/Module/Smilies.php',
|
||||
'Zotlabs\\Module\\Sources' => __DIR__ . '/../..' . '/Zotlabs/Module/Sources.php',
|
||||
|
@ -1849,6 +1853,12 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
|
|||
'Zotlabs\\Update\\_1246' => __DIR__ . '/../..' . '/Zotlabs/Update/_1246.php',
|
||||
'Zotlabs\\Update\\_1247' => __DIR__ . '/../..' . '/Zotlabs/Update/_1247.php',
|
||||
'Zotlabs\\Update\\_1248' => __DIR__ . '/../..' . '/Zotlabs/Update/_1248.php',
|
||||
'Zotlabs\\Update\\_1249' => __DIR__ . '/../..' . '/Zotlabs/Update/_1249.php',
|
||||
'Zotlabs\\Update\\_1250' => __DIR__ . '/../..' . '/Zotlabs/Update/_1250.php',
|
||||
'Zotlabs\\Update\\_1251' => __DIR__ . '/../..' . '/Zotlabs/Update/_1251.php',
|
||||
'Zotlabs\\Update\\_1252' => __DIR__ . '/../..' . '/Zotlabs/Update/_1252.php',
|
||||
'Zotlabs\\Update\\_1253' => __DIR__ . '/../..' . '/Zotlabs/Update/_1253.php',
|
||||
'Zotlabs\\Update\\_1254' => __DIR__ . '/../..' . '/Zotlabs/Update/_1254.php',
|
||||
'Zotlabs\\Web\\Controller' => __DIR__ . '/../..' . '/Zotlabs/Web/Controller.php',
|
||||
'Zotlabs\\Web\\HTTPHeaders' => __DIR__ . '/../..' . '/Zotlabs/Web/HTTPHeaders.php',
|
||||
'Zotlabs\\Web\\HTTPSig' => __DIR__ . '/../..' . '/Zotlabs/Web/HTTPSig.php',
|
||||
|
|
517
vendor/composer/installed.json
vendored
517
vendor/composer/installed.json
vendored
|
@ -2,20 +2,20 @@
|
|||
"packages": [
|
||||
{
|
||||
"name": "blueimp/jquery-file-upload",
|
||||
"version": "v10.31.0",
|
||||
"version_normalized": "10.31.0.0",
|
||||
"version": "v10.32.0",
|
||||
"version_normalized": "10.32.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/vkhramtsov/jQuery-File-Upload.git",
|
||||
"reference": "0740f81829698b84efe17e72501e0f420ea0d611"
|
||||
"reference": "20f6c4a07a6fbff22d79228c893eb1746d2d8962"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/vkhramtsov/jQuery-File-Upload/zipball/0740f81829698b84efe17e72501e0f420ea0d611",
|
||||
"reference": "0740f81829698b84efe17e72501e0f420ea0d611",
|
||||
"url": "https://api.github.com/repos/vkhramtsov/jQuery-File-Upload/zipball/20f6c4a07a6fbff22d79228c893eb1746d2d8962",
|
||||
"reference": "20f6c4a07a6fbff22d79228c893eb1746d2d8962",
|
||||
"shasum": ""
|
||||
},
|
||||
"time": "2020-07-13T05:42:06+00:00",
|
||||
"time": "2021-09-25T16:27:13+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
|
@ -56,6 +56,10 @@
|
|||
"upload",
|
||||
"widget"
|
||||
],
|
||||
"support": {
|
||||
"forum": "https://stackoverflow.com/questions/tagged/blueimp+jquery+file-upload",
|
||||
"source": "https://github.com/vkhramtsov/jQuery-File-Upload/tree/v10.32.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/blueimp",
|
||||
|
@ -174,29 +178,29 @@
|
|||
},
|
||||
{
|
||||
"name": "doctrine/collections",
|
||||
"version": "1.6.7",
|
||||
"version_normalized": "1.6.7.0",
|
||||
"version": "1.6.8",
|
||||
"version_normalized": "1.6.8.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/collections.git",
|
||||
"reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a"
|
||||
"reference": "1958a744696c6bb3bb0d28db2611dc11610e78af"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/collections/zipball/55f8b799269a1a472457bd1a41b4f379d4cfba4a",
|
||||
"reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a",
|
||||
"url": "https://api.github.com/repos/doctrine/collections/zipball/1958a744696c6bb3bb0d28db2611dc11610e78af",
|
||||
"reference": "1958a744696c6bb3bb0d28db2611dc11610e78af",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1.3 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"phpstan/phpstan-shim": "^0.9.2",
|
||||
"phpunit/phpunit": "^7.0",
|
||||
"vimeo/psalm": "^3.8.1"
|
||||
"doctrine/coding-standard": "^9.0",
|
||||
"phpstan/phpstan": "^0.12",
|
||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5",
|
||||
"vimeo/psalm": "^4.2.1"
|
||||
},
|
||||
"time": "2020-07-27T17:53:49+00:00",
|
||||
"time": "2021-08-10T18:51:53+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
|
@ -238,30 +242,31 @@
|
|||
"iterators",
|
||||
"php"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/doctrine/collections/issues",
|
||||
"source": "https://github.com/doctrine/collections/tree/1.6.8"
|
||||
},
|
||||
"install-path": "../doctrine/collections"
|
||||
},
|
||||
{
|
||||
"name": "ezyang/htmlpurifier",
|
||||
"version": "v4.13.0",
|
||||
"version_normalized": "4.13.0.0",
|
||||
"version": "v4.14.0",
|
||||
"version_normalized": "4.14.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ezyang/htmlpurifier.git",
|
||||
"reference": "08e27c97e4c6ed02f37c5b2b20488046c8d90d75"
|
||||
"reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/08e27c97e4c6ed02f37c5b2b20488046c8d90d75",
|
||||
"reference": "08e27c97e4c6ed02f37c5b2b20488046c8d90d75",
|
||||
"url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/12ab42bd6e742c70c0a52f7b82477fcd44e64b75",
|
||||
"reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"simpletest/simpletest": "dev-master#72de02a7b80c6bb8864ef9bf66d41d2f58f826bd"
|
||||
},
|
||||
"time": "2020-06-29T00:56:53+00:00",
|
||||
"time": "2021-12-25T01:21:49+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
|
@ -291,34 +296,29 @@
|
|||
"keywords": [
|
||||
"html"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/ezyang/htmlpurifier/issues",
|
||||
"source": "https://github.com/ezyang/htmlpurifier/tree/v4.14.0"
|
||||
},
|
||||
"install-path": "../ezyang/htmlpurifier"
|
||||
},
|
||||
{
|
||||
"name": "forkawesome/fork-awesome",
|
||||
"version": "1.1.7",
|
||||
"version_normalized": "1.1.7.0",
|
||||
"version": "1.2",
|
||||
"version_normalized": "1.2.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ForkAwesome/Fork-Awesome.git",
|
||||
"reference": "326af9c8bee0c80ff4c00cb2fadd4f1edd2a08c3"
|
||||
"reference": "1e3849530d0266ece3a883649e1398414b92241d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ForkAwesome/Fork-Awesome/zipball/326af9c8bee0c80ff4c00cb2fadd4f1edd2a08c3",
|
||||
"reference": "326af9c8bee0c80ff4c00cb2fadd4f1edd2a08c3",
|
||||
"url": "https://api.github.com/repos/ForkAwesome/Fork-Awesome/zipball/1e3849530d0266ece3a883649e1398414b92241d",
|
||||
"reference": "1e3849530d0266ece3a883649e1398414b92241d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require-dev": {
|
||||
"jekyll": "1.0.2",
|
||||
"lessc": "1.4.2"
|
||||
},
|
||||
"time": "2019-02-28T15:21:34+00:00",
|
||||
"time": "2021-08-26T18:46:39+00:00",
|
||||
"type": "component",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
|
@ -328,11 +328,11 @@
|
|||
"authors": [
|
||||
{
|
||||
"name": "Fork Awesome Community",
|
||||
"homepage": "https://forkawesome.github.io"
|
||||
"homepage": "https://forkaweso.me"
|
||||
}
|
||||
],
|
||||
"description": "A fork of the iconic font and CSS framework",
|
||||
"homepage": "http://forkawesome.github.io/Fork-Awesome/",
|
||||
"homepage": "https://forkaweso.me",
|
||||
"keywords": [
|
||||
"FontAwesome",
|
||||
"awesome",
|
||||
|
@ -341,6 +341,10 @@
|
|||
"forkawesome",
|
||||
"icon"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/ForkAwesome/Fork-Awesome/issues",
|
||||
"source": "https://github.com/ForkAwesome/Fork-Awesome/tree/1.2"
|
||||
},
|
||||
"install-path": "../forkawesome/fork-awesome"
|
||||
},
|
||||
{
|
||||
|
@ -541,17 +545,17 @@
|
|||
},
|
||||
{
|
||||
"name": "masterminds/html5",
|
||||
"version": "2.7.4",
|
||||
"version_normalized": "2.7.4.0",
|
||||
"version": "2.7.5",
|
||||
"version_normalized": "2.7.5.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Masterminds/html5-php.git",
|
||||
"reference": "9227822783c75406cfe400984b2f095cdf03d417"
|
||||
"reference": "f640ac1bdddff06ea333a920c95bbad8872429ab"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Masterminds/html5-php/zipball/9227822783c75406cfe400984b2f095cdf03d417",
|
||||
"reference": "9227822783c75406cfe400984b2f095cdf03d417",
|
||||
"url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f640ac1bdddff06ea333a920c95bbad8872429ab",
|
||||
"reference": "f640ac1bdddff06ea333a920c95bbad8872429ab",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -561,9 +565,9 @@
|
|||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35"
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7"
|
||||
},
|
||||
"time": "2020-10-01T13:52:52+00:00",
|
||||
"time": "2021-07-01T14:25:37+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
|
@ -605,21 +609,25 @@
|
|||
"serializer",
|
||||
"xml"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/Masterminds/html5-php/issues",
|
||||
"source": "https://github.com/Masterminds/html5-php/tree/2.7.5"
|
||||
},
|
||||
"install-path": "../masterminds/html5"
|
||||
},
|
||||
{
|
||||
"name": "michelf/php-markdown",
|
||||
"version": "1.9.0",
|
||||
"version_normalized": "1.9.0.0",
|
||||
"version": "1.9.1",
|
||||
"version_normalized": "1.9.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/michelf/php-markdown.git",
|
||||
"reference": "c83178d49e372ca967d1a8c77ae4e051b3a3c75c"
|
||||
"reference": "5024d623c1a057dcd2d076d25b7d270a1d0d55f3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/michelf/php-markdown/zipball/c83178d49e372ca967d1a8c77ae4e051b3a3c75c",
|
||||
"reference": "c83178d49e372ca967d1a8c77ae4e051b3a3c75c",
|
||||
"url": "https://api.github.com/repos/michelf/php-markdown/zipball/5024d623c1a057dcd2d076d25b7d270a1d0d55f3",
|
||||
"reference": "5024d623c1a057dcd2d076d25b7d270a1d0d55f3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -628,7 +636,7 @@
|
|||
"require-dev": {
|
||||
"phpunit/phpunit": ">=4.3 <5.8"
|
||||
},
|
||||
"time": "2019-12-02T02:32:27+00:00",
|
||||
"time": "2021-11-24T02:52:38+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
|
@ -657,6 +665,10 @@
|
|||
"keywords": [
|
||||
"markdown"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/michelf/php-markdown/issues",
|
||||
"source": "https://github.com/michelf/php-markdown/tree/1.9.1"
|
||||
},
|
||||
"install-path": "../michelf/php-markdown"
|
||||
},
|
||||
{
|
||||
|
@ -705,21 +717,21 @@
|
|||
},
|
||||
{
|
||||
"name": "paragonie/random_compat",
|
||||
"version": "v9.99.99",
|
||||
"version_normalized": "9.99.99.0",
|
||||
"version": "v9.99.100",
|
||||
"version_normalized": "9.99.100.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/paragonie/random_compat.git",
|
||||
"reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95"
|
||||
"reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
|
||||
"reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95",
|
||||
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a",
|
||||
"reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7"
|
||||
"php": ">= 7"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "4.*|5.*",
|
||||
|
@ -728,7 +740,7 @@
|
|||
"suggest": {
|
||||
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
|
||||
},
|
||||
"time": "2018-07-02T15:55:56+00:00",
|
||||
"time": "2020-10-15T08:29:30+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
|
@ -749,21 +761,26 @@
|
|||
"pseudorandom",
|
||||
"random"
|
||||
],
|
||||
"support": {
|
||||
"email": "info@paragonie.com",
|
||||
"issues": "https://github.com/paragonie/random_compat/issues",
|
||||
"source": "https://github.com/paragonie/random_compat"
|
||||
},
|
||||
"install-path": "../paragonie/random_compat"
|
||||
},
|
||||
{
|
||||
"name": "phpseclib/phpseclib",
|
||||
"version": "2.0.32",
|
||||
"version_normalized": "2.0.32.0",
|
||||
"version": "2.0.35",
|
||||
"version_normalized": "2.0.35.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpseclib/phpseclib.git",
|
||||
"reference": "f5c4c19880d45d0be3e7d24ae8ac434844a898cd"
|
||||
"reference": "4e16cf3f5f927a7d3f5317820af795c0366c0420"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/f5c4c19880d45d0be3e7d24ae8ac434844a898cd",
|
||||
"reference": "f5c4c19880d45d0be3e7d24ae8ac434844a898cd",
|
||||
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/4e16cf3f5f927a7d3f5317820af795c0366c0420",
|
||||
"reference": "4e16cf3f5f927a7d3f5317820af795c0366c0420",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -780,7 +797,7 @@
|
|||
"ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
|
||||
"ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
|
||||
},
|
||||
"time": "2021-06-12T12:12:59+00:00",
|
||||
"time": "2021-11-28T23:30:39+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "source",
|
||||
"autoload": {
|
||||
|
@ -845,7 +862,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/phpseclib/phpseclib/issues",
|
||||
"source": "https://github.com/phpseclib/phpseclib/tree/2.0.32"
|
||||
"source": "https://github.com/phpseclib/phpseclib/tree/2.0.35"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -918,23 +935,23 @@
|
|||
},
|
||||
{
|
||||
"name": "ramsey/uuid",
|
||||
"version": "3.9.3",
|
||||
"version_normalized": "3.9.3.0",
|
||||
"version": "3.9.6",
|
||||
"version_normalized": "3.9.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ramsey/uuid.git",
|
||||
"reference": "7e1633a6964b48589b142d60542f9ed31bd37a92"
|
||||
"reference": "ffa80ab953edd85d5b6c004f96181a538aad35a3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ramsey/uuid/zipball/7e1633a6964b48589b142d60542f9ed31bd37a92",
|
||||
"reference": "7e1633a6964b48589b142d60542f9ed31bd37a92",
|
||||
"url": "https://api.github.com/repos/ramsey/uuid/zipball/ffa80ab953edd85d5b6c004f96181a538aad35a3",
|
||||
"reference": "ffa80ab953edd85d5b6c004f96181a538aad35a3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"paragonie/random_compat": "^1 | ^2 | 9.99.99",
|
||||
"php": "^5.4 | ^7 | ^8",
|
||||
"paragonie/random_compat": "^1 | ^2 | ^9.99.99",
|
||||
"php": "^5.4 | ^7.0 | ^8.0",
|
||||
"symfony/polyfill-ctype": "^1.8"
|
||||
},
|
||||
"replace": {
|
||||
|
@ -943,14 +960,16 @@
|
|||
"require-dev": {
|
||||
"codeception/aspect-mock": "^1 | ^2",
|
||||
"doctrine/annotations": "^1.2",
|
||||
"goaop/framework": "1.0.0-alpha.2 | ^1 | ^2.1",
|
||||
"jakub-onderka/php-parallel-lint": "^1",
|
||||
"goaop/framework": "1.0.0-alpha.2 | ^1 | >=2.1.0 <=2.3.2",
|
||||
"mockery/mockery": "^0.9.11 | ^1",
|
||||
"moontoast/math": "^1.1",
|
||||
"nikic/php-parser": "<=4.5.0",
|
||||
"paragonie/random-lib": "^2",
|
||||
"php-mock/php-mock-phpunit": "^0.3 | ^1.1",
|
||||
"phpunit/phpunit": "^4.8 | ^5.4 | ^6.5",
|
||||
"squizlabs/php_codesniffer": "^3.5"
|
||||
"php-mock/php-mock-phpunit": "^0.3 | ^1.1 | ^2.6",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3",
|
||||
"phpunit/phpunit": ">=4.8.36 <9.0.0 | >=9.3.0",
|
||||
"squizlabs/php_codesniffer": "^3.5",
|
||||
"yoast/phpunit-polyfills": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-ctype": "Provides support for PHP Ctype functions",
|
||||
|
@ -962,7 +981,7 @@
|
|||
"ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid",
|
||||
"ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
|
||||
},
|
||||
"time": "2020-02-21T04:36:14+00:00",
|
||||
"time": "2021-09-25T23:07:42+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
|
@ -1004,6 +1023,22 @@
|
|||
"identifier",
|
||||
"uuid"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/ramsey/uuid/issues",
|
||||
"rss": "https://github.com/ramsey/uuid/releases.atom",
|
||||
"source": "https://github.com/ramsey/uuid",
|
||||
"wiki": "https://github.com/ramsey/uuid/wiki"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/ramsey",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/ramsey/uuid",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"install-path": "../ramsey/uuid"
|
||||
},
|
||||
{
|
||||
|
@ -1489,17 +1524,17 @@
|
|||
},
|
||||
{
|
||||
"name": "smarty/smarty",
|
||||
"version": "v3.1.39",
|
||||
"version_normalized": "3.1.39.0",
|
||||
"version": "v3.1.40",
|
||||
"version_normalized": "3.1.40.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/smarty-php/smarty.git",
|
||||
"reference": "e27da524f7bcd7361e3ea5cdfa99c4378a7b5419"
|
||||
"reference": "9d4f8309ed49702e0d7152f9983c3a9c4b98eb9d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/smarty-php/smarty/zipball/e27da524f7bcd7361e3ea5cdfa99c4378a7b5419",
|
||||
"reference": "e27da524f7bcd7361e3ea5cdfa99c4378a7b5419",
|
||||
"url": "https://api.github.com/repos/smarty-php/smarty/zipball/9d4f8309ed49702e0d7152f9983c3a9c4b98eb9d",
|
||||
"reference": "9d4f8309ed49702e0d7152f9983c3a9c4b98eb9d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -1509,7 +1544,7 @@
|
|||
"phpunit/phpunit": "^7.5 || ^6.5 || ^5.7 || ^4.8",
|
||||
"smarty/smarty-lexer": "^3.1"
|
||||
},
|
||||
"time": "2021-02-17T21:57:51+00:00",
|
||||
"time": "2021-10-13T10:04:31+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
|
@ -1545,31 +1580,37 @@
|
|||
"keywords": [
|
||||
"templating"
|
||||
],
|
||||
"support": {
|
||||
"forum": "http://www.smarty.net/forums/",
|
||||
"irc": "irc://irc.freenode.org/smarty",
|
||||
"issues": "https://github.com/smarty-php/smarty/issues",
|
||||
"source": "https://github.com/smarty-php/smarty/tree/v3.1.40"
|
||||
},
|
||||
"install-path": "../smarty/smarty"
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
"version": "v2.4.0",
|
||||
"version_normalized": "2.4.0.0",
|
||||
"version": "v3.0.0",
|
||||
"version_normalized": "3.0.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/deprecation-contracts.git",
|
||||
"reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627"
|
||||
"reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627",
|
||||
"reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627",
|
||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/c726b64c1ccfe2896cb7df2e1331c357ad1c8ced",
|
||||
"reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=8.0.2"
|
||||
},
|
||||
"time": "2021-03-23T23:28:01+00:00",
|
||||
"time": "2021-11-01T23:48:49+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "2.4-dev"
|
||||
"dev-main": "3.0-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/contracts",
|
||||
|
@ -1599,7 +1640,7 @@
|
|||
"description": "A generic function and convention to trigger deprecation notices",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0"
|
||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1619,26 +1660,24 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/options-resolver",
|
||||
"version": "v5.3.0",
|
||||
"version_normalized": "5.3.0.0",
|
||||
"version": "v6.0.0",
|
||||
"version_normalized": "6.0.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/options-resolver.git",
|
||||
"reference": "162e886ca035869866d233a2bfef70cc28f9bbe5"
|
||||
"reference": "be0facf48a42a232d6c0daadd76e4eb5657a4798"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/162e886ca035869866d233a2bfef70cc28f9bbe5",
|
||||
"reference": "162e886ca035869866d233a2bfef70cc28f9bbe5",
|
||||
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/be0facf48a42a232d6c0daadd76e4eb5657a4798",
|
||||
"reference": "be0facf48a42a232d6c0daadd76e4eb5657a4798",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"symfony/deprecation-contracts": "^2.1",
|
||||
"symfony/polyfill-php73": "~1.0",
|
||||
"symfony/polyfill-php80": "^1.15"
|
||||
"php": ">=8.0.2",
|
||||
"symfony/deprecation-contracts": "^2.1|^3"
|
||||
},
|
||||
"time": "2021-05-26T17:43:10+00:00",
|
||||
"time": "2021-11-23T19:05:29+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "source",
|
||||
"autoload": {
|
||||
|
@ -1671,7 +1710,7 @@
|
|||
"options"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/options-resolver/tree/v5.3.0"
|
||||
"source": "https://github.com/symfony/options-resolver/tree/v6.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1771,194 +1810,25 @@
|
|||
],
|
||||
"install-path": "../symfony/polyfill-ctype"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php73",
|
||||
"version": "v1.23.0",
|
||||
"version_normalized": "1.23.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php73.git",
|
||||
"reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010",
|
||||
"reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"time": "2021-02-19T12:13:01+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"installation-source": "source",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php73\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"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"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php73/tree/v1.23.0"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php80",
|
||||
"version": "v1.23.0",
|
||||
"version_normalized": "1.23.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php80.git",
|
||||
"reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/eca0bf41ed421bed1b57c4958bab16aa86b757d0",
|
||||
"reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"time": "2021-02-19T12:13:01+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
"url": "https://github.com/symfony/polyfill"
|
||||
}
|
||||
},
|
||||
"installation-source": "source",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Php80\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
],
|
||||
"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"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.23.0"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "v5.3.0",
|
||||
"version_normalized": "5.3.0.0",
|
||||
"version": "v6.0.2",
|
||||
"version_normalized": "6.0.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/process.git",
|
||||
"reference": "53e36cb1c160505cdaf1ef201501669c4c317191"
|
||||
"reference": "71da2b7f3fdba460fcf61a97c8d3d14bbf3391ad"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/53e36cb1c160505cdaf1ef201501669c4c317191",
|
||||
"reference": "53e36cb1c160505cdaf1ef201501669c4c317191",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/71da2b7f3fdba460fcf61a97c8d3d14bbf3391ad",
|
||||
"reference": "71da2b7f3fdba460fcf61a97c8d3d14bbf3391ad",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"symfony/polyfill-php80": "^1.15"
|
||||
"php": ">=8.0.2"
|
||||
},
|
||||
"time": "2021-05-26T12:52:38+00:00",
|
||||
"time": "2021-12-27T21:05:08+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "source",
|
||||
"autoload": {
|
||||
|
@ -1986,7 +1856,7 @@
|
|||
"description": "Executes commands in sub-processes",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/process/tree/v5.3.0"
|
||||
"source": "https://github.com/symfony/process/tree/v6.0.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -2004,6 +1874,83 @@
|
|||
],
|
||||
"install-path": "../symfony/process"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v6.0.2",
|
||||
"version_normalized": "6.0.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/yaml.git",
|
||||
"reference": "ed602f38b8636a2ea21af760d2578f3d2f92fc60"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/ed602f38b8636a2ea21af760d2578f3d2f92fc60",
|
||||
"reference": "ed602f38b8636a2ea21af760d2578f3d2f92fc60",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.0.2",
|
||||
"symfony/polyfill-ctype": "^1.8"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/console": "<5.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/console": "^5.4|^6.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/console": "For validating YAML files using the lint command"
|
||||
},
|
||||
"time": "2021-12-16T22:13:01+00:00",
|
||||
"bin": [
|
||||
"Resources/bin/yaml-lint"
|
||||
],
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Yaml\\": ""
|
||||
},
|
||||
"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": "Loads and dumps YAML files",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/yaml/tree/v6.0.2"
|
||||
},
|
||||
"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/yaml"
|
||||
},
|
||||
{
|
||||
"name": "twbs/bootstrap",
|
||||
"version": "v4.1.3",
|
||||
|
|
119
vendor/composer/installed.php
vendored
119
vendor/composer/installed.php
vendored
|
@ -1,24 +1,24 @@
|
|||
<?php return array (
|
||||
'root' =>
|
||||
array (
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'pretty_version' => 'dev-dev',
|
||||
'version' => 'dev-dev',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '441261e2d8ac174792bcb1f37f44e74d1d5c0213',
|
||||
'reference' => '193a5403a7eb3ce1dae2fe2cb8e655fa0abbc57d',
|
||||
'name' => 'zot/zap',
|
||||
),
|
||||
'versions' =>
|
||||
array (
|
||||
'blueimp/jquery-file-upload' =>
|
||||
array (
|
||||
'pretty_version' => 'v10.31.0',
|
||||
'version' => '10.31.0.0',
|
||||
'pretty_version' => 'v10.32.0',
|
||||
'version' => '10.32.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '0740f81829698b84efe17e72501e0f420ea0d611',
|
||||
'reference' => '20f6c4a07a6fbff22d79228c893eb1746d2d8962',
|
||||
),
|
||||
'bshaffer/oauth2-server-php' =>
|
||||
array (
|
||||
|
@ -40,30 +40,30 @@
|
|||
),
|
||||
'doctrine/collections' =>
|
||||
array (
|
||||
'pretty_version' => '1.6.7',
|
||||
'version' => '1.6.7.0',
|
||||
'pretty_version' => '1.6.8',
|
||||
'version' => '1.6.8.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '55f8b799269a1a472457bd1a41b4f379d4cfba4a',
|
||||
'reference' => '1958a744696c6bb3bb0d28db2611dc11610e78af',
|
||||
),
|
||||
'ezyang/htmlpurifier' =>
|
||||
array (
|
||||
'pretty_version' => 'v4.13.0',
|
||||
'version' => '4.13.0.0',
|
||||
'pretty_version' => 'v4.14.0',
|
||||
'version' => '4.14.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '08e27c97e4c6ed02f37c5b2b20488046c8d90d75',
|
||||
'reference' => '12ab42bd6e742c70c0a52f7b82477fcd44e64b75',
|
||||
),
|
||||
'forkawesome/fork-awesome' =>
|
||||
array (
|
||||
'pretty_version' => '1.1.7',
|
||||
'version' => '1.1.7.0',
|
||||
'pretty_version' => '1.2',
|
||||
'version' => '1.2.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '326af9c8bee0c80ff4c00cb2fadd4f1edd2a08c3',
|
||||
'reference' => '1e3849530d0266ece3a883649e1398414b92241d',
|
||||
),
|
||||
'jbroadway/urlify' =>
|
||||
array (
|
||||
|
@ -94,21 +94,21 @@
|
|||
),
|
||||
'masterminds/html5' =>
|
||||
array (
|
||||
'pretty_version' => '2.7.4',
|
||||
'version' => '2.7.4.0',
|
||||
'pretty_version' => '2.7.5',
|
||||
'version' => '2.7.5.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '9227822783c75406cfe400984b2f095cdf03d417',
|
||||
'reference' => 'f640ac1bdddff06ea333a920c95bbad8872429ab',
|
||||
),
|
||||
'michelf/php-markdown' =>
|
||||
array (
|
||||
'pretty_version' => '1.9.0',
|
||||
'version' => '1.9.0.0',
|
||||
'pretty_version' => '1.9.1',
|
||||
'version' => '1.9.1.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'c83178d49e372ca967d1a8c77ae4e051b3a3c75c',
|
||||
'reference' => '5024d623c1a057dcd2d076d25b7d270a1d0d55f3',
|
||||
),
|
||||
'p3k/emoji-detector' =>
|
||||
array (
|
||||
|
@ -121,21 +121,21 @@
|
|||
),
|
||||
'paragonie/random_compat' =>
|
||||
array (
|
||||
'pretty_version' => 'v9.99.99',
|
||||
'version' => '9.99.99.0',
|
||||
'pretty_version' => 'v9.99.100',
|
||||
'version' => '9.99.100.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95',
|
||||
'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a',
|
||||
),
|
||||
'phpseclib/phpseclib' =>
|
||||
array (
|
||||
'pretty_version' => '2.0.32',
|
||||
'version' => '2.0.32.0',
|
||||
'pretty_version' => '2.0.35',
|
||||
'version' => '2.0.35.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'f5c4c19880d45d0be3e7d24ae8ac434844a898cd',
|
||||
'reference' => '4e16cf3f5f927a7d3f5317820af795c0366c0420',
|
||||
),
|
||||
'psr/log' =>
|
||||
array (
|
||||
|
@ -148,18 +148,18 @@
|
|||
),
|
||||
'ramsey/uuid' =>
|
||||
array (
|
||||
'pretty_version' => '3.9.3',
|
||||
'version' => '3.9.3.0',
|
||||
'pretty_version' => '3.9.6',
|
||||
'version' => '3.9.6.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '7e1633a6964b48589b142d60542f9ed31bd37a92',
|
||||
'reference' => 'ffa80ab953edd85d5b6c004f96181a538aad35a3',
|
||||
),
|
||||
'rhumsaa/uuid' =>
|
||||
array (
|
||||
'replaced' =>
|
||||
array (
|
||||
0 => '3.9.3',
|
||||
0 => '3.9.6',
|
||||
),
|
||||
),
|
||||
'sabre/dav' =>
|
||||
|
@ -227,30 +227,30 @@
|
|||
),
|
||||
'smarty/smarty' =>
|
||||
array (
|
||||
'pretty_version' => 'v3.1.39',
|
||||
'version' => '3.1.39.0',
|
||||
'pretty_version' => 'v3.1.40',
|
||||
'version' => '3.1.40.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'e27da524f7bcd7361e3ea5cdfa99c4378a7b5419',
|
||||
'reference' => '9d4f8309ed49702e0d7152f9983c3a9c4b98eb9d',
|
||||
),
|
||||
'symfony/deprecation-contracts' =>
|
||||
array (
|
||||
'pretty_version' => 'v2.4.0',
|
||||
'version' => '2.4.0.0',
|
||||
'pretty_version' => 'v3.0.0',
|
||||
'version' => '3.0.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '5f38c8804a9e97d23e0c8d63341088cd8a22d627',
|
||||
'reference' => 'c726b64c1ccfe2896cb7df2e1331c357ad1c8ced',
|
||||
),
|
||||
'symfony/options-resolver' =>
|
||||
array (
|
||||
'pretty_version' => 'v5.3.0',
|
||||
'version' => '5.3.0.0',
|
||||
'pretty_version' => 'v6.0.0',
|
||||
'version' => '6.0.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '162e886ca035869866d233a2bfef70cc28f9bbe5',
|
||||
'reference' => 'be0facf48a42a232d6c0daadd76e4eb5657a4798',
|
||||
),
|
||||
'symfony/polyfill-ctype' =>
|
||||
array (
|
||||
|
@ -261,32 +261,23 @@
|
|||
),
|
||||
'reference' => '46cd95797e9df938fdd2b03693b5fca5e64b01ce',
|
||||
),
|
||||
'symfony/polyfill-php73' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.23.0',
|
||||
'version' => '1.23.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'fba8933c384d6476ab14fb7b8526e5287ca7e010',
|
||||
),
|
||||
'symfony/polyfill-php80' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.23.0',
|
||||
'version' => '1.23.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'eca0bf41ed421bed1b57c4958bab16aa86b757d0',
|
||||
),
|
||||
'symfony/process' =>
|
||||
array (
|
||||
'pretty_version' => 'v5.3.0',
|
||||
'version' => '5.3.0.0',
|
||||
'pretty_version' => 'v6.0.2',
|
||||
'version' => '6.0.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '53e36cb1c160505cdaf1ef201501669c4c317191',
|
||||
'reference' => '71da2b7f3fdba460fcf61a97c8d3d14bbf3391ad',
|
||||
),
|
||||
'symfony/yaml' =>
|
||||
array (
|
||||
'pretty_version' => 'v6.0.2',
|
||||
'version' => '6.0.2.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'ed602f38b8636a2ea21af760d2578f3d2f92fc60',
|
||||
),
|
||||
'twbs/bootstrap' =>
|
||||
array (
|
||||
|
@ -324,12 +315,12 @@
|
|||
),
|
||||
'zot/zap' =>
|
||||
array (
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'pretty_version' => 'dev-dev',
|
||||
'version' => 'dev-dev',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '441261e2d8ac174792bcb1f37f44e74d1d5c0213',
|
||||
'reference' => '193a5403a7eb3ce1dae2fe2cb8e655fa0abbc57d',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
|
4
vendor/composer/platform_check.php
vendored
4
vendor/composer/platform_check.php
vendored
|
@ -4,8 +4,8 @@
|
|||
|
||||
$issues = array();
|
||||
|
||||
if (!(PHP_VERSION_ID >= 70205)) {
|
||||
$issues[] = 'Your Composer dependencies require a PHP version ">= 7.2.5". You are running ' . PHP_VERSION . '.';
|
||||
if (!(PHP_VERSION_ID >= 80002)) {
|
||||
$issues[] = 'Your Composer dependencies require a PHP version ">= 8.0.2". You are running ' . PHP_VERSION . '.';
|
||||
}
|
||||
|
||||
if ($issues) {
|
||||
|
|
|
@ -1,17 +1,26 @@
|
|||
{
|
||||
"active": true,
|
||||
"name": "Collections",
|
||||
"slug": "collections",
|
||||
"docsSlug": "doctrine-collections",
|
||||
"versions": [
|
||||
{
|
||||
"name": "master",
|
||||
"branchName": "master",
|
||||
"slug": "latest",
|
||||
"aliases": [
|
||||
"current",
|
||||
"stable"
|
||||
]
|
||||
}
|
||||
]
|
||||
"active": true,
|
||||
"name": "Collections",
|
||||
"slug": "collections",
|
||||
"docsSlug": "doctrine-collections",
|
||||
"versions": [
|
||||
{
|
||||
"name": "2.0",
|
||||
"branchName": "2.0.x",
|
||||
"slug": "latest",
|
||||
"upcoming": true
|
||||
},
|
||||
{
|
||||
"name": "1.7",
|
||||
"branchName": "1.7.x",
|
||||
"slug": "1.7",
|
||||
"upcoming": true
|
||||
},
|
||||
{
|
||||
"name": "1.6",
|
||||
"branchName": "1.6.x",
|
||||
"slug": "1.6",
|
||||
"current": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
8
vendor/doctrine/collections/CONTRIBUTING.md
vendored
8
vendor/doctrine/collections/CONTRIBUTING.md
vendored
|
@ -40,11 +40,11 @@ curl -sS https://getcomposer.org/installer | php --
|
|||
./composer.phar install
|
||||
```
|
||||
|
||||
## Travis
|
||||
## Github Actions
|
||||
|
||||
We automatically run your pull request through [Travis CI](https://www.travis-ci.org)
|
||||
against supported PHP versions. If you break the tests, we cannot merge your code,
|
||||
so please make sure that your code is working before opening up a Pull-Request.
|
||||
We automatically run your pull request through Github Actions against supported
|
||||
PHP versions. If you break the tests, we cannot merge your code, so please make
|
||||
sure that your code is working before opening up a Pull-Request.
|
||||
|
||||
## Getting merged
|
||||
|
||||
|
|
2
vendor/doctrine/collections/README.md
vendored
2
vendor/doctrine/collections/README.md
vendored
|
@ -1,6 +1,6 @@
|
|||
# Doctrine Collections
|
||||
|
||||
[![Build Status](https://travis-ci.org/doctrine/collections.svg?branch=master)](https://travis-ci.org/doctrine/collections)
|
||||
[![Build Status](https://github.com/doctrine/collections/workflows/Continuous%20Integration/badge.svg)](https://github.com/doctrine/collections/actions)
|
||||
[![Code Coverage](https://codecov.io/gh/doctrine/collections/branch/master/graph/badge.svg)](https://codecov.io/gh/doctrine/collections/branch/master)
|
||||
|
||||
Collections Abstraction library
|
||||
|
|
8
vendor/doctrine/collections/composer.json
vendored
8
vendor/doctrine/collections/composer.json
vendored
|
@ -21,10 +21,10 @@
|
|||
"php": "^7.1.3 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^7.0",
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"phpstan/phpstan-shim": "^0.9.2",
|
||||
"vimeo/psalm": "^3.8.1"
|
||||
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5",
|
||||
"doctrine/coding-standard": "^9.0",
|
||||
"phpstan/phpstan": "^0.12",
|
||||
"vimeo/psalm": "^4.2.1"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" }
|
||||
|
|
11
vendor/doctrine/collections/docs/en/index.rst
vendored
11
vendor/doctrine/collections/docs/en/index.rst
vendored
|
@ -12,8 +12,8 @@ arrays of data. Here is an example using the simple
|
|||
|
||||
$collection = new ArrayCollection([1, 2, 3]);
|
||||
|
||||
$filteredCollection = $collection->filter(function($count) {
|
||||
return $count > 1;
|
||||
$filteredCollection = $collection->filter(function($element) {
|
||||
return $element > 1;
|
||||
}); // [2, 3]
|
||||
|
||||
Collection Methods
|
||||
|
@ -151,13 +151,14 @@ Tests for the existence of an element that satisfies the given predicate.
|
|||
filter
|
||||
------
|
||||
|
||||
Returns all the elements of this collection that satisfy the predicate. The order of the elements is preserved.
|
||||
Returns all the elements of this collection for which your callback function returns `true`.
|
||||
The order and keys of the elements are preserved.
|
||||
|
||||
.. code-block:: php
|
||||
$collection = new ArrayCollection([1, 2, 3]);
|
||||
|
||||
$filteredCollection = $collection->filter(function($count) {
|
||||
return $count > 1;
|
||||
$filteredCollection = $collection->filter(function($element) {
|
||||
return $element > 1;
|
||||
}); // [2, 3]
|
||||
|
||||
forAll
|
||||
|
|
|
@ -3,11 +3,12 @@
|
|||
namespace Doctrine\Common\Collections;
|
||||
|
||||
use Closure;
|
||||
use ReturnTypeWillChange;
|
||||
use Traversable;
|
||||
|
||||
/**
|
||||
* Lazy collection that is backed by a concrete collection
|
||||
*
|
||||
* @phpstan-template TKey
|
||||
* @psalm-template TKey of array-key
|
||||
* @psalm-template T
|
||||
* @template-implements Collection<TKey,T>
|
||||
|
@ -18,7 +19,7 @@ abstract class AbstractLazyCollection implements Collection
|
|||
* The backed collection to use
|
||||
*
|
||||
* @psalm-var Collection<TKey,T>
|
||||
* @var Collection
|
||||
* @var Collection<mixed>
|
||||
*/
|
||||
protected $collection;
|
||||
|
||||
|
@ -27,7 +28,10 @@ abstract class AbstractLazyCollection implements Collection
|
|||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
#[ReturnTypeWillChange]
|
||||
public function count()
|
||||
{
|
||||
$this->initialize();
|
||||
|
@ -275,7 +279,11 @@ abstract class AbstractLazyCollection implements Collection
|
|||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @return Traversable<int|string, mixed>
|
||||
* @psalm-return Traversable<TKey,T>
|
||||
*/
|
||||
#[ReturnTypeWillChange]
|
||||
public function getIterator()
|
||||
{
|
||||
$this->initialize();
|
||||
|
@ -287,7 +295,10 @@ abstract class AbstractLazyCollection implements Collection
|
|||
* {@inheritDoc}
|
||||
*
|
||||
* @psalm-param TKey $offset
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
#[ReturnTypeWillChange]
|
||||
public function offsetExists($offset)
|
||||
{
|
||||
$this->initialize();
|
||||
|
@ -299,11 +310,11 @@ abstract class AbstractLazyCollection implements Collection
|
|||
* {@inheritDoc}
|
||||
*
|
||||
* @param int|string $offset
|
||||
* @psalm-param TKey $offset
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
* @psalm-param TKey $offset
|
||||
*/
|
||||
#[ReturnTypeWillChange]
|
||||
public function offsetGet($offset)
|
||||
{
|
||||
$this->initialize();
|
||||
|
@ -315,9 +326,11 @@ abstract class AbstractLazyCollection implements Collection
|
|||
* {@inheritDoc}
|
||||
*
|
||||
* @param mixed $value
|
||||
*
|
||||
* @psalm-param TKey $offset
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
#[ReturnTypeWillChange]
|
||||
public function offsetSet($offset, $value)
|
||||
{
|
||||
$this->initialize();
|
||||
|
@ -328,7 +341,10 @@ abstract class AbstractLazyCollection implements Collection
|
|||
* {@inheritDoc}
|
||||
*
|
||||
* @psalm-param TKey $offset
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
#[ReturnTypeWillChange]
|
||||
public function offsetUnset($offset)
|
||||
{
|
||||
$this->initialize();
|
||||
|
|
|
@ -5,7 +5,9 @@ namespace Doctrine\Common\Collections;
|
|||
use ArrayIterator;
|
||||
use Closure;
|
||||
use Doctrine\Common\Collections\Expr\ClosureExpressionVisitor;
|
||||
use const ARRAY_FILTER_USE_BOTH;
|
||||
use ReturnTypeWillChange;
|
||||
use Traversable;
|
||||
|
||||
use function array_filter;
|
||||
use function array_key_exists;
|
||||
use function array_keys;
|
||||
|
@ -24,6 +26,8 @@ use function reset;
|
|||
use function spl_object_hash;
|
||||
use function uasort;
|
||||
|
||||
use const ARRAY_FILTER_USE_BOTH;
|
||||
|
||||
/**
|
||||
* An ArrayCollection is a Collection implementation that wraps a regular PHP array.
|
||||
*
|
||||
|
@ -32,11 +36,11 @@ use function uasort;
|
|||
* serialize a collection use {@link toArray()} and reconstruct the collection
|
||||
* manually.
|
||||
*
|
||||
* @phpstan-template TKey
|
||||
* @psalm-template TKey of array-key
|
||||
* @psalm-template T
|
||||
* @template-implements Collection<TKey,T>
|
||||
* @template-implements Selectable<TKey,T>
|
||||
* @psalm-consistent-constructor
|
||||
*/
|
||||
class ArrayCollection implements Collection, Selectable
|
||||
{
|
||||
|
@ -44,7 +48,7 @@ class ArrayCollection implements Collection, Selectable
|
|||
* An array containing the entries of this collection.
|
||||
*
|
||||
* @psalm-var array<TKey,T>
|
||||
* @var array
|
||||
* @var mixed[]
|
||||
*/
|
||||
private $elements;
|
||||
|
||||
|
@ -52,7 +56,6 @@ class ArrayCollection implements Collection, Selectable
|
|||
* Initializes a new ArrayCollection.
|
||||
*
|
||||
* @param array $elements
|
||||
*
|
||||
* @psalm-param array<TKey,T> $elements
|
||||
*/
|
||||
public function __construct(array $elements = [])
|
||||
|
@ -83,11 +86,13 @@ class ArrayCollection implements Collection, Selectable
|
|||
* instance should be created when constructor semantics have changed.
|
||||
*
|
||||
* @param array $elements Elements.
|
||||
* @psalm-param array<K,V> $elements
|
||||
*
|
||||
* @return static
|
||||
* @psalm-return static<K,V>
|
||||
*
|
||||
* @psalm-param array<TKey,T> $elements
|
||||
* @psalm-return static<TKey,T>
|
||||
* @psalm-template K of array-key
|
||||
* @psalm-template V
|
||||
*/
|
||||
protected function createFrom(array $elements)
|
||||
{
|
||||
|
@ -163,7 +168,10 @@ class ArrayCollection implements Collection, Selectable
|
|||
* {@inheritDoc}
|
||||
*
|
||||
* @psalm-param TKey $offset
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
#[ReturnTypeWillChange]
|
||||
public function offsetExists($offset)
|
||||
{
|
||||
return $this->containsKey($offset);
|
||||
|
@ -175,7 +183,10 @@ class ArrayCollection implements Collection, Selectable
|
|||
* {@inheritDoc}
|
||||
*
|
||||
* @psalm-param TKey $offset
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
#[ReturnTypeWillChange]
|
||||
public function offsetGet($offset)
|
||||
{
|
||||
return $this->get($offset);
|
||||
|
@ -185,7 +196,10 @@ class ArrayCollection implements Collection, Selectable
|
|||
* Required by interface ArrayAccess.
|
||||
*
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
#[ReturnTypeWillChange]
|
||||
public function offsetSet($offset, $value)
|
||||
{
|
||||
if (! isset($offset)) {
|
||||
|
@ -203,7 +217,10 @@ class ArrayCollection implements Collection, Selectable
|
|||
* {@inheritDoc}
|
||||
*
|
||||
* @psalm-param TKey $offset
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
#[ReturnTypeWillChange]
|
||||
public function offsetUnset($offset)
|
||||
{
|
||||
$this->remove($offset);
|
||||
|
@ -273,7 +290,10 @@ class ArrayCollection implements Collection, Selectable
|
|||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
#[ReturnTypeWillChange]
|
||||
public function count()
|
||||
{
|
||||
return count($this->elements);
|
||||
|
@ -311,10 +331,12 @@ class ArrayCollection implements Collection, Selectable
|
|||
}
|
||||
|
||||
/**
|
||||
* Required by interface IteratorAggregate.
|
||||
*
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @return Traversable<int|string, mixed>
|
||||
* @psalm-return Traversable<TKey,T>
|
||||
*/
|
||||
#[ReturnTypeWillChange]
|
||||
public function getIterator()
|
||||
{
|
||||
return new ArrayIterator($this->elements);
|
||||
|
@ -323,11 +345,12 @@ class ArrayCollection implements Collection, Selectable
|
|||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @psalm-param Closure(T=):U $func
|
||||
*
|
||||
* @return static
|
||||
* @psalm-return static<TKey, U>
|
||||
*
|
||||
* @psalm-template U
|
||||
* @psalm-param Closure(T=):U $func
|
||||
* @psalm-return static<TKey, U>
|
||||
*/
|
||||
public function map(Closure $func)
|
||||
{
|
||||
|
@ -338,7 +361,6 @@ class ArrayCollection implements Collection, Selectable
|
|||
* {@inheritDoc}
|
||||
*
|
||||
* @return static
|
||||
*
|
||||
* @psalm-return static<TKey,T>
|
||||
*/
|
||||
public function filter(Closure $p)
|
||||
|
|
|
@ -24,7 +24,6 @@ use IteratorAggregate;
|
|||
* position unless you explicitly positioned it before. Prefer iteration with
|
||||
* external iterators.
|
||||
*
|
||||
* @phpstan-template TKey
|
||||
* @psalm-template TKey of array-key
|
||||
* @psalm-template T
|
||||
* @template-extends IteratorAggregate<TKey, T>
|
||||
|
@ -36,10 +35,9 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* Adds an element at the end of the collection.
|
||||
*
|
||||
* @param mixed $element The element to add.
|
||||
* @psalm-param T $element
|
||||
*
|
||||
* @return true Always TRUE.
|
||||
*
|
||||
* @psalm-param T $element
|
||||
*/
|
||||
public function add($element);
|
||||
|
||||
|
@ -55,10 +53,9 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* This is an O(n) operation, where n is the size of the collection.
|
||||
*
|
||||
* @param mixed $element The element to search for.
|
||||
* @psalm-param T $element
|
||||
*
|
||||
* @return bool TRUE if the collection contains the element, FALSE otherwise.
|
||||
*
|
||||
* @psalm-param T $element
|
||||
*/
|
||||
public function contains($element);
|
||||
|
||||
|
@ -73,10 +70,9 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* Removes the element at the specified index from the collection.
|
||||
*
|
||||
* @param string|int $key The key/index of the element to remove.
|
||||
* @psalm-param TKey $key
|
||||
*
|
||||
* @return mixed The removed element or NULL, if the collection did not contain the element.
|
||||
*
|
||||
* @psalm-param TKey $key
|
||||
* @psalm-return T|null
|
||||
*/
|
||||
public function remove($key);
|
||||
|
@ -85,10 +81,9 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* Removes the specified element from the collection, if it is found.
|
||||
*
|
||||
* @param mixed $element The element to remove.
|
||||
* @psalm-param T $element
|
||||
*
|
||||
* @return bool TRUE if this collection contained the specified element, FALSE otherwise.
|
||||
*
|
||||
* @psalm-param T $element
|
||||
*/
|
||||
public function removeElement($element);
|
||||
|
||||
|
@ -96,11 +91,10 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* Checks whether the collection contains an element with the specified key/index.
|
||||
*
|
||||
* @param string|int $key The key/index to check for.
|
||||
* @psalm-param TKey $key
|
||||
*
|
||||
* @return bool TRUE if the collection contains an element with the specified key/index,
|
||||
* FALSE otherwise.
|
||||
*
|
||||
* @psalm-param TKey $key
|
||||
*/
|
||||
public function containsKey($key);
|
||||
|
||||
|
@ -108,10 +102,9 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* Gets the element at the specified key/index.
|
||||
*
|
||||
* @param string|int $key The key/index of the element to retrieve.
|
||||
* @psalm-param TKey $key
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
* @psalm-param TKey $key
|
||||
* @psalm-return T|null
|
||||
*/
|
||||
public function get($key);
|
||||
|
@ -121,7 +114,6 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
*
|
||||
* @return int[]|string[] The keys/indices of the collection, in the order of the corresponding
|
||||
* elements in the collection.
|
||||
*
|
||||
* @psalm-return TKey[]
|
||||
*/
|
||||
public function getKeys();
|
||||
|
@ -129,9 +121,8 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
/**
|
||||
* Gets all values of the collection.
|
||||
*
|
||||
* @return array The values of all elements in the collection, in the order they
|
||||
* appear in the collection.
|
||||
*
|
||||
* @return mixed[] The values of all elements in the collection, in the
|
||||
* order they appear in the collection.
|
||||
* @psalm-return T[]
|
||||
*/
|
||||
public function getValues();
|
||||
|
@ -141,19 +132,17 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
*
|
||||
* @param string|int $key The key/index of the element to set.
|
||||
* @param mixed $value The element to set.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param TKey $key
|
||||
* @psalm-param T $value
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function set($key, $value);
|
||||
|
||||
/**
|
||||
* Gets a native PHP array representation of the collection.
|
||||
*
|
||||
* @return array
|
||||
*
|
||||
* @return mixed[]
|
||||
* @psalm-return array<TKey,T>
|
||||
*/
|
||||
public function toArray();
|
||||
|
@ -162,7 +151,6 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* Sets the internal iterator to the first element in the collection and returns this element.
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
* @psalm-return T|false
|
||||
*/
|
||||
public function first();
|
||||
|
@ -171,7 +159,6 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* Sets the internal iterator to the last element in the collection and returns this element.
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
* @psalm-return T|false
|
||||
*/
|
||||
public function last();
|
||||
|
@ -180,7 +167,6 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* Gets the key/index of the element at the current iterator position.
|
||||
*
|
||||
* @return int|string|null
|
||||
*
|
||||
* @psalm-return TKey|null
|
||||
*/
|
||||
public function key();
|
||||
|
@ -189,7 +175,6 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* Gets the element of the collection at the current iterator position.
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
* @psalm-return T|false
|
||||
*/
|
||||
public function current();
|
||||
|
@ -198,7 +183,6 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* Moves the internal iterator position to the next element and returns this element.
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
* @psalm-return T|false
|
||||
*/
|
||||
public function next();
|
||||
|
@ -207,10 +191,9 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* Tests for the existence of an element that satisfies the given predicate.
|
||||
*
|
||||
* @param Closure $p The predicate.
|
||||
* @psalm-param Closure(TKey=, T=):bool $p
|
||||
*
|
||||
* @return bool TRUE if the predicate is TRUE for at least one element, FALSE otherwise.
|
||||
*
|
||||
* @psalm-param Closure(TKey=, T=):bool $p
|
||||
*/
|
||||
public function exists(Closure $p);
|
||||
|
||||
|
@ -219,10 +202,9 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* The order of the elements is preserved.
|
||||
*
|
||||
* @param Closure $p The predicate used for filtering.
|
||||
*
|
||||
* @return Collection A collection with the results of the filter operation.
|
||||
*
|
||||
* @psalm-param Closure(T=):bool $p
|
||||
*
|
||||
* @return Collection<mixed> A collection with the results of the filter operation.
|
||||
* @psalm-return Collection<TKey, T>
|
||||
*/
|
||||
public function filter(Closure $p);
|
||||
|
@ -231,10 +213,9 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* Tests whether the given predicate p holds for all elements of this collection.
|
||||
*
|
||||
* @param Closure $p The predicate.
|
||||
* @psalm-param Closure(TKey=, T=):bool $p
|
||||
*
|
||||
* @return bool TRUE, if the predicate yields TRUE for all elements, FALSE otherwise.
|
||||
*
|
||||
* @psalm-param Closure(TKey=, T=):bool $p
|
||||
*/
|
||||
public function forAll(Closure $p);
|
||||
|
||||
|
@ -242,11 +223,12 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* Applies the given function to each element in the collection and returns
|
||||
* a new collection with the elements returned by the function.
|
||||
*
|
||||
* @return Collection
|
||||
* @psalm-param Closure(T=):U $func
|
||||
*
|
||||
* @return Collection<mixed>
|
||||
* @psalm-return Collection<TKey, U>
|
||||
*
|
||||
* @psalm-template U
|
||||
* @psalm-param Closure(T=):U $func
|
||||
* @psalm-return Collection<TKey, U>
|
||||
*/
|
||||
public function map(Closure $func);
|
||||
|
||||
|
@ -255,12 +237,11 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* Keys are preserved in the resulting collections.
|
||||
*
|
||||
* @param Closure $p The predicate on which to partition.
|
||||
* @psalm-param Closure(TKey=, T=):bool $p
|
||||
*
|
||||
* @return Collection[] An array with two elements. The first element contains the collection
|
||||
* @return Collection<mixed> An array with two elements. The first element contains the collection
|
||||
* of elements where the predicate returned TRUE, the second element
|
||||
* contains the collection of elements where the predicate returned FALSE.
|
||||
*
|
||||
* @psalm-param Closure(TKey=, T=):bool $p
|
||||
* @psalm-return array{0: Collection<TKey, T>, 1: Collection<TKey, T>}
|
||||
*/
|
||||
public function partition(Closure $p);
|
||||
|
@ -271,10 +252,9 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* For objects this means reference equality.
|
||||
*
|
||||
* @param mixed $element The element to search for.
|
||||
* @psalm-param T $element
|
||||
*
|
||||
* @return int|string|bool The key/index of the element or FALSE if the element was not found.
|
||||
*
|
||||
* @psalm-param T $element
|
||||
* @psalm-return TKey|false
|
||||
*/
|
||||
public function indexOf($element);
|
||||
|
@ -289,8 +269,7 @@ interface Collection extends Countable, IteratorAggregate, ArrayAccess
|
|||
* @param int $offset The offset to start from.
|
||||
* @param int|null $length The maximum number of elements to return, or null for no limit.
|
||||
*
|
||||
* @return array
|
||||
*
|
||||
* @return mixed[]
|
||||
* @psalm-return array<TKey,T>
|
||||
*/
|
||||
public function slice($offset, $length = null);
|
||||
|
|
|
@ -4,11 +4,14 @@ namespace Doctrine\Common\Collections;
|
|||
|
||||
use Doctrine\Common\Collections\Expr\CompositeExpression;
|
||||
use Doctrine\Common\Collections\Expr\Expression;
|
||||
|
||||
use function array_map;
|
||||
use function strtoupper;
|
||||
|
||||
/**
|
||||
* Criteria for filtering Selectable collections.
|
||||
*
|
||||
* @psalm-consistent-constructor
|
||||
*/
|
||||
class Criteria
|
||||
{
|
||||
|
@ -163,7 +166,7 @@ class Criteria
|
|||
public function orderBy(array $orderings)
|
||||
{
|
||||
$this->orderings = array_map(
|
||||
static function (string $ordering) : string {
|
||||
static function (string $ordering): string {
|
||||
return strtoupper($ordering) === Criteria::ASC ? Criteria::ASC : Criteria::DESC;
|
||||
},
|
||||
$orderings
|
||||
|
@ -191,7 +194,7 @@ class Criteria
|
|||
*/
|
||||
public function setFirstResult($firstResult)
|
||||
{
|
||||
$this->firstResult = $firstResult === null ? null : (int) $firstResult;
|
||||
$this->firstResult = $firstResult;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
@ -215,7 +218,7 @@ class Criteria
|
|||
*/
|
||||
public function setMaxResults($maxResults)
|
||||
{
|
||||
$this->maxResults = $maxResults === null ? null : (int) $maxResults;
|
||||
$this->maxResults = $maxResults;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ namespace Doctrine\Common\Collections\Expr;
|
|||
use ArrayAccess;
|
||||
use Closure;
|
||||
use RuntimeException;
|
||||
|
||||
use function in_array;
|
||||
use function is_array;
|
||||
use function is_scalar;
|
||||
|
@ -30,8 +31,8 @@ class ClosureExpressionVisitor extends ExpressionVisitor
|
|||
* directly or indirectly (through an accessor get*, is*, or a magic
|
||||
* method, __get, __call).
|
||||
*
|
||||
* @param object|array $object
|
||||
* @param string $field
|
||||
* @param object|mixed[] $object
|
||||
* @param string $field
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
|
@ -97,12 +98,12 @@ class ClosureExpressionVisitor extends ExpressionVisitor
|
|||
public static function sortByField($name, $orientation = 1, ?Closure $next = null)
|
||||
{
|
||||
if (! $next) {
|
||||
$next = static function () : int {
|
||||
$next = static function (): int {
|
||||
return 0;
|
||||
};
|
||||
}
|
||||
|
||||
return static function ($a, $b) use ($name, $next, $orientation) : int {
|
||||
return static function ($a, $b) use ($name, $next, $orientation): int {
|
||||
$aValue = ClosureExpressionVisitor::getObjectFieldValue($a, $name);
|
||||
|
||||
$bValue = ClosureExpressionVisitor::getObjectFieldValue($b, $name);
|
||||
|
@ -125,44 +126,44 @@ class ClosureExpressionVisitor extends ExpressionVisitor
|
|||
|
||||
switch ($comparison->getOperator()) {
|
||||
case Comparison::EQ:
|
||||
return static function ($object) use ($field, $value) : bool {
|
||||
return static function ($object) use ($field, $value): bool {
|
||||
return ClosureExpressionVisitor::getObjectFieldValue($object, $field) === $value;
|
||||
};
|
||||
|
||||
case Comparison::NEQ:
|
||||
return static function ($object) use ($field, $value) : bool {
|
||||
return static function ($object) use ($field, $value): bool {
|
||||
return ClosureExpressionVisitor::getObjectFieldValue($object, $field) !== $value;
|
||||
};
|
||||
|
||||
case Comparison::LT:
|
||||
return static function ($object) use ($field, $value) : bool {
|
||||
return static function ($object) use ($field, $value): bool {
|
||||
return ClosureExpressionVisitor::getObjectFieldValue($object, $field) < $value;
|
||||
};
|
||||
|
||||
case Comparison::LTE:
|
||||
return static function ($object) use ($field, $value) : bool {
|
||||
return static function ($object) use ($field, $value): bool {
|
||||
return ClosureExpressionVisitor::getObjectFieldValue($object, $field) <= $value;
|
||||
};
|
||||
|
||||
case Comparison::GT:
|
||||
return static function ($object) use ($field, $value) : bool {
|
||||
return static function ($object) use ($field, $value): bool {
|
||||
return ClosureExpressionVisitor::getObjectFieldValue($object, $field) > $value;
|
||||
};
|
||||
|
||||
case Comparison::GTE:
|
||||
return static function ($object) use ($field, $value) : bool {
|
||||
return static function ($object) use ($field, $value): bool {
|
||||
return ClosureExpressionVisitor::getObjectFieldValue($object, $field) >= $value;
|
||||
};
|
||||
|
||||
case Comparison::IN:
|
||||
return static function ($object) use ($field, $value) : bool {
|
||||
return static function ($object) use ($field, $value): bool {
|
||||
$fieldValue = ClosureExpressionVisitor::getObjectFieldValue($object, $field);
|
||||
|
||||
return in_array($fieldValue, $value, is_scalar($fieldValue));
|
||||
};
|
||||
|
||||
case Comparison::NIN:
|
||||
return static function ($object) use ($field, $value) : bool {
|
||||
return static function ($object) use ($field, $value): bool {
|
||||
$fieldValue = ClosureExpressionVisitor::getObjectFieldValue($object, $field);
|
||||
|
||||
return ! in_array($fieldValue, $value, is_scalar($fieldValue));
|
||||
|
@ -174,7 +175,7 @@ class ClosureExpressionVisitor extends ExpressionVisitor
|
|||
};
|
||||
|
||||
case Comparison::MEMBER_OF:
|
||||
return static function ($object) use ($field, $value) : bool {
|
||||
return static function ($object) use ($field, $value): bool {
|
||||
$fieldValues = ClosureExpressionVisitor::getObjectFieldValue($object, $field);
|
||||
|
||||
if (! is_array($fieldValues)) {
|
||||
|
@ -185,12 +186,12 @@ class ClosureExpressionVisitor extends ExpressionVisitor
|
|||
};
|
||||
|
||||
case Comparison::STARTS_WITH:
|
||||
return static function ($object) use ($field, $value) : bool {
|
||||
return static function ($object) use ($field, $value): bool {
|
||||
return strpos(ClosureExpressionVisitor::getObjectFieldValue($object, $field), $value) === 0;
|
||||
};
|
||||
|
||||
case Comparison::ENDS_WITH:
|
||||
return static function ($object) use ($field, $value) : bool {
|
||||
return static function ($object) use ($field, $value): bool {
|
||||
return $value === substr(ClosureExpressionVisitor::getObjectFieldValue($object, $field), -strlen($value));
|
||||
};
|
||||
|
||||
|
@ -221,19 +222,21 @@ class ClosureExpressionVisitor extends ExpressionVisitor
|
|||
switch ($expr->getType()) {
|
||||
case CompositeExpression::TYPE_AND:
|
||||
return $this->andExpressions($expressionList);
|
||||
|
||||
case CompositeExpression::TYPE_OR:
|
||||
return $this->orExpressions($expressionList);
|
||||
|
||||
default:
|
||||
throw new RuntimeException('Unknown composite ' . $expr->getType());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $expressions
|
||||
* @param callable[] $expressions
|
||||
*/
|
||||
private function andExpressions(array $expressions) : callable
|
||||
private function andExpressions(array $expressions): callable
|
||||
{
|
||||
return static function ($object) use ($expressions) : bool {
|
||||
return static function ($object) use ($expressions): bool {
|
||||
foreach ($expressions as $expression) {
|
||||
if (! $expression($object)) {
|
||||
return false;
|
||||
|
@ -245,11 +248,11 @@ class ClosureExpressionVisitor extends ExpressionVisitor
|
|||
}
|
||||
|
||||
/**
|
||||
* @param array $expressions
|
||||
* @param callable[] $expressions
|
||||
*/
|
||||
private function orExpressions(array $expressions) : callable
|
||||
private function orExpressions(array $expressions): callable
|
||||
{
|
||||
return static function ($object) use ($expressions) : bool {
|
||||
return static function ($object) use ($expressions): bool {
|
||||
foreach ($expressions as $expression) {
|
||||
if ($expression($object)) {
|
||||
return true;
|
||||
|
|
|
@ -19,8 +19,8 @@ class CompositeExpression implements Expression
|
|||
private $expressions = [];
|
||||
|
||||
/**
|
||||
* @param string $type
|
||||
* @param array $expressions
|
||||
* @param string $type
|
||||
* @param mixed[] $expressions
|
||||
*
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
|
@ -32,6 +32,7 @@ class CompositeExpression implements Expression
|
|||
if ($expr instanceof Value) {
|
||||
throw new RuntimeException('Values are not supported expressions as children of and/or expressions.');
|
||||
}
|
||||
|
||||
if (! ($expr instanceof Expression)) {
|
||||
throw new RuntimeException('No expression given to CompositeExpression.');
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
namespace Doctrine\Common\Collections\Expr;
|
||||
|
||||
use RuntimeException;
|
||||
|
||||
use function get_class;
|
||||
|
||||
/**
|
||||
|
@ -44,10 +45,13 @@ abstract class ExpressionVisitor
|
|||
switch (true) {
|
||||
case $expr instanceof Comparison:
|
||||
return $this->walkComparison($expr);
|
||||
|
||||
case $expr instanceof Value:
|
||||
return $this->walkValue($expr);
|
||||
|
||||
case $expr instanceof CompositeExpression:
|
||||
return $this->walkCompositeExpression($expr);
|
||||
|
||||
default:
|
||||
throw new RuntimeException('Unknown Expression ' . get_class($expr));
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ namespace Doctrine\Common\Collections;
|
|||
use Doctrine\Common\Collections\Expr\Comparison;
|
||||
use Doctrine\Common\Collections\Expr\CompositeExpression;
|
||||
use Doctrine\Common\Collections\Expr\Value;
|
||||
|
||||
use function func_get_args;
|
||||
|
||||
/**
|
||||
|
@ -113,8 +114,8 @@ class ExpressionBuilder
|
|||
}
|
||||
|
||||
/**
|
||||
* @param string $field
|
||||
* @param array $values
|
||||
* @param string $field
|
||||
* @param mixed[] $values
|
||||
*
|
||||
* @return Comparison
|
||||
*/
|
||||
|
@ -124,8 +125,8 @@ class ExpressionBuilder
|
|||
}
|
||||
|
||||
/**
|
||||
* @param string $field
|
||||
* @param array $values
|
||||
* @param string $field
|
||||
* @param mixed[] $values
|
||||
*
|
||||
* @return Comparison
|
||||
*/
|
||||
|
|
|
@ -14,7 +14,6 @@ namespace Doctrine\Common\Collections;
|
|||
* this API can implement efficient database access without having to ask the
|
||||
* EntityManager or Repositories.
|
||||
*
|
||||
* @phpstan-template TKey
|
||||
* @psalm-template TKey as array-key
|
||||
* @psalm-template T
|
||||
*/
|
||||
|
@ -24,8 +23,7 @@ interface Selectable
|
|||
* Selects all elements from a selectable that match the expression and
|
||||
* returns a new collection containing these elements.
|
||||
*
|
||||
* @return Collection
|
||||
*
|
||||
* @return Collection<mixed>
|
||||
* @psalm-return Collection<TKey,T>
|
||||
*/
|
||||
public function matching(Criteria $criteria);
|
||||
|
|
17
vendor/doctrine/collections/phpstan.neon.dist
vendored
Normal file
17
vendor/doctrine/collections/phpstan.neon.dist
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
parameters:
|
||||
level: 3
|
||||
paths:
|
||||
- lib
|
||||
ignoreErrors:
|
||||
# Making classes final as suggested would be a BC-break
|
||||
-
|
||||
message: '~Unsafe usage of new static\(\)\.~'
|
||||
paths:
|
||||
- 'lib/Doctrine/Common/Collections/ArrayCollection.php'
|
||||
- 'lib/Doctrine/Common/Collections/Criteria.php'
|
||||
-
|
||||
message: '~Array \(array\<TKey of \(int\|string\), T\>\) does not accept key int\.~'
|
||||
path: 'lib/Doctrine/Common/Collections/ArrayCollection.php'
|
||||
|
||||
# This class is new in PHP 8.1 and PHPStan does not know it yet.
|
||||
- '/Attribute class ReturnTypeWillChange does not exist./'
|
13
vendor/doctrine/collections/psalm.xml.dist
vendored
13
vendor/doctrine/collections/psalm.xml.dist
vendored
|
@ -33,7 +33,6 @@
|
|||
<MissingReturnType errorLevel="info" />
|
||||
<MissingPropertyType errorLevel="info" />
|
||||
<InvalidDocblock errorLevel="info" />
|
||||
<MisplacedRequiredParam errorLevel="info" />
|
||||
|
||||
<PropertyNotSetInConstructor errorLevel="info" />
|
||||
<MissingConstructor errorLevel="info" />
|
||||
|
@ -50,5 +49,17 @@
|
|||
<RawObjectIteration errorLevel="info" />
|
||||
|
||||
<InvalidStringClass errorLevel="info" />
|
||||
<UnsafeGenericInstantiation>
|
||||
<errorLevel type="suppress">
|
||||
<file name="lib/Doctrine/Common/Collections/ArrayCollection.php"/>
|
||||
</errorLevel>
|
||||
</UnsafeGenericInstantiation>
|
||||
|
||||
<UndefinedAttributeClass>
|
||||
<errorLevel type="suppress">
|
||||
<!-- This class is new in PHP 8.1 and Psalm does not know it yet. -->
|
||||
<referencedClass name="ReturnTypeWillChange"/>
|
||||
</errorLevel>
|
||||
</UndefinedAttributeClass>
|
||||
</issueHandlers>
|
||||
</psalm>
|
||||
|
|
2
vendor/ezyang/htmlpurifier/README.md
vendored
2
vendor/ezyang/htmlpurifier/README.md
vendored
|
@ -1,4 +1,4 @@
|
|||
HTML Purifier [![Build Status](https://secure.travis-ci.org/ezyang/htmlpurifier.svg?branch=master)](http://travis-ci.org/ezyang/htmlpurifier)
|
||||
HTML Purifier [![Build Status](https://github.com/ezyang/htmlpurifier/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/ezyang/htmlpurifier/actions/workflows/ci.yml)
|
||||
=============
|
||||
|
||||
HTML Purifier is an HTML filtering solution that uses a unique combination
|
||||
|
|
2
vendor/ezyang/htmlpurifier/VERSION
vendored
2
vendor/ezyang/htmlpurifier/VERSION
vendored
|
@ -1 +1 @@
|
|||
4.13.0
|
||||
4.14.0
|
3
vendor/ezyang/htmlpurifier/composer.json
vendored
3
vendor/ezyang/htmlpurifier/composer.json
vendored
|
@ -15,9 +15,6 @@
|
|||
"require": {
|
||||
"php": ">=5.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"simpletest/simpletest": "dev-master#72de02a7b80c6bb8864ef9bf66d41d2f58f826bd"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": { "HTMLPurifier": "library/" },
|
||||
"files": ["library/HTMLPurifier.composer.php"],
|
||||
|
|
|
@ -4,12 +4,11 @@
|
|||
* @file
|
||||
* Legacy autoloader for systems lacking spl_autoload_register
|
||||
*
|
||||
* Must be separate to prevent deprecation warning on PHP 7.2
|
||||
*/
|
||||
|
||||
function __autoload($class)
|
||||
spl_autoload_register(function($class)
|
||||
{
|
||||
return HTMLPurifier_Bootstrap::autoload($class);
|
||||
}
|
||||
return HTMLPurifier_Bootstrap::autoload($class);
|
||||
});
|
||||
|
||||
// vim: et sw=4 sts=4
|
||||
|
|
|
@ -17,6 +17,7 @@ if (function_exists('spl_autoload_register') && function_exists('spl_autoload_un
|
|||
require dirname(__FILE__) . '/HTMLPurifier.autoload-legacy.php';
|
||||
}
|
||||
|
||||
// phpcs:ignore PHPCompatibility.IniDirectives.RemovedIniDirectives.zend_ze1_compatibility_modeRemoved
|
||||
if (ini_get('zend.ze1_compatibility_mode')) {
|
||||
trigger_error("HTML Purifier is not compatible with zend.ze1_compatibility_mode; please turn it off", E_USER_ERROR);
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* primary concern and you are using an opcode cache. PLEASE DO NOT EDIT THIS
|
||||
* FILE, changes will be overwritten the next time the script is run.
|
||||
*
|
||||
* @version 4.13.0
|
||||
* @version 4.14.0
|
||||
*
|
||||
* @warning
|
||||
* You must *not* include any other HTML Purifier files before this file,
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
/*
|
||||
HTML Purifier 4.13.0 - Standards Compliant HTML Filtering
|
||||
HTML Purifier 4.14.0 - Standards Compliant HTML Filtering
|
||||
Copyright (C) 2006-2008 Edward Z. Yang
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
|
@ -58,12 +58,12 @@ class HTMLPurifier
|
|||
* Version of HTML Purifier.
|
||||
* @type string
|
||||
*/
|
||||
public $version = '4.13.0';
|
||||
public $version = '4.14.0';
|
||||
|
||||
/**
|
||||
* Constant with version of HTML Purifier.
|
||||
*/
|
||||
const VERSION = '4.13.0';
|
||||
const VERSION = '4.14.0';
|
||||
|
||||
/**
|
||||
* Global configuration object.
|
||||
|
|
|
@ -25,6 +25,7 @@ class HTMLPurifier_AttrDef_CSS_Background extends HTMLPurifier_AttrDef
|
|||
$this->info['background-repeat'] = $def->info['background-repeat'];
|
||||
$this->info['background-attachment'] = $def->info['background-attachment'];
|
||||
$this->info['background-position'] = $def->info['background-position'];
|
||||
$this->info['background-size'] = $def->info['background-size'];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -53,6 +54,7 @@ class HTMLPurifier_AttrDef_CSS_Background extends HTMLPurifier_AttrDef
|
|||
$caught['repeat'] = false;
|
||||
$caught['attachment'] = false;
|
||||
$caught['position'] = false;
|
||||
$caught['size'] = false;
|
||||
|
||||
$i = 0; // number of catches
|
||||
|
||||
|
|
|
@ -109,6 +109,22 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
|||
);
|
||||
$this->info['background-position'] = new HTMLPurifier_AttrDef_CSS_BackgroundPosition();
|
||||
|
||||
$this->info['background-size'] = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
new HTMLPurifier_AttrDef_Enum(
|
||||
array(
|
||||
'auto',
|
||||
'cover',
|
||||
'contain',
|
||||
'initial',
|
||||
'inherit',
|
||||
)
|
||||
),
|
||||
new HTMLPurifier_AttrDef_CSS_Percentage(),
|
||||
new HTMLPurifier_AttrDef_CSS_Length()
|
||||
)
|
||||
);
|
||||
|
||||
$border_color =
|
||||
$this->info['border-top-color'] =
|
||||
$this->info['border-bottom-color'] =
|
||||
|
|
|
@ -164,7 +164,7 @@ class HTMLPurifier_ChildDef_Table extends HTMLPurifier_ChildDef
|
|||
}
|
||||
}
|
||||
|
||||
if (empty($content)) {
|
||||
if (empty($content) && $thead === false && $tfoot === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ class HTMLPurifier_Config
|
|||
* HTML Purifier's version
|
||||
* @type string
|
||||
*/
|
||||
public $version = '4.13.0';
|
||||
public $version = '4.14.0';
|
||||
|
||||
/**
|
||||
* Whether or not to automatically finalize
|
||||
|
@ -803,7 +803,7 @@ class HTMLPurifier_Config
|
|||
if ($index !== false) {
|
||||
$array = (isset($array[$index]) && is_array($array[$index])) ? $array[$index] : array();
|
||||
}
|
||||
$mq = $mq_fix && function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc();
|
||||
$mq = $mq_fix && version_compare(PHP_VERSION, '7.4.0', '<') && function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc();
|
||||
|
||||
$allowed = HTMLPurifier_Config::getAllowedDirectivesForForm($allowed, $schema);
|
||||
$ret = array();
|
||||
|
|
|
@ -257,8 +257,9 @@ class HTMLPurifier_HTMLModule
|
|||
*/
|
||||
public function makeLookup($list)
|
||||
{
|
||||
$args = func_get_args();
|
||||
if (is_string($list)) {
|
||||
$list = func_get_args();
|
||||
$list = $args;
|
||||
}
|
||||
$ret = array();
|
||||
foreach ($list as $value) {
|
||||
|
|
|
@ -146,10 +146,7 @@ class HTMLPurifier_HTMLModule_Tidy extends HTMLPurifier_HTMLModule
|
|||
$type = "info_$type";
|
||||
$e = $this;
|
||||
}
|
||||
// PHP does some weird parsing when I do
|
||||
// $e->$type[$attr], so I have to assign a ref.
|
||||
$f =& $e->$type;
|
||||
$f[$attr] = $fix;
|
||||
$e->{$type}[$attr] = $fix;
|
||||
break;
|
||||
case 'tag_transform':
|
||||
$this->info_tag_transform[$params['element']] = $fix;
|
||||
|
|
|
@ -168,9 +168,11 @@ class HTMLPurifier_HTMLModule_Tidy_XHTMLAndHTML4 extends HTMLPurifier_HTMLModule
|
|||
// @vspace for img ------------------------------------------------
|
||||
$r['img@vspace'] = new HTMLPurifier_AttrTransform_ImgSpace('vspace');
|
||||
|
||||
// @width for hr, td, th ------------------------------------------
|
||||
// @width for table, hr, td, th, col ------------------------------------------
|
||||
$r['table@width'] =
|
||||
$r['td@width'] =
|
||||
$r['th@width'] =
|
||||
$r['col@width'] =
|
||||
$r['hr@width'] = new HTMLPurifier_AttrTransform_Length('width');
|
||||
|
||||
return $r;
|
||||
|
|
|
@ -40,6 +40,9 @@ class HTMLPurifier_Injector_Linkify extends HTMLPurifier_Injector
|
|||
'/\\b((?:[a-z][\\w\\-]+:(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]|\\((?:[^\\s()<>]|(?:\\([^\\s()<>]+\\)))*\\))+(?:\\((?:[^\\s()<>]|(?:\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\'".,<>?\x{00ab}\x{00bb}\x{201c}\x{201d}\x{2018}\x{2019}]))/iu',
|
||||
$token->data, -1, PREG_SPLIT_DELIM_CAPTURE);
|
||||
|
||||
if ($bits === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
$token = array();
|
||||
|
||||
|
|
123
vendor/forkawesome/fork-awesome/.all-contributorsrc
vendored
123
vendor/forkawesome/fork-awesome/.all-contributorsrc
vendored
|
@ -1063,7 +1063,128 @@
|
|||
"bug",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "lucaspetter",
|
||||
"name": "lucaspetter",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/13027535?v=4",
|
||||
"profile": "https://www.lucaspetter.com",
|
||||
"contributions": [
|
||||
"code",
|
||||
"design"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "dyamon",
|
||||
"name": "Federico Igne",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/6771224?v=4",
|
||||
"profile": "https://github.com/dyamon",
|
||||
"contributions": [
|
||||
"design"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "qwazix",
|
||||
"name": "qwazix",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/1202892?v=4",
|
||||
"profile": "https://github.com/qwazix",
|
||||
"contributions": [
|
||||
"design"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Bertbk",
|
||||
"name": "Bertrand Thierry",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/5602767?v=4",
|
||||
"profile": "http://bthierry.pages.math.cnrs.fr/",
|
||||
"contributions": [
|
||||
"design"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "xxsimoxx",
|
||||
"name": "SIMONE FIORAVANTI",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/29772709?v=4",
|
||||
"profile": "https://github.com/xxsimoxx",
|
||||
"contributions": [
|
||||
"design"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "SamuelRiversMoore",
|
||||
"name": "Samuel Rivers-Moore",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/2640748?v=4",
|
||||
"profile": "http://samuelriversmoore.net",
|
||||
"contributions": [
|
||||
"ideas"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "pattishih",
|
||||
"name": "Patti",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/16858138?v=4",
|
||||
"profile": "https://github.com/pattishih",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "feld",
|
||||
"name": "Mark Felder",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/40271278?v=4",
|
||||
"profile": "https://blog.feld.me",
|
||||
"contributions": [
|
||||
"ideas"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Calinou",
|
||||
"name": "Hugo Locurcio",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/180032?v=4",
|
||||
"profile": "https://hugo.pro",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "tintincastro",
|
||||
"name": "tintincastro",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/25725603?v=4",
|
||||
"profile": "https://github.com/tintincastro",
|
||||
"contributions": [
|
||||
"code",
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "diondresschers",
|
||||
"name": "diondresschers",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/3883936?v=4",
|
||||
"profile": "https://github.com/diondresschers",
|
||||
"contributions": [
|
||||
"design"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "panigrc",
|
||||
"name": "Nikos Papagiannopoulos",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/645895?v=4",
|
||||
"profile": "https://nikospapagiannopoulos.com",
|
||||
"contributions": [
|
||||
"review"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "thomasbnt",
|
||||
"name": "Thomasbnt.dev",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/14293805?v=4",
|
||||
"profile": "https://thomasbnt.dev",
|
||||
"contributions": [
|
||||
"design"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contributorsPerLine": 7
|
||||
"contributorsPerLine": 7,
|
||||
"commitConvention": "none",
|
||||
"skipCi": true
|
||||
}
|
||||
|
|
7
vendor/forkawesome/fork-awesome/CHANGELOG.md
vendored
7
vendor/forkawesome/fork-awesome/CHANGELOG.md
vendored
|
@ -1,6 +1,13 @@
|
|||
# Changelog
|
||||
|
||||
## Changelog of Fork awesome
|
||||
- v1.2
|
||||
- Added icons: Wire, Tor project, volume mute, ringing bell & outlined ringing bell, HAL, Jupytr, Julia, research gate, Open Collective, ClassicPress, ORCID, funkwhale and 38 more. 🎉
|
||||
- Updated Joplin icon.
|
||||
- Added fa-content() function to fix issue with css displaying glyphs when converted to unicode values by sass.
|
||||
- Updated npm packages for security reasons, and added a new option to fix odd behavior that came with svgo update (the icons chaging shape).
|
||||
- Added docker container and instructions in readme.
|
||||
- Build process now 'works without errors' 😅
|
||||
- v1.1.6
|
||||
- Added icons: file-epub, python, archlinux, pleroma, unsplash, hackster, spell-check, moon, sun, f-droid, and biometric
|
||||
- Some documentation correction and augmentation, mostly in the README
|
||||
|
|
|
@ -28,6 +28,13 @@ Adding a new icon is a couple steps process that will require your attention and
|
|||
5. Once you are satisfied with your design and the preview of it. Add the icon name, unicode point and icon information at the bottom of the `src/icons/icons.yml` file. Look at other entries to see how it's done and to give it a proper classification.
|
||||
6. Once all this is done, commit your changes and make a pull request.
|
||||
|
||||
Note : Please be considerate about maintainers' time and please
|
||||
[link your pull requests] to the icon request issue if it exists. You
|
||||
could use it within your commit message as well. This saves the
|
||||
maintainers extra effort in having to keep track of and close completed
|
||||
issues.
|
||||
|
||||
[link your pull requests]: https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue
|
||||
|
||||
## Suggesting icon keyword addition/removal
|
||||
|
||||
|
|
193
vendor/forkawesome/fork-awesome/CONTRIBUTORS.md
vendored
193
vendor/forkawesome/fork-awesome/CONTRIBUTORS.md
vendored
|
@ -7,25 +7,180 @@ This is a list of people who made this project possible, whether they contribute
|
|||
Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore -->
|
||||
| [<img src="https://avatars0.githubusercontent.com/u/1076721?v=4" width="50px;" alt="Dave Gandy"/><br /><sub><b>Dave Gandy</b></sub>](https://github.com/davegandy)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=davegandy "Code") [🎨](#design-davegandy "Design") [📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=davegandy "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/163763?v=4" width="50px;" alt="Brian Talbot"/><br /><sub><b>Brian Talbot</b></sub>](http://www.talbs.me)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=talbs "Code") | [<img src="https://avatars1.githubusercontent.com/u/249366?v=4" width="50px;" alt="Travis Chase"/><br /><sub><b>Travis Chase</b></sub>](https://github.com/supercodepoet)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=supercodepoet "Code") | [<img src="https://avatars2.githubusercontent.com/u/132895?v=4" width="50px;" alt="Rob Madole"/><br /><sub><b>Rob Madole</b></sub>](http://robmadole.com)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=robmadole "Code") | [<img src="https://avatars2.githubusercontent.com/u/556268?v=4" width="50px;" alt="Geremia Taglialatela"/><br /><sub><b>Geremia Taglialatela</b></sub>](https://github.com/tagliala)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=tagliala "Documentation") [💬](#question-tagliala "Answering Questions") | [<img src="https://avatars1.githubusercontent.com/u/81942?v=4" width="50px;" alt="Mathias Bynens"/><br /><sub><b>Mathias Bynens</b></sub>](https://mathiasbynens.be/)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=mathiasbynens "Code") | [<img src="https://avatars0.githubusercontent.com/u/6705160?v=4" width="50px;" alt="William Boman"/><br /><sub><b>William Boman</b></sub>](https://redwill.se/)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=williamboman "Code") |
|
||||
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
|
||||
| [<img src="https://avatars1.githubusercontent.com/u/90316?v=4" width="50px;" alt="Matthias Kretschmann"/><br /><sub><b>Matthias Kretschmann</b></sub>](https://kretschmann.io)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=kremalicious "Code") | [<img src="https://avatars3.githubusercontent.com/u/1321596?v=4" width="50px;" alt="Maxime Fabre"/><br /><sub><b>Maxime Fabre</b></sub>](https://about.me/anahkiasen)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=Anahkiasen "Code") | [<img src="https://avatars1.githubusercontent.com/u/895831?v=4" width="50px;" alt="Patrick H. Lauke"/><br /><sub><b>Patrick H. Lauke</b></sub>](http://www.splintered.co.uk)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=patrickhlauke "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/1438457?v=4" width="50px;" alt="Dan Stroot"/><br /><sub><b>Dan Stroot</b></sub>](https://danstroot.com)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=dstroot "Code") | [<img src="https://avatars0.githubusercontent.com/u/29971?v=4" width="50px;" alt="Jason Porter"/><br /><sub><b>Jason Porter</b></sub>](http://lightguard-jp.blogspot.com)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=LightGuard "Code") | [<img src="https://avatars2.githubusercontent.com/u/1308419?v=4" width="50px;" alt="Tom Byrer"/><br /><sub><b>Tom Byrer</b></sub>](https://github.com/tomByrer)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=tomByrer "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/381393?v=4" width="50px;" alt="Gregory Koberger"/><br /><sub><b>Gregory Koberger</b></sub>](http://readme.io)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=gkoberger "Code") |
|
||||
| [<img src="https://avatars1.githubusercontent.com/u/947110?v=4" width="50px;" alt="Kevin Kirsche"/><br /><sub><b>Kevin Kirsche</b></sub>](https://kevinkirsche.com)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=kkirsche "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/81561?v=4" width="50px;" alt="Marcus Bointon"/><br /><sub><b>Marcus Bointon</b></sub>](http://marcus.bointon.com/)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=Synchro "Code") | [<img src="https://avatars2.githubusercontent.com/u/2371386?v=4" width="50px;" alt="njb_said"/><br /><sub><b>njb_said</b></sub>](https://github.com/njb-said)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=njb-said "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/953092?v=4" width="50px;" alt="AJ Acevedo"/><br /><sub><b>AJ Acevedo</b></sub>](http://ajacevedo.com)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=AJ-Acevedo "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/58669?v=4" width="50px;" alt="Aarni Koskela"/><br /><sub><b>Aarni Koskela</b></sub>](https://akx.github.io/)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=akx "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/3806?v=4" width="50px;" alt="scudco"/><br /><sub><b>scudco</b></sub>](https://github.com/scudco)<br />[🔧](#tool-scudco "Tools") | [<img src="https://avatars1.githubusercontent.com/u/621062?v=4" width="50px;" alt="Alfio Emanuele"/><br /><sub><b>Alfio Emanuele</b></sub>](https://alfioemanuele.io)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=AlfioEmanueleFresta "Documentation") |
|
||||
| [<img src="https://avatars3.githubusercontent.com/u/357623?v=4" width="50px;" alt="Andy Carter"/><br /><sub><b>Andy Carter</b></sub>](http://andy-carter.com)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=drmonkeyninja "Code") | [<img src="https://avatars2.githubusercontent.com/u/237005?v=4" width="50px;" alt="Andy Freeland"/><br /><sub><b>Andy Freeland</b></sub>](https://andyfreeland.net)<br />[🐛](https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Arouge8 "Bug reports") [💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=rouge8 "Code") | [<img src="https://avatars1.githubusercontent.com/u/1490347?v=4" width="50px;" alt="Antério Vieira"/><br /><sub><b>Antério Vieira</b></sub>](http://owen.com.br)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=anteriovieira "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/8832594?v=4" width="50px;" alt="Ararat"/><br /><sub><b>Ararat</b></sub>](https://github.com/araratm)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=araratm "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/1879785?v=4" width="50px;" alt="Ben Gadbois"/><br /><sub><b>Ben Gadbois</b></sub>](https://github.com/bengadbois)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=bengadbois "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/216878?v=4" width="50px;" alt="Ben Thomas"/><br /><sub><b>Ben Thomas</b></sub>](https://github.com/wazoo)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=wazoo "Code") | [<img src="https://avatars0.githubusercontent.com/u/1615761?v=4" width="50px;" alt="Brad Buchanan"/><br /><sub><b>Brad Buchanan</b></sub>](http://bradleycbuchanan.com)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=islemaster "Documentation") |
|
||||
| [<img src="https://avatars0.githubusercontent.com/u/3743423?v=4" width="50px;" alt="Brandon Sarà"/><br /><sub><b>Brandon Sarà</b></sub>](http://bsara.pro)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=bsara "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/4213522?v=4" width="50px;" alt="Bryan Channon"/><br /><sub><b>Bryan Channon</b></sub>](http://vuii.co.uk)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=Vusys "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/496987?v=4" width="50px;" alt="Cauê Thenório"/><br /><sub><b>Cauê Thenório</b></sub>](https://github.com/cauethenorio)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=cauethenorio "Code") | [<img src="https://avatars1.githubusercontent.com/u/5069304?v=4" width="50px;" alt="Chip Thien"/><br /><sub><b>Chip Thien</b></sub>](https://github.com/MacroChip)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=MacroChip "Code") | [<img src="https://avatars0.githubusercontent.com/u/610237?v=4" width="50px;" alt="Dane Hurtubise"/><br /><sub><b>Dane Hurtubise</b></sub>](http://hurtubise.me)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=hurtubise "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/59074?v=4" width="50px;" alt="Dannii Willis"/><br /><sub><b>Dannii Willis</b></sub>](https://curiousdannii.github.io/)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=curiousdannii "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/32717?v=4" width="50px;" alt="Darío Hereñú"/><br /><sub><b>Darío Hereñú</b></sub>](https://github.com/kant)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=kant "Documentation") |
|
||||
| [<img src="https://avatars3.githubusercontent.com/u/36873?v=4" width="50px;" alt="David Celis"/><br /><sub><b>David Celis</b></sub>](https://davidcel.is/)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=davidcelis "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/207171?v=4" width="50px;" alt="Derek Myers"/><br /><sub><b>Derek Myers</b></sub>](http://derekmyers.com)<br />[🐛](https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Admyers "Bug reports") [📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=dmyers "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/53707?v=4" width="50px;" alt="Doug Bell"/><br /><sub><b>Doug Bell</b></sub>](http://preaction.me)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=preaction "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/461752?v=4" width="50px;" alt="Eelke Blok"/><br /><sub><b>Eelke Blok</b></sub>](http://www.blokspeed.net)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=eelkeblok "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/199095?v=4" width="50px;" alt="Elan Ruusamäe"/><br /><sub><b>Elan Ruusamäe</b></sub>](https://github.com/glensc)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=glensc "Code") | [<img src="https://avatars3.githubusercontent.com/u/634191?v=4" width="50px;" alt="Eric Bailey"/><br /><sub><b>Eric Bailey</b></sub>](https://ericwbailey.design/)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=ericwbailey "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/13179128?v=4" width="50px;" alt="Ferhat Elmasgüneş"/><br /><sub><b>Ferhat Elmasgüneş</b></sub>](http://ferhat.elmasgunes.net)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=ferhate "Documentation") |
|
||||
| [<img src="https://avatars0.githubusercontent.com/u/100959?v=4" width="50px;" alt="Frédéric Junod"/><br /><sub><b>Frédéric Junod</b></sub>](https://github.com/fredj)<br />[🐛](https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Afredj "Bug reports") [📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=fredj "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/2829600?v=4" width="50px;" alt="Graham Campbell"/><br /><sub><b>Graham Campbell</b></sub>](https://gjcampbell.co.uk/)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=GrahamCampbell "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/1072751?v=4" width="50px;" alt="Graham Walters"/><br /><sub><b>Graham Walters</b></sub>](https://grahamwalters.me)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=GrahamWalters "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/816859?v=4" width="50px;" alt="Hendrik Kleinwaechter"/><br /><sub><b>Hendrik Kleinwaechter</b></sub>](http://www.tripl.de)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=hendricius "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/9744226?v=4" width="50px;" alt="IKOURFALN Slimane"/><br /><sub><b>IKOURFALN Slimane</b></sub>](https://github.com/ikourfaln)<br />[🐛](https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Aikourfaln "Bug reports") [💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=ikourfaln "Code") | [<img src="https://avatars2.githubusercontent.com/u/141546?v=4" width="50px;" alt="Jakub Wilk"/><br /><sub><b>Jakub Wilk</b></sub>](https://github.com/jwilk)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=jwilk "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/242337?v=4" width="50px;" alt="James Harrison"/><br /><sub><b>James Harrison</b></sub>](https://github.com/jjlharrison)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=jjlharrison "Documentation") |
|
||||
| [<img src="https://avatars3.githubusercontent.com/u/22308682?v=4" width="50px;" alt="James Johnston"/><br /><sub><b>James Johnston</b></sub>](https://github.com/james-johnston-thumbtack)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=james-johnston-thumbtack "Code") | [<img src="https://avatars2.githubusercontent.com/u/3666887?v=4" width="50px;" alt="Jan Hořava"/><br /><sub><b>Jan Hořava</b></sub>](http://honzi.cz)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=honzi "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/112170?v=4" width="50px;" alt="Jared Forsyth"/><br /><sub><b>Jared Forsyth</b></sub>](http://jaredforsyth.com)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=jaredly "Code") [📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=jaredly "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/8212?v=4" width="50px;" alt="Jerod Santo"/><br /><sub><b>Jerod Santo</b></sub>](https://jerodsanto.net)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=jerodsanto "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/53273?v=4" width="50px;" alt="Jina Anne"/><br /><sub><b>Jina Anne</b></sub>](http://jina.me)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=jina "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/429633?v=4" width="50px;" alt="JocelynDelalande"/><br /><sub><b>JocelynDelalande</b></sub>](http://jocelyn.delalande.fr)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=JocelynDelalande "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/39089?v=4" width="50px;" alt="John Hope"/><br /><sub><b>John Hope</b></sub>](http://jhope.ie)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=JonMidhir "Documentation") |
|
||||
| [<img src="https://avatars1.githubusercontent.com/u/13952477?v=4" width="50px;" alt="Josh Dean"/><br /><sub><b>Josh Dean</b></sub>](https://github.com/josdea)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=josdea "Code") | [<img src="https://avatars1.githubusercontent.com/u/1188186?v=4" width="50px;" alt="Julian Krispel-Samsel"/><br /><sub><b>Julian Krispel-Samsel</b></sub>](http://reactrocket.com)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=juliankrispel "Code") | [<img src="https://avatars3.githubusercontent.com/u/591833?v=4" width="50px;" alt="Lee Leathers"/><br /><sub><b>Lee Leathers</b></sub>](http://about.me/leeleathers)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=theoreticaLee "Code") | [<img src="https://avatars2.githubusercontent.com/u/764854?v=4" width="50px;" alt="Leniel Macaferi"/><br /><sub><b>Leniel Macaferi</b></sub>](http://leniel.net)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=leniel "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/572289?v=4" width="50px;" alt="Mladen Đurić"/><br /><sub><b>Mladen Đurić</b></sub>](http://macmladen.com)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=macmladen "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/1043838?v=4" width="50px;" alt="Martin Seeler"/><br /><sub><b>Martin Seeler</b></sub>](http://www.martinseeler.com)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=MartinSeeler "Code") | [<img src="https://avatars2.githubusercontent.com/u/321881?v=4" width="50px;" alt="Mateusz Jagiełło"/><br /><sub><b>Mateusz Jagiełło</b></sub>](http://sigo.pl/)<br />[🐛](https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Asigo "Bug reports") |
|
||||
| [<img src="https://avatars3.githubusercontent.com/u/736870?v=4" width="50px;" alt="Matt Smith"/><br /><sub><b>Matt Smith</b></sub>](http://www.softwarebymatt.com)<br />[🐛](https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Amtscout6 "Bug reports") | [<img src="https://avatars2.githubusercontent.com/u/495549?v=4" width="50px;" alt="Matus Gura"/><br /><sub><b>Matus Gura</b></sub>](https://github.com/gurisko)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=gurisko "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/117222?v=4" width="50px;" alt="Michael Angeles"/><br /><sub><b>Michael Angeles</b></sub>](https://github.com/jibbajabba)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=jibbajabba "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/1246672?v=4" width="50px;" alt="Nielsen Ramon"/><br /><sub><b>Nielsen Ramon</b></sub>](http://nielsenramon.com/)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=nielsenramon "Code") | [<img src="https://avatars1.githubusercontent.com/u/1944410?v=4" width="50px;" alt="Noah Doersing"/><br /><sub><b>Noah Doersing</b></sub>](https://hejnoah.com)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=doersino "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/769142?v=4" width="50px;" alt="Paul Korzhyk"/><br /><sub><b>Paul Korzhyk</b></sub>](https://github.com/paulftw)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=paulftw "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/3691490?v=4" width="50px;" alt="Peter Dave Hello"/><br /><sub><b>Peter Dave Hello</b></sub>](https://www.peterdavehello.org/)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=PeterDaveHello "Documentation") [📦](#platform-PeterDaveHello "Packaging/porting to new platform") |
|
||||
| [<img src="https://avatars2.githubusercontent.com/u/557895?v=4" width="50px;" alt="Peter deHaan"/><br /><sub><b>Peter deHaan</b></sub>](http://about.me/peterdehaan)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=pdehaan "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/829526?v=4" width="50px;" alt="Prayag Verma "/><br /><sub><b>Prayag Verma </b></sub>](https://www.StylifyYourBlog.com/)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=pra85 "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/15367484?v=4" width="50px;" alt="ReadmeCritic"/><br /><sub><b>ReadmeCritic</b></sub>](https://twitter.com/ReadmeCritic)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=ReadmeCritic "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/1263856?v=4" width="50px;" alt="Ricardo Polo"/><br /><sub><b>Ricardo Polo</b></sub>](https://ricardopolo.co/)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=ricardopolo "Code") | [<img src="https://avatars0.githubusercontent.com/u/740?v=4" width="50px;" alt="Ryan McGeary"/><br /><sub><b>Ryan McGeary</b></sub>](http://ryan.mcgeary.org)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=rmm5t "Code") | [<img src="https://avatars1.githubusercontent.com/u/125998?v=4" width="50px;" alt="Ryan Riggin"/><br /><sub><b>Ryan Riggin</b></sub>](https://github.com/rriggin)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=rriggin "Code") | [<img src="https://avatars2.githubusercontent.com/u/881590?v=4" width="50px;" alt="Ryan Senkbeil"/><br /><sub><b>Ryan Senkbeil</b></sub>](http://ryansenkbeil.com)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=rsenk330 "Code") |
|
||||
| [<img src="https://avatars1.githubusercontent.com/u/1961007?v=4" width="50px;" alt="Sarang Joshi"/><br /><sub><b>Sarang Joshi</b></sub>](http://sarangjo.github.io)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=sarangjo "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/1044670?v=4" width="50px;" alt="Scott Cranfill"/><br /><sub><b>Scott Cranfill</b></sub>](https://twitter.com/scott_ish)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=Scotchester "Code") | [<img src="https://avatars1.githubusercontent.com/u/4629794?v=4" width="50px;" alt="The Jared Wilcurt"/><br /><sub><b>The Jared Wilcurt</b></sub>](http://TheJaredWilcurt.com)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=TheJaredWilcurt "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/308290?v=4" width="50px;" alt="Tim Guibord"/><br /><sub><b>Tim Guibord</b></sub>](https://github.com/tagCincy)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=tagCincy "Code") | [<img src="https://avatars1.githubusercontent.com/u/1152567?v=4" width="50px;" alt="Vadim Mazur"/><br /><sub><b>Vadim Mazur</b></sub>](https://github.com/mazurva)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=mazurva "Code") | [<img src="https://avatars2.githubusercontent.com/u/382608?v=4" width="50px;" alt="Vinson Chuong"/><br /><sub><b>Vinson Chuong</b></sub>](https://vinsonchuong.net)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=vinsonchuong "Code") | [<img src="https://avatars3.githubusercontent.com/u/34144858?v=4" width="50px;" alt="grvrg"/><br /><sub><b>grvrg</b></sub>](https://github.com/grvrg)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=grvrg "Documentation") |
|
||||
| [<img src="https://avatars0.githubusercontent.com/u/77144?v=4" width="50px;" alt="Luca Trevisani"/><br /><sub><b>Luca Trevisani</b></sub>](https://github.com/luke83)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=luke83 "Code") | [<img src="https://avatars3.githubusercontent.com/u/1706326?v=4" width="50px;" alt="Álvaro"/><br /><sub><b>Álvaro</b></sub>](http://alvarotrigo.com)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=alvarotrigo "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/192539?v=4" width="50px;" alt="Julien Deswaef"/><br /><sub><b>Julien Deswaef</b></sub>](http://xuv.be)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=xuv "Code") [🎨](#design-xuv "Design") [📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=xuv "Documentation") [💬](#question-xuv "Answering Questions") | [<img src="https://avatars0.githubusercontent.com/u/2192132?v=4" width="50px;" alt="n8willis"/><br /><sub><b>n8willis</b></sub>](https://github.com/n8willis)<br />[🤔](#ideas-n8willis "Ideas, Planning, & Feedback") | [<img src="https://avatars0.githubusercontent.com/u/1779453?v=4" width="50px;" alt="B. Howell"/><br /><sub><b>B. Howell</b></sub>](http://wintermute.org/brendan)<br />[🤔](#ideas-brendanhowell "Ideas, Planning, & Feedback") | [<img src="https://avatars2.githubusercontent.com/u/1197187?v=4" width="50px;" alt="Algot Runeman"/><br /><sub><b>Algot Runeman</b></sub>](http://runeman.org)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=algotruneman "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/10608836?v=4" width="50px;" alt="Micah Ilbery"/><br /><sub><b>Micah Ilbery</b></sub>](https://micahilbery.com/)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=micahilbery "Documentation") [🎨](#design-micahilbery "Design") |
|
||||
| [<img src="https://avatars3.githubusercontent.com/u/223439?v=4" width="50px;" alt="Helmut K. C. Tessarek"/><br /><sub><b>Helmut K. C. Tessarek</b></sub>](https://evermeet.cx)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=tessus "Documentation") [💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=tessus "Code") [🎨](#design-tessus "Design") | [<img src="https://avatars0.githubusercontent.com/u/3597194?v=4" width="50px;" alt="jeromelebleu"/><br /><sub><b>jeromelebleu</b></sub>](https://github.com/jeromelebleu)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=jeromelebleu "Code") | [<img src="https://avatars3.githubusercontent.com/u/630909?v=4" width="50px;" alt="Kimberly Zick"/><br /><sub><b>Kimberly Zick</b></sub>](https://zick.kim/)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=rummik "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/13441278?v=4" width="50px;" alt="nIQnutn"/><br /><sub><b>nIQnutn</b></sub>](http://blog.niqnutn.com/)<br />[📝](#blog-nIQnutn "Blogposts") [🔌](#plugin-nIQnutn "Plugin/utility libraries") | [<img src="https://avatars1.githubusercontent.com/u/4307697?v=4" width="50px;" alt="Jaime Leonardo Suncin Cruz"/><br /><sub><b>Jaime Leonardo Suncin Cruz</b></sub>](https://github.com/leosuncin)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=leosuncin "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/1770233?v=4" width="50px;" alt="Juliette Foucaut"/><br /><sub><b>Juliette Foucaut</b></sub>](https://www.enkisoftware.com)<br />[🔌](#plugin-juliettef "Plugin/utility libraries") | [<img src="https://avatars1.githubusercontent.com/u/6379091?v=4" width="50px;" alt="Dominik V. Salonen"/><br /><sub><b>Dominik V. Salonen</b></sub>](http://quad.moe/)<br />[📝](#blog-QuadPiece "Blogposts") |
|
||||
| [<img src="https://avatars2.githubusercontent.com/u/2706882?v=4" width="50px;" alt="Alexandre Viau"/><br /><sub><b>Alexandre Viau</b></sub>](https://alexandreviau.net)<br />[🤔](#ideas-aviau "Ideas, Planning, & Feedback") [📦](#platform-aviau "Packaging/porting to new platform") | [<img src="https://avatars3.githubusercontent.com/u/7915413?v=4" width="50px;" alt="Xesau"/><br /><sub><b>Xesau</b></sub>](http://xesau.eu/)<br />[🐛](https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3AXesau "Bug reports") | [<img src="https://avatars0.githubusercontent.com/u/649895?v=4" width="50px;" alt="Jan Hohner"/><br /><sub><b>Jan Hohner</b></sub>](https://janhohner.de)<br />[🐛](https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Ajanhohner "Bug reports") | [<img src="https://avatars0.githubusercontent.com/u/261579?v=4" width="50px;" alt="Dave Crossland"/><br /><sub><b>Dave Crossland</b></sub>](http://fonts.google.com)<br />[👀](#review-davelab6 "Reviewed Pull Requests") | [<img src="https://avatars0.githubusercontent.com/u/8260834?v=4" width="50px;" alt="Maximilian Berkmann"/><br /><sub><b>Maximilian Berkmann</b></sub>](http://maxcubing.wordpress.com)<br />[🤔](#ideas-Berkmann18 "Ideas, Planning, & Feedback") | [<img src="https://avatars2.githubusercontent.com/u/616813?v=4" width="50px;" alt="Moritz Heiber"/><br /><sub><b>Moritz Heiber</b></sub>](https://heiber.im)<br />[🚇](#infra-moritzheiber "Infrastructure (Hosting, Build-Tools, etc)") | [<img src="https://avatars1.githubusercontent.com/u/21787?v=4" width="50px;" alt="Wesley Moore"/><br /><sub><b>Wesley Moore</b></sub>](http://www.wezm.net/)<br />[📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=wezm "Documentation") |
|
||||
| [<img src="https://avatars0.githubusercontent.com/u/377632?v=4" width="50px;" alt="John Kristensen"/><br /><sub><b>John Kristensen</b></sub>](http://www.jerrykan.com/)<br />[🎨](#design-jerrykan "Design") | [<img src="https://avatars3.githubusercontent.com/u/130971?v=4" width="50px;" alt="Marco"/><br /><sub><b>Marco</b></sub>](https://amusewiki.org)<br />[🎨](#design-melmothx "Design") | [<img src="https://avatars1.githubusercontent.com/u/658496?v=4" width="50px;" alt="Jared White"/><br /><sub><b>Jared White</b></sub>](https://whitefusion.io)<br />[🖋](#content-jaredcwhite "Content") | [<img src="https://avatars2.githubusercontent.com/u/478237?v=4" width="50px;" alt="Waldir Pimenta"/><br /><sub><b>Waldir Pimenta</b></sub>](http://waldyrious.github.io)<br />[🖋](#content-waldyrious "Content") | [<img src="https://avatars3.githubusercontent.com/u/1898673?v=4" width="50px;" alt="Vladimir Anokhin"/><br /><sub><b>Vladimir Anokhin</b></sub>](https://vanokhin.com/)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=vanokhin "Code") | [<img src="https://avatars2.githubusercontent.com/u/1596934?v=4" width="50px;" alt="Maxime Lathuilière"/><br /><sub><b>Maxime Lathuilière</b></sub>](http://maxlath.eu)<br />[💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=maxlath "Code") | [<img src="https://avatars1.githubusercontent.com/u/8832594?v=4" width="50px;" alt="Ararat"/><br /><sub><b>Ararat</b></sub>](https://github.com/araratthehero)<br />[🖋](#content-araratthehero "Content") |
|
||||
| [<img src="https://avatars2.githubusercontent.com/u/7890201?v=4" width="50px;" alt="Liaizon Wakest"/><br /><sub><b>Liaizon Wakest</b></sub>](http://wake.st)<br />[🤔](#ideas-wakest "Ideas, Planning, & Feedback") | [<img src="https://avatars2.githubusercontent.com/u/1108409?v=4" width="50px;" alt="Ben Fedidat"/><br /><sub><b>Ben Fedidat</b></sub>](http://fedidat.com/)<br />[📝](#blog-fedidat "Blogposts") | [<img src="https://avatars0.githubusercontent.com/u/954092?v=4" width="50px;" alt="Todd Eidson"/><br /><sub><b>Todd Eidson</b></sub>](https://www.eidson.info)<br />[🤔](#ideas-eidsonator "Ideas, Planning, & Feedback") [📖](https://github.com/ForkAwesome/Fork-Awesome/commits?author=eidsonator "Documentation") [🐛](https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Aeidsonator "Bug reports") [💻](https://github.com/ForkAwesome/Fork-Awesome/commits?author=eidsonator "Code") |
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/davegandy"><img src="https://avatars0.githubusercontent.com/u/1076721?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Dave Gandy</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=davegandy" title="Code">💻</a> <a href="#design-davegandy" title="Design">🎨</a> <a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=davegandy" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://www.talbs.me"><img src="https://avatars3.githubusercontent.com/u/163763?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Brian Talbot</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=talbs" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/supercodepoet"><img src="https://avatars1.githubusercontent.com/u/249366?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Travis Chase</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=supercodepoet" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://robmadole.com"><img src="https://avatars2.githubusercontent.com/u/132895?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Rob Madole</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=robmadole" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/tagliala"><img src="https://avatars2.githubusercontent.com/u/556268?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Geremia Taglialatela</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=tagliala" title="Documentation">📖</a> <a href="#question-tagliala" title="Answering Questions">💬</a></td>
|
||||
<td align="center"><a href="https://mathiasbynens.be/"><img src="https://avatars1.githubusercontent.com/u/81942?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Mathias Bynens</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=mathiasbynens" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://redwill.se/"><img src="https://avatars0.githubusercontent.com/u/6705160?v=4?s=50" width="50px;" alt=""/><br /><sub><b>William Boman</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=williamboman" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://kretschmann.io"><img src="https://avatars1.githubusercontent.com/u/90316?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Matthias Kretschmann</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=kremalicious" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://about.me/anahkiasen"><img src="https://avatars3.githubusercontent.com/u/1321596?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Maxime Fabre</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=Anahkiasen" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://www.splintered.co.uk"><img src="https://avatars1.githubusercontent.com/u/895831?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Patrick H. Lauke</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=patrickhlauke" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://danstroot.com"><img src="https://avatars1.githubusercontent.com/u/1438457?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Dan Stroot</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=dstroot" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://lightguard-jp.blogspot.com"><img src="https://avatars0.githubusercontent.com/u/29971?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Jason Porter</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=LightGuard" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/tomByrer"><img src="https://avatars2.githubusercontent.com/u/1308419?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Tom Byrer</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=tomByrer" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://readme.io"><img src="https://avatars3.githubusercontent.com/u/381393?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Gregory Koberger</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=gkoberger" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://kevinkirsche.com"><img src="https://avatars1.githubusercontent.com/u/947110?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Kevin Kirsche</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=kkirsche" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://marcus.bointon.com/"><img src="https://avatars2.githubusercontent.com/u/81561?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Marcus Bointon</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=Synchro" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/njb-said"><img src="https://avatars2.githubusercontent.com/u/2371386?v=4?s=50" width="50px;" alt=""/><br /><sub><b>njb_said</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=njb-said" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://ajacevedo.com"><img src="https://avatars1.githubusercontent.com/u/953092?v=4?s=50" width="50px;" alt=""/><br /><sub><b>AJ Acevedo</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=AJ-Acevedo" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://akx.github.io/"><img src="https://avatars2.githubusercontent.com/u/58669?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Aarni Koskela</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=akx" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/scudco"><img src="https://avatars1.githubusercontent.com/u/3806?v=4?s=50" width="50px;" alt=""/><br /><sub><b>scudco</b></sub></a><br /><a href="#tool-scudco" title="Tools">🔧</a></td>
|
||||
<td align="center"><a href="https://alfioemanuele.io"><img src="https://avatars1.githubusercontent.com/u/621062?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Alfio Emanuele</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=AlfioEmanueleFresta" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://andy-carter.com"><img src="https://avatars3.githubusercontent.com/u/357623?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Andy Carter</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=drmonkeyninja" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://andyfreeland.net"><img src="https://avatars2.githubusercontent.com/u/237005?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Andy Freeland</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Arouge8" title="Bug reports">🐛</a> <a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=rouge8" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://owen.com.br"><img src="https://avatars1.githubusercontent.com/u/1490347?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Antério Vieira</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=anteriovieira" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/araratm"><img src="https://avatars1.githubusercontent.com/u/8832594?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Ararat</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=araratm" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/bengadbois"><img src="https://avatars2.githubusercontent.com/u/1879785?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Ben Gadbois</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=bengadbois" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/wazoo"><img src="https://avatars0.githubusercontent.com/u/216878?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Ben Thomas</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=wazoo" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://bradleycbuchanan.com"><img src="https://avatars0.githubusercontent.com/u/1615761?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Brad Buchanan</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=islemaster" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://bsara.pro"><img src="https://avatars0.githubusercontent.com/u/3743423?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Brandon Sarà</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=bsara" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://vuii.co.uk"><img src="https://avatars0.githubusercontent.com/u/4213522?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Bryan Channon</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=Vusys" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/cauethenorio"><img src="https://avatars3.githubusercontent.com/u/496987?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Cauê Thenório</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=cauethenorio" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/MacroChip"><img src="https://avatars1.githubusercontent.com/u/5069304?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Chip Thien</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=MacroChip" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://hurtubise.me"><img src="https://avatars0.githubusercontent.com/u/610237?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Dane Hurtubise</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=hurtubise" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://curiousdannii.github.io/"><img src="https://avatars2.githubusercontent.com/u/59074?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Dannii Willis</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=curiousdannii" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/kant"><img src="https://avatars1.githubusercontent.com/u/32717?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Darío Hereñú</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=kant" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://davidcel.is/"><img src="https://avatars3.githubusercontent.com/u/36873?v=4?s=50" width="50px;" alt=""/><br /><sub><b>David Celis</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=davidcelis" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://derekmyers.com"><img src="https://avatars3.githubusercontent.com/u/207171?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Derek Myers</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Admyers" title="Bug reports">🐛</a> <a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=dmyers" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://preaction.me"><img src="https://avatars0.githubusercontent.com/u/53707?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Doug Bell</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=preaction" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://www.blokspeed.net"><img src="https://avatars0.githubusercontent.com/u/461752?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Eelke Blok</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=eelkeblok" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/glensc"><img src="https://avatars1.githubusercontent.com/u/199095?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Elan Ruusamäe</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=glensc" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://ericwbailey.design/"><img src="https://avatars3.githubusercontent.com/u/634191?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Eric Bailey</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=ericwbailey" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://ferhat.elmasgunes.net"><img src="https://avatars0.githubusercontent.com/u/13179128?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Ferhat Elmasgüneş</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=ferhate" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/fredj"><img src="https://avatars0.githubusercontent.com/u/100959?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Frédéric Junod</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Afredj" title="Bug reports">🐛</a> <a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=fredj" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://gjcampbell.co.uk/"><img src="https://avatars1.githubusercontent.com/u/2829600?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Graham Campbell</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=GrahamCampbell" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://grahamwalters.me"><img src="https://avatars2.githubusercontent.com/u/1072751?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Graham Walters</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=GrahamWalters" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://www.tripl.de"><img src="https://avatars2.githubusercontent.com/u/816859?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Hendrik Kleinwaechter</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=hendricius" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/ikourfaln"><img src="https://avatars3.githubusercontent.com/u/9744226?v=4?s=50" width="50px;" alt=""/><br /><sub><b>IKOURFALN Slimane</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Aikourfaln" title="Bug reports">🐛</a> <a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=ikourfaln" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/jwilk"><img src="https://avatars2.githubusercontent.com/u/141546?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Jakub Wilk</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=jwilk" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/jjlharrison"><img src="https://avatars0.githubusercontent.com/u/242337?v=4?s=50" width="50px;" alt=""/><br /><sub><b>James Harrison</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=jjlharrison" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/james-johnston-thumbtack"><img src="https://avatars3.githubusercontent.com/u/22308682?v=4?s=50" width="50px;" alt=""/><br /><sub><b>James Johnston</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=james-johnston-thumbtack" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://honzi.cz"><img src="https://avatars2.githubusercontent.com/u/3666887?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Jan Hořava</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=honzi" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://jaredforsyth.com"><img src="https://avatars3.githubusercontent.com/u/112170?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Jared Forsyth</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=jaredly" title="Code">💻</a> <a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=jaredly" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://jerodsanto.net"><img src="https://avatars0.githubusercontent.com/u/8212?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Jerod Santo</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=jerodsanto" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://jina.me"><img src="https://avatars3.githubusercontent.com/u/53273?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Jina Anne</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=jina" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://jocelyn.delalande.fr"><img src="https://avatars0.githubusercontent.com/u/429633?v=4?s=50" width="50px;" alt=""/><br /><sub><b>JocelynDelalande</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=JocelynDelalande" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://jhope.ie"><img src="https://avatars0.githubusercontent.com/u/39089?v=4?s=50" width="50px;" alt=""/><br /><sub><b>John Hope</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=JonMidhir" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/josdea"><img src="https://avatars1.githubusercontent.com/u/13952477?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Josh Dean</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=josdea" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://reactrocket.com"><img src="https://avatars1.githubusercontent.com/u/1188186?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Julian Krispel-Samsel</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=juliankrispel" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://about.me/leeleathers"><img src="https://avatars3.githubusercontent.com/u/591833?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Lee Leathers</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=theoreticaLee" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://leniel.net"><img src="https://avatars2.githubusercontent.com/u/764854?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Leniel Macaferi</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=leniel" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://macmladen.com"><img src="https://avatars2.githubusercontent.com/u/572289?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Mladen Đurić</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=macmladen" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://www.martinseeler.com"><img src="https://avatars0.githubusercontent.com/u/1043838?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Martin Seeler</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=MartinSeeler" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://sigo.pl/"><img src="https://avatars2.githubusercontent.com/u/321881?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Mateusz Jagiełło</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Asigo" title="Bug reports">🐛</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://www.softwarebymatt.com"><img src="https://avatars3.githubusercontent.com/u/736870?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Matt Smith</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Amtscout6" title="Bug reports">🐛</a></td>
|
||||
<td align="center"><a href="https://github.com/gurisko"><img src="https://avatars2.githubusercontent.com/u/495549?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Matus Gura</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=gurisko" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/jibbajabba"><img src="https://avatars1.githubusercontent.com/u/117222?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Michael Angeles</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=jibbajabba" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://nielsenramon.com/"><img src="https://avatars3.githubusercontent.com/u/1246672?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Nielsen Ramon</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=nielsenramon" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://hejnoah.com"><img src="https://avatars1.githubusercontent.com/u/1944410?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Noah Doersing</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=doersino" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/paulftw"><img src="https://avatars1.githubusercontent.com/u/769142?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Paul Korzhyk</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=paulftw" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://www.peterdavehello.org/"><img src="https://avatars3.githubusercontent.com/u/3691490?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Peter Dave Hello</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=PeterDaveHello" title="Documentation">📖</a> <a href="#platform-PeterDaveHello" title="Packaging/porting to new platform">📦</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://about.me/peterdehaan"><img src="https://avatars2.githubusercontent.com/u/557895?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Peter deHaan</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=pdehaan" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://www.StylifyYourBlog.com/"><img src="https://avatars2.githubusercontent.com/u/829526?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Prayag Verma </b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=pra85" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://twitter.com/ReadmeCritic"><img src="https://avatars3.githubusercontent.com/u/15367484?v=4?s=50" width="50px;" alt=""/><br /><sub><b>ReadmeCritic</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=ReadmeCritic" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://ricardopolo.co/"><img src="https://avatars3.githubusercontent.com/u/1263856?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Ricardo Polo</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=ricardopolo" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://ryan.mcgeary.org"><img src="https://avatars0.githubusercontent.com/u/740?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Ryan McGeary</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=rmm5t" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/rriggin"><img src="https://avatars1.githubusercontent.com/u/125998?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Ryan Riggin</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=rriggin" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://ryansenkbeil.com"><img src="https://avatars2.githubusercontent.com/u/881590?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Ryan Senkbeil</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=rsenk330" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://sarangjo.github.io"><img src="https://avatars1.githubusercontent.com/u/1961007?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Sarang Joshi</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=sarangjo" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://twitter.com/scott_ish"><img src="https://avatars3.githubusercontent.com/u/1044670?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Scott Cranfill</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=Scotchester" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://TheJaredWilcurt.com"><img src="https://avatars1.githubusercontent.com/u/4629794?v=4?s=50" width="50px;" alt=""/><br /><sub><b>The Jared Wilcurt</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=TheJaredWilcurt" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/tagCincy"><img src="https://avatars0.githubusercontent.com/u/308290?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Tim Guibord</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=tagCincy" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/mazurva"><img src="https://avatars1.githubusercontent.com/u/1152567?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Vadim Mazur</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=mazurva" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://vinsonchuong.net"><img src="https://avatars2.githubusercontent.com/u/382608?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Vinson Chuong</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=vinsonchuong" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/grvrg"><img src="https://avatars3.githubusercontent.com/u/34144858?v=4?s=50" width="50px;" alt=""/><br /><sub><b>grvrg</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=grvrg" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/luke83"><img src="https://avatars0.githubusercontent.com/u/77144?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Luca Trevisani</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=luke83" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://alvarotrigo.com"><img src="https://avatars3.githubusercontent.com/u/1706326?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Álvaro</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=alvarotrigo" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://xuv.be"><img src="https://avatars3.githubusercontent.com/u/192539?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Julien Deswaef</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=xuv" title="Code">💻</a> <a href="#design-xuv" title="Design">🎨</a> <a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=xuv" title="Documentation">📖</a> <a href="#question-xuv" title="Answering Questions">💬</a></td>
|
||||
<td align="center"><a href="https://github.com/n8willis"><img src="https://avatars0.githubusercontent.com/u/2192132?v=4?s=50" width="50px;" alt=""/><br /><sub><b>n8willis</b></sub></a><br /><a href="#ideas-n8willis" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center"><a href="http://wintermute.org/brendan"><img src="https://avatars0.githubusercontent.com/u/1779453?v=4?s=50" width="50px;" alt=""/><br /><sub><b>B. Howell</b></sub></a><br /><a href="#ideas-brendanhowell" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center"><a href="http://runeman.org"><img src="https://avatars2.githubusercontent.com/u/1197187?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Algot Runeman</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=algotruneman" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://micahilbery.com/"><img src="https://avatars0.githubusercontent.com/u/10608836?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Micah Ilbery</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=micahilbery" title="Documentation">📖</a> <a href="#design-micahilbery" title="Design">🎨</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://evermeet.cx"><img src="https://avatars3.githubusercontent.com/u/223439?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Helmut K. C. Tessarek</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=tessus" title="Documentation">📖</a> <a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=tessus" title="Code">💻</a> <a href="#design-tessus" title="Design">🎨</a></td>
|
||||
<td align="center"><a href="https://github.com/jeromelebleu"><img src="https://avatars0.githubusercontent.com/u/3597194?v=4?s=50" width="50px;" alt=""/><br /><sub><b>jeromelebleu</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=jeromelebleu" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://zick.kim/"><img src="https://avatars3.githubusercontent.com/u/630909?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Kimberly Zick</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=rummik" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://blog.niqnutn.com/"><img src="https://avatars2.githubusercontent.com/u/13441278?v=4?s=50" width="50px;" alt=""/><br /><sub><b>nIQnutn</b></sub></a><br /><a href="#blog-nIQnutn" title="Blogposts">📝</a> <a href="#plugin-nIQnutn" title="Plugin/utility libraries">🔌</a></td>
|
||||
<td align="center"><a href="https://github.com/leosuncin"><img src="https://avatars1.githubusercontent.com/u/4307697?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Jaime Leonardo Suncin Cruz</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=leosuncin" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://www.enkisoftware.com"><img src="https://avatars0.githubusercontent.com/u/1770233?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Juliette Foucaut</b></sub></a><br /><a href="#plugin-juliettef" title="Plugin/utility libraries">🔌</a></td>
|
||||
<td align="center"><a href="http://quad.moe/"><img src="https://avatars1.githubusercontent.com/u/6379091?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Dominik V. Salonen</b></sub></a><br /><a href="#blog-QuadPiece" title="Blogposts">📝</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://alexandreviau.net"><img src="https://avatars2.githubusercontent.com/u/2706882?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Alexandre Viau</b></sub></a><br /><a href="#ideas-aviau" title="Ideas, Planning, & Feedback">🤔</a> <a href="#platform-aviau" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center"><a href="http://xesau.eu/"><img src="https://avatars3.githubusercontent.com/u/7915413?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Xesau</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3AXesau" title="Bug reports">🐛</a></td>
|
||||
<td align="center"><a href="https://janhohner.de"><img src="https://avatars0.githubusercontent.com/u/649895?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Jan Hohner</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Ajanhohner" title="Bug reports">🐛</a></td>
|
||||
<td align="center"><a href="http://fonts.google.com"><img src="https://avatars0.githubusercontent.com/u/261579?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Dave Crossland</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/pulls?q=is%3Apr+reviewed-by%3Adavelab6" title="Reviewed Pull Requests">👀</a></td>
|
||||
<td align="center"><a href="http://maxcubing.wordpress.com"><img src="https://avatars0.githubusercontent.com/u/8260834?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Maximilian Berkmann</b></sub></a><br /><a href="#ideas-Berkmann18" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center"><a href="https://heiber.im"><img src="https://avatars2.githubusercontent.com/u/616813?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Moritz Heiber</b></sub></a><br /><a href="#infra-moritzheiber" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
||||
<td align="center"><a href="http://www.wezm.net/"><img src="https://avatars1.githubusercontent.com/u/21787?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Wesley Moore</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=wezm" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://www.jerrykan.com/"><img src="https://avatars0.githubusercontent.com/u/377632?v=4?s=50" width="50px;" alt=""/><br /><sub><b>John Kristensen</b></sub></a><br /><a href="#design-jerrykan" title="Design">🎨</a></td>
|
||||
<td align="center"><a href="https://amusewiki.org"><img src="https://avatars3.githubusercontent.com/u/130971?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Marco</b></sub></a><br /><a href="#design-melmothx" title="Design">🎨</a></td>
|
||||
<td align="center"><a href="https://whitefusion.io"><img src="https://avatars1.githubusercontent.com/u/658496?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Jared White</b></sub></a><br /><a href="#content-jaredcwhite" title="Content">🖋</a></td>
|
||||
<td align="center"><a href="http://waldyrious.github.io"><img src="https://avatars2.githubusercontent.com/u/478237?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Waldir Pimenta</b></sub></a><br /><a href="#content-waldyrious" title="Content">🖋</a></td>
|
||||
<td align="center"><a href="https://vanokhin.com/"><img src="https://avatars3.githubusercontent.com/u/1898673?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Vladimir Anokhin</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=vanokhin" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://maxlath.eu"><img src="https://avatars2.githubusercontent.com/u/1596934?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Maxime Lathuilière</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=maxlath" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/araratthehero"><img src="https://avatars1.githubusercontent.com/u/8832594?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Ararat</b></sub></a><br /><a href="#content-araratthehero" title="Content">🖋</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://wake.st"><img src="https://avatars2.githubusercontent.com/u/7890201?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Liaizon Wakest</b></sub></a><br /><a href="#ideas-wakest" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center"><a href="http://fedidat.com/"><img src="https://avatars2.githubusercontent.com/u/1108409?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Ben Fedidat</b></sub></a><br /><a href="#blog-fedidat" title="Blogposts">📝</a></td>
|
||||
<td align="center"><a href="https://www.eidson.info"><img src="https://avatars0.githubusercontent.com/u/954092?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Todd Eidson</b></sub></a><br /><a href="#ideas-eidsonator" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=eidsonator" title="Documentation">📖</a> <a href="https://github.com/ForkAwesome/Fork-Awesome/issues?q=author%3Aeidsonator" title="Bug reports">🐛</a> <a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=eidsonator" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://www.lucaspetter.com"><img src="https://avatars0.githubusercontent.com/u/13027535?v=4?s=50" width="50px;" alt=""/><br /><sub><b>lucaspetter</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=lucaspetter" title="Code">💻</a> <a href="#design-lucaspetter" title="Design">🎨</a></td>
|
||||
<td align="center"><a href="https://github.com/dyamon"><img src="https://avatars0.githubusercontent.com/u/6771224?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Federico Igne</b></sub></a><br /><a href="#design-dyamon" title="Design">🎨</a></td>
|
||||
<td align="center"><a href="https://github.com/qwazix"><img src="https://avatars0.githubusercontent.com/u/1202892?v=4?s=50" width="50px;" alt=""/><br /><sub><b>qwazix</b></sub></a><br /><a href="#design-qwazix" title="Design">🎨</a></td>
|
||||
<td align="center"><a href="http://bthierry.pages.math.cnrs.fr/"><img src="https://avatars0.githubusercontent.com/u/5602767?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Bertrand Thierry</b></sub></a><br /><a href="#design-Bertbk" title="Design">🎨</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/xxsimoxx"><img src="https://avatars0.githubusercontent.com/u/29772709?v=4?s=50" width="50px;" alt=""/><br /><sub><b>SIMONE FIORAVANTI</b></sub></a><br /><a href="#design-xxsimoxx" title="Design">🎨</a></td>
|
||||
<td align="center"><a href="http://samuelriversmoore.net"><img src="https://avatars0.githubusercontent.com/u/2640748?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Samuel Rivers-Moore</b></sub></a><br /><a href="#ideas-SamuelRiversMoore" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center"><a href="https://github.com/pattishih"><img src="https://avatars1.githubusercontent.com/u/16858138?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Patti</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=pattishih" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://blog.feld.me"><img src="https://avatars1.githubusercontent.com/u/40271278?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Mark Felder</b></sub></a><br /><a href="#ideas-feld" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center"><a href="https://hugo.pro"><img src="https://avatars3.githubusercontent.com/u/180032?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Hugo Locurcio</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=Calinou" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/tintincastro"><img src="https://avatars0.githubusercontent.com/u/25725603?v=4?s=50" width="50px;" alt=""/><br /><sub><b>tintincastro</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=tintincastro" title="Code">💻</a> <a href="https://github.com/ForkAwesome/Fork-Awesome/commits?author=tintincastro" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/diondresschers"><img src="https://avatars0.githubusercontent.com/u/3883936?v=4?s=50" width="50px;" alt=""/><br /><sub><b>diondresschers</b></sub></a><br /><a href="#design-diondresschers" title="Design">🎨</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://nikospapagiannopoulos.com"><img src="https://avatars.githubusercontent.com/u/645895?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Nikos Papagiannopoulos</b></sub></a><br /><a href="https://github.com/ForkAwesome/Fork-Awesome/pulls?q=is%3Apr+reviewed-by%3Apanigrc" title="Reviewed Pull Requests">👀</a></td>
|
||||
<td align="center"><a href="https://thomasbnt.dev"><img src="https://avatars.githubusercontent.com/u/14293805?v=4?s=50" width="50px;" alt=""/><br /><sub><b>Thomasbnt.dev</b></sub></a><br /><a href="#design-thomasbnt" title="Design">🎨</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- markdownlint-restore -->
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!
|
||||
|
|
13
vendor/forkawesome/fork-awesome/Dockerfile
vendored
Normal file
13
vendor/forkawesome/fork-awesome/Dockerfile
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
FROM node:buster
|
||||
|
||||
RUN apt-get update -y \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
bundler \
|
||||
ruby \
|
||||
ruby-dev \
|
||||
\
|
||||
fontforge \
|
||||
woff-tools \
|
||||
woff2
|
||||
|
||||
CMD bash
|
55
vendor/forkawesome/fork-awesome/README.md
vendored
55
vendor/forkawesome/fork-awesome/README.md
vendored
|
@ -1,21 +1,15 @@
|
|||
# Fork Awesome
|
||||
### A fork of the iconic font and CSS toolkit
|
||||
|
||||
[![npm](https://img.shields.io/npm/v/fork-awesome.svg?style=flat&colorB=CB3837)](https://www.npmjs.com/package/fork-awesome)
|
||||
[![All Contributors](https://img.shields.io/badge/all_contributors-115-orange.svg?style=flat-square)](CONTRIBUTORS.md)
|
||||
[![JSDeliver](https://data.jsdelivr.com/v1/package/npm/fork-awesome/badge)](https://www.jsdelivr.com/package/npm/fork-awesome)
|
||||
[![CDNJS](https://img.shields.io/cdnjs/v/fork-awesome.svg?style=flat-square)](https://cdnjs.com/libraries/fork-awesome)
|
||||
[![Build Status](https://travis-ci.org/ForkAwesome/Fork-Awesome.svg?branch=master)](https://travis-ci.org/ForkAwesome/Fork-Awesome)
|
||||
[![npm-badge]][npm-link] [![all-contrib]](CONTRIBUTORS.md) [![jsdeliver-badge]][jsdeliver-link] [![cdnjs-badge]][cdnjs-link] [![build-status-badge]][build-status-link] [![matrix-badge]][matrix-link]
|
||||
|
||||
Fork Awesome is a full suite of 744 pictographic icons for easy scalable vector graphics on websites, originally created by [Dave Gandy](https://twitter.com/davegandy) and now maintained by a community.
|
||||
**Fork Awesome is a suite of 796 pictographic and brand icons for easy, scalable vector graphics on websites and beyond.**
|
||||
|
||||
Following concerns regarding [the development of Font Awesome](https://github.com/FortAwesome/Font-Awesome/issues/12199#issuecomment-362919956), the PR Freeze since Oct 2016 and the direction [Fort Awesome](https://fortawesome.com/) is taking with the version 5.0 of their project, we are forking Font Awesome (4.7), in order to build on this amazing tool Dave Gandy has given us, while at the same time allowing this project to be run by a distributed community of contributors.
|
||||
This project, as the name suggests, began as a fork of [Font Awesome](https://fontawesome.com). Font Awesome was originally created by [Dave Gandy](https://twitter.com/davegandy) and ran as a community project. However, as Font Awesome developed, pull requests from the community stopped being accepted (October 2016) and as of version 5.0 [the build system became private](https://github.com/FortAwesome/Font-Awesome/issues/12199#issuecomment-362919956) (February 2018).
|
||||
|
||||
A tremendous gratitude is given to the whole team behind [Font Awesome](https://fontawesome.com), and you are encouraged to support them and buy Font Awesome Pro for your project.
|
||||
With gratitude to Dave Gandy and the Font Awesome team, [Julien](https://github.com/xuv) [Deswaef](https://merveilles.town/@xuv) forked Font Awesome 4.7 into [Fork Awesome 1.0](https://github.com/ForkAwesome/Fork-Awesome/releases/tag/1.0.0) in February 2018, to continue building the amazing resource in a fully free, libre and open-source fashion, with and for the wider community. After a period of extended inactivity (i.e. no release since February 2019), several Fork Awesome users [got](https://github.com/ForkAwesome/Fork-Awesome/issues/292) [together](https://github.com/ForkAwesome/Fork-Awesome/issues/235) to try and revive the project 🌱
|
||||
|
||||
Though If you believe in distributed open source design and wish to be part of this new adventure, please start submitting patches and suggestions of improvement.
|
||||
|
||||
Also, if you care about owning the build process of your icon font, this project will give you that. The whole pipeline is shared and free to use for any purpose. You could be spinning your own icon font with your clever name by just forking this project and changing a few settings.
|
||||
We are now catching up with backlogged issues and pull requests, updating technology and documentation — even reevaluating the project aims, as icon fonts gradually [become](https://www.irigoyen.dev/blog/2021/02/17/stop-using-icon-fonts/) [deprecated](https://cloudfour.com/thinks/seriously-dont-use-icon-fonts/). Come say hi in the [#forkawesome:matrix.org](https://matrix.to/#/#forkawesome:matrix.org) matrix room 🙂
|
||||
|
||||
## How to use
|
||||
There is a full page in our documentation website that explains [how to use Fork Awesome in your web project](https://forkaweso.me/Fork-Awesome/get-started/). It ranges from just pointing to a CSS file on a CDN, hosting it on your own server or even adapting the LESS and SCSS files to your own liking.
|
||||
|
@ -74,6 +68,8 @@ to the `dependencies` in your `component.json`.
|
|||
- **macOS:** no extra step required
|
||||
- [Bundler](http://bundler.io/) (Run `gem install bundler` to install).
|
||||
- [Node Package Manager (aka. `npm`)](https://docs.npmjs.com/getting-started/installing-node)
|
||||
- Tools required to build the font:
|
||||
- **Ubuntu:** `sudo apt-get install fontforge woff-tools woff2`
|
||||
|
||||
From the root of the repository, install the tools used to develop.
|
||||
|
||||
|
@ -82,7 +78,7 @@ From the root of the repository, install the tools used to develop.
|
|||
|
||||
Build the font:
|
||||
|
||||
$:/src/icons make
|
||||
$ make -C src/icons
|
||||
|
||||
Build the web documentation:
|
||||
|
||||
|
@ -91,3 +87,38 @@ Build the web documentation:
|
|||
Or serve it on a local server on http://localhost:7998:
|
||||
|
||||
$ npm run dev
|
||||
|
||||
### Build the font in a Docker container
|
||||
|
||||
Another possibility is to build the font using the Dockerfile provided.
|
||||
|
||||
First, build the Docker image:
|
||||
|
||||
$ docker build -t fa-builder .
|
||||
|
||||
Then, run the Docker container:
|
||||
|
||||
$ docker run --rm -it \
|
||||
-u $(id -u):$(id -g) \
|
||||
-v $(pwd):$(pwd) \
|
||||
-w $(pwd) \
|
||||
fa-builder
|
||||
|
||||
Within the container, build the font:
|
||||
|
||||
$ bundle install --path vendor/bundle
|
||||
$ npm ci
|
||||
$ make -C src/icons
|
||||
|
||||
<!--- reference links for badges -->
|
||||
[all-contrib]: https://img.shields.io/badge/all_contributors-128-orange.svg "All Contributors badge"
|
||||
[build-status-badge]: https://travis-ci.org/ForkAwesome/Fork-Awesome.svg?branch=master "Build status badge"
|
||||
[build-status-link]: https://travis-ci.org/ForkAwesome/Fork-Awesome
|
||||
[cdnjs-badge]: https://img.shields.io/cdnjs/v/fork-awesome.svg "CDNJS badge"
|
||||
[cdnjs-link]: https://cdnjs.com/libraries/fork-awesome
|
||||
[jsdeliver-badge]: https://img.shields.io/jsdelivr/npm/hm/fork-awesome "JSDeliver badge"
|
||||
[jsdeliver-link]: https://www.jsdelivr.com/package/npm/fork-awesome
|
||||
[npm-badge]: https://img.shields.io/npm/v/fork-awesome.svg?colorB=CB3837 "NPM badge"
|
||||
[npm-link]: https://www.npmjs.com/package/fork-awesome
|
||||
[matrix-badge]: https://img.shields.io/matrix/forkawesome:matrix.org?label=%23forkawesome%3Amatrix.org "chat (matrix) badge"
|
||||
[matrix-link]: https://matrix.to/#/#forkawesome:matrix.org
|
||||
|
|
4
vendor/forkawesome/fork-awesome/_config.yml
vendored
4
vendor/forkawesome/fork-awesome/_config.yml
vendored
|
@ -19,8 +19,8 @@ icon_destination: icon # Relative to destination
|
|||
forkawesome:
|
||||
name: Fork Awesome
|
||||
tagline: A fork of the iconic font and CSS toolkit
|
||||
version: 1.1.7
|
||||
minor_version: 1.1
|
||||
version: 1.2.0
|
||||
minor_version: 1.2
|
||||
major_version: 1
|
||||
doc_blob: v1.1.7
|
||||
url: https://forkaweso.me/Fork-Awesome/
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"name": "fork-awesome",
|
||||
"repo": "ForkAwesome/Fork-Awesome",
|
||||
"description": "Fork Awesome",
|
||||
"version": "1.1.7",
|
||||
"version": "1.2.0",
|
||||
"keywords": [],
|
||||
"dependencies": {},
|
||||
"development": {},
|
||||
|
|
15
vendor/forkawesome/fork-awesome/composer.json
vendored
15
vendor/forkawesome/fork-awesome/composer.json
vendored
|
@ -2,28 +2,19 @@
|
|||
"name": "forkawesome/fork-awesome",
|
||||
"description": "A fork of the iconic font and CSS framework",
|
||||
"keywords": ["font", "awesome", "fontawesome", "forkawesome", "icon", "bootstrap"],
|
||||
"homepage": "http://forkawesome.github.io/Fork-Awesome/",
|
||||
"homepage": "https://forkaweso.me",
|
||||
"type": "component",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fork Awesome Community",
|
||||
"homepage": "https://forkawesome.github.io"
|
||||
"homepage": "https://forkaweso.me"
|
||||
}
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/ForkAwesome/Fork-Awesome/issues"
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"license": [
|
||||
"OFL-1.1",
|
||||
"MIT"
|
||||
],
|
||||
"require-dev": {
|
||||
"jekyll": "1.0.2",
|
||||
"lessc": "1.4.2"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
166
vendor/forkawesome/fork-awesome/css/fork-awesome.css
vendored
166
vendor/forkawesome/fork-awesome/css/fork-awesome.css
vendored
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
Fork Awesome 1.1.7
|
||||
Fork Awesome 1.2.0
|
||||
License - https://forkaweso.me/Fork-Awesome/license
|
||||
|
||||
Copyright 2018 Dave Gandy & Fork Awesome
|
||||
|
@ -14,10 +14,11 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|||
* -------------------------- */
|
||||
@font-face {
|
||||
font-family: 'ForkAwesome';
|
||||
src: url('../fonts/forkawesome-webfont.eot?v=1.1.7');
|
||||
src: url('../fonts/forkawesome-webfont.eot?#iefix&v=1.1.7') format('embedded-opentype'), url('../fonts/forkawesome-webfont.woff2?v=1.1.7') format('woff2'), url('../fonts/forkawesome-webfont.woff?v=1.1.7') format('woff'), url('../fonts/forkawesome-webfont.ttf?v=1.1.7') format('truetype'), url('../fonts/forkawesome-webfont.svg?v=1.1.7#forkawesomeregular') format('svg');
|
||||
src: url('../fonts/forkawesome-webfont.eot?v=1.2.0');
|
||||
src: url('../fonts/forkawesome-webfont.eot?#iefix&v=1.2.0') format('embedded-opentype'), url('../fonts/forkawesome-webfont.woff2?v=1.2.0') format('woff2'), url('../fonts/forkawesome-webfont.woff?v=1.2.0') format('woff'), url('../fonts/forkawesome-webfont.ttf?v=1.2.0') format('truetype'), url('../fonts/forkawesome-webfont.svg?v=1.2.0#forkawesomeregular') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: block;
|
||||
}
|
||||
.fa {
|
||||
display: inline-block;
|
||||
|
@ -2552,6 +2553,165 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|||
.fa-biometric:before {
|
||||
content: "\f32b";
|
||||
}
|
||||
.fa-wire:before {
|
||||
content: "\f32c";
|
||||
}
|
||||
.fa-tor-onion:before {
|
||||
content: "\f32e";
|
||||
}
|
||||
.fa-volume-mute:before {
|
||||
content: "\f32f";
|
||||
}
|
||||
.fa-bell-ringing:before {
|
||||
content: "\f32d";
|
||||
}
|
||||
.fa-bell-ringing-o:before {
|
||||
content: "\f330";
|
||||
}
|
||||
.fa-hal:before {
|
||||
content: "\f333";
|
||||
}
|
||||
.fa-jupyter:before {
|
||||
content: "\f335";
|
||||
}
|
||||
.fa-julia:before {
|
||||
content: "\f334";
|
||||
}
|
||||
.fa-classicpress:before {
|
||||
content: "\f331";
|
||||
}
|
||||
.fa-classicpress-circle:before {
|
||||
content: "\f332";
|
||||
}
|
||||
.fa-open-collective:before {
|
||||
content: "\f336";
|
||||
}
|
||||
.fa-orcid:before {
|
||||
content: "\f337";
|
||||
}
|
||||
.fa-researchgate:before {
|
||||
content: "\f338";
|
||||
}
|
||||
.fa-funkwhale:before {
|
||||
content: "\f339";
|
||||
}
|
||||
.fa-askfm:before {
|
||||
content: "\f33a";
|
||||
}
|
||||
.fa-blockstack:before {
|
||||
content: "\f33b";
|
||||
}
|
||||
.fa-boardgamegeek:before {
|
||||
content: "\f33c";
|
||||
}
|
||||
.fa-bunny:before {
|
||||
content: "\f35f";
|
||||
}
|
||||
.fa-buymeacoffee:before {
|
||||
content: "\f33d";
|
||||
}
|
||||
.fa-cc-by:before {
|
||||
content: "\f33e";
|
||||
}
|
||||
.fa-creative-commons-alt:before,
|
||||
.fa-cc-cc:before {
|
||||
content: "\f33f";
|
||||
}
|
||||
.fa-cc-nc-eu:before {
|
||||
content: "\f341";
|
||||
}
|
||||
.fa-cc-nc-jp:before {
|
||||
content: "\f342";
|
||||
}
|
||||
.fa-cc-nc:before {
|
||||
content: "\f340";
|
||||
}
|
||||
.fa-cc-nd:before {
|
||||
content: "\f343";
|
||||
}
|
||||
.fa-cc-pd:before {
|
||||
content: "\f344";
|
||||
}
|
||||
.fa-cc-remix:before {
|
||||
content: "\f345";
|
||||
}
|
||||
.fa-cc-sa:before {
|
||||
content: "\f346";
|
||||
}
|
||||
.fa-cc-share:before {
|
||||
content: "\f347";
|
||||
}
|
||||
.fa-cc-zero:before {
|
||||
content: "\f348";
|
||||
}
|
||||
.fa-conway-hacker:before,
|
||||
.fa-conway-glider:before {
|
||||
content: "\f349";
|
||||
}
|
||||
.fa-csharp:before {
|
||||
content: "\f34a";
|
||||
}
|
||||
.fa-email-bulk:before {
|
||||
content: "\f34b";
|
||||
}
|
||||
.fa-email-bulk-o:before {
|
||||
content: "\f34c";
|
||||
}
|
||||
.fa-gnu:before {
|
||||
content: "\f34d";
|
||||
}
|
||||
.fa-google-play:before {
|
||||
content: "\f34e";
|
||||
}
|
||||
.fa-heroku:before {
|
||||
content: "\f34f";
|
||||
}
|
||||
.fa-hassio:before,
|
||||
.fa-home-assistant:before {
|
||||
content: "\f350";
|
||||
}
|
||||
.fa-java:before {
|
||||
content: "\f351";
|
||||
}
|
||||
.fa-mariadb:before {
|
||||
content: "\f352";
|
||||
}
|
||||
.fa-markdown:before {
|
||||
content: "\f353";
|
||||
}
|
||||
.fa-mysql:before {
|
||||
content: "\f354";
|
||||
}
|
||||
.fa-nordcast:before {
|
||||
content: "\f355";
|
||||
}
|
||||
.fa-plume:before {
|
||||
content: "\f356";
|
||||
}
|
||||
.fa-postgresql:before {
|
||||
content: "\f357";
|
||||
}
|
||||
.fa-sass-alt:before {
|
||||
content: "\f359";
|
||||
}
|
||||
.fa-sass:before {
|
||||
content: "\f358";
|
||||
}
|
||||
.fa-skate:before {
|
||||
content: "\f35a";
|
||||
}
|
||||
.fa-sketchfab:before {
|
||||
content: "\f35b";
|
||||
}
|
||||
.fa-tex:before {
|
||||
content: "\f35c";
|
||||
}
|
||||
.fa-textpattern:before {
|
||||
content: "\f35d";
|
||||
}
|
||||
.fa-unity:before {
|
||||
content: "\f35e";
|
||||
}
|
||||
.sr-only {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
Fork Awesome 1.1.7
|
||||
Fork Awesome 1.2.0
|
||||
License - https://forkaweso.me/Fork-Awesome/license
|
||||
|
||||
Copyright 2018 Dave Gandy & Fork Awesome
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
Fork Awesome 1.1.7
|
||||
Fork Awesome 1.2.0
|
||||
License - https://forkaweso.me/Fork-Awesome/license
|
||||
|
||||
Copyright 2018 Dave Gandy & Fork Awesome
|
||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
Before Width: | Height: | Size: 470 KiB After Width: | Height: | Size: 547 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
Fork Awesome 1.1.7
|
||||
Fork Awesome 1.2.0
|
||||
License - https://forkaweso.me/Fork-Awesome/license
|
||||
|
||||
Copyright 2018 Dave Gandy & Fork Awesome
|
||||
|
|
55
vendor/forkawesome/fork-awesome/less/icons.less
vendored
55
vendor/forkawesome/fork-awesome/less/icons.less
vendored
|
@ -877,3 +877,58 @@
|
|||
.@{fa-css-prefix}-sun:before { content: @fa-var-sun; }
|
||||
.@{fa-css-prefix}-f-droid:before { content: @fa-var-f-droid; }
|
||||
.@{fa-css-prefix}-biometric:before { content: @fa-var-biometric; }
|
||||
.@{fa-css-prefix}-wire:before { content: @fa-var-wire; }
|
||||
.@{fa-css-prefix}-tor-onion:before { content: @fa-var-tor-onion; }
|
||||
.@{fa-css-prefix}-volume-mute:before { content: @fa-var-volume-mute; }
|
||||
.@{fa-css-prefix}-bell-ringing:before { content: @fa-var-bell-ringing; }
|
||||
.@{fa-css-prefix}-bell-ringing-o:before { content: @fa-var-bell-ringing-o; }
|
||||
.@{fa-css-prefix}-hal:before { content: @fa-var-hal; }
|
||||
.@{fa-css-prefix}-jupyter:before { content: @fa-var-jupyter; }
|
||||
.@{fa-css-prefix}-julia:before { content: @fa-var-julia; }
|
||||
.@{fa-css-prefix}-classicpress:before { content: @fa-var-classicpress; }
|
||||
.@{fa-css-prefix}-classicpress-circle:before { content: @fa-var-classicpress-circle; }
|
||||
.@{fa-css-prefix}-open-collective:before { content: @fa-var-open-collective; }
|
||||
.@{fa-css-prefix}-orcid:before { content: @fa-var-orcid; }
|
||||
.@{fa-css-prefix}-researchgate:before { content: @fa-var-researchgate; }
|
||||
.@{fa-css-prefix}-funkwhale:before { content: @fa-var-funkwhale; }
|
||||
.@{fa-css-prefix}-askfm:before { content: @fa-var-askfm; }
|
||||
.@{fa-css-prefix}-blockstack:before { content: @fa-var-blockstack; }
|
||||
.@{fa-css-prefix}-boardgamegeek:before { content: @fa-var-boardgamegeek; }
|
||||
.@{fa-css-prefix}-bunny:before { content: @fa-var-bunny; }
|
||||
.@{fa-css-prefix}-buymeacoffee:before { content: @fa-var-buymeacoffee; }
|
||||
.@{fa-css-prefix}-cc-by:before { content: @fa-var-cc-by; }
|
||||
.@{fa-css-prefix}-creative-commons-alt:before,
|
||||
.@{fa-css-prefix}-cc-cc:before { content: @fa-var-cc-cc; }
|
||||
.@{fa-css-prefix}-cc-nc-eu:before { content: @fa-var-cc-nc-eu; }
|
||||
.@{fa-css-prefix}-cc-nc-jp:before { content: @fa-var-cc-nc-jp; }
|
||||
.@{fa-css-prefix}-cc-nc:before { content: @fa-var-cc-nc; }
|
||||
.@{fa-css-prefix}-cc-nd:before { content: @fa-var-cc-nd; }
|
||||
.@{fa-css-prefix}-cc-pd:before { content: @fa-var-cc-pd; }
|
||||
.@{fa-css-prefix}-cc-remix:before { content: @fa-var-cc-remix; }
|
||||
.@{fa-css-prefix}-cc-sa:before { content: @fa-var-cc-sa; }
|
||||
.@{fa-css-prefix}-cc-share:before { content: @fa-var-cc-share; }
|
||||
.@{fa-css-prefix}-cc-zero:before { content: @fa-var-cc-zero; }
|
||||
.@{fa-css-prefix}-conway-hacker:before,
|
||||
.@{fa-css-prefix}-conway-glider:before { content: @fa-var-conway-glider; }
|
||||
.@{fa-css-prefix}-csharp:before { content: @fa-var-csharp; }
|
||||
.@{fa-css-prefix}-email-bulk:before { content: @fa-var-email-bulk; }
|
||||
.@{fa-css-prefix}-email-bulk-o:before { content: @fa-var-email-bulk-o; }
|
||||
.@{fa-css-prefix}-gnu:before { content: @fa-var-gnu; }
|
||||
.@{fa-css-prefix}-google-play:before { content: @fa-var-google-play; }
|
||||
.@{fa-css-prefix}-heroku:before { content: @fa-var-heroku; }
|
||||
.@{fa-css-prefix}-hassio:before,
|
||||
.@{fa-css-prefix}-home-assistant:before { content: @fa-var-home-assistant; }
|
||||
.@{fa-css-prefix}-java:before { content: @fa-var-java; }
|
||||
.@{fa-css-prefix}-mariadb:before { content: @fa-var-mariadb; }
|
||||
.@{fa-css-prefix}-markdown:before { content: @fa-var-markdown; }
|
||||
.@{fa-css-prefix}-mysql:before { content: @fa-var-mysql; }
|
||||
.@{fa-css-prefix}-nordcast:before { content: @fa-var-nordcast; }
|
||||
.@{fa-css-prefix}-plume:before { content: @fa-var-plume; }
|
||||
.@{fa-css-prefix}-postgresql:before { content: @fa-var-postgresql; }
|
||||
.@{fa-css-prefix}-sass-alt:before { content: @fa-var-sass-alt; }
|
||||
.@{fa-css-prefix}-sass:before { content: @fa-var-sass; }
|
||||
.@{fa-css-prefix}-skate:before { content: @fa-var-skate; }
|
||||
.@{fa-css-prefix}-sketchfab:before { content: @fa-var-sketchfab; }
|
||||
.@{fa-css-prefix}-tex:before { content: @fa-var-tex; }
|
||||
.@{fa-css-prefix}-textpattern:before { content: @fa-var-textpattern; }
|
||||
.@{fa-css-prefix}-unity:before { content: @fa-var-unity; }
|
||||
|
|
|
@ -12,4 +12,5 @@
|
|||
// src: url('@{fa-font-path}/ForkAwesome.otf') format('opentype'); // used when developing fonts
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: block;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
Fork Awesome 1.1.7
|
||||
Fork Awesome 1.2.0
|
||||
License - https://forkaweso.me/Fork-Awesome/license
|
||||
|
||||
Copyright 2018 Dave Gandy & Fork Awesome
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
@fa-line-height-base: 1;
|
||||
@fa-css-prefix: fa;
|
||||
@fa-font-family: ForkAwesome;
|
||||
@fa-version: "1.1.7";
|
||||
@fa-version: "1.2.0";
|
||||
@fa-border-color: #eee;
|
||||
@fa-inverse: #fff;
|
||||
@fa-li-width: (30em / 14);
|
||||
|
@ -59,6 +59,7 @@
|
|||
@fa-var-arrows-h: "\f07e";
|
||||
@fa-var-arrows-v: "\f07d";
|
||||
@fa-var-artstation: "\f2ed";
|
||||
@fa-var-askfm: "\f33a";
|
||||
@fa-var-asl-interpreting: "\f2a3";
|
||||
@fa-var-assistive-listening-systems: "\f2a2";
|
||||
@fa-var-asterisk: "\f069";
|
||||
|
@ -94,6 +95,8 @@
|
|||
@fa-var-behance-square: "\f1b5";
|
||||
@fa-var-bell: "\f0a2";
|
||||
@fa-var-bell-o: "\f0f3";
|
||||
@fa-var-bell-ringing: "\f32d";
|
||||
@fa-var-bell-ringing-o: "\f330";
|
||||
@fa-var-bell-slash: "\f1f6";
|
||||
@fa-var-bell-slash-o: "\f1f7";
|
||||
@fa-var-bicycle: "\f206";
|
||||
|
@ -105,8 +108,10 @@
|
|||
@fa-var-bitcoin: "\f15a";
|
||||
@fa-var-black-tie: "\f27e";
|
||||
@fa-var-blind: "\f29d";
|
||||
@fa-var-blockstack: "\f33b";
|
||||
@fa-var-bluetooth: "\f293";
|
||||
@fa-var-bluetooth-b: "\f294";
|
||||
@fa-var-boardgamegeek: "\f33c";
|
||||
@fa-var-bold: "\f032";
|
||||
@fa-var-bolt: "\f0e7";
|
||||
@fa-var-bomb: "\f1e2";
|
||||
|
@ -122,7 +127,9 @@
|
|||
@fa-var-building-o: "\f0f7";
|
||||
@fa-var-bullhorn: "\f0a1";
|
||||
@fa-var-bullseye: "\f140";
|
||||
@fa-var-bunny: "\f35f";
|
||||
@fa-var-bus: "\f207";
|
||||
@fa-var-buymeacoffee: "\f33d";
|
||||
@fa-var-buysellads: "\f20d";
|
||||
@fa-var-c: "\f31c";
|
||||
@fa-var-cab: "\f1ba";
|
||||
|
@ -148,13 +155,24 @@
|
|||
@fa-var-cart-plus: "\f217";
|
||||
@fa-var-cc: "\f20a";
|
||||
@fa-var-cc-amex: "\f1f3";
|
||||
@fa-var-cc-by: "\f33e";
|
||||
@fa-var-cc-cc: "\f33f";
|
||||
@fa-var-cc-diners-club: "\f24c";
|
||||
@fa-var-cc-discover: "\f1f2";
|
||||
@fa-var-cc-jcb: "\f24b";
|
||||
@fa-var-cc-mastercard: "\f1f1";
|
||||
@fa-var-cc-nc: "\f340";
|
||||
@fa-var-cc-nc-eu: "\f341";
|
||||
@fa-var-cc-nc-jp: "\f342";
|
||||
@fa-var-cc-nd: "\f343";
|
||||
@fa-var-cc-paypal: "\f1f4";
|
||||
@fa-var-cc-pd: "\f344";
|
||||
@fa-var-cc-remix: "\f345";
|
||||
@fa-var-cc-sa: "\f346";
|
||||
@fa-var-cc-share: "\f347";
|
||||
@fa-var-cc-stripe: "\f1f5";
|
||||
@fa-var-cc-visa: "\f1f0";
|
||||
@fa-var-cc-zero: "\f348";
|
||||
@fa-var-certificate: "\f0a3";
|
||||
@fa-var-chain: "\f0c1";
|
||||
@fa-var-chain-broken: "\f127";
|
||||
|
@ -177,6 +195,8 @@
|
|||
@fa-var-circle-o: "\f10c";
|
||||
@fa-var-circle-o-notch: "\f1ce";
|
||||
@fa-var-circle-thin: "\f1db";
|
||||
@fa-var-classicpress: "\f331";
|
||||
@fa-var-classicpress-circle: "\f332";
|
||||
@fa-var-clipboard: "\f0ea";
|
||||
@fa-var-clock-o: "\f017";
|
||||
@fa-var-clone: "\f24d";
|
||||
|
@ -205,13 +225,17 @@
|
|||
@fa-var-compress: "\f066";
|
||||
@fa-var-connectdevelop: "\f20e";
|
||||
@fa-var-contao: "\f26d";
|
||||
@fa-var-conway-glider: "\f349";
|
||||
@fa-var-conway-hacker: "\f349";
|
||||
@fa-var-copy: "\f0c5";
|
||||
@fa-var-copyright: "\f1f9";
|
||||
@fa-var-creative-commons: "\f25e";
|
||||
@fa-var-creative-commons-alt: "\f33f";
|
||||
@fa-var-credit-card: "\f09d";
|
||||
@fa-var-credit-card-alt: "\f283";
|
||||
@fa-var-crop: "\f125";
|
||||
@fa-var-crosshairs: "\f05b";
|
||||
@fa-var-csharp: "\f34a";
|
||||
@fa-var-css3: "\f13c";
|
||||
@fa-var-cube: "\f1b2";
|
||||
@fa-var-cubes: "\f1b3";
|
||||
|
@ -250,6 +274,8 @@
|
|||
@fa-var-eject: "\f052";
|
||||
@fa-var-ellipsis-h: "\f141";
|
||||
@fa-var-ellipsis-v: "\f142";
|
||||
@fa-var-email-bulk: "\f34b";
|
||||
@fa-var-email-bulk-o: "\f34c";
|
||||
@fa-var-emby: "\f319";
|
||||
@fa-var-empire: "\f1d1";
|
||||
@fa-var-envelope: "\f0e0";
|
||||
|
@ -338,6 +364,7 @@
|
|||
@fa-var-freedombox: "\f2fd";
|
||||
@fa-var-friendica: "\f2e6";
|
||||
@fa-var-frown-o: "\f119";
|
||||
@fa-var-funkwhale: "\f339";
|
||||
@fa-var-futbol-o: "\f1e3";
|
||||
@fa-var-gamepad: "\f11b";
|
||||
@fa-var-gavel: "\f0e3";
|
||||
|
@ -366,9 +393,11 @@
|
|||
@fa-var-globe: "\f0ac";
|
||||
@fa-var-globe-e: "\f304";
|
||||
@fa-var-globe-w: "\f305";
|
||||
@fa-var-gnu: "\f34d";
|
||||
@fa-var-gnu-social: "\f2e7";
|
||||
@fa-var-gnupg: "\f30d";
|
||||
@fa-var-google: "\f1a0";
|
||||
@fa-var-google-play: "\f34e";
|
||||
@fa-var-google-plus: "\f0d5";
|
||||
@fa-var-google-plus-circle: "\f2b3";
|
||||
@fa-var-google-plus-g: "\f0d5";
|
||||
|
@ -383,6 +412,7 @@
|
|||
@fa-var-hackaday: "\f30a";
|
||||
@fa-var-hacker-news: "\f1d4";
|
||||
@fa-var-hackster: "\f326";
|
||||
@fa-var-hal: "\f333";
|
||||
@fa-var-hand-grab-o: "\f255";
|
||||
@fa-var-hand-lizard-o: "\f258";
|
||||
@fa-var-hand-o-down: "\f0a7";
|
||||
|
@ -400,6 +430,7 @@
|
|||
@fa-var-hard-of-hearing: "\f2a4";
|
||||
@fa-var-hashnode: "\f317";
|
||||
@fa-var-hashtag: "\f292";
|
||||
@fa-var-hassio: "\f350";
|
||||
@fa-var-hdd-o: "\f0a0";
|
||||
@fa-var-header: "\f1dc";
|
||||
@fa-var-heading: "\f1dc";
|
||||
|
@ -407,8 +438,10 @@
|
|||
@fa-var-heart: "\f004";
|
||||
@fa-var-heart-o: "\f08a";
|
||||
@fa-var-heartbeat: "\f21e";
|
||||
@fa-var-heroku: "\f34f";
|
||||
@fa-var-history: "\f1da";
|
||||
@fa-var-home: "\f015";
|
||||
@fa-var-home-assistant: "\f350";
|
||||
@fa-var-hospital-o: "\f0f8";
|
||||
@fa-var-hotel: "\f236";
|
||||
@fa-var-hourglass: "\f254";
|
||||
|
@ -442,11 +475,14 @@
|
|||
@fa-var-intersex: "\f224";
|
||||
@fa-var-ioxhost: "\f208";
|
||||
@fa-var-italic: "\f033";
|
||||
@fa-var-java: "\f351";
|
||||
@fa-var-jirafeau: "\f318";
|
||||
@fa-var-joomla: "\f1aa";
|
||||
@fa-var-joplin: "\f310";
|
||||
@fa-var-jpy: "\f157";
|
||||
@fa-var-jsfiddle: "\f1cc";
|
||||
@fa-var-julia: "\f334";
|
||||
@fa-var-jupyter: "\f335";
|
||||
@fa-var-key: "\f084";
|
||||
@fa-var-key-modern: "\f2f7";
|
||||
@fa-var-keybase: "\f2f4";
|
||||
|
@ -498,6 +534,8 @@
|
|||
@fa-var-map-o: "\f278";
|
||||
@fa-var-map-pin: "\f276";
|
||||
@fa-var-map-signs: "\f277";
|
||||
@fa-var-mariadb: "\f352";
|
||||
@fa-var-markdown: "\f353";
|
||||
@fa-var-mars: "\f222";
|
||||
@fa-var-mars-double: "\f227";
|
||||
@fa-var-mars-stroke: "\f229";
|
||||
|
@ -533,20 +571,24 @@
|
|||
@fa-var-motorcycle: "\f21c";
|
||||
@fa-var-mouse-pointer: "\f245";
|
||||
@fa-var-music: "\f001";
|
||||
@fa-var-mysql: "\f354";
|
||||
@fa-var-navicon: "\f0c9";
|
||||
@fa-var-neuter: "\f22c";
|
||||
@fa-var-newspaper-o: "\f1ea";
|
||||
@fa-var-nextcloud: "\f306";
|
||||
@fa-var-nextcloud-square: "\f307";
|
||||
@fa-var-nodejs: "\f308";
|
||||
@fa-var-nordcast: "\f355";
|
||||
@fa-var-object-group: "\f247";
|
||||
@fa-var-object-ungroup: "\f248";
|
||||
@fa-var-odnoklassniki: "\f263";
|
||||
@fa-var-odnoklassniki-square: "\f264";
|
||||
@fa-var-open-collective: "\f336";
|
||||
@fa-var-opencart: "\f23d";
|
||||
@fa-var-openid: "\f19b";
|
||||
@fa-var-opera: "\f26a";
|
||||
@fa-var-optin-monster: "\f23c";
|
||||
@fa-var-orcid: "\f337";
|
||||
@fa-var-outdent: "\f03b";
|
||||
@fa-var-pagelines: "\f18c";
|
||||
@fa-var-paint-brush: "\f1fc";
|
||||
|
@ -583,11 +625,13 @@
|
|||
@fa-var-play-circle-o: "\f01d";
|
||||
@fa-var-pleroma: "\f324";
|
||||
@fa-var-plug: "\f1e6";
|
||||
@fa-var-plume: "\f356";
|
||||
@fa-var-plus: "\f067";
|
||||
@fa-var-plus-circle: "\f055";
|
||||
@fa-var-plus-square: "\f0fe";
|
||||
@fa-var-plus-square-o: "\f196";
|
||||
@fa-var-podcast: "\f2ce";
|
||||
@fa-var-postgresql: "\f357";
|
||||
@fa-var-pound: "\f154";
|
||||
@fa-var-power-off: "\f011";
|
||||
@fa-var-print: "\f02f";
|
||||
|
@ -619,6 +663,7 @@
|
|||
@fa-var-repeat: "\f01e";
|
||||
@fa-var-reply: "\f112";
|
||||
@fa-var-reply-all: "\f122";
|
||||
@fa-var-researchgate: "\f338";
|
||||
@fa-var-resistance: "\f1d0";
|
||||
@fa-var-retweet: "\f079";
|
||||
@fa-var-rmb: "\f157";
|
||||
|
@ -634,6 +679,8 @@
|
|||
@fa-var-rupee: "\f156";
|
||||
@fa-var-s15: "\f2cd";
|
||||
@fa-var-safari: "\f267";
|
||||
@fa-var-sass: "\f358";
|
||||
@fa-var-sass-alt: "\f359";
|
||||
@fa-var-save: "\f0c7";
|
||||
@fa-var-scissors: "\f0c4";
|
||||
@fa-var-scribd: "\f28a";
|
||||
|
@ -669,6 +716,8 @@
|
|||
@fa-var-signing: "\f2a7";
|
||||
@fa-var-simplybuilt: "\f215";
|
||||
@fa-var-sitemap: "\f0e8";
|
||||
@fa-var-skate: "\f35a";
|
||||
@fa-var-sketchfab: "\f35b";
|
||||
@fa-var-skyatlas: "\f216";
|
||||
@fa-var-skype: "\f17e";
|
||||
@fa-var-slack: "\f198";
|
||||
|
@ -751,8 +800,10 @@
|
|||
@fa-var-television: "\f26c";
|
||||
@fa-var-tencent-weibo: "\f1d5";
|
||||
@fa-var-terminal: "\f120";
|
||||
@fa-var-tex: "\f35c";
|
||||
@fa-var-text-height: "\f034";
|
||||
@fa-var-text-width: "\f035";
|
||||
@fa-var-textpattern: "\f35d";
|
||||
@fa-var-th: "\f00a";
|
||||
@fa-var-th-large: "\f009";
|
||||
@fa-var-th-list: "\f00b";
|
||||
|
@ -787,6 +838,7 @@
|
|||
@fa-var-toggle-on: "\f205";
|
||||
@fa-var-toggle-right: "\f152";
|
||||
@fa-var-toggle-up: "\f151";
|
||||
@fa-var-tor-onion: "\f32e";
|
||||
@fa-var-trademark: "\f25c";
|
||||
@fa-var-train: "\f238";
|
||||
@fa-var-transgender: "\f224";
|
||||
|
@ -810,6 +862,7 @@
|
|||
@fa-var-umbrella: "\f0e9";
|
||||
@fa-var-underline: "\f0cd";
|
||||
@fa-var-undo: "\f0e2";
|
||||
@fa-var-unity: "\f35e";
|
||||
@fa-var-universal-access: "\f29a";
|
||||
@fa-var-university: "\f19c";
|
||||
@fa-var-unlink: "\f127";
|
||||
|
@ -848,6 +901,7 @@
|
|||
@fa-var-vk: "\f189";
|
||||
@fa-var-volume-control-phone: "\f2a0";
|
||||
@fa-var-volume-down: "\f027";
|
||||
@fa-var-volume-mute: "\f32f";
|
||||
@fa-var-volume-off: "\f026";
|
||||
@fa-var-volume-up: "\f028";
|
||||
@fa-var-warning: "\f071";
|
||||
|
@ -866,6 +920,7 @@
|
|||
@fa-var-window-minimize: "\f2d1";
|
||||
@fa-var-window-restore: "\f2d2";
|
||||
@fa-var-windows: "\f17a";
|
||||
@fa-var-wire: "\f32c";
|
||||
@fa-var-won: "\f159";
|
||||
@fa-var-wordpress: "\f19a";
|
||||
@fa-var-wpbeginner: "\f297";
|
||||
|
|
1752
vendor/forkawesome/fork-awesome/package-lock.json
generated
vendored
1752
vendor/forkawesome/fork-awesome/package-lock.json
generated
vendored
File diff suppressed because it is too large
Load diff
14
vendor/forkawesome/fork-awesome/package.json
vendored
14
vendor/forkawesome/fork-awesome/package.json
vendored
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "fork-awesome",
|
||||
"description": "A fork of the iconic font and CSS framework",
|
||||
"version": "1.1.7",
|
||||
"version": "1.2.0",
|
||||
"style": "css/fork-awesome.css",
|
||||
"keywords": [
|
||||
"font",
|
||||
|
@ -23,17 +23,17 @@
|
|||
"license": "(OFL-1.1 AND MIT)",
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"all-contributors-cli": "^6.1.1",
|
||||
"less": "^2.7.3",
|
||||
"less-plugin-clean-css": "^1.5.1",
|
||||
"svgo": "^1.1.1"
|
||||
"all-contributors-cli": "^6.16.0",
|
||||
"less": "^3.11.3",
|
||||
"less-plugin-clean-css": "less/less-plugin-clean-css#master",
|
||||
"svgo": "^1.3.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.3"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "bundle exec jekyll build",
|
||||
"dev": "bundle exec jekyll serve -w",
|
||||
"build": "RUBYOPT='-W0' bundle exec jekyll build",
|
||||
"dev": "RUBYOPT='-W0' bundle exec jekyll serve -w",
|
||||
"contributors:add": "all-contributors add",
|
||||
"contributors:generate": "all-contributors generate"
|
||||
},
|
||||
|
|
1543
vendor/forkawesome/fork-awesome/scss/_icons.scss
vendored
1543
vendor/forkawesome/fork-awesome/scss/_icons.scss
vendored
File diff suppressed because it is too large
Load diff
|
@ -12,4 +12,5 @@
|
|||
// src: url('#{$fa-font-path}/ForkAwesome.otf') format('opentype'); // used when developing fonts
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: block;
|
||||
}
|
||||
|
|
1809
vendor/forkawesome/fork-awesome/scss/_variables.scss
vendored
1809
vendor/forkawesome/fork-awesome/scss/_variables.scss
vendored
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
Fork Awesome 1.1.7
|
||||
Fork Awesome 1.2.0
|
||||
License - https://forkaweso.me/Fork-Awesome/license
|
||||
|
||||
Copyright 2018 Dave Gandy & Fork Awesome
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue