zendesk_apps_support 4.29.2 → 4.29.7

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
- SHA1:
3
- metadata.gz: dfe152c509f3ca3950d32e242acdfa2bf384626d
4
- data.tar.gz: 78d1c4ed3ca911b8dd7555717dbe61ffe7c61b4e
2
+ SHA256:
3
+ metadata.gz: a2efe550a3304af99cfc61a7fa09908394b1223e80ba8772abd041a804c52992
4
+ data.tar.gz: 0cd194aa7b336f7cb4f09c1af7d3616de08894cee204d06459b2bfc27e958c87
5
5
  SHA512:
6
- metadata.gz: f2427db0cd9d4ac3c2e45a6ab34a16080cd779910d41df6d0d199880f369f0e9936d8d4cf448cc5431c5fc696bcd52a623c9a8b4e8112e2ce942cbed42555a47
7
- data.tar.gz: 4eb7f39bedea9d1638f3657bab6c4fb9f592700352f3f3bb900e9a255480d44557bcb3f5c5b61a909447e272757740f1581963ec252827362dc7782e2033872f
6
+ metadata.gz: c12aa9330247f65c417a8620a5e7197a13b5fd61073e513839f53fe41fc82e3272b4ecfcc6f8a685c5751ec0bd14e37001490c585d2d98d274e2964e12e7b726
7
+ data.tar.gz: 91f0e3ebc1710b74556ad8b204ef6222cda476238fae02e66fd05469b354dc148ab56e1ee7b3106ce8fb8118c74f0398dbc470c8b4c14f1282d12556680b4ab5
@@ -62,7 +62,7 @@ en:
62
62
  other: Unsupported MIME types detected in %{file_names}.
63
63
  multiple_channel_integrations: Specifying multiple channel integrations
64
64
  in requirements.json is not supported.
65
- too_many_oauth_parameters: "Too many parameters with type 'oauth': one permitted"
65
+ oauth_parameter_required: "Please upgrade to our new oauth format. Learn more: %{link}"
66
66
  invalid_cr_schema_keys:
67
67
  one: 'Custom resources schema contains an invalid key: %{invalid_keys}'
68
68
  other: 'Custom resources schema contains invalid keys: %{invalid_keys}'
@@ -78,6 +78,8 @@ en:
78
78
  missing:
79
79
  one: 'Missing required oauth field in manifest: %{missing_keys}'
80
80
  other: 'Missing required oauth fields in manifest: %{missing_keys}'
81
+ too_many_oauth_parameters: 'Too many parameters with type ''oauth'': one
82
+ permitted'
81
83
  missing_source: Could not find app.js
82
84
  style_in_template: "<style> tag in %{template}. Use an app.css file instead."
83
85
  no_code_for_ifo_notemplate: Javascripts, stylesheets, and templates are
@@ -139,6 +141,8 @@ en:
139
141
  invalid_v1_location:
140
142
  one: "%{invalid_locations} is an invalid location in framework v1."
141
143
  other: "%{invalid_locations} are invalid locations in framework v1."
144
+ oauth_parameter_cannot_be_secure: oauth parameter cannot be set to be
145
+ secure.
142
146
  warning:
143
147
  app_build:
144
148
  deprecated_version: You are targeting a deprecated version of the framework.
@@ -399,3 +399,7 @@ parts:
399
399
  key: "txt.apps.admin.error.app_build.invalid_v1_location.other"
400
400
  title: "The locations listed are not available in framework v1."
401
401
  value: "%{invalid_locations} are invalid locations in framework v1."
402
+ - translation:
403
+ key: "txt.apps.admin.error.app_build.oauth_parameter_cannot_be_secure"
404
+ title: "oauth parameter cannot be set to be secure."
405
+ value: "oauth parameter cannot be set to be secure."
@@ -26,9 +26,9 @@ require 'sassc'
26
26
  module SassC::Script::Functions
27
27
  module AppAssetUrl
28
28
  def app_asset_url(name)
29
- raise ArgumentError, "Expected #{name} to be a string" unless name.is_a? Sass::Script::Value::String
29
+ raise ArgumentError, "Expected #{name} to be a string" unless name.is_a? SassC::Script::Value::String
30
30
  result = %{url("#{app_asset_url_helper(name)}")}
31
- SassC::Script::String.new(result)
31
+ SassC::Script::Value::String.new(result)
32
32
  end
33
33
 
34
34
  private
@@ -10,6 +10,7 @@ module ZendeskAppsSupport
10
10
  REQUIRED_MANIFEST_FIELDS = RUBY_TO_JSON.select { |k| %i[author default_locale].include? k }.freeze
