auth0 4.17.1 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -1
  3. data/.yardoc/checksums +22 -0
  4. data/.yardoc/complete +0 -0
  5. data/.yardoc/object_types +0 -0
  6. data/.yardoc/objects/root.dat +0 -0
  7. data/.yardoc/proxy_types +0 -0
  8. data/CHANGELOG.md +33 -0
  9. data/Gemfile +0 -1
  10. data/Gemfile.lock +19 -21
  11. data/README.md +1 -7
  12. data/Rakefile +0 -22
  13. data/auth0.gemspec +0 -1
  14. data/examples/ruby-api/.gitignore +0 -6
  15. data/lib/auth0/api/authentication_endpoints.rb +6 -220
  16. data/lib/auth0/api/v2/users.rb +7 -5
  17. data/lib/auth0/exception.rb +2 -7
  18. data/lib/auth0/mixins.rb +0 -1
  19. data/lib/auth0/mixins/access_token_struct.rb +2 -2
  20. data/lib/auth0/mixins/api_token_struct.rb +2 -2
  21. data/lib/auth0/mixins/initializer.rb +1 -7
  22. data/lib/auth0/mixins/permission_struct.rb +2 -2
  23. data/lib/auth0/mixins/validation.rb +1 -1
  24. data/lib/auth0/version.rb +1 -1
  25. data/spec/integration/lib/auth0/api/api_authentication_spec.rb +1 -1
  26. data/spec/integration/lib/auth0/api/v2/api_roles_spec.rb +1 -1
  27. data/spec/integration/lib/auth0/api/v2/api_users_spec.rb +1 -1
  28. data/spec/lib/auth0/api/v2/roles_spec.rb +4 -4
  29. data/spec/lib/auth0/api/v2/users_spec.rb +19 -9
  30. data/spec/support/credentials.rb +0 -19
  31. metadata +7 -31
  32. data/deploy_documentation.sh +0 -29
  33. data/doc_config/templates/default/fulldoc/html/css/full_list.css +0 -79
  34. data/doc_config/templates/default/fulldoc/html/css/style.css +0 -546
  35. data/doc_config/templates/default/layout/html/breadcrumb.erb +0 -11
  36. data/doc_config/templates/default/layout/html/footer.erb +0 -115
  37. data/doc_config/templates/default/layout/html/headers.erb +0 -17
  38. data/doc_config/templates/default/layout/html/layout.erb +0 -27
  39. data/lib/auth0/api/v1.rb +0 -19
  40. data/lib/auth0/api/v1/clients.rb +0 -58
  41. data/lib/auth0/api/v1/connections.rb +0 -68
  42. data/lib/auth0/api/v1/logs.rb +0 -43
  43. data/lib/auth0/api/v1/rules.rb +0 -57
  44. data/lib/auth0/api/v1/users.rb +0 -227
  45. data/spec/lib/auth0/api/authentication_endpoints_spec.rb +0 -703
@@ -43,13 +43,15 @@ module Auth0
43
43
  # The attribute connection is always mandatory but depending on the type of connection you are using there
44
44
  # could be others too. For instance, Auth0 DB Connections require email and password.
45
45
  # @see https://auth0.com/docs/api/v2#!/Users/post_users
46
- # @param name [string] The user name.
47
- # @param options [hash]
48
- # * :connection [string] The connection the user belongs to.
46
+ # @param connection [string] The connection the user belongs to.
47
+ # @param options [hash] See https://auth0.com/docs/api/management/v2#!/Users/post_users for available options
49
48
  # @return [json] Returns the created user.
50
- def create_user(name, options = {})
49
+ def create_user(connection, options = {})
50
+ if !connection.is_a?(String) || connection.empty?
51
+ raise Auth0::MissingParameter, 'Must supply a valid connection'
52
+ end
51
53
  request_params = Hash[options.map { |(k, v)| [k.to_sym, v] }]
