card-mod-script 0.14.2 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/config/late/extend_ansi.rb +1 -0
  3. data/data/real.yml +50 -0
  4. data/lib/card/mod/script.rb +1 -0
  5. data/lib/cardio/utils/ansi2_html.rb +72 -0
  6. data/set/abstract/00_script.rb +4 -4
  7. data/set/abstract/02_coffee_script.rb +9 -1
  8. data/set/all/head_javascript.rb +13 -22
  9. data/set/right/script.rb +1 -1
  10. data/set/type/coffee_script.rb +6 -0
  11. data/set/type/java_script.rb +6 -0
  12. data/set/type/local_script_folder_group.rb +2 -0
  13. data/set/type/local_script_manifest_group.rb +2 -0
  14. data/set/type_plus_right/mod/script.rb +1 -5
  15. data/set/type_plus_right/set/script.rb +3 -1
  16. metadata +15 -120
  17. data/assets/script/decko/autosave.js.coffee +0 -30
  18. data/assets/script/decko/bridge.js.coffee +0 -31
  19. data/assets/script/decko/card_menu.js.coffee +0 -26
  20. data/assets/script/decko/components.js.coffee +0 -49
  21. data/assets/script/decko/decko.js.coffee +0 -82
  22. data/assets/script/decko/doubleclick.js.coffee +0 -30
  23. data/assets/script/decko/editor.js.coffee +0 -57
  24. data/assets/script/decko/filter.js.coffee +0 -183
  25. data/assets/script/decko/filter_items.js.coffee +0 -128
  26. data/assets/script/decko/filter_links.js.coffee +0 -81
  27. data/assets/script/decko/follow.js.coffee +0 -22
  28. data/assets/script/decko/layout.js.coffee +0 -76
  29. data/assets/script/decko/link_editor.js.coffee +0 -61
  30. data/assets/script/decko/mod.js.coffee +0 -79
  31. data/assets/script/decko/modal.js.coffee +0 -113
  32. data/assets/script/decko/name_editor.js.coffee +0 -40
  33. data/assets/script/decko/navbox.js.coffee +0 -74
  34. data/assets/script/decko/nest_editor.js.coffee +0 -166
  35. data/assets/script/decko/nest_editor_name.js.coffee +0 -102
  36. data/assets/script/decko/nest_editor_options.js.coffee +0 -93
  37. data/assets/script/decko/nest_editor_rules.js.coffee +0 -3
  38. data/assets/script/decko/overlay.js.coffee +0 -54
  39. data/assets/script/decko/pointer_config.js.coffee +0 -79
  40. data/assets/script/decko/pointer_list_editor.js.coffee +0 -67
  41. data/assets/script/decko/recaptcha.js.coffee +0 -19
  42. data/assets/script/decko/selectable_filtered_content.js.coffee +0 -12
  43. data/assets/script/decko/slot.js.coffee +0 -182
  44. data/assets/script/decko/slot_ready.js.coffee +0 -12
  45. data/assets/script/decko/slotter.js.coffee +0 -268
  46. data/assets/script/decko/type_editor.js.coffee +0 -21
  47. data/assets/script/decko/upload.js.coffee +0 -64
  48. data/assets/script/jquery-ui.min.js +0 -13
  49. data/assets/script/jquery.autosize.js +0 -274
  50. data/assets/script/manifest.yml +0 -57
  51. data/db/migrate_core_cards/20200804112348_add_mod_script_assets_type.rb +0 -30
  52. data/vendor/jquery_file_upload/LICENSE.txt +0 -20
  53. data/vendor/jquery_file_upload/README.md +0 -224
  54. data/vendor/jquery_file_upload/SECURITY.md +0 -227
  55. data/vendor/jquery_file_upload/VULNERABILITIES.md +0 -118
  56. data/vendor/jquery_file_upload/cors/postmessage.html +0 -85
  57. data/vendor/jquery_file_upload/cors/result.html +0 -26
  58. data/vendor/jquery_file_upload/css/jquery.fileupload-noscript.css +0 -22
  59. data/vendor/jquery_file_upload/css/jquery.fileupload-ui-noscript.css +0 -17
  60. data/vendor/jquery_file_upload/css/jquery.fileupload-ui.css +0 -68
  61. data/vendor/jquery_file_upload/css/jquery.fileupload.css +0 -36
  62. data/vendor/jquery_file_upload/docker-compose.yml +0 -55
  63. data/vendor/jquery_file_upload/img/loading.gif +0 -0
  64. data/vendor/jquery_file_upload/img/progressbar.gif +0 -0
  65. data/vendor/jquery_file_upload/index.html +0 -357
  66. data/vendor/jquery_file_upload/js/cors/jquery.postmessage-transport.js +0 -126
  67. data/vendor/jquery_file_upload/js/cors/jquery.xdr-transport.js +0 -97
  68. data/vendor/jquery_file_upload/js/demo.js +0 -75
  69. data/vendor/jquery_file_upload/js/jquery.fileupload-audio.js +0 -101
  70. data/vendor/jquery_file_upload/js/jquery.fileupload-image.js +0 -347
  71. data/vendor/jquery_file_upload/js/jquery.fileupload-process.js +0 -170
  72. data/vendor/jquery_file_upload/js/jquery.fileupload-ui.js +0 -759
  73. data/vendor/jquery_file_upload/js/jquery.fileupload-validate.js +0 -119
  74. data/vendor/jquery_file_upload/js/jquery.fileupload-video.js +0 -101
  75. data/vendor/jquery_file_upload/js/jquery.fileupload.js +0 -1604
  76. data/vendor/jquery_file_upload/js/jquery.iframe-transport.js +0 -227
  77. data/vendor/jquery_file_upload/js/vendor/jquery.ui.widget.js +0 -805
  78. data/vendor/jquery_file_upload/package-lock.json +0 -6853
  79. data/vendor/jquery_file_upload/package.json +0 -116
  80. data/vendor/jquery_file_upload/server/gae-python/app.yaml +0 -18
  81. data/vendor/jquery_file_upload/server/gae-python/main.py +0 -204
  82. data/vendor/jquery_file_upload/server/gae-python/static/favicon.ico +0 -0
  83. data/vendor/jquery_file_upload/server/gae-python/static/robots.txt +0 -2
  84. data/vendor/jquery_file_upload/server/php/Dockerfile +0 -44
  85. data/vendor/jquery_file_upload/server/php/UploadHandler.php +0 -1480
  86. data/vendor/jquery_file_upload/server/php/index.php +0 -15
  87. data/vendor/jquery_file_upload/server/php/php.ini +0 -5
  88. data/vendor/jquery_file_upload/test/index.html +0 -49
  89. data/vendor/jquery_file_upload/test/unit.js +0 -989
  90. data/vendor/jquery_file_upload/test/vendor/chai.js +0 -10854
  91. data/vendor/jquery_file_upload/test/vendor/mocha.css +0 -325
  92. data/vendor/jquery_file_upload/test/vendor/mocha.js +0 -18178
  93. data/vendor/jquery_file_upload/wdio/LICENSE.txt +0 -20
  94. data/vendor/jquery_file_upload/wdio/assets/black+white-3x2.jpg +0 -0
  95. data/vendor/jquery_file_upload/wdio/assets/black+white-60x40.gif +0 -0
  96. data/vendor/jquery_file_upload/wdio/conf/chrome.js +0 -40
  97. data/vendor/jquery_file_upload/wdio/conf/firefox.js +0 -25
  98. data/vendor/jquery_file_upload/wdio/hooks/index.js +0 -36
  99. data/vendor/jquery_file_upload/wdio/test/pages/file-upload.js +0 -79
  100. data/vendor/jquery_file_upload/wdio/test/specs/01-file-upload.js +0 -25
  101. data/vendor/jquery_file_upload/wdio/wdio.conf.js +0 -4
  102. data/vendor/jquery_rails/CHANGELOG.md +0 -359
  103. data/vendor/jquery_rails/CONTRIBUTING.md +0 -132
  104. data/vendor/jquery_rails/Gemfile +0 -22
  105. data/vendor/jquery_rails/MIT-LICENSE +0 -21
  106. data/vendor/jquery_rails/README.md +0 -75
  107. data/vendor/jquery_rails/Rakefile +0 -59
  108. data/vendor/jquery_rails/VERSIONS.md +0 -62
  109. data/vendor/jquery_rails/jquery-rails.gemspec +0 -26
  110. data/vendor/jquery_rails/lib/jquery/assert_select.rb +0 -149
  111. data/vendor/jquery_rails/lib/jquery/rails/engine.rb +0 -6
  112. data/vendor/jquery_rails/lib/jquery/rails/version.rb +0 -9
  113. data/vendor/jquery_rails/lib/jquery/rails.rb +0 -8
  114. data/vendor/jquery_rails/lib/jquery-rails.rb +0 -1
  115. data/vendor/jquery_rails/test/assert_select_jquery_test.rb +0 -85
  116. data/vendor/jquery_rails/test/test_helper.rb +0 -6
  117. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.js +0 -11008
  118. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.min.js +0 -5
  119. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.min.map +0 -1
  120. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.js +0 -9814
  121. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.min.js +0 -4
  122. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.min.map +0 -1
  123. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.js +0 -10364
  124. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.min.js +0 -2
  125. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.min.map +0 -1
  126. data/vendor/jquery_rails/vendor/assets/javascripts/jquery_ujs.js +0 -555
  127. /data/{init → config}/early/init_execjs.rb +0 -0
