pocxxeci 0.30.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pocxxeci might be problematic. Click here for more details.

Files changed (160) hide show
  1. package/LICENSE +19 -0
  2. package/Makefile +18 -0
  3. package/README.md +52 -0
  4. package/binding.gyp +81 -0
  5. package/index.d.ts +273 -0
  6. package/index.js +45 -0
  7. package/lib/bindings.js +1 -0
  8. package/lib/document.js +122 -0
  9. package/lib/element.js +82 -0
  10. package/lib/sax_parser.js +38 -0
  11. package/package.json +70 -0
  12. package/src/html_document.cc +7 -0
  13. package/src/html_document.h +18 -0
  14. package/src/libxmljs.cc +252 -0
  15. package/src/libxmljs.h +53 -0
  16. package/src/xml_attribute.cc +173 -0
  17. package/src/xml_attribute.h +40 -0
  18. package/src/xml_comment.cc +117 -0
  19. package/src/xml_comment.h +30 -0
  20. package/src/xml_document.cc +810 -0
  21. package/src/xml_document.h +67 -0
  22. package/src/xml_element.cc +565 -0
  23. package/src/xml_element.h +61 -0
  24. package/src/xml_namespace.cc +158 -0
  25. package/src/xml_namespace.h +39 -0
  26. package/src/xml_node.cc +761 -0
  27. package/src/xml_node.h +73 -0
  28. package/src/xml_pi.cc +161 -0
  29. package/src/xml_pi.h +34 -0
  30. package/src/xml_sax_parser.cc +424 -0
  31. package/src/xml_sax_parser.h +73 -0
  32. package/src/xml_syntax_error.cc +66 -0
  33. package/src/xml_syntax_error.h +25 -0
  34. package/src/xml_text.cc +320 -0
  35. package/src/xml_text.h +48 -0
  36. package/src/xml_textwriter.cc +315 -0
  37. package/src/xml_textwriter.h +62 -0
  38. package/src/xml_xpath_context.cc +70 -0
  39. package/src/xml_xpath_context.h +23 -0
  40. package/vendor/libxml/Copyright +23 -0
  41. package/vendor/libxml/DOCBparser.c +305 -0
  42. package/vendor/libxml/HTMLparser.c +7287 -0
  43. package/vendor/libxml/HTMLtree.c +1200 -0
  44. package/vendor/libxml/Makefile +2983 -0
  45. package/vendor/libxml/SAX.c +180 -0
  46. package/vendor/libxml/SAX2.c +3036 -0
  47. package/vendor/libxml/buf.c +1351 -0
  48. package/vendor/libxml/buf.h +72 -0
  49. package/vendor/libxml/c14n.c +2234 -0
  50. package/vendor/libxml/catalog.c +3828 -0
  51. package/vendor/libxml/chvalid.c +336 -0
  52. package/vendor/libxml/config.h +294 -0
  53. package/vendor/libxml/config.h.gch +0 -0
  54. package/vendor/libxml/debugXML.c +3423 -0
  55. package/vendor/libxml/dict.c +1298 -0
  56. package/vendor/libxml/elfgcchack.h +17818 -0
  57. package/vendor/libxml/enc.h +32 -0
  58. package/vendor/libxml/encoding.c +3975 -0
  59. package/vendor/libxml/entities.c +1163 -0
  60. package/vendor/libxml/error.c +998 -0
  61. package/vendor/libxml/globals.c +1126 -0
  62. package/vendor/libxml/hash.c +1146 -0
  63. package/vendor/libxml/include/libxml/DOCBparser.h +96 -0
  64. package/vendor/libxml/include/libxml/HTMLparser.h +306 -0
  65. package/vendor/libxml/include/libxml/HTMLtree.h +147 -0
  66. package/vendor/libxml/include/libxml/Makefile +725 -0
  67. package/vendor/libxml/include/libxml/Makefile.am +54 -0
  68. package/vendor/libxml/include/libxml/Makefile.in +725 -0
  69. package/vendor/libxml/include/libxml/SAX.h +173 -0
  70. package/vendor/libxml/include/libxml/SAX2.h +178 -0
  71. package/vendor/libxml/include/libxml/c14n.h +128 -0
  72. package/vendor/libxml/include/libxml/catalog.h +182 -0
  73. package/vendor/libxml/include/libxml/chvalid.h +230 -0
  74. package/vendor/libxml/include/libxml/debugXML.h +217 -0
  75. package/vendor/libxml/include/libxml/dict.h +79 -0
  76. package/vendor/libxml/include/libxml/encoding.h +245 -0
  77. package/vendor/libxml/include/libxml/entities.h +151 -0
  78. package/vendor/libxml/include/libxml/globals.h +508 -0
  79. package/vendor/libxml/include/libxml/hash.h +236 -0
  80. package/vendor/libxml/include/libxml/list.h +137 -0
  81. package/vendor/libxml/include/libxml/nanoftp.h +163 -0
  82. package/vendor/libxml/include/libxml/nanohttp.h +81 -0
  83. package/vendor/libxml/include/libxml/parser.h +1243 -0
  84. package/vendor/libxml/include/libxml/parserInternals.h +644 -0
  85. package/vendor/libxml/include/libxml/pattern.h +100 -0
  86. package/vendor/libxml/include/libxml/relaxng.h +217 -0
  87. package/vendor/libxml/include/libxml/schemasInternals.h +958 -0
  88. package/vendor/libxml/include/libxml/schematron.h +142 -0
  89. package/vendor/libxml/include/libxml/threads.h +89 -0
  90. package/vendor/libxml/include/libxml/tree.h +1311 -0
  91. package/vendor/libxml/include/libxml/uri.h +94 -0
  92. package/vendor/libxml/include/libxml/valid.h +458 -0
  93. package/vendor/libxml/include/libxml/xinclude.h +129 -0
  94. package/vendor/libxml/include/libxml/xlink.h +189 -0
  95. package/vendor/libxml/include/libxml/xmlIO.h +368 -0
  96. package/vendor/libxml/include/libxml/xmlautomata.h +146 -0
  97. package/vendor/libxml/include/libxml/xmlerror.h +945 -0
  98. package/vendor/libxml/include/libxml/xmlexports.h +77 -0
  99. package/vendor/libxml/include/libxml/xmlmemory.h +224 -0
  100. package/vendor/libxml/include/libxml/xmlmodule.h +57 -0
  101. package/vendor/libxml/include/libxml/xmlreader.h +428 -0
  102. package/vendor/libxml/include/libxml/xmlregexp.h +222 -0
  103. package/vendor/libxml/include/libxml/xmlsave.h +88 -0
  104. package/vendor/libxml/include/libxml/xmlschemas.h +246 -0
  105. package/vendor/libxml/include/libxml/xmlschemastypes.h +151 -0
  106. package/vendor/libxml/include/libxml/xmlstring.h +140 -0
  107. package/vendor/libxml/include/libxml/xmlunicode.h +202 -0
  108. package/vendor/libxml/include/libxml/xmlversion.h +484 -0
  109. package/vendor/libxml/include/libxml/xmlwin32version.h +239 -0
  110. package/vendor/libxml/include/libxml/xmlwriter.h +488 -0
  111. package/vendor/libxml/include/libxml/xpath.h +564 -0
  112. package/vendor/libxml/include/libxml/xpathInternals.h +632 -0
  113. package/vendor/libxml/include/libxml/xpointer.h +114 -0
  114. package/vendor/libxml/include/win32config.h +122 -0
  115. package/vendor/libxml/include/wsockcompat.h +54 -0
  116. package/vendor/libxml/legacy.c +1343 -0
  117. package/vendor/libxml/libxml.h +134 -0
  118. package/vendor/libxml/list.c +779 -0
  119. package/vendor/libxml/nanoftp.c +2118 -0
  120. package/vendor/libxml/nanohttp.c +1899 -0
  121. package/vendor/libxml/parser.c +15553 -0
  122. package/vendor/libxml/parserInternals.c +2164 -0
  123. package/vendor/libxml/pattern.c +2621 -0
  124. package/vendor/libxml/relaxng.c +11101 -0
  125. package/vendor/libxml/rngparser.c +1595 -0
  126. package/vendor/libxml/runsuite.c +1157 -0
  127. package/vendor/libxml/save.h +36 -0
  128. package/vendor/libxml/schematron.c +1787 -0
  129. package/vendor/libxml/threads.c +1049 -0
  130. package/vendor/libxml/timsort.h +601 -0
  131. package/vendor/libxml/tree.c +10183 -0
  132. package/vendor/libxml/trio.c +6895 -0
  133. package/vendor/libxml/trio.h +230 -0
  134. package/vendor/libxml/triodef.h +228 -0
  135. package/vendor/libxml/trionan.c +914 -0
  136. package/vendor/libxml/trionan.h +84 -0
  137. package/vendor/libxml/triop.h +150 -0
  138. package/vendor/libxml/triostr.c +2112 -0
  139. package/vendor/libxml/triostr.h +144 -0
  140. package/vendor/libxml/uri.c +2561 -0
  141. package/vendor/libxml/valid.c +7138 -0
  142. package/vendor/libxml/xinclude.c +2657 -0
  143. package/vendor/libxml/xlink.c +183 -0
  144. package/vendor/libxml/xmlIO.c +4135 -0
  145. package/vendor/libxml/xmlcatalog.c +624 -0
  146. package/vendor/libxml/xmllint.c +3796 -0
  147. package/vendor/libxml/xmlmemory.c +1163 -0
  148. package/vendor/libxml/xmlmodule.c +468 -0
  149. package/vendor/libxml/xmlreader.c +6033 -0
  150. package/vendor/libxml/xmlregexp.c +8271 -0
  151. package/vendor/libxml/xmlsave.c +2735 -0
  152. package/vendor/libxml/xmlschemas.c +29173 -0
  153. package/vendor/libxml/xmlschemastypes.c +6276 -0
  154. package/vendor/libxml/xmlstring.c +1050 -0
  155. package/vendor/libxml/xmlunicode.c +3179 -0
  156. package/vendor/libxml/xmlwriter.c +4738 -0
  157. package/vendor/libxml/xpath.c +14734 -0
  158. package/vendor/libxml/xpointer.c +2969 -0
  159. package/vendor/libxml/xzlib.c +815 -0
  160. package/vendor/libxml/xzlib.h +19 -0
@@ -0,0 +1,158 @@
1
+ // Copyright 2009, Squish Tech, LLC.
2
+
3
+ #include <node.h>
4
+
5
+ #include "xml_document.h"
6
+ #include "xml_namespace.h"
7
+ #include "xml_node.h"
8
+
9
+ using namespace v8;
10
+
11
+ namespace libxmljs {
12
+
13
+ Nan::Persistent<FunctionTemplate> XmlNamespace::constructor_template;
14
+
15
+ NAN_METHOD(XmlNamespace::New) {
16
+ Nan::HandleScope scope;
17
+
18
+ // created for an already existing namespace
19
+ if (info.Length() == 0) {
20
+ return info.GetReturnValue().Set(info.Holder());
21
+ }
22
+
23
+ // TODO(sprsquish): ensure this is an actual Node object
24
+ if (!info[0]->IsObject())
25
+ return Nan::ThrowError(
26
+ "You must provide a node to attach this namespace to");
27
+
28
+ XmlNode *node = Nan::ObjectWrap::Unwrap<XmlNode>(
29
+ Nan::To<Object>(info[0]).ToLocalChecked());
30
+
31
+ Nan::Utf8String *prefix = 0;
32
+ Nan::Utf8String *href = 0;
33
+
34
+ if (info[1]->IsString()) {
35
+ prefix = new Nan::Utf8String(info[1]);
36
+ }
37
+
38
+ href = new Nan::Utf8String(info[2]);
39
+
40
+ xmlNs *ns = xmlNewNs(node->xml_obj, (const xmlChar *)(href->operator*()),
41
+ prefix ? (const xmlChar *)(prefix->operator*()) : NULL);
42
+
43
+ delete prefix;
44
+ delete href;
45
+
46
+ XmlNamespace *namesp = new XmlNamespace(ns);
47
+ namesp->Wrap(info.Holder());
48
+
49
+ return info.GetReturnValue().Set(info.Holder());
50
+ }
51
+
52
+ Local<Object> XmlNamespace::New(xmlNs *node) {
53
+ Nan::EscapableHandleScope scope;
54
+ if (node->_private) {
55
+ return scope.Escape(static_cast<XmlNamespace *>(node->_private)->handle());
56
+ }
57
+
58
+ XmlNamespace *ns = new XmlNamespace(node);
59
+ Local<Object> obj =
60
+ Nan::NewInstance(
61
+ Nan::GetFunction(Nan::New(constructor_template)).ToLocalChecked())
62
+ .ToLocalChecked();
63
+ ns->Wrap(obj);
64
+ return scope.Escape(obj);
65
+ }
66
+
67
+ XmlNamespace::XmlNamespace(xmlNs *node) : xml_obj(node) {
68
+ xml_obj->_private = this;
69
+
70
+ /*
71
+ * If a context is present and wrapped, increment its refcount to ensure
72
+ * that it is considered accessible from javascript for as long as the
73
+ * namespace is accessible.
74
+ */
75
+ if ((xml_obj->context) && (xml_obj->context->_private != NULL)) {
76
+ this->context = xml_obj->context;
77
+ // a namespace must be created on a given node
78
+ XmlDocument *doc = static_cast<XmlDocument *>(xml_obj->context->_private);
79
+ doc->Ref();
80
+ } else {
81
+ this->context = NULL;
82
+ }
83
+ }
84
+
85
+ XmlNamespace::~XmlNamespace() {
86
+ /*
87
+ * `xml_obj` may have been nulled by `xmlDeregisterNodeCallback` when
88
+ * the `xmlNs` was freed along with an attached node or document.
89
+ */
90
+ if (xml_obj != NULL) {
91
+ xml_obj->_private = NULL;
92
+ }
93
+
94
+ /*
95
+ * The context pointer is only set if this wrapper has incremented the
96
+ * refcount of the context wrapper.
97
+ */
98
+ if (this->context != NULL) {
99
+ if (this->context->_private != NULL) {
100
+ // release the hold and allow the document to be freed
101
+ XmlDocument *doc = static_cast<XmlDocument *>(this->context->_private);
102
+ doc->Unref();
103
+ }
104
+ this->context = NULL;
105
+ }
106
+
107
+ // We do not free the xmlNode here. It could still be part of a document
108
+ // It will be freed when the doc is freed
109
+ }
110
+
111
+ NAN_METHOD(XmlNamespace::Href) {
112
+ Nan::HandleScope scope;
113
+ XmlNamespace *ns = Nan::ObjectWrap::Unwrap<XmlNamespace>(info.Holder());
114
+ assert(ns);
115
+ return info.GetReturnValue().Set(ns->get_href());
116
+ }
117
+
118
+ NAN_METHOD(XmlNamespace::Prefix) {
119
+ Nan::HandleScope scope;
120
+ XmlNamespace *ns = Nan::ObjectWrap::Unwrap<XmlNamespace>(info.Holder());
121
+ assert(ns);
122
+ return info.GetReturnValue().Set(ns->get_prefix());
123
+ }
124
+
125
+ Local<Value> XmlNamespace::get_href() {
126
+ Nan::EscapableHandleScope scope;
127
+ if (xml_obj->href)
128
+ return scope.Escape(
129
+ Nan::New<String>((const char *)xml_obj->href, xmlStrlen(xml_obj->href))
130
+ .ToLocalChecked());
131
+
132
+ return scope.Escape(Nan::Null());
133
+ }
134
+
135
+ Local<Value> XmlNamespace::get_prefix() {
136
+ Nan::EscapableHandleScope scope;
137
+ if (xml_obj->prefix)
138
+ return scope.Escape(Nan::New<String>((const char *)xml_obj->prefix,
139
+ xmlStrlen(xml_obj->prefix))
140
+ .ToLocalChecked());
141
+
142
+ return scope.Escape(Nan::Null());
143
+ }
144
+
145
+ void XmlNamespace::Initialize(Local<Object> target) {
146
+ Nan::HandleScope scope;
147
+ Local<FunctionTemplate> tmpl = Nan::New<FunctionTemplate>(New);
148
+ constructor_template.Reset(tmpl);
149
+ tmpl->InstanceTemplate()->SetInternalFieldCount(1);
150
+
151
+ Nan::SetPrototypeMethod(tmpl, "href", XmlNamespace::Href);
152
+
153
+ Nan::SetPrototypeMethod(tmpl, "prefix", XmlNamespace::Prefix);
154
+
155
+ Nan::Set(target, Nan::New<String>("Namespace").ToLocalChecked(),
156
+ Nan::GetFunction(tmpl).ToLocalChecked());
157
+ }
158
+ } // namespace libxmljs
@@ -0,0 +1,39 @@
1
+ // Copyright 2009, Squish Tech, LLC.
2
+ #ifndef SRC_XML_NAMESPACE_H_
3
+ #define SRC_XML_NAMESPACE_H_
4
+
5
+ #include <node.h>
6
+
7
+ #include "nan.h"
8
+ #include <libxml/tree.h>
9
+
10
+ namespace libxmljs {
11
+
12
+ class XmlNamespace : public Nan::ObjectWrap {
13
+ public:
14
+ xmlNs *xml_obj;
15
+
16
+ xmlDoc *context; // reference-managed context
17
+
18
+ static void Initialize(v8::Local<v8::Object> target);
19
+ static Nan::Persistent<v8::FunctionTemplate> constructor_template;
20
+
21
+ explicit XmlNamespace(xmlNs *ns);
22
+ XmlNamespace(xmlNs *node, const char *prefix, const char *href);
23
+ ~XmlNamespace();
24
+
25
+ static v8::Local<v8::Object> New(xmlNs *ns);
26
+
27
+ protected:
28
+ static NAN_METHOD(New);
29
+ static NAN_METHOD(Href);
30
+ static NAN_METHOD(Prefix);
31
+
32
+ v8::Local<v8::Value> get_href();
33
+ v8::Local<v8::Value> get_prefix();
34
+
35
+ friend class Node;
36
+ };
37
+ } // namespace libxmljs
38
+
39
+ #endif // SRC_XML_NAMESPACE_H_