52
- request_params[:name] = name
54
+ request_params[:connection] = connection
53
55
  post(users_path, request_params)
54
56
  end
55
57
 
@@ -44,17 +44,12 @@ module Auth0
44
44
  class AccessDenied < Auth0::HTTPError; end
45
45
  # Invalid parameter passed, e.g. empty where ID is required
46
46
  class InvalidParameter < Auth0::Exception; end
47
- # Invalid Auth0 credentials either client_id/secret for API v1
48
- # or JWT for API v2/
47
+ # Invalid JWT
49
48
  class InvalidCredentials < Auth0::Exception; end
50
49
  # Invalid Auth0 API namespace
51
50
  class InvalidApiNamespace < Auth0::Exception; end
52
51
  # Auth0 API rate-limiting encountered
53
- # TODO: When making API-breaking changes, make this a subclass
54
- # of Auth0::HTTPError directly rather than Auth0::Unsupported.
55
- # It's currently under Unsupported to avoid breaking compatibility
56
- # with prior gem versions that treated 429 errors as unknown errors.
57
- class RateLimitEncountered < Auth0::Unsupported
52
+ class RateLimitEncountered < Auth0::HTTPError
58
53
  def reset
59
54
  Time.at(headers['X-RateLimit-Reset']).utc
60
55
  end
@@ -11,7 +11,6 @@ require 'auth0/mixins/permission_struct'
11
11
  require 'auth0/mixins/validation'
12
12
 
13
13
  require 'auth0/api/authentication_endpoints'
14
- require 'auth0/api/v1'
15
14
  require 'auth0/api/v2'
16
15
 
17
16
  module Auth0
@@ -1,4 +1,4 @@
1
- AccessToken = Struct.new(
1
+ Auth0::AccessToken = Struct.new(
2
2
  :access_token,
3
3
  :expires_in,
4
4
  :refresh_token,
@@ -17,4 +17,4 @@ AccessToken = Struct.new(
17
17
  def token
18
18
  access_token
19
19
  end
20
- end
20
+ end
@@ -1,4 +1,4 @@
1
- ApiToken = Struct.new :access_token, :scope, :expires_in do
1
+ Auth0::ApiToken = Struct.new :access_token, :scope, :expires_in do
2
2
 
3
3
  def token
4
4
  access_token
@@ -7,4 +7,4 @@ ApiToken = Struct.new :access_token, :scope, :expires_in do
7
7
  def scopes
8
8
  scope.split
9
9
  end
10
- end
10
+ end
@@ -40,7 +40,7 @@ module Auth0
40
40
  private
41
41
 
42
42
  def initialize_api(options)
43
- api_v2?(options) ? initialize_v2(options) : initialize_v1
43
+ initialize_v2(options)
44
44
  raise InvalidCredentials, 'Must supply a valid API token' if @token.nil?
45
45
  if options.fetch(:authorization, nil) == 'Basic'
46
46
  authorization_header_basic(options)
@@ -61,12 +61,6 @@ module Auth0
61
61
  @token = api_token.token if @token.nil? && @client_id && @client_secret
62
62
  end
63
63
 
64
- def initialize_v1
65
- extend Auth0::Api::V1
66
- raise InvalidCredentials, 'Invalid API v1 client_id and client_secret' if @client_id.nil? || @client_secret.nil?
67
- @token = obtain_access_token
68
- end
69
-
70
64
  def api_v2?(options)
71
65
  version = options[:api_version] || 2
72
66
  protocol = options[:protocols].to_s
@@ -1,3 +1,3 @@
1
- Permission = Struct.new :permission_name, :resource_server_identifier do
1
+ Auth0::Permission = Struct.new :permission_name, :resource_server_identifier do
2
2
 
3
- end
3
+ end
@@ -23,7 +23,7 @@ module Auth0
23
23
  raise Auth0::InvalidParameter, 'Must supply an array of Permissions' unless permissions.kind_of?(Array)
24
24
  raise Auth0::MissingParameter, 'Must supply an array of Permissions' if permissions.empty?
25
25
  raise Auth0::InvalidParameter, 'All array elements must be Permissions' unless permissions.all? do |permission|
26
- permission.kind_of? Permission
26
+ permission.kind_of? ::Auth0::Permission
27
27
  end
28
28
  permissions.map { |permission| permission.to_h }
29
29
  end
@@ -1,4 +1,4 @@
1
1
  # current version of gem
2
2
  module Auth0
3
- VERSION = '4.17.1'.freeze
3
+ VERSION = '5.0.0'.freeze
4
4
  end
@@ -60,7 +60,7 @@ describe Auth0::Api::AuthenticationEndpoints do
60
60
  end
61
61
 
62
62
  it 'should return the userinfo' do
63
- tokens = @client.login(test_user_email, test_user_pwd, nil, nil)
63
+ tokens = @client.login_with_resource_owner(test_user_email, test_user_pwd)
64
64
  expect(@client.userinfo(tokens['access_token'])).to(
65
65
  include( 'email' => test_user_email )
66
66
  )
@@ -14,7 +14,7 @@ describe Auth0::Api::V2::Roles do
14
14
  @test_role_name = "#{entity_suffix}-test-role"
15
15
 
16
16
  @test_permission_name = "#{entity_suffix}-test-permission"
17
- @test_permission = Permission.new(@test_permission_name, @test_api_name)
17
+ @test_permission = ::Auth0::Permission.new(@test_permission_name , @test_api_name)
18
18
 
19
19
  VCR.use_cassette('Auth0_Api_V2_Roles/create_test_user') do
20
20
  @test_user ||= client.create_user(
@@ -14,7 +14,7 @@ describe Auth0::Api::V2::Users do
14
14
  @test_api_scope = 'test:scope'
15
15
 
16
16
  @test_permission_name = "#{entity_suffix}-test-permission-for-users"
17
- @test_permission = Permission.new("#{entity_suffix}-test-permission-for-users", @test_api_name)
17
+ @test_permission = ::Auth0::Permission.new("#{entity_suffix}-test-permission-for-users", @test_api_name)
18
18
 
19
19
  VCR.use_cassette('Auth0_Api_V2_Users/create_test_user') do
20
20
  @test_user ||= client.create_user(
@@ -293,8 +293,8 @@ describe Auth0::Api::V2::Roles do
293
293
  @instance.add_role_permissions(
294
294
  'ROLE_ID',
295
295
  [
296
- Permission.new('permission-name-1', 'server-id-1'),
297
- Permission.new('permission-name-2', 'server-id-2')
296
+ Auth0::Permission.new('permission-name-1', 'server-id-1'),
297
+ Auth0::Permission.new('permission-name-2', 'server-id-2')
298
298
  ]
299
299
  )
300
300
  end.not_to raise_error
@@ -352,8 +352,8 @@ describe Auth0::Api::V2::Roles do
352
352
  @instance.remove_role_permissions(
353
353
  'ROLE_ID',
354
354
  [
355
- Permission.new('permission-name-3', 'server-id-3'),
356
- Permission.new('permission-name-4', 'server-id-4')
355
+ Auth0::Permission.new('permission-name-3', 'server-id-3'),
356
+ Auth0::Permission.new('permission-name-4', 'server-id-4')
357
357
  ]
358
358
  )
359
359
  end.not_to raise_error
@@ -86,18 +86,28 @@ describe Auth0::Api::V2::Users do
86
86
  '/api/v2/users',
87
87
  email: 'test@test.com',
88
88
  password: 'password',
89
- connection: 'conn',
90
- name: 'name'
89
+ connection: 'conn'
91
90
  )
92
91
  expect do
93
92
  @instance.create_user(
94
- 'name',
93
+ 'conn',
95
94
  email: 'test@test.com',
96
- password: 'password',
97
- connection: 'conn'
95
+ password: 'password'
98
96
  )
99
97
  end.not_to raise_error
100
98
  end
99
+
100
+ it 'is expected to raise error if connection is not specified' do
101
+ expect(@instance).not_to receive(:delete)
102
+ expect {
103
+ @instance.create_user(
104
+ email: 'test@test.com',
105
+ password: 'password'
106
+ )
107
+ }.to raise_exception(
108
+ Auth0::MissingParameter
109
+ )
110
+ end
101
111
  end
102
112
 
103
113
  context '.delete_users' do
@@ -451,8 +461,8 @@ describe Auth0::Api::V2::Users do
451
461
  @instance.remove_user_permissions(
452
462
  'USER_ID',
453
463
  [
454
- Permission.new('permission-name-1', 'server-id-1'),
455
- Permission.new('permission-name-2', 'server-id-2')
464
+ Auth0::Permission.new('permission-name-1', 'server-id-1'),
465
+ Auth0::Permission.new('permission-name-2', 'server-id-2')
456
466
  ]
457
467
  )
458
468
  end.not_to raise_error
@@ -496,8 +506,8 @@ describe Auth0::Api::V2::Users do
496
506
  @instance.add_user_permissions(
497
507
  'USER_ID',
498
508
  [
499
- Permission.new('permission-name-1', 'server-id-1'),
500
- Permission.new('permission-name-2', 'server-id-2')
509
+ Auth0::Permission.new('permission-name-1', 'server-id-1'),
510
+ Auth0::Permission.new('permission-name-2', 'server-id-2')
501
511
  ]
502
512
  )
503
513
  end.not_to raise_error
@@ -1,24 +1,5 @@
1
1
  module Credentials
2
2
  module_function
3
-
4
- def v1_creds
5
- {
6
- client_id: ENV['CLIENT_ID'],
7
- client_secret: ENV['CLIENT_SECRET'],
8
- domain: ENV['DOMAIN'],
9
- api_version: 1
10
- }
11
- end
12
-
13
- def v1_global_creds
14
- {
15
- client_id: ENV['GLOBAL_CLIENT_ID'],
16
- client_secret: ENV['GLOBAL_CLIENT_SECRET'],
17
- domain: ENV['DOMAIN'],
18
- api_version: 1
19
- }
20
- end
21
-
22
3
  def v2_creds
23
4
  {
24
5
  domain: ENV.fetch( 'DOMAIN', 'DOMAIN' ),
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: auth0
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.17.1
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Auth0
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-10-21 00:00:00.000000000 Z
14
+ date: 2020-10-23 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rest-client
@@ -229,20 +229,6 @@ dependencies:
229
229
  - - "~>"
230
230
  - !ruby/object:Gem::Version
231
231
  version: '1.4'
232
- - !ruby/object:Gem::Dependency
233
- name: yard
234
- requirement: !ruby/object:Gem::Requirement
235
- requirements:
236
- - - "~>"
237
- - !ruby/object:Gem::Version
238
- version: 0.9.12
239
- type: :development
240
- prerelease: false
241
- version_requirements: !ruby/object:Gem::Requirement
242
- requirements:
243
- - - "~>"
244
- - !ruby/object:Gem::Version
245
- version: 0.9.12
246
232
  - !ruby/object:Gem::Dependency
247
233
  name: gem-release
248
234
  requirement: !ruby/object:Gem::Requirement
@@ -276,6 +262,11 @@ files:
276
262
  - ".rspec"
277
263
  - ".rubocop.yml"
278
264
  - ".rubocop_todo.yml"
265
+ - ".yardoc/checksums"
266
+ - ".yardoc/complete"
267
+ - ".yardoc/object_types"
268
+ - ".yardoc/objects/root.dat"
269
+ - ".yardoc/proxy_types"
279
270
  - CHANGELOG.md
280
271
  - CODE_OF_CONDUCT.md
281
272
  - DEPLOYMENT.md
@@ -289,13 +280,6 @@ files:
289
280
  - Rakefile
290
281
  - auth0.gemspec
291
282
  - codecov.yml
292
- - deploy_documentation.sh
293
- - doc_config/templates/default/fulldoc/html/css/full_list.css
294
- - doc_config/templates/default/fulldoc/html/css/style.css
295
- - doc_config/templates/default/layout/html/breadcrumb.erb
296
- - doc_config/templates/default/layout/html/footer.erb
297
- - doc_config/templates/default/layout/html/headers.erb
298
- - doc_config/templates/default/layout/html/layout.erb
299
283
  - examples/ruby-api/.env.example
300
284
  - examples/ruby-api/.gitignore
301
285
  - examples/ruby-api/Gemfile
@@ -366,12 +350,6 @@ files:
366
350
  - lib/auth0.rb
367
351
  - lib/auth0/algorithm.rb
368
352
  - lib/auth0/api/authentication_endpoints.rb
369
- - lib/auth0/api/v1.rb
370
- - lib/auth0/api/v1/clients.rb
371
- - lib/auth0/api/v1/connections.rb
372
- - lib/auth0/api/v1/logs.rb
373
- - lib/auth0/api/v1/rules.rb
374
- - lib/auth0/api/v1/users.rb
375
353
  - lib/auth0/api/v2.rb
376
354
  - lib/auth0/api/v2/anomaly.rb
377
355
  - lib/auth0/api/v2/blacklists.rb
@@ -594,7 +572,6 @@ files:
594
572
  - spec/integration/lib/auth0/api/v2/api_user_blocks_spec.rb
595
573
  - spec/integration/lib/auth0/api/v2/api_users_spec.rb
596
574
  - spec/integration/lib/auth0/auth0_client_spec.rb
597
- - spec/lib/auth0/api/authentication_endpoints_spec.rb
598
575
  - spec/lib/auth0/api/v2/anomaly_spec.rb
599
576
  - spec/lib/auth0/api/v2/blacklists_spec.rb
600
577
  - spec/lib/auth0/api/v2/client_grants_spec.rb
@@ -838,7 +815,6 @@ test_files:
838
815
  - spec/integration/lib/auth0/api/v2/api_user_blocks_spec.rb
839
816
  - spec/integration/lib/auth0/api/v2/api_users_spec.rb
840
817
  - spec/integration/lib/auth0/auth0_client_spec.rb
841
- - spec/lib/auth0/api/authentication_endpoints_spec.rb
842
818
  - spec/lib/auth0/api/v2/anomaly_spec.rb
843
819
  - spec/lib/auth0/api/v2/blacklists_spec.rb
844
820
  - spec/lib/auth0/api/v2/client_grants_spec.rb
@@ -1,29 +0,0 @@
1
- #!/bin/bash
2
- # exit with nonzero exit code if anything fails
3
- set -e
4
-
5
- # clear and re-create the out directory
6
- rm -rf doc || exit 0;
7
- mkdir doc;
8
-
9
- # build documentation
10
- bundle exec rake documentation
11
-
12
- # go to the out directory and create a *new* Git repo
13
- cd doc
14
- git init
15
-
16
- # inside this git repo we'll pretend to be a new user
17
- git config user.name "Circle CI"
18
- git config user.email "build-documentation@auth0.com"
19
-
20
- # The first and only commit to this new Git repo contains all the
21
- # files present with the commit message "Deploy to GitHub Pages".
22
- git add .
23
- git commit -m "Deploy to GitHub Pages"
24
-
25
- # Force push from the current repo's master branch to the remote
26
- # repo's gh-pages branch. (All previous history on the gh-pages branch
27
- # will be lost, since we are overwriting it.) We redirect any output to
28
- # /dev/null to hide any sensitive credential data that might otherwise be exposed.
29
- git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:gh-pages > /dev/null 2>&1
@@ -1,79 +0,0 @@
1
- body {
2
- padding: 0 20px;
3
- font-size: 14px;
4
- -webkit-font-smoothing: antialiased;
5
- -moz-font-smoothing: antialiased;
6
- font-family: "avenir-next-web", Avenir, "Helvetica Neue", Hevetica, sans-serif;
7
- color: #4d4d4d;
8
- }
9
-
10
- h1, h2, h3, h4, h5 {
11
- line-height: 1.5;
12
- font-family: "avenir-next-web", Avenir, "Helvetica Neue", Hevetica, sans-serif;
13
- color: #000;
14
- font-weight: 400;
15
- }
16
- h1 {
17
- font-size: 3rem;
18
- }
19
- h2 {
20
- font-size: 2rem;
21
- }
22
- h3 {
23
- font-size: 1.5rem;
24
- }
25
- h4 {
26
- font-size: 1.3rem;
27
- }
28
- h5 {
29
- font-size: 16px;
30
- }
31
-
32
- .clear { clear: both; }
33
- #search { position: absolute; right: 5px; top: 9px; padding-left: 24px; }
34
- #content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; }
35
- #full_list { padding: 0; list-style: none; margin-left: 0; }
36
- #full_list ul { padding: 0; }
37
- #full_list li { padding: 5px; padding-left: 12px; margin: 0; font-size: 1.1em; list-style: none; }
38
- #noresults { padding: 7px 12px; }
39
- #content.insearch #noresults { margin-left: 7px; }
40
- ul.collapsed ul, ul.collapsed li { display: none; }
41
- ul.collapsed.search_uncollapsed { display: block; }
42
- ul.collapsed.search_uncollapsed li { display: list-item; }
43
- li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; }
44
- li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; }
45
- li { color: #888; cursor: pointer; }
46
- li.deprecated { text-decoration: line-through; font-style: italic; }
47
- /*li.r1 { background: #f0f0f0; }
48
- li.r2 { background: #fafafa; }*/
49
- li:hover { background: #ddd; }
50
- li small:before { content: "("; }
51
- li small:after { content: ")"; }
52
- li small.search_info { display: none; }
53
- a:link, a:visited { text-decoration: none; color: #777; }
54
- li.clicked { background: #777; color: #ccc; }
55
- li.clicked a:link, li.clicked a:visited { color: #eee; }
56
- li.clicked a.toggle { opacity: 0.5; background-position: bottom right; }
57
- li.collapsed.clicked a.toggle { background-position: top right; }
58
- #search input { border: 1px solid #bbb; -moz-border-radius: 3px; -webkit-border-radius: 3px; }
59
- #nav { margin-left: 10px; font-size: 0.9em; display: none; color: #aaa; }
60
- #nav a:link, #nav a:visited { color: #358; }
61
- #nav a:hover { background: transparent; color: #5af; }
62
- .frames #nav span:after { content: ' | '; }
63
- .frames #nav span:last-child:after { content: ''; }
64
-
65
- .frames #content h1 { margin-top: 0; }
66
- .frames li { white-space: nowrap; cursor: normal; }
67
- .frames li small { display: block; font-size: 0.8em; }
68
- .frames li small:before { content: ""; }
69
- .frames li small:after { content: ""; }
70
- .frames li small.search_info { display: none; }
71
- .frames #search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; }
72
- .frames #content.insearch #search { background-position: center right; }
73
- .frames #search input { width: 110px; }
74
- .frames #nav { display: block; }
75
-
76
- #full_list.insearch li { display: none; }
77
- #full_list.insearch li.found { display: list-item; padding-left: 10px; }
78
- #full_list.insearch li a.toggle { display: none; }
79
- #full_list.insearch li small.search_info { display: block; }