conjur-asset-ui-beta 1.5.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.
Files changed (150) hide show
  1. checksums.yaml +7 -0
  2. data/.git-hooks/pre_commit/trailing_whitespace.rb +26 -0
  3. data/.gitignore +23 -0
  4. data/.project +18 -0
  5. data/CHANGELOG.md +14 -0
  6. data/Gemfile +10 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +72 -0
  9. data/Rakefile +76 -0
  10. data/TODO.md +31 -0
  11. data/app/.csscomb.json +304 -0
  12. data/app/.jshintrc +46 -0
  13. data/app/build/css/bootstrap.css +6906 -0
  14. data/app/build/fonts/glyphicons-halflings-regular.eot +0 -0
  15. data/app/build/fonts/glyphicons-halflings-regular.svg +288 -0
  16. data/app/build/fonts/glyphicons-halflings-regular.ttf +0 -0
  17. data/app/build/fonts/glyphicons-halflings-regular.woff +0 -0
  18. data/app/build/fonts/glyphicons-halflings-regular.woff2 +0 -0
  19. data/app/build/images/conjur-logo.svg +26 -0
  20. data/app/build/images/icon-client-pc.svg +12 -0
  21. data/app/build/images/icon-environment.png +0 -0
  22. data/app/build/images/icon-person.svg +12 -0
  23. data/app/build/images/icon-policy.png +0 -0
  24. data/app/build/images/icon-resource.png +0 -0
  25. data/app/build/images/icon-service-dots.svg +13 -0
  26. data/app/build/images/icon-variable.png +0 -0
  27. data/app/build/index.html +26 -0
  28. data/app/build/js/app.js +78070 -0
  29. data/app/build/js/pace.js +2 -0
  30. data/app/config/preprocessor.js +9 -0
  31. data/app/config/webpack.js +84 -0
  32. data/app/gulpfile.js +144 -0
  33. data/app/package.json +83 -0
  34. data/app/src/actions.js +493 -0
  35. data/app/src/app.js +76 -0
  36. data/app/src/clients/audit.js +54 -0
  37. data/app/src/clients/generic.js +87 -0
  38. data/app/src/clients/layer_members.js +36 -0
  39. data/app/src/clients/list.js +82 -0
  40. data/app/src/clients/members.js +37 -0
  41. data/app/src/clients/search.js +19 -0
  42. data/app/src/components/app/__tests__/app-test.js +22 -0
  43. data/app/src/components/app/app.js +66 -0
  44. data/app/src/components/audit/__tests__/table_header-test.js +40 -0
  45. data/app/src/components/audit/box.js +11 -0
  46. data/app/src/components/audit/constants.js +7 -0
  47. data/app/src/components/audit/entry.js +107 -0
  48. data/app/src/components/audit/fields_mixin.js +13 -0
  49. data/app/src/components/audit/humanize_event.js +216 -0
  50. data/app/src/components/audit/table.js +100 -0
  51. data/app/src/components/audit/table_header.js +38 -0
  52. data/app/src/components/audit/timestamp.js +30 -0
  53. data/app/src/components/chart/chart.js +539 -0
  54. data/app/src/components/chart/chart_helper_mixin.js +79 -0
  55. data/app/src/components/custom/list.js +5 -0
  56. data/app/src/components/custom/view.js +71 -0
  57. data/app/src/components/dashboard/activity.js +113 -0
  58. data/app/src/components/dashboard/dashboard.js +47 -0
  59. data/app/src/components/flash/flash.js +17 -0
  60. data/app/src/components/generic/__tests__/time-test.js +43 -0
  61. data/app/src/components/generic/annotations.js +41 -0
  62. data/app/src/components/generic/breadcrumbs.js +59 -0
  63. data/app/src/components/generic/foldable_audit_section.js +252 -0
  64. data/app/src/components/generic/list.js +144 -0
  65. data/app/src/components/generic/list_factory.js +42 -0
  66. data/app/src/components/generic/resource_link.js +65 -0
  67. data/app/src/components/generic/role_link.js +65 -0
  68. data/app/src/components/generic/tab_mixin.js +148 -0
  69. data/app/src/components/generic/time.js +34 -0
  70. data/app/src/components/group/list.js +5 -0
  71. data/app/src/components/group/view.js +137 -0
  72. data/app/src/components/host/activity.js +93 -0
  73. data/app/src/components/host/details.js +30 -0
  74. data/app/src/components/host/host_link.js +20 -0
  75. data/app/src/components/host/list.js +5 -0
  76. data/app/src/components/host/view.js +113 -0
  77. data/app/src/components/layer/list.js +5 -0
  78. data/app/src/components/layer/view.js +180 -0
  79. data/app/src/components/navbar/__tests__/navbar-test.js +21 -0
  80. data/app/src/components/navbar/nav_search_form.js +41 -0
  81. data/app/src/components/navbar/navbar.js +71 -0
  82. data/app/src/components/owned_resources/owned_resources.js +86 -0
  83. data/app/src/components/owned_resources/owned_resources_box.js +106 -0
  84. data/app/src/components/permissions/permissions.js +143 -0
  85. data/app/src/components/permissions/permissions_table.js +104 -0
  86. data/app/src/components/policy/list.js +5 -0
  87. data/app/src/components/policy/view.js +98 -0
  88. data/app/src/components/refresh/refresh.js +30 -0
  89. data/app/src/components/refresh/refresh.less +15 -0
  90. data/app/src/components/search/group.js +45 -0
  91. data/app/src/components/search/group_heading.js +50 -0
  92. data/app/src/components/search/group_title.js +38 -0
  93. data/app/src/components/search/result_item.js +57 -0
  94. data/app/src/components/search/search.js +103 -0
  95. data/app/src/components/user/activity.js +92 -0
  96. data/app/src/components/user/details.js +30 -0
  97. data/app/src/components/user/list.js +5 -0
  98. data/app/src/components/user/pubkeys.js +116 -0
  99. data/app/src/components/user/pubkeys.less +56 -0
  100. data/app/src/components/user/view.js +123 -0
  101. data/app/src/components/variable/activity.js +83 -0
  102. data/app/src/components/variable/details.js +48 -0
  103. data/app/src/components/variable/fetchers.js +83 -0
  104. data/app/src/components/variable/list.js +5 -0
  105. data/app/src/components/variable/updaters.js +83 -0
  106. data/app/src/components/variable/view.js +105 -0
  107. data/app/src/constants.js +35 -0
  108. data/app/src/images/conjur-logo.svg +26 -0
  109. data/app/src/images/icon-client-pc.svg +12 -0
  110. data/app/src/images/icon-environment.png +0 -0
  111. data/app/src/images/icon-person.svg +12 -0
  112. data/app/src/images/icon-policy.png +0 -0
  113. data/app/src/images/icon-resource.png +0 -0
  114. data/app/src/images/icon-service-dots.svg +13 -0
  115. data/app/src/images/icon-variable.png +0 -0
  116. data/app/src/pages/index.html +26 -0
  117. data/app/src/routes.js +57 -0
  118. data/app/src/stores/app_store.js +29 -0
  119. data/app/src/stores/audit_store.js +77 -0
  120. data/app/src/stores/group_store.js +105 -0
  121. data/app/src/stores/host_store.js +98 -0
  122. data/app/src/stores/layer_store.js +115 -0
  123. data/app/src/stores/policy_store.js +89 -0
  124. data/app/src/stores/resources_store.js +118 -0
  125. data/app/src/stores/route_store.js +24 -0
  126. data/app/src/stores/search_store.js +73 -0
  127. data/app/src/stores/user_store.js +111 -0
  128. data/app/src/stores/variable_store.js +94 -0
  129. data/app/src/styles/bootstrap.less +56 -0
  130. data/app/src/styles/styles.less +634 -0
  131. data/app/src/utils.js +43 -0
  132. data/app/src/vendor/pace.js +2 -0
  133. data/conjur-asset-ui.gemspec +36 -0
  134. data/features/navigation_bar.feature +31 -0
  135. data/features/step_definitions/custom_step.rb +32 -0
  136. data/features/support/env.rb +38 -0
  137. data/features/support/hooks.rb +30 -0
  138. data/features/support/world.rb +17 -0
  139. data/lib/conjur-asset-ui-version.rb +7 -0
  140. data/lib/conjur-asset-ui.rb +7 -0
  141. data/lib/conjur/command/ui.rb +54 -0
  142. data/lib/conjur/webserver/api_proxy.rb +94 -0
  143. data/lib/conjur/webserver/authorize.rb +28 -0
  144. data/lib/conjur/webserver/conjur_info.rb +33 -0
  145. data/lib/conjur/webserver/home.rb +42 -0
  146. data/lib/conjur/webserver/login.rb +57 -0
  147. data/lib/conjur/webserver/renderer.rb +34 -0
  148. data/lib/conjur/webserver/server.rb +130 -0
  149. data/public/js/views/roleGraph.js +91 -0
  150. metadata +373 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 928eec5b59d62e64dda1e5f1af4a25153ac1b0cf
4
+ data.tar.gz: e0c052eedbfd1acea7ef057d3535d16cf46a89ad
5
+ SHA512:
6
+ metadata.gz: edb66cd30174656ca1ca09fce616a0d2f03c259942eac1e3825d26cab8381a5f7d645168b64a9e4a5ff6ba9a4736432b3924d94b54d9c09f9af0ac75cc02d287
7
+ data.tar.gz: a29762172fc3b12a0f2003d0642896c799b898f5052d39b8ea757bc9d46825bf790959c41deee57c628136c4452bff3bd24bc876de3b22f8a97d0b294332a6e2
@@ -0,0 +1,26 @@
1
+ module Overcommit::Hook::PreCommit
2
+ # Checks for trailing whitespace in files.
3
+ class TrailingWhitespace < Base
4
+ def message
5
+ "Trailing whitespace detected"
6
+ end
7
+
8
+ def lint_split output, message = message
9
+ # Keep lines from the output for files that we actually modified
10
+ error_lines, warning_lines = output.split("\n").partition do |output_line|
11
+ _, file, line = output_line.match(/^([^:]+):(\d+)/).to_a
12
+ modified_lines(file).include?(line.to_i)
13
+ end
14
+
15
+ return :bad, message + ":\n" + error_lines.join("\n") unless error_lines.empty?
16
+ return :warn, message + " (on lines you didn't modify):\n" + warning_lines.join("\n")\
17
+ unless warning_lines.empty?
18
+
19
+ :good
20
+ end
21
+
22
+ def run
23
+ lint_split execute(%w[grep -IHn \s$] + applicable_files).stdout
24
+ end
25
+ end
26
+ end
data/.gitignore ADDED
@@ -0,0 +1,23 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .idea
19
+ .DS_Store
20
+ npm-debug.log
21
+ app/npm-debug.log
22
+ app/node_modules/
23
+ app/build/
data/.project ADDED
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>conjur-asset-ui</name>
4
+ <comment></comment>
5
+ <projects>
6
+ </projects>
7
+ <buildSpec>
8
+ <buildCommand>
9
+ <name>com.aptana.ide.core.unifiedBuilder</name>
10
+ <arguments>
11
+ </arguments>
12
+ </buildCommand>
13
+ </buildSpec>
14
+ <natures>
15
+ <nature>com.aptana.ruby.core.rubynature</nature>
16
+ <nature>com.aptana.projects.webnature</nature>
17
+ </natures>
18
+ </projectDescription>
data/CHANGELOG.md ADDED
@@ -0,0 +1,14 @@
1
+ # v1.5.0
2
+
3
+ * `-p` and `--headless` options for launching the UI
4
+
5
+ # v1.4.2
6
+
7
+ * New dashboard
8
+ * Activity graphs, warnings emphasized for User, Host, Variable pages
9
+ * Lots of bugfixes
10
+ * Build workflow updated
11
+
12
+ # v1.3.0
13
+
14
+ * resurrection of the UI
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in conjur-asset-pubkeys.gemspec
4
+ gemspec
5
+
6
+ group :development do
7
+ gem 'pry'
8
+ gem 'selenium-cucumber'
9
+ gem 'background_process'
10
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Kevin Gilpin
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,72 @@
1
+ conjur-asset-ui
2
+ ===============
3
+
4
+ This Gem is a Conjur plugin providing UI features.
5
+
6
+ Usage
7
+ -----
8
+
9
+ First install the gem, with the rather clumsy name `conjur-asset-ui`.
10
+
11
+ ```
12
+ gem install conjur-asset-ui
13
+ ```
14
+
15
+ Or add the following line to your `Gemfile`:
16
+
17
+ ```
18
+ gem 'conjur-asset-ui'
19
+ ```
20
+
21
+ Next, edit your `.conjurrc` file to add the `"ui"` plugin, for example:
22
+
23
+ ```
24
+ plugins:
25
+ - ui
26
+ ```
27
+
28
+ Make sure you are logged into conjur:
29
+
30
+ ```
31
+ conjur authn login
32
+ ```
33
+
34
+ And run the UI:
35
+
36
+ ```
37
+ conjur ui
38
+ ```
39
+
40
+ ## Development
41
+
42
+ ### System Dependencies
43
+
44
+ * rvm with installed Ruby
45
+ * npm
46
+
47
+ ### Setup
48
+
49
+ Create a gemset with [rvm](http://rvm.io):
50
+
51
+ ```sh-session
52
+ $ rvm gemset use conjur-asset-ui --create
53
+ $ bundle install
54
+ ```
55
+
56
+ Run `rake deps:install`, and `rake assets:build` to build js and css assets.
57
+
58
+ ### Running the project
59
+
60
+ Open 2 terminal tabs.
61
+
62
+ In one, run `rake assets:watch`. In the other run `conjur ui`.
63
+
64
+ gulp will rebuild assets as needed when files change.
65
+
66
+ ### Testing
67
+
68
+ ```sh-session
69
+ $ rake features
70
+ # or run only features marked with wip tag
71
+ $ rake features:wip
72
+ ```
data/Rakefile ADDED
@@ -0,0 +1,76 @@
1
+ require 'bundler/gem_tasks'
2
+
3
+ begin
4
+ require 'cucumber'
5
+ require 'cucumber/rake/task'
6
+
7
+ Cucumber::Rake::Task.new(:features) do |t|
8
+ t.cucumber_opts = '--format pretty'
9
+ end
10
+
11
+ Cucumber::Rake::Task.new('features:wip') do |t|
12
+ t.cucumber_opts = '--format pretty --tags @wip'
13
+ end
14
+
15
+ rescue LoadError
16
+ desc 'Cucumber rake task not available'
17
+
18
+ task :features do
19
+ abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
20
+ end
21
+ end
22
+
23
+ namespace :deps do
24
+ desc 'Installs non-ruby dependencies like gulp and nodejs packages'
25
+ task :install do
26
+ Dir.chdir('app') do
27
+ sh 'npm install'
28
+ end
29
+ end
30
+
31
+ desc 'Updates npm packages'
32
+ task :update do
33
+ Dir.chdir('app') do
34
+ sh 'npm update'
35
+ end
36
+ end
37
+
38
+ desc 'Removes npm packages from filesystem'
39
+ task :clean do
40
+ Dir.chdir('app') do
41
+ sh 'rm -rf node_modules'
42
+ end
43
+ end
44
+ end
45
+
46
+ namespace :assets do
47
+ desc 'Build js and css'
48
+ task :build do
49
+ Dir.chdir('app') do
50
+ sh './node_modules/gulp/bin/gulp.js build'
51
+ end
52
+ end
53
+
54
+ desc 'Watch the assets files and rebuild when one of them changes'
55
+ task :watch => :build do
56
+ Dir.chdir('app') do
57
+ sh './node_modules/gulp/bin/gulp.js watch'
58
+ end
59
+ end
60
+
61
+ desc 'Clean builded assets'
62
+ task :clean do
63
+ Dir.chdir('app') do
64
+ sh './node_modules/gulp/bin/gulp.js clean'
65
+ end
66
+ end
67
+ end
68
+
69
+ task :build => %w(deps:install assets:build)
70
+
71
+ namespace :git do
72
+ desc 'Executes git clean'
73
+ task :clean do
74
+ sh 'git clean -dfx'
75
+ end
76
+ end
data/TODO.md ADDED
@@ -0,0 +1,31 @@
1
+ # General
2
+
3
+ 1. Flux?
4
+ 2. Reflux?
5
+ 3. Astarisx?
6
+
7
+ # JS
8
+
9
+ 1. Make audit.js readable
10
+ 2. Extract from audit.js common components and refactor it
11
+ 3. Better models
12
+ 4. Create navigation menu component
13
+
14
+
15
+ # General JS
16
+
17
+ 1. Drop backbone
18
+ 2. Think how to replace backbone history
19
+ 3. Drop prelude-ls
20
+ 4. Drop jquery everywhere
21
+ 5. Find nice library for ajax requests
22
+ 6. Move from underscore to lo-dash
23
+ 7. Drop underscore.string
24
+ 8. Drop underscore-deep-extend
25
+ 9. Drop react-bootstrap and bootstrap.js
26
+
27
+ # CSS
28
+
29
+ 1. Move to SASS
30
+ 2. Break monolite file in to modules
31
+ 3. More BEM everywhere
data/app/.csscomb.json ADDED
@@ -0,0 +1,304 @@
1
+ {
2
+ "always-semicolon": true,
3
+ "block-indent": 2,
4
+ "color-case": "lower",
5
+ "color-shorthand": true,
6
+ "element-case": "lower",
7
+ "eof-newline": true,
8
+ "leading-zero": false,
9
+ "remove-empty-rulesets": true,
10
+ "space-after-colon": 1,
11
+ "space-after-combinator": 1,
12
+ "space-before-selector-delimiter": 0,
13
+ "space-between-declarations": "\n",
14
+ "space-after-opening-brace": "\n",
15
+ "space-before-closing-brace": "\n",
16
+ "space-before-colon": 0,
17
+ "space-before-combinator": 1,
18
+ "space-before-opening-brace": 1,
19
+ "strip-spaces": true,
20
+ "unitless-zero": true,
21
+ "vendor-prefix-align": true,
22
+ "sort-order": [
23
+ [
24
+ "position",
25
+ "top",
26
+ "right",
27
+ "bottom",
28
+ "left",
29
+ "z-index",
30
+ "display",
31
+ "float",
32
+ "width",
33
+ "min-width",
34
+ "max-width",
35
+ "height",
36
+ "min-height",
37
+ "max-height",
38
+ "-webkit-box-sizing",
39
+ "-moz-box-sizing",
40
+ "box-sizing",
41
+ "-webkit-appearance",
42
+ "padding",
43
+ "padding-top",
44
+ "padding-right",
45
+ "padding-bottom",
46
+ "padding-left",
47
+ "margin",
48
+ "margin-top",
49
+ "margin-right",
50
+ "margin-bottom",
51
+ "margin-left",
52
+ "overflow",
53
+ "overflow-x",
54
+ "overflow-y",
55
+ "-webkit-overflow-scrolling",
56
+ "-ms-overflow-x",
57
+ "-ms-overflow-y",
58
+ "-ms-overflow-style",
59
+ "clip",
60
+ "clear",
61
+ "font",
62
+ "font-family",
63
+ "font-size",
64
+ "font-style",
65
+ "font-weight",
66
+ "font-variant",
67
+ "font-size-adjust",
68
+ "font-stretch",
69
+ "font-effect",
70
+ "font-emphasize",
71
+ "font-emphasize-position",
72
+ "font-emphasize-style",
73
+ "font-smooth",
74
+ "-webkit-hyphens",
75
+ "-moz-hyphens",
76
+ "hyphens",
77
+ "line-height",
78
+ "color",
79
+ "text-align",
80
+ "-webkit-text-align-last",
81
+ "-moz-text-align-last",
82
+ "-ms-text-align-last",
83
+ "text-align-last",
84
+ "text-emphasis",
85
+ "text-emphasis-color",
86
+ "text-emphasis-style",
87
+ "text-emphasis-position",
88
+ "text-decoration",
89
+ "text-indent",
90
+ "text-justify",
91
+ "text-outline",
92
+ "-ms-text-overflow",
93
+ "text-overflow",
94
+ "text-overflow-ellipsis",
95
+ "text-overflow-mode",
96
+ "text-shadow",
97
+ "text-transform",
98
+ "text-wrap",
99
+ "-webkit-text-size-adjust",
100
+ "-ms-text-size-adjust",
101
+ "letter-spacing",
102
+ "-ms-word-break",
103
+ "word-break",
104
+ "word-spacing",
105
+ "-ms-word-wrap",
106
+ "word-wrap",
107
+ "-moz-tab-size",
108
+ "-o-tab-size",
109
+ "tab-size",
110
+ "white-space",
111
+ "vertical-align",
112
+ "list-style",
113
+ "list-style-position",
114
+ "list-style-type",
115
+ "list-style-image",
116
+ "pointer-events",
117
+ "-ms-touch-action",
118
+ "touch-action",
119
+ "cursor",
120
+ "visibility",
121
+ "zoom",
122
+ "flex-direction",
123
+ "flex-order",
124
+ "flex-pack",
125
+ "flex-align",
126
+ "table-layout",
127
+ "empty-cells",
128
+ "caption-side",
129
+ "border-spacing",
130
+ "border-collapse",
131
+ "content",
132
+ "quotes",
133
+ "counter-reset",
134
+ "counter-increment",
135
+ "resize",
136
+ "-webkit-user-select",
137
+ "-moz-user-select",
138
+ "-ms-user-select",
139
+ "-o-user-select",
140
+ "user-select",
141
+ "nav-index",
142
+ "nav-up",
143
+ "nav-right",
144
+ "nav-down",
145
+ "nav-left",
146
+ "background",
147
+ "background-color",
148
+ "background-image",
149
+ "-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient",
150
+ "filter:progid:DXImageTransform.Microsoft.gradient",
151
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
152
+ "filter",
153
+ "background-repeat",
154
+ "background-attachment",
155
+ "background-position",
156
+ "background-position-x",
157
+ "background-position-y",
158
+ "-webkit-background-clip",
159
+ "-moz-background-clip",
160
+ "background-clip",
161
+ "background-origin",
162
+ "-webkit-background-size",
163
+ "-moz-background-size",
164
+ "-o-background-size",
165
+ "background-size",
166
+ "border",
167
+ "border-color",
168
+ "border-style",
169
+ "border-width",
170
+ "border-top",
171
+ "border-top-color",
172
+ "border-top-style",
173
+ "border-top-width",
174
+ "border-right",
175
+ "border-right-color",
176
+ "border-right-style",
177
+ "border-right-width",
178
+ "border-bottom",
179
+ "border-bottom-color",
180
+ "border-bottom-style",
181
+ "border-bottom-width",
182
+ "border-left",
183
+ "border-left-color",
184
+ "border-left-style",
185
+ "border-left-width",
186
+ "border-radius",
187
+ "border-top-left-radius",
188
+ "border-top-right-radius",
189
+ "border-bottom-right-radius",
190
+ "border-bottom-left-radius",
191
+ "-webkit-border-image",
192
+ "-moz-border-image",
193
+ "-o-border-image",
194
+ "border-image",
195
+ "-webkit-border-image-source",
196
+ "-moz-border-image-source",
197
+ "-o-border-image-source",
198
+ "border-image-source",
199
+ "-webkit-border-image-slice",
200
+ "-moz-border-image-slice",
201
+ "-o-border-image-slice",
202
+ "border-image-slice",
203
+ "-webkit-border-image-width",
204
+ "-moz-border-image-width",
205
+ "-o-border-image-width",
206
+ "border-image-width",
207
+ "-webkit-border-image-outset",
208
+ "-moz-border-image-outset",
209
+ "-o-border-image-outset",
210
+ "border-image-outset",
211
+ "-webkit-border-image-repeat",
212
+ "-moz-border-image-repeat",
213
+ "-o-border-image-repeat",
214
+ "border-image-repeat",
215
+ "outline",
216
+ "outline-width",
217
+ "outline-style",
218
+ "outline-color",
219
+ "outline-offset",
220
+ "-webkit-box-shadow",
221
+ "-moz-box-shadow",
222
+ "box-shadow",
223
+ "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
224
+ "-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha",
225
+ "opacity",
226
+ "-ms-interpolation-mode",
227
+ "-webkit-transition",
228
+ "-moz-transition",
229
+ "-ms-transition",
230
+ "-o-transition",
231
+ "transition",
232
+ "-webkit-transition-delay",
233
+ "-moz-transition-delay",
234
+ "-ms-transition-delay",
235
+ "-o-transition-delay",
236
+ "transition-delay",
237
+ "-webkit-transition-timing-function",
238
+ "-moz-transition-timing-function",
239
+ "-ms-transition-timing-function",
240
+ "-o-transition-timing-function",
241
+ "transition-timing-function",
242
+ "-webkit-transition-duration",
243
+ "-moz-transition-duration",
244
+ "-ms-transition-duration",
245
+ "-o-transition-duration",
246
+ "transition-duration",
247
+ "-webkit-transition-property",
248
+ "-moz-transition-property",
249
+ "-ms-transition-property",
250
+ "-o-transition-property",
251
+ "transition-property",
252
+ "-webkit-transform",
253
+ "-moz-transform",
254
+ "-ms-transform",
255
+ "-o-transform",
256
+ "transform",
257
+ "-webkit-transform-origin",
258
+ "-moz-transform-origin",
259
+ "-ms-transform-origin",
260
+ "-o-transform-origin",
261
+ "transform-origin",
262
+ "-webkit-animation",
263
+ "-moz-animation",
264
+ "-ms-animation",
265
+ "-o-animation",
266
+ "animation",
267
+ "-webkit-animation-name",
268
+ "-moz-animation-name",
269
+ "-ms-animation-name",
270
+ "-o-animation-name",
271
+ "animation-name",
272
+ "-webkit-animation-duration",
273
+ "-moz-animation-duration",
274
+ "-ms-animation-duration",
275
+ "-o-animation-duration",
276
+ "animation-duration",
277
+ "-webkit-animation-play-state",
278
+ "-moz-animation-play-state",
279
+ "-ms-animation-play-state",
280
+ "-o-animation-play-state",
281
+ "animation-play-state",
282
+ "-webkit-animation-timing-function",
283
+ "-moz-animation-timing-function",
284
+ "-ms-animation-timing-function",
285
+ "-o-animation-timing-function",
286
+ "animation-timing-function",
287
+ "-webkit-animation-delay",
288
+ "-moz-animation-delay",
289
+ "-ms-animation-delay",
290
+ "-o-animation-delay",
291
+ "animation-delay",
292
+ "-webkit-animation-iteration-count",
293
+ "-moz-animation-iteration-count",
294
+ "-ms-animation-iteration-count",
295
+ "-o-animation-iteration-count",
296
+ "animation-iteration-count",
297
+ "-webkit-animation-direction",
298
+ "-moz-animation-direction",
299
+ "-ms-animation-direction",
300
+ "-o-animation-direction",
301
+ "animation-direction"
302
+ ]
303
+ ]
304
+ }