conjur-asset-ui-beta 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ }