wangzhibo
2026-05-09 53418655c061ac26f66058253f39200aced1ab1d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// Copyright 2011 Mark Cavage, Inc.  All rights reserved.
 
const logger = require('./logger')
 
const client = require('./client')
const Attribute = require('@ldapjs/attribute')
const Change = require('@ldapjs/change')
const Protocol = require('@ldapjs/protocol')
const Server = require('./server')
 
const controls = require('./controls')
const persistentSearch = require('./persistent_search')
const dn = require('@ldapjs/dn')
const errors = require('./errors')
const filters = require('@ldapjs/filter')
const messages = require('./messages')
const url = require('./url')
 
const hasOwnProperty = (target, val) => Object.prototype.hasOwnProperty.call(target, val)
 
/// --- API
 
module.exports = {
  Client: client.Client,
  createClient: client.createClient,
 
  Server,
  createServer: function (options) {
    if (options === undefined) { options = {} }
 
    if (typeof (options) !== 'object') { throw new TypeError('options (object) required') }
 
    if (!options.log) {
      options.log = logger
    }
 
    return new Server(options)
  },
 
  Attribute,
  Change,
 
  dn,
  DN: dn.DN,
  RDN: dn.RDN,
  parseDN: dn.DN.fromString,
 
  persistentSearch,
  PersistentSearchCache: persistentSearch.PersistentSearchCache,
 
  filters,
  parseFilter: filters.parseString,
 
  url,
  parseURL: url.parse
}
 
/// --- Export all the childrenz
 
let k
 
for (k in Protocol) {
  if (hasOwnProperty(Protocol, k)) { module.exports[k] = Protocol[k] }
}
 
for (k in messages) {
  if (hasOwnProperty(messages, k)) { module.exports[k] = messages[k] }
}
 
for (k in controls) {
  if (hasOwnProperty(controls, k)) { module.exports[k] = controls[k] }
}
 
for (k in filters) {
  if (hasOwnProperty(filters, k)) {
    if (k !== 'parse' && k !== 'parseString') { module.exports[k] = filters[k] }
  }
}
 
for (k in errors) {
  if (hasOwnProperty(errors, k)) {
    module.exports[k] = errors[k]
  }
}