zendesk_apps_support 4.2.1 → 4.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6fe5bdb5612e8bb4a6a19203bac397d803344e56
4
- data.tar.gz: f26d674ecd167f9e89d105c709ebc87d065a4144
3
+ metadata.gz: c35e29cfb59ea49f7c17e2c67e7e87448d082d70
4
+ data.tar.gz: 9b9bed066d256daedaaddb4430f8c8e2cf77d2b3
5
5
  SHA512:
6
- metadata.gz: 4182a52d6006ddf7bc3e408ba6c9c6b7385dcbf5c87170ff1d73267df409701676cb19d7705dacc475ead01320f386a9e3a3602fb2e52731b3ef0b57cfe84c1b
7
- data.tar.gz: be090702051d35c47de0a4a01ca65dafb86231b0163d02e435579cd32d337a1a4a61e4c5fa8828bac7c9cc45c31333bc8f110e873c44ab60d377ee246ba6c338
6
+ metadata.gz: f77764d71a3a8a65e69a50b8ee708ffc25f110694d28b218bb001d7675a8949f30b2d7896b1b5b394a3d99aa4a0624f84d23c7ac12c632a08b19d22457ac0ed1
7
+ data.tar.gz: 61c0cdff51c2ddff19b94d24b37355c5d01ec1c57fcecd379f9e09df716a3280373548e7c76a28b3e9268052f82ff229efa103b8fe9ab0322f6008fd4801f528
@@ -57,6 +57,7 @@ en:
57
57
  banner:
58
58
  invalid_format: Banner image must be a PNG file.
59
59
  invalid_size: Invalid banner image dimensions. Must be %{required_banner_width}x%{required_banner_height}px.
60
+ dirty_svg: '%{svg} contains invalid markup and was unable to be automatically regenerated.'
60
61
  oauth_keys:
61
62
  missing:
62
63
  one: 'Missing required oauth field in manifest: %{missing_keys}'
@@ -116,3 +117,4 @@ en:
116
117
  deprecated_version: You are targeting a deprecated version of the framework.
117
118
  Your app will work, but it might break when the new framework version
118
119
  is deployed.
120
+ sanitised_svg: "The markup in %{svg} has been edited for use in Zendesk, and may not display as intended."
@@ -27,6 +27,7 @@ module ZendeskAppsSupport
27
27
  autoload :Stylesheets, 'zendesk_apps_support/validations/stylesheets'
28
28
  autoload :Requirements, 'zendesk_apps_support/validations/requirements'
29
29
  autoload :Banner, 'zendesk_apps_support/validations/banner'
30
+ autoload :Svg, 'zendesk_apps_support/validations/svg'
30
31
  end
31
32
 
32
33
  class Manifest
@@ -30,6 +30,7 @@ module ZendeskAppsSupport
30
30
  def validate(marketplace: true)
31
31
  [].tap do |errors|
32
32
  errors << Validations::Manifest.call(self)
33
+
33
34
  if has_manifest?
34
35
  errors << Validations::Marketplace.call(self) if marketplace
35
36
  errors << Validations::Source.call(self)
@@ -43,6 +44,7 @@ module ZendeskAppsSupport
43
44
  end
44
45
 
45
46
  errors << Validations::Banner.call(self) if has_banner?
47
+ errors << Validations::Svg.call(self) if has_svgs?
46
48
 
47
49
  errors.flatten!.compact!
48
50
  end
@@ -91,6 +93,10 @@ module ZendeskAppsSupport
91
93
  @lib_files ||= js_files.select { |f| f =~ %r{^lib/} }
92
94
  end
93
95
 
96
+ def svg_files
97
+ @svg_files ||= files.select { |f| f =~ %r{^assets/.*\.svg$} }
98
+ end
99
+
94
100
  def template_files
95
101
  files.select { |f| f =~ %r{^templates/.*\.hdbs$} }
96
102
  end
@@ -268,6 +274,10 @@ module ZendeskAppsSupport
268
274
  has_file?('assets/banner.png')
269
275
  end
270
276
 
277
+ def has_svgs?
278
+ svg_files.any?
279
+ end
280
+
271
281
  def location_icons
272
282
  Hash.new { |h, k| h[k] = {} }.tap do |location_icons|
273
283
  manifest.location_options.each do |location_options|
@@ -7,7 +7,7 @@ module ZendeskAppsSupport
7
7
  BANNER_WIDTH = 830
8
8
  BANNER_HEIGHT = 200
9
9
 
10
- class <<self
10
+ class << self
11
11
  def call(package)
12
12
  File.open(package.path_to('assets/banner.png'), 'rb') do |fh|
13
13
  begin
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+ require 'loofah'
3
+
4
+ module ZendeskAppsSupport
5
+ module Validations
6
+ module Svg
7
+ class << self
8
+ def call(package)
9
+ errors = []
10
+ package.svg_files.each do |svg|
11
+ markup = svg.read
12
+ clean_markup = Loofah.scrub_xml_document(markup, :prune).to_html
13
+ filepath = svg.relative_path
14
+
15
+ next if clean_markup == markup
16
+ begin
17
+ IO.write(filepath, clean_markup)
18
+ package.warnings << I18n.t('txt.apps.admin.warning.sanitised_svg', svg: filepath)
19
+ rescue
20
+ errors << ValidationError.new(:dirty_svg, svg: filepath)
21
+ end
22
+ end
23
+ errors
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk_apps_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.1
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James A. Rosen
@@ -111,6 +111,34 @@ dependencies:
111
111
  - - "~>"
112
112
  - !ruby/object:Gem::Version
113
113
  version: 0.3.0
114
+ - !ruby/object:Gem::Dependency
115
+ name: loofah
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ - !ruby/object:Gem::Dependency
129
+ name: nokogiri
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: 1.6.8.1
135
+ type: :runtime
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: 1.6.8.1
114
142
  - !ruby/object:Gem::Dependency
115
143
  name: rspec
116
144
  requirement: !ruby/object:Gem::Requirement
@@ -167,6 +195,20 @@ dependencies:
167
195
  - - "~>"
168
196
  - !ruby/object:Gem::Version
169
197
  version: 0.46.0
198
+ - !ruby/object:Gem::Dependency
199
+ name: byebug
200
+ requirement: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ type: :development
206
+ prerelease: false
207
+ version_requirements: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
170
212
  description: Support to help you develop Zendesk Apps.
171
213
  email:
172
214
  - dev@zendesk.com
@@ -207,6 +249,7 @@ files:
207
249
  - lib/zendesk_apps_support/validations/requirements.rb
208
250
  - lib/zendesk_apps_support/validations/source.rb
209
251
  - lib/zendesk_apps_support/validations/stylesheets.rb
252
+ - lib/zendesk_apps_support/validations/svg.rb
210
253
  - lib/zendesk_apps_support/validations/templates.rb
211
254
  - lib/zendesk_apps_support/validations/translations.rb
212
255
  - lib/zendesk_apps_support/validations/validation_error.rb
@@ -222,7 +265,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
222
265
  requirements:
223
266
  - - ">="
224
267
  - !ruby/object:Gem::Version
225
- version: '0'
268
+ version: '2.0'
226
269
  required_rubygems_version: !ruby/object:Gem::Requirement
227
270
  requirements:
228
271
  - - ">="
@@ -230,7 +273,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
230
273
  version: 1.3.6
231
274
  requirements: []
232
275
  rubyforge_project:
233
- rubygems_version: 2.6.8
276
+ rubygems_version: 2.6.13
234
277
  signing_key:
235
278
  specification_version: 4
236
279
  summary: Support to help you develop Zendesk Apps.