11
11
  OAUTH_REQUIRED_FIELDS = %w[client_id client_secret authorize_uri access_token_uri].freeze
12
12
  PARAMETER_TYPES = ZendeskAppsSupport::Manifest::Parameter::TYPES
13
+ OAUTH_MANIFEST_LINK = 'https://developer.zendesk.com/apps/docs/developer-guide/manifest#oauth'
13
14
 
14
15
  class << self
15
16
  def call(package)
@@ -33,51 +34,71 @@ module ZendeskAppsSupport
33
34
  def collate_manifest_errors(package)
34
35
  manifest = package.manifest
35
36
 
36
- errors = []
37
- errors << missing_keys_error(manifest)
38
- errors << type_checks(manifest)
39
- errors << oauth_error(manifest)
40
- errors << default_locale_error(manifest, package)
37
+ errors = [
38
+ missing_keys_error(manifest),
39
+ type_checks(manifest),
40
+ oauth_error(manifest),
41
+ default_locale_error(manifest, package),
42
+ validate_parameters(manifest),
43
+ if manifest.requirements_only? || manifest.marketing_only?
44
+ [ ban_location(manifest),
45
+ ban_framework_version(manifest) ]
46
+ else
47
+ [ validate_location(package),
48
+ missing_framework_version(manifest),
49
+ invalid_version_error(manifest) ]
50
+ end,
51
+ ban_no_template(manifest)
52
+ ]
53
+ errors.flatten.compact
54
+ end
41
55
 
56
+ def validate_location(package)
57
+ manifest = package.manifest
58
+ [
59
+ missing_location_error(package),
60
+ invalid_location_error(package),
61
+ invalid_v1_location(package),
62
+ location_framework_mismatch(manifest)
63
+ ]
64
+ end
65
+
66
+ def validate_parameters(manifest)
42
67
  if manifest.marketing_only?
43
- errors.push(*marketing_only_errors(manifest))
68
+ marketing_only_errors(manifest)
44
69
  else
45
- errors << parameters_error(manifest)
46
- errors << invalid_hidden_parameter_error(manifest)
47
- errors << invalid_type_error(manifest)
48
- errors << too_many_oauth_parameters(manifest)
49
- errors << name_as_parameter_name_error(manifest)
70
+ [
71
+ parameters_error(manifest),
72
+ invalid_hidden_parameter_error(manifest),
73
+ invalid_type_error(manifest),
74
+ too_many_oauth_parameters(manifest),
75
+ oauth_cannot_be_secure(manifest),
76
+ name_as_parameter_name_error(manifest)
77
+ ]
50
78
  end
79
+ end
51
80
 
52
- if manifest.requirements_only? || manifest.marketing_only?
53
- errors << ban_location(manifest)
54
- errors << ban_framework_version(manifest)
55
- else
56
- errors << missing_location_error(package)
57
- errors << invalid_location_error(package)
58
- errors << invalid_v1_location(package)
59
- errors << missing_framework_version(manifest)
60
- errors << location_framework_mismatch(manifest)
61
- errors << invalid_version_error(manifest)
81
+ def oauth_cannot_be_secure(manifest)
82
+ manifest.parameters.map do |parameter|
83
+ if parameter.type == 'oauth' && parameter.secure
84
+ return ValidationError.new('oauth_parameter_cannot_be_secure')
85
+ end
62
86
  end
63
-
64
- errors << ban_no_template(manifest) if manifest.iframe_only?
65
-
66
- errors.flatten.compact
67
87
  end
68
88
 
69
89
  def marketing_only_errors(manifest)
70
- [].tap do |errors|
71
- errors << ban_parameters(manifest)
72
- errors << private_marketing_app_error(manifest)
73
- end
90
+ [
91
+ ban_parameters(manifest),
92
+ private_marketing_app_error(manifest)
93
+ ]
74
94
  end
75
95
 
76
96
  def type_checks(manifest)
77
- errors = []
78
- errors << boolean_error(manifest)
79
- errors << string_error(manifest)
80
- errors << no_template_format_error(manifest)
97
+ errors = [
98
+ boolean_error(manifest),
99
+ string_error(manifest),
100
+ no_template_format_error(manifest)
101
+ ]
81
102
  unless manifest.experiments.is_a?(Hash)