@@ -1,116 +0,0 @@
1
- {
2
- "name": "blueimp-file-upload",
3
- "version": "10.32.0",
4
- "title": "jQuery File Upload",
5
- "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.",
6
- "keywords": [
7
- "jquery",
8
- "file",
9
- "upload",
10
- "widget",
11
- "multiple",
12
- "selection",
13
- "drag",
14
- "drop",
15
- "progress",
16
- "preview",
17
- "cross-domain",
18
- "cross-site",
19
- "chunk",
20
- "resume",
21
- "gae",
22
- "go",
23
- "python",
24
- "php",
25
- "bootstrap"
26
- ],
27
- "homepage": "https://github.com/blueimp/jQuery-File-Upload",
28
- "author": {
29
- "name": "Sebastian Tschan",
30
- "url": "https://blueimp.net"
31
- },
32
- "repository": {
33
- "type": "git",
34
- "url": "git://github.com/blueimp/jQuery-File-Upload.git"
35
- },
36
- "license": "MIT",
37
- "peerDependencies": {
38
- "jquery": ">=1.7"
39
- },
40
- "optionalDependencies": {
41
- "blueimp-canvas-to-blob": "3",
42
- "blueimp-load-image": "5",
43
- "blueimp-tmpl": "3"
44
- },
45
- "devDependencies": {
46
- "eslint": "7",
47
- "eslint-config-blueimp": "2",
48
- "eslint-config-prettier": "8",
49
- "eslint-plugin-jsdoc": "36",
50
- "eslint-plugin-prettier": "4",
51
- "prettier": "2",
52
- "stylelint": "13",
53
- "stylelint-config-prettier": "8",
54
- "stylelint-config-recommended": "5"
55
- },
56
- "stylelint": {
57
- "extends": [
58
- "stylelint-config-recommended",
59
- "stylelint-config-prettier"
60
- ],
61
- "ignoreFiles": [
62
- "css/*.min.css",
63
- "css/vendor/*",
64
- "test/vendor/*"
65
- ]
66
- },
67
- "eslintConfig": {
68
- "extends": [
69
- "blueimp",
70
- "plugin:jsdoc/recommended",
71
- "plugin:prettier/recommended"
72
- ],
73
- "env": {
74
- "browser": true
75
- }
76
- },
77
- "eslintIgnore": [
78
- "*.min.js",
79
- "test/vendor"
80
- ],
81
- "prettier": {
82
- "arrowParens": "avoid",
83
- "proseWrap": "always",
84
- "singleQuote": true,
85
- "trailingComma": "none"
86
- },
87
- "scripts": {
88
- "lint": "stylelint '**/*.css' && eslint .",
89
- "unit": "docker-compose run --rm mocha",
90
- "wdio": "docker-compose run --rm wdio",
91
- "test": "npm run lint && npm run unit && npm run wdio && npm run wdio -- conf/firefox.js",
92
- "posttest": "docker-compose down -v",
93
- "preversion": "npm test",
94
- "postversion": "git push --tags origin master && npm publish"
95
- },
96
- "files": [
97
- "css/jquery.fileupload-noscript.css",
98
- "css/jquery.fileupload-ui-noscript.css",
99
- "css/jquery.fileupload-ui.css",
100
- "css/jquery.fileupload.css",
101
- "img/loading.gif",
102
- "img/progressbar.gif",
103
- "js/cors/jquery.postmessage-transport.js",
104
- "js/cors/jquery.xdr-transport.js",
105
- "js/vendor/jquery.ui.widget.js",
106
- "js/jquery.fileupload-audio.js",
107
- "js/jquery.fileupload-image.js",
108
- "js/jquery.fileupload-process.js",
109
- "js/jquery.fileupload-ui.js",
110
- "js/jquery.fileupload-validate.js",
111
- "js/jquery.fileupload-video.js",
112
- "js/jquery.fileupload.js",
113
- "js/jquery.iframe-transport.js"
114
- ],
115
- "main": "js/jquery.fileupload.js"
116
- }
@@ -1,18 +0,0 @@
1
- runtime: python27
2
- api_version: 1
3
- threadsafe: true
4
-
5
- libraries:
6
- - name: PIL
7
- version: latest
8
-
9
- handlers:
10
- - url: /(favicon\.ico|robots\.txt)
11
- static_files: static/\1
12
- upload: static/(.*)
13
- expiration: '1d'
14
- - url: /.*
15
- script: main.app
16
-
17
- automatic_scaling:
18
- max_instances: 1
@@ -1,204 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # jQuery File Upload Plugin GAE Python Example
4
- # https://github.com/blueimp/jQuery-File-Upload
5
- #
6
- # Copyright 2011, Sebastian Tschan
7
- # https://blueimp.net
8
- #
9
- # Licensed under the MIT license:
10
- # https://opensource.org/licenses/MIT
11
- #
12
-
13
- from google.appengine.api import memcache, images
14
- import json
15
- import os
16
- import re
17
- import urllib
18
- import webapp2
19
-
20
- DEBUG=os.environ.get('SERVER_SOFTWARE', '').startswith('Dev')
21
- WEBSITE = 'https://blueimp.github.io/jQuery-File-Upload/'
22
- MIN_FILE_SIZE = 1 # bytes
23
- # Max file size is memcache limit (1MB) minus key size minus overhead:
24
- MAX_FILE_SIZE = 999000 # bytes
25
- IMAGE_TYPES = re.compile('image/(gif|p?jpeg|(x-)?png)')
26
- ACCEPT_FILE_TYPES = IMAGE_TYPES
27
- THUMB_MAX_WIDTH = 80
28
- THUMB_MAX_HEIGHT = 80
29
- THUMB_SUFFIX = '.'+str(THUMB_MAX_WIDTH)+'x'+str(THUMB_MAX_HEIGHT)+'.png'
30
- EXPIRATION_TIME = 300 # seconds
31
- # If set to None, only allow redirects to the referer protocol+host.
32
- # Set to a regexp for custom pattern matching against the redirect value:
33
- REDIRECT_ALLOW_TARGET = None
34
-
35
- class CORSHandler(webapp2.RequestHandler):
36
- def cors(self):
37
- headers = self.response.headers
38
- headers['Access-Control-Allow-Origin'] = '*'
39
- headers['Access-Control-Allow-Methods'] =\
40
- 'OPTIONS, HEAD, GET, POST, DELETE'
41
- headers['Access-Control-Allow-Headers'] =\
42
- 'Content-Type, Content-Range, Content-Disposition'
43
-
44
- def initialize(self, request, response):
45
- super(CORSHandler, self).initialize(request, response)
46
- self.cors()
47
-
48
- def json_stringify(self, obj):
49
- return json.dumps(obj, separators=(',', ':'))
50
-
51
- def options(self, *args, **kwargs):
52
- pass
53
-
54
- class UploadHandler(CORSHandler):
55
- def validate(self, file):
56
- if file['size'] < MIN_FILE_SIZE:
57
- file['error'] = 'File is too small'
58
- elif file['size'] > MAX_FILE_SIZE:
59
- file['error'] = 'File is too big'
60
- elif not ACCEPT_FILE_TYPES.match(file['type']):
61
- file['error'] = 'Filetype not allowed'
62
- else:
63
- return True
64
- return False
65
-
66
- def validate_redirect(self, redirect):
67
- if redirect:
68
- if REDIRECT_ALLOW_TARGET:
69
- return REDIRECT_ALLOW_TARGET.match(redirect)
70
- referer = self.request.headers['referer']
71
- if referer:
72
- from urlparse import urlparse
73
- parts = urlparse(referer)
74
- redirect_allow_target = '^' + re.escape(
75
- parts.scheme + '://' + parts.netloc + '/'
76
- )
77
- return re.match(redirect_allow_target, redirect)
78
- return False
79
-
80
- def get_file_size(self, file):
81
- file.seek(0, 2) # Seek to the end of the file
82
- size = file.tell() # Get the position of EOF
83
- file.seek(0) # Reset the file position to the beginning
84
- return size
85
-
86
- def write_blob(self, data, info):
87
- key = urllib.quote(info['type'].encode('utf-8'), '') +\
88
- '/' + str(hash(data)) +\
89
- '/' + urllib.quote(info['name'].encode('utf-8'), '')
90
- try:
91
- memcache.set(key, data, time=EXPIRATION_TIME)
92
- except: #Failed to add to memcache
93
- return (None, None)
94
- thumbnail_key = None
95
- if IMAGE_TYPES.match(info['type']):
96
- try:
97
- img = images.Image(image_data=data)
98
- img.resize(
99
- width=THUMB_MAX_WIDTH,
100
- height=THUMB_MAX_HEIGHT
101
- )
102
- thumbnail_data = img.execute_transforms()
103
- thumbnail_key = key + THUMB_SUFFIX
104
- memcache.set(
105
- thumbnail_key,
106
- thumbnail_data,
107
- time=EXPIRATION_TIME
108
- )
109
- except: #Failed to resize Image or add to memcache
110
- thumbnail_key = None
111
- return (key, thumbnail_key)
112
-
113
- def handle_upload(self):
114
- results = []
115
- for name, fieldStorage in self.request.POST.items():
116
- if type(fieldStorage) is unicode:
117
- continue
118
- result = {}
119
- result['name'] = urllib.unquote(fieldStorage.filename)
120
- result['type'] = fieldStorage.type
121
- result['size'] = self.get_file_size(fieldStorage.file)
122
- if self.validate(result):
123
- key, thumbnail_key = self.write_blob(
124
- fieldStorage.value,
125
- result
126
- )
127
- if key is not None:
128
- result['url'] = self.request.host_url + '/' + key
129
- result['deleteUrl'] = result['url']
130
- result['deleteType'] = 'DELETE'
131
- if thumbnail_key is not None:
132
- result['thumbnailUrl'] = self.request.host_url +\
133
- '/' + thumbnail_key
134
- else:
135
- result['error'] = 'Failed to store uploaded file.'
136
- results.append(result)
137
- return results
138
-
139
- def head(self):
140
- pass
141
-
142
- def get(self):
143
- self.redirect(WEBSITE)
144
-
145
- def post(self):
146
- if (self.request.get('_method') == 'DELETE'):
147
- return self.delete()
148
- result = {'files': self.handle_upload()}
149
- s = self.json_stringify(result)
150
- redirect = self.request.get('redirect')
151
- if self.validate_redirect(redirect):
152
- return self.redirect(str(
153
- redirect.replace('%s', urllib.quote(s, ''), 1)
154
- ))
155
- if 'application/json' in self.request.headers.get('Accept'):
156
- self.response.headers['Content-Type'] = 'application/json'
157
- self.response.write(s)
158
-
159
- class FileHandler(CORSHandler):
160
- def normalize(self, str):
161
- return urllib.quote(urllib.unquote(str), '')
162
-
163
- def get(self, content_type, data_hash, file_name):
164
- content_type = self.normalize(content_type)
165
- file_name = self.normalize(file_name)
166
- key = content_type + '/' + data_hash + '/' + file_name
167
- data = memcache.get(key)
168
- if data is None:
169
- return self.error(404)
170
- # Prevent browsers from MIME-sniffing the content-type:
171
- self.response.headers['X-Content-Type-Options'] = 'nosniff'
172
- content_type = urllib.unquote(content_type)
173
- if not IMAGE_TYPES.match(content_type):
174
- # Force a download dialog for non-image types:
175
- content_type = 'application/octet-stream'
176
- elif file_name.endswith(THUMB_SUFFIX):
177
- content_type = 'image/png'
178
- self.response.headers['Content-Type'] = content_type
179
- # Cache for the expiration time:
180
- self.response.headers['Cache-Control'] = 'public,max-age=%d' \
181
- % EXPIRATION_TIME
182
- self.response.write(data)
183
-
184
- def delete(self, content_type, data_hash, file_name):
185
- content_type = self.normalize(content_type)
186
- file_name = self.normalize(file_name)
187
- key = content_type + '/' + data_hash + '/' + file_name
188
- result = {key: memcache.delete(key)}
189
- content_type = urllib.unquote(content_type)
190
- if IMAGE_TYPES.match(content_type):
191
- thumbnail_key = key + THUMB_SUFFIX
192
- result[thumbnail_key] = memcache.delete(thumbnail_key)
193
- if 'application/json' in self.request.headers.get('Accept'):
194
- self.response.headers['Content-Type'] = 'application/json'
195
- s = self.json_stringify(result)
196
- self.response.write(s)
197
-
198
- app = webapp2.WSGIApplication(
199
- [
200
- ('/', UploadHandler),
201
- ('/(.+)/([^/]+)/([^/]+)', FileHandler)
202
- ],
203
- debug=DEBUG
204
- )
@@ -1,2 +0,0 @@
1
- User-agent: *
2
- Disallow:
@@ -1,44 +0,0 @@
1
- FROM php:8.0.11-apache
2
-
3
- # Enable the Apache Headers module:
4
- RUN ln -s /etc/apache2/mods-available/headers.load \
5
- /etc/apache2/mods-enabled/headers.load
6
-
7
- # Enable the Apache Rewrite module:
8
- RUN ln -s /etc/apache2/mods-available/rewrite.load \
9
- /etc/apache2/mods-enabled/rewrite.load
10
-
11
- # Install GD, Imagick and ImageMagick as image conversion options:
12
- RUN DEBIAN_FRONTEND=noninteractive \
13
- apt-get update && apt-get install -y --no-install-recommends \
14
- libpng-dev \
15
- libjpeg-dev \
16
- libmagickwand-dev \
17
- imagemagick \
18
- && pecl install \
19
- imagick \
20
- && docker-php-ext-enable \
21
- imagick \
22
- && docker-php-ext-configure \
23
- gd --with-jpeg=/usr/include/ \
24
- && docker-php-ext-install \
25
- gd \
26
- # Uninstall obsolete packages:
27
- && apt-get autoremove -y \
28
- libpng-dev \
29
- libjpeg-dev \
30
- libmagickwand-dev \
31
- # Remove obsolete files:
32
- && apt-get clean \
33
- && rm -rf \
34
- /tmp/* \
35
- /usr/share/doc/* \
36
- /var/cache/* \
37
- /var/lib/apt/lists/* \
38
- /var/tmp/*
39
-
40
- # Use the default development configuration:
41
- RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"
42
-
43
- # Add a custom configuration file:
44
- COPY php.ini "$PHP_INI_DIR/conf.d/"