82
103
  errors << ValidationError.new(
83
104
  :unacceptable_hash,
@@ -152,6 +173,7 @@ module ZendeskAppsSupport
152
173
  end
153
174
 
154
175
  def ban_no_template(manifest)
176
+ return unless manifest.iframe_only?
155
177
  no_template_migration_link = 'https://developer.zendesk.com/apps/docs/apps-v2/manifest#location'
156
178
  if manifest.no_template? || !manifest.no_template_locations.empty?
157
179
  ValidationError.new(:no_template_deprecated_in_v2, link: no_template_migration_link)
@@ -176,14 +198,21 @@ module ZendeskAppsSupport
176
198
 
177
199
  def oauth_error(manifest)
178
200
  return unless manifest.oauth
179
-
201
+ oauth_errors = []
180
202
  missing = OAUTH_REQUIRED_FIELDS.select do |key|
181
203
  manifest.oauth[key].nil? || manifest.oauth[key].empty?
182
204
  end
183
205
 
184
206
  if missing.any?
185
- ValidationError.new('oauth_keys.missing', missing_keys: missing.join(', '), count: missing.length)
207
+ oauth_errors << \
208
+ ValidationError.new('oauth_keys.missing', missing_keys: missing.join(', '), count: missing.length)
209
+ end
210
+
211
+ unless manifest.parameters.any? { |param| param.type == 'oauth' }
212
+ oauth_errors << ValidationError.new('oauth_parameter_required',
213
+ link: OAUTH_MANIFEST_LINK)
186
214
  end
215
+ oauth_errors
187
216
  end
188
217
 
189
218
  def parameters_error(manifest)
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk_apps_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.29.2
4
+ version: 4.29.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - James A. Rosen
8
8
  - Likun Liu
9
9
  - Sean Caffery
10
10
  - Daniel Ribeiro
11
- autorequire:
11
+ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-05-14 00:00:00.000000000 Z
14
+ date: 2021-02-23 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: i18n
@@ -31,16 +31,16 @@ dependencies:
31
31
  name: sassc
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
- - - "~>"
34
+ - - ">="
35
35
  - !ruby/object:Gem::Version
36
- version: 1.11.2
36
+ version: '0'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - "~>"
41
+ - - ">="
42
42
  - !ruby/object:Gem::Version
43
- version: 1.11.2
43
+ version: '0'
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: sass
46
46
  requirement: !ruby/object:Gem::Requirement
@@ -73,16 +73,16 @@ dependencies:
73
73
  name: image_size
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - ">="
76
+ - - "~>"
77
77
  - !ruby/object:Gem::Version
78
- version: '0'
78
+ version: 2.0.2
79
79
  type: :runtime
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
- - - ">="
83
+ - - "~>"
84
84
  - !ruby/object:Gem::Version
85
- version: '0'
85
+ version: 2.0.2
86
86
  - !ruby/object:Gem::Dependency
87
87
  name: erubis
88
88
  requirement: !ruby/object:Gem::Requirement
@@ -103,28 +103,34 @@ dependencies:
103
103
  requirements:
104
104
  - - "~>"
105
105
  - !ruby/object:Gem::Version
106
- version: 2.2.3
106
+ version: 2.3.1
107
107
  type: :runtime
108
108
  prerelease: false
109
109
  version_requirements: !ruby/object:Gem::Requirement
110
110
  requirements:
111
111
  - - "~>"
112
112
  - !ruby/object:Gem::Version
113
- version: 2.2.3
113
+ version: 2.3.1
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: nokogiri
116
116
  requirement: !ruby/object:Gem::Requirement
117
117
  requirements:
118
- - - "~>"
118
+ - - ">="
119
119
  - !ruby/object:Gem::Version
120
120
  version: 1.8.5
121
+ - - "<"
122
+ - !ruby/object:Gem::Version
123
+ version: 1.11.0
121
124
  type: :runtime
122
125
  prerelease: false
123
126
  version_requirements: !ruby/object:Gem::Requirement
124
127
  requirements:
125
- - - "~>"
128
+ - - ">="
126
129
  - !ruby/object:Gem::Version
127
130
  version: 1.8.5
131
+ - - "<"
132
+ - !ruby/object:Gem::Version
133
+ version: 1.11.0
128
134
  - !ruby/object:Gem::Dependency
129
135
  name: rb-inotify
130
136
  requirement: !ruby/object:Gem::Requirement
@@ -304,7 +310,7 @@ homepage: http://github.com/zendesk/zendesk_apps_support
304
310
  licenses:
305
311
  - Apache License Version 2.0
306
312
  metadata: {}
307
- post_install_message:
313
+ post_install_message:
308
314
  rdoc_options: []
309
315
  require_paths:
310
316
  - lib
@@ -319,9 +325,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
319
325
  - !ruby/object:Gem::Version
320
326
  version: 1.3.6
321
327
  requirements: []
322
- rubyforge_project:
323
- rubygems_version: 2.6.8
324
- signing_key:
328
+ rubygems_version: 3.0.8
329
+ signing_key:
325
330
  specification_version: 4
326
331
  summary: Support to help you develop Zendesk Apps.
327
332
  test_files: []