├── test
├── wsdl
│ ├── bad.txt
│ ├── doc-lit-part-error
│ │ └── testni.xsd
│ ├── typeref
│ │ ├── request.json
│ │ ├── ns2.xsd
│ │ └── request.xml.js
│ ├── xsdinclude
│ │ └── types-without-tns.xsd
│ ├── recursive-schema-import
│ │ ├── Infrastructure.xsd
│ │ ├── TESTAdditionalHeaders.xsd
│ │ ├── Common.xsd
│ │ ├── TEST.xsd
│ │ ├── Location.xsd
│ │ ├── AccountingUnit.xsd
│ │ └── InfrastructureSOAP.xsd
│ ├── binding_document.wsdl
│ ├── wsdlImport
│ │ └── xsd.xsd
│ ├── from-memory
│ │ └── multipart
│ │ │ └── xsd.xsd
│ ├── ExtendedName.xsd
│ ├── strict
│ │ └── npe.wsdl
│ ├── Name.xsd
│ └── unsupported
│ │ └── ImportSample.xsd
├── mocha.opts
├── request-response-samples
│ ├── GetNodes__complex_self_referencing
│ │ ├── request.json
│ │ ├── wsdl_options.json
│ │ ├── request.xml
│ │ ├── response.json
│ │ └── response.xml
│ ├── Dummy__should_handle_null_args
│ │ ├── request.json
│ │ ├── response.json
│ │ ├── request.xml
│ │ ├── response.xml
│ │ └── name.xsd
│ ├── RequestHeaders__propogate_custom_header
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── header.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── RequestHeaders__omit_element_when_empty
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── RequestHeaders__propogate_basic_security
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── security.json
│ │ └── response.xml
│ ├── ResponseHeaders__return_soap_headers
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── responseSoapHeader.json
│ │ ├── header.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── addPets__force_namespaces
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ ├── wsdl_options.json
│ │ └── request.xml
│ ├── Dummy__should_return_array_despite_maxOccurs_1
│ │ ├── request.json
│ │ ├── request.xml
│ │ ├── response.json
│ │ ├── name.xsd
│ │ └── response.xml
│ ├── Dummy__should_return_object_when_maxOccurs_1
│ │ ├── request.json
│ │ ├── response.json
│ │ ├── request.xml
│ │ ├── response.xml
│ │ └── name.xsd
│ ├── administrate__Complex_json_object_namespace_issue
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── RequestHeaders__propogate_basic_security_no_timestamp
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── security.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── DefaultNamespace__no_xmlns_prefix_used_for_default_namespace
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── RequestHeaders__propogate_basic_security_invalid_options
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── security.json
│ ├── RequestHeaders__propogate_basic_security_no_token_created
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── security.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── Dummy__should_ignore_defined_namespaces
│ │ ├── wsdl_options.json
│ │ ├── request.json
│ │ ├── response.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── NoParams__add_correct_namespace_for_operations_without_parameters
│ │ ├── request.json
│ │ └── request.xml
│ ├── RequestHeaders__propogate_basic_security backward compatible check
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── security.json
│ │ └── response.xml
│ ├── Dummy__should_handle_nil
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── request.xml
│ │ ├── response.xml
│ │ └── name.xsd
│ ├── Message__Messages_suffixed_with_In_Out
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── Message__overriding_namespace_prefix
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── OneWay__should_handle_one_way_operation
│ │ ├── request.json
│ │ └── request.xml
│ ├── addList__qualified_attrs
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── request.xml
│ │ ├── response.xml
│ │ └── soap.messages.xsd
│ ├── SendCDATA__cdata_is_handled_correctly
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── request.xml
│ │ └── response.xml
│ ├── Message__MessageResponses_suffixed_with_.Out
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── Message__MessageResponses_suffixed_with_.Output
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── Message__Messages_suffixed_with_Input_Output
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── Message__Messages_suffixed_with_Request_Response
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── Message__MessageResponses_suffixed_with_.Response
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── login__attributes_namespace_should_be_configurable
│ │ ├── wsdl_options.json
│ │ ├── request.json
│ │ ├── request.xml
│ │ └── response.json
│ ├── Dummy__should_ignore_custom_defined_namespaces
│ │ ├── options.json
│ │ ├── request.json
│ │ ├── response.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── readMetadata__should_respect_xsi_type_attribute
│ │ ├── request.json
│ │ ├── wsdl_options.json
│ │ ├── request.xml
│ │ ├── response.json
│ │ └── response.xml
│ ├── Dummy__ref_element_should_has_correct_namespace
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── common.xsd
│ │ ├── request.xml
│ │ ├── response.xml
│ │ └── main.xsd
│ ├── UpdateProfile__correct_namespaces_for_elements_with_base_ignorednamespaces
│ │ ├── wsdl_options.json
│ │ ├── response.json
│ │ ├── response.xml
│ │ └── request.json
│ ├── execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_missing
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_qualified
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── Login__unsupported_response_name_returned_and_local_xs_schema_missed
│ │ ├── request.json
│ │ ├── request.xml
│ │ ├── response.json
│ │ └── response.xml
│ ├── execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_unqualified
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── UpdateProfile__correct_ns_context
│ │ ├── response.json
│ │ └── response.xml
│ ├── createData__should_generate_complex_type_request
│ │ ├── response.json
│ │ ├── response.xml
│ │ └── request.json
│ ├── Dummy__should_work_with_imported_schemas
│ │ ├── request.json
│ │ ├── request.xml
│ │ └── name.xsd
│ ├── Dummy__should_use_defined_xml_key
│ │ ├── request.json
│ │ ├── response.json
│ │ ├── request.xml
│ │ ├── response.xml
│ │ ├── name.xsd
│ │ └── common.xsd
│ ├── login__complex_schema_xmlns_should_be_handled
│ │ ├── request.json
│ │ ├── request.xml
│ │ └── response.json
│ ├── Dummy__should_parse_nil
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── login__error_returned_should_contain_root_Json_on_fault
│ │ ├── request.json
│ │ ├── error_response.json
│ │ ├── soap.platform.faultTypes.xsd
│ │ ├── request.xml
│ │ └── response.xml
│ ├── SetResource__should_correctly_set_element_if_complex-type_has_same_name
│ │ ├── request.json
│ │ ├── response.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── login__complex_schema_xmlns_with_array_and_any_type_and_other_types
│ │ ├── request.json
│ │ └── request.xml
│ ├── Dummy__should_handle_xml_date_time_dateTime
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── response.xml
│ │ ├── request.xml
│ │ └── name.xsd
│ ├── GetAccountXml__non_xmlns_attributes_should_be_returned
│ │ ├── request.json
│ │ ├── wsdl_options.json
│ │ ├── request.xml
│ │ ├── response.json
│ │ └── response.xml
│ ├── GetItemInformation__should_ignore_default_namespace_from_schema
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── request.xml
│ │ └── response.xml
│ ├── Dummy__should_add_prefix_for_unqualified_global_elements
│ │ ├── response.json
│ │ ├── request.json
│ │ ├── request.xml
│ │ ├── response.xml
│ │ └── name.xsd
│ ├── addList__xsi_type
│ │ ├── request.json
│ │ ├── response.json
│ │ ├── request.xml
│ │ └── response.xml
│ ├── Dummy__should_use_defined_value_key
│ │ ├── request.json
│ │ ├── response.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── Dummy__should_extract_envelope_from_response
│ │ ├── request.json
│ │ ├── response.json
│ │ ├── request.xml
│ │ ├── name.xsd
│ │ └── response.xml
│ ├── Dummy__should_handle_attributes_in_request
│ │ ├── request.json
│ │ ├── response.json
│ │ ├── request.xml
│ │ ├── response.xml
│ │ └── name.xsd
│ ├── Dummy__should_handle_attributes_in_response
│ │ ├── request.json
│ │ ├── response.json
│ │ ├── request.xml
│ │ ├── response.xml
│ │ └── name.xsd
│ ├── Dummy__should_handle_cdata_xml_in_response
│ │ ├── request.json
│ │ ├── request.xml
│ │ ├── response.json
│ │ ├── response.xml
│ │ └── name.xsd
│ ├── login__attributes_in_request_should_be_handled
│ │ ├── request.json
│ │ ├── request.xml
│ │ └── response.json
│ ├── get__complex_extension_without_explicit_namespace
│ │ ├── request.json
│ │ ├── request.xml
│ │ └── response.json
│ ├── get__complex_extension_with_explicit_namespace
│ │ ├── request.json
│ │ ├── request.xml
│ │ └── response.json
│ ├── UpdateProfile__correct_namespaces_for_elements_with_base
│ │ ├── response.json
│ │ ├── response.xml
│ │ └── request.json
│ ├── UpdateProfile__correct_namespaces_in_sequence_with_imports
│ │ ├── response.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── getAvailability__should_not_fail_without_children
│ │ ├── request.xml
│ │ ├── request.json
│ │ └── imported.wsdl
│ ├── update__complex_extension_fields_in_parent_without_explicit_namespace
│ │ ├── request.json
│ │ ├── response.json
│ │ ├── response.xml
│ │ └── request.xml
│ ├── update__complex_extension_with_array_attributes
│ │ ├── response.json
│ │ └── response.xml
│ └── multiCall__rpc_stype_request_xsi_attributes
│ │ ├── response.json
│ │ └── response.xml
├── certs
│ ├── pfk-buffer.pfx
│ ├── client-password.pfx
│ ├── server-password.pfx
│ └── agent2-cert-with-extra-data.pem
├── security
│ ├── BearerSecurity.js
│ └── BasicAuthSecurity.js
├── doc-lit-part-err-returned-test.js
├── soap-failure.xml
└── client-attachment-test.js
├── .npmrc
├── .github
├── codeql
│ └── codeql-config.yaml
├── PULL_REQUEST_TEMPLATE.md
├── ISSUE_TEMPLATE.md
└── stale.yml
├── docs.json
├── .npmignore
├── .husky
└── commit-msg
├── renovate.json
├── .gitignore
├── .babelrc
├── CODEOWNERS
├── src
├── parser
│ ├── index.js
│ ├── xsd
│ │ ├── key.js
│ │ ├── any.js
│ │ ├── unique.js
│ │ ├── import.js
│ │ ├── include.js
│ │ ├── anyAttribute.js
│ │ ├── all.js
│ │ ├── annotation.js
│ │ ├── documentation.js
│ │ ├── choice.js
│ │ ├── sequence.js
│ │ ├── simpleContent.js
│ │ ├── keyref.js
│ │ └── group.js
│ ├── wsdl
│ │ ├── input.js
│ │ ├── output.js
│ │ ├── import.js
│ │ ├── fault.js
│ │ ├── documentation.js
│ │ ├── wsdlElement.js
│ │ └── port.js
│ ├── soap12
│ │ ├── body.js
│ │ ├── fault.js
│ │ ├── headerFault.js
│ │ ├── header.js
│ │ └── soapElement.js
│ ├── soap
│ │ ├── body.js
│ │ ├── fault.js
│ │ ├── headerFault.js
│ │ ├── soapElement.js
│ │ └── header.js
│ └── xsd.js
├── globalize.js
├── security
│ ├── BearerSecurity.js
│ ├── security.js
│ ├── BasicAuthSecurity.js
│ ├── index.js
│ ├── CookieSecurity.js
│ └── NTLMSecurity.js
└── strip-bom.js
├── .travis.yml
├── .editorconfig
├── SECURITY.md
├── commitlint.config.js
├── .jshintrc
├── index.js
└── example
├── xsds.js
└── stockquote.js
/test/wsdl/bad.txt:
--------------------------------------------------------------------------------
1 | I'm a jpeg.
2 |
--------------------------------------------------------------------------------
/test/mocha.opts:
--------------------------------------------------------------------------------
1 | -R spec
2 | -u exports
3 | -r should
4 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | package-lock=true
2 | scripts-prepend-node-path=true
3 |
--------------------------------------------------------------------------------
/.github/codeql/codeql-config.yaml:
--------------------------------------------------------------------------------
1 | paths-ignore:
2 | - test
3 |
--------------------------------------------------------------------------------
/docs.json:
--------------------------------------------------------------------------------
1 | {
2 | "content": [
3 | "README.md"
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/test/request-response-samples/GetNodes__complex_self_referencing/request.json:
--------------------------------------------------------------------------------
1 | { }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_null_args/request.json:
--------------------------------------------------------------------------------
1 | {
2 | }
3 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_custom_header/response.json:
--------------------------------------------------------------------------------
1 | null
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__omit_element_when_empty/response.json:
--------------------------------------------------------------------------------
1 | null
2 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security/response.json:
--------------------------------------------------------------------------------
1 | null
2 |
--------------------------------------------------------------------------------
/test/request-response-samples/ResponseHeaders__return_soap_headers/response.json:
--------------------------------------------------------------------------------
1 | null
2 |
--------------------------------------------------------------------------------
/test/request-response-samples/addPets__force_namespaces/response.json:
--------------------------------------------------------------------------------
1 | {"status":"OK"}
2 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_return_array_despite_maxOccurs_1/request.json:
--------------------------------------------------------------------------------
1 | {
2 | }
3 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_return_object_when_maxOccurs_1/request.json:
--------------------------------------------------------------------------------
1 | {
2 | }
3 |
--------------------------------------------------------------------------------
/test/request-response-samples/administrate__Complex_json_object_namespace_issue/response.json:
--------------------------------------------------------------------------------
1 | null
2 |
--------------------------------------------------------------------------------
/test/certs/pfk-buffer.pfx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/loopbackio/strong-soap/HEAD/test/certs/pfk-buffer.pfx
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security_no_timestamp/response.json:
--------------------------------------------------------------------------------
1 | null
2 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | /test/
2 | .idea
3 | test
4 | .travis.yml
5 | coverage
6 | .nyc_output
7 | .github
8 | .vscode
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/DefaultNamespace__no_xmlns_prefix_used_for_default_namespace/response.json:
--------------------------------------------------------------------------------
1 | null
2 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security_invalid_options/response.json:
--------------------------------------------------------------------------------
1 | null
2 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security_no_token_created/response.json:
--------------------------------------------------------------------------------
1 | null
2 |
--------------------------------------------------------------------------------
/.husky/commit-msg:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | npx --no-install commitlint --edit "$1"
5 |
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "github>loopbackio/cicd//shared-configs/renovate/base"
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/test/certs/client-password.pfx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/loopbackio/strong-soap/HEAD/test/certs/client-password.pfx
--------------------------------------------------------------------------------
/test/certs/server-password.pfx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/loopbackio/strong-soap/HEAD/test/certs/server-password.pfx
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_ignore_defined_namespaces/wsdl_options.json:
--------------------------------------------------------------------------------
1 | {
2 | "valueKey": "$value"
3 | }
--------------------------------------------------------------------------------
/test/request-response-samples/NoParams__add_correct_namespace_for_operations_without_parameters/request.json:
--------------------------------------------------------------------------------
1 | {
2 | }
3 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security backward compatible check/response.json:
--------------------------------------------------------------------------------
1 | null
2 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__omit_element_when_empty/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "Request":{
3 |
4 | }
5 | }
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_custom_header/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "Request":{
3 |
4 | }
5 | }
--------------------------------------------------------------------------------
/test/request-response-samples/ResponseHeaders__return_soap_headers/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "Request":{
3 |
4 | }
5 | }
--------------------------------------------------------------------------------
/test/request-response-samples/ResponseHeaders__return_soap_headers/responseSoapHeader.json:
--------------------------------------------------------------------------------
1 | {
2 | "SomeToken": "abcdefg"
3 | }
4 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_nil/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": null
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__Messages_suffixed_with_In_Out/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "return":"-1",
3 | "bstrError":null
4 | }
5 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__overriding_namespace_prefix/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "return":"-1",
3 | "bstrError":null
4 | }
5 |
--------------------------------------------------------------------------------
/test/request-response-samples/OneWay__should_handle_one_way_operation/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "OneWayField": "never coming back"
3 | }
4 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "Request":{
3 |
4 | }
5 | }
--------------------------------------------------------------------------------
/test/request-response-samples/addList__qualified_attrs/response.json:
--------------------------------------------------------------------------------
1 | { "$attributes": { "discriptor": "d2" }, "record": ["r1", "r2"] }
2 |
--------------------------------------------------------------------------------
/test/request-response-samples/SendCDATA__cdata_is_handled_correctly/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "TestResult":"Hello World! & Hello Me!"
3 | }
4 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__MessageResponses_suffixed_with_.Out/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "return":"-1",
3 | "bstrError":null
4 | }
5 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__MessageResponses_suffixed_with_.Output/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "return":"-1",
3 | "bstrError":null
4 | }
5 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__Messages_suffixed_with_Input_Output/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "return":"-1",
3 | "bstrError":null
4 | }
5 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__Messages_suffixed_with_Request_Response/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "return":"-1",
3 | "bstrError":null
4 | }
5 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security_no_timestamp/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "Request":{
3 |
4 | }
5 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | npm-debug.log
3 | coverage
4 | .nyc_output
5 | lib
6 | .idea
7 | *.iml
8 | .vscode
9 | .eslintrc
10 | .DS_Store
11 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__MessageResponses_suffixed_with_.Response/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "return":"-1",
3 | "bstrError":null
4 | }
5 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security_invalid_options/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "Request":{
3 |
4 | }
5 | }
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security_no_token_created/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "Request":{
3 |
4 | }
5 | }
--------------------------------------------------------------------------------
/test/request-response-samples/ResponseHeaders__return_soap_headers/header.json:
--------------------------------------------------------------------------------
1 | {
2 | "header1": {
3 | "headerContent": "value1"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/request-response-samples/login__attributes_namespace_should_be_configurable/wsdl_options.json:
--------------------------------------------------------------------------------
1 | {
2 | "attributesKey": "$thisIsAttributesKey"
3 | }
--------------------------------------------------------------------------------
/test/request-response-samples/DefaultNamespace__no_xmlns_prefix_used_for_default_namespace/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "Request": {
3 |
4 | }
5 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Message__Messages_suffixed_with_In_Out/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "bstrResourceId": "034b7ea5-8a04-11e3-9710-0050569575d8"
3 | }
4 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__overriding_namespace_prefix/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "s1:bstrResourceId": "034b7ea5-8a04-11e3-9710-0050569575d8"
3 | }
4 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_custom_header/header.json:
--------------------------------------------------------------------------------
1 | {
2 | "header1": {
3 | "headerContent": "value1"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/request-response-samples/addPets__force_namespaces/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "pet": [
3 | { "Name": "Max" },
4 | { "Name": "dillon" }
5 | ]
6 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Message__MessageResponses_suffixed_with_.Out/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "bstrResourceId": "034b7ea5-8a04-11e3-9710-0050569575d8"
3 | }
4 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__Messages_suffixed_with_Input_Output/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "bstrResourceId": "034b7ea5-8a04-11e3-9710-0050569575d8"
3 | }
4 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security backward compatible check/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "Request":{
3 |
4 | }
5 | }
--------------------------------------------------------------------------------
/test/wsdl/doc-lit-part-error/testni.xsd:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_ignore_custom_defined_namespaces/options.json:
--------------------------------------------------------------------------------
1 | {
2 | "namespaces": ["someIgnoredNamespace"],
3 | "override": false
4 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Message__MessageResponses_suffixed_with_.Output/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "bstrResourceId": "034b7ea5-8a04-11e3-9710-0050569575d8"
3 | }
4 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__MessageResponses_suffixed_with_.Response/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "bstrResourceId": "034b7ea5-8a04-11e3-9710-0050569575d8"
3 | }
4 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__Messages_suffixed_with_Request_Response/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "bstrResourceId": "034b7ea5-8a04-11e3-9710-0050569575d8"
3 | }
4 |
--------------------------------------------------------------------------------
/test/request-response-samples/addList__qualified_attrs/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "record": ["r1", "r2"],
3 | "$attributes": {
4 | "discriptor": "d1"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/request-response-samples/readMetadata__should_respect_xsi_type_attribute/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "CustomObject",
3 | "fullNames": "Opportunity"
4 | }
5 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__ref_element_should_has_correct_namespace/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "Result": {
3 | "Status": 200,
4 | "Message": "OK"
5 | }
6 | }
--------------------------------------------------------------------------------
/test/request-response-samples/UpdateProfile__correct_namespaces_for_elements_with_base_ignorednamespaces/wsdl_options.json:
--------------------------------------------------------------------------------
1 | {
2 | "ignoreBaseNameSpaces": true
3 | }
4 |
--------------------------------------------------------------------------------
/test/request-response-samples/execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_missing/response.json:
--------------------------------------------------------------------------------
1 | {"result":{"base64EncodedStdOut":"qw"}}
--------------------------------------------------------------------------------
/test/request-response-samples/execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_qualified/response.json:
--------------------------------------------------------------------------------
1 | {"result":{"base64EncodedStdOut":"qw"}}
--------------------------------------------------------------------------------
/test/request-response-samples/Login__unsupported_response_name_returned_and_local_xs_schema_missed/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "UserAlias": "test",
3 | "Password": "testik"
4 | }
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security/security.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "ws",
3 | "username": "basicuser",
4 | "password": "basicpass"
5 | }
6 |
--------------------------------------------------------------------------------
/test/request-response-samples/execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_unqualified/response.json:
--------------------------------------------------------------------------------
1 | {"result":{"base64EncodedStdOut":"qw"}}
--------------------------------------------------------------------------------
/test/request-response-samples/SendCDATA__cdata_is_handled_correctly/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "TestMessage": {
3 | "message": ""
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/test/request-response-samples/UpdateProfile__correct_ns_context/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "Result":{
3 | "$attributes": {
4 | "resultStatusFlag": "SUCCESS"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/createData__should_generate_complex_type_request/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "StandardResponse":{
3 | "$attributes":{"RecordID":"1000027"}
4 | }
5 |
6 | }
7 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_work_with_imported_schemas/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyField1": "Humpty",
3 | "DummyFilter": {
4 | "DummyStringFilter": "Dumpty"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__ref_element_should_has_correct_namespace/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyRequest": {
3 | "Order": {
4 | "Id": 1,
5 | "Name": "foo"
6 | }
7 | }
8 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_use_defined_xml_key/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyRequest": {
3 | "DummyXML": {
4 | "$xml": ""
5 | }
6 | }
7 | }
--------------------------------------------------------------------------------
/test/request-response-samples/login__complex_schema_xmlns_should_be_handled/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "passport":{
3 | "email":"em",
4 | "password":"pwd",
5 | "account":"acc"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@babel/preset-env",
5 | {
6 | "targets": {
7 | "node": "6.0.0"
8 | }
9 | }
10 | ]
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_parse_nil/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": {
4 | "DummyElement": [
5 | null
6 | ]
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/test/request-response-samples/login__error_returned_should_contain_root_Json_on_fault/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "passport":{
3 | "email":"em",
4 | "password":"pwd",
5 | "account":"acc"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_return_object_when_maxOccurs_1/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": {
4 | "DummyElement": "Dummy Element Entry 1"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/GetNodes__complex_self_referencing/wsdl_options.json:
--------------------------------------------------------------------------------
1 | {
2 | "ignoredNamespaces": {
3 | "namespaces": ["targetNamespace", "typedNamespace"],
4 | "override": "true"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/request-response-samples/SetResource__should_correctly_set_element_if_complex-type_has_same_name/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "SetResourceRequest": {
3 | "Resource": {
4 | "Resource": "test"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/login__complex_schema_xmlns_with_array_and_any_type_and_other_types/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "passport":{
3 | "email":"em",
4 | "password":"pwd",
5 | "account":"acc"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/SetResource__should_correctly_set_element_if_complex-type_has_same_name/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "Result":{
3 | "$attributes": {
4 | "resultStatusFlag": "SUCCESS"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_xml_date_time_dateTime/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": {
4 | "DummyElement": [
5 | null
6 | ]
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/test/request-response-samples/readMetadata__should_respect_xsi_type_attribute/wsdl_options.json:
--------------------------------------------------------------------------------
1 | {
2 | "ignoredNamespaces": {
3 | "namespaces": ["targetNamespace", "typedNamespace"],
4 | "override": "true"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_null_args/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": {
4 | "DummyElement": [
5 | "Dummy Element Entry"
6 | ]
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/test/request-response-samples/GetAccountXml__non_xmlns_attributes_should_be_returned/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "ResourceID":"234",
3 | "ResourceType":"foo",
4 | "IDType":"more foo",
5 | "TreeID":43,
6 | "PrivateLabelID":34
7 | }
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security backward compatible check/security.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "ws",
3 | "username": "basicuser",
4 | "password": "basicpass",
5 | "options": "PasswordText"
6 | }
7 |
--------------------------------------------------------------------------------
/test/request-response-samples/GetAccountXml__non_xmlns_attributes_should_be_returned/wsdl_options.json:
--------------------------------------------------------------------------------
1 | {
2 | "ignoredNamespaces": {
3 | "namespaces": ["targetNamespace", "typedNamespace"],
4 | "override": "true"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_null_args/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/test/request-response-samples/GetItemInformation__should_ignore_default_namespace_from_schema/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "Items": {
3 | "Item": {
4 | "ItemNumber": "1234",
5 | "RequestedQuantity": {
6 | "Value": "1.00"
7 | }
8 | }
9 | }
10 | }
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security_no_timestamp/security.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "ws",
3 | "username": "basicuser",
4 | "password": "basicpass",
5 | "options": {
6 | "hasTimeStamp": false
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_add_prefix_for_unqualified_global_elements/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": {
4 | "DummyElement": [
5 | "Dummy Element Entry"
6 | ]
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/test/request-response-samples/GetItemInformation__should_ignore_default_namespace_from_schema/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "Items": {
3 | "Item": [{
4 | "ItemNumber": "1234",
5 | "RequestedQuantity": {
6 | "Value": "1.00"
7 | }
8 | }]
9 | }
10 | }
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security_no_token_created/security.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "ws",
3 | "username": "basicuser",
4 | "password": "basicpass",
5 | "options": {
6 | "hasTokenCreated": false
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/addList__xsi_type/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "record": [
3 | {
4 | "id": "1",
5 | "name": "John",
6 | "$attributes": {
7 | "$xsiType": "{urn:example}NameRecord"
8 | }
9 | }
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_parse_nil/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyRequest": {
3 | "DummyField1": "Humpty",
4 | "DummyFilter": {
5 | "DummyStringFilter": null,
6 | "DummyDateFilter": null
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_return_array_despite_maxOccurs_1/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_return_object_when_maxOccurs_1/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__omit_element_when_empty/response.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security/response.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_custom_header/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security_no_timestamp/response.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security_invalid_options/response.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security_no_token_created/response.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/request-response-samples/addList__xsi_type/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "record": [
3 | {
4 | "$attributes": {
5 | "$xsiType": { "type": "UserRecord", "xmlns": "urn:example" }
6 | },
7 | "id": "2",
8 | "name": "Mary"
9 | }
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_missing/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "execFileParams": {
3 | "fileName": "PSTN",
4 | "arguments": "0",
5 | "base64EncodedStdIn": "null",
6 | "startDetached": "true"
7 | }
8 | }
--------------------------------------------------------------------------------
/test/request-response-samples/DefaultNamespace__no_xmlns_prefix_used_for_default_namespace/response.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/request-response-samples/execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_qualified/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "execFileParams": {
3 | "fileName": "PSTN",
4 | "arguments": "0",
5 | "base64EncodedStdIn": "null",
6 | "startDetached": "true"
7 | }
8 | }
--------------------------------------------------------------------------------
/test/request-response-samples/execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_unqualified/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "execFileParams": {
3 | "fileName": "PSTN",
4 | "arguments": "0",
5 | "base64EncodedStdIn": "null",
6 | "startDetached": "true"
7 | }
8 | }
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security backward compatible check/response.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/request-response-samples/ResponseHeaders__return_soap_headers/response.xml:
--------------------------------------------------------------------------------
1 | abcdefg
2 |
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | # Lines starting with '#' are comments.
2 | # Each line is a file pattern followed by one or more owners,
3 | # the last matching pattern has the most precendence.
4 |
5 | # Alumni members
6 | # @b-admike @deepakrkris @jannyHou
7 |
8 | # Core team members
9 | * @raymondfeng @achrinza
10 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__omit_element_when_empty/request.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security_invalid_options/security.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "ws",
3 | "username": "basicuser",
4 | "password": "basicpass",
5 | "options": {
6 | "passwordType": "invalid",
7 | "hasTimeStamp": ""
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_return_array_despite_maxOccurs_1/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": {
4 | "DummyElement": [
5 | "Dummy Element Entry 1",
6 | "Dummy Element Entry 2",
7 | "Dummy Element Entry 3"
8 | ]
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_nil/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyRequest": {
3 | "DummyField1": {
4 | "$value": "Humpty",
5 | "$attributes": {
6 | "language": "en-US"
7 | }
8 | },
9 | "DummyFilter": {
10 | "DummyStringFilter": "Dumpty"
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/test/request-response-samples/GetNodes__complex_self_referencing/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/test/request-response-samples/administrate__Complex_json_object_namespace_issue/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "Administrate": {
3 | "AdminOperation": {
4 | "CreateUser": {
5 | "User": {
6 | "Name": "name",
7 | "Password": "password"
8 | },
9 | "IgnoreDup": ""
10 | }
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_use_defined_value_key/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyRequest": {
3 | "DummyField1": "Humpty",
4 | "DummyFilter": {
5 | "DummyStringFilter": "Dumpty"
6 | },
7 | "DummyAccount": {
8 | "DummyName": "Dummy",
9 | "DummyPassword": "1234"
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/test/request-response-samples/DefaultNamespace__no_xmlns_prefix_used_for_default_namespace/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_extract_envelope_from_response/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyRequest": {
3 | "DummyField1": {
4 | "$value": "Humpty",
5 | "$attributes": {
6 | "language": "en-US"
7 | }
8 | },
9 | "DummyFilter": {
10 | "DummyStringFilter": "Dumpty"
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_attributes_in_request/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyRequest": {
3 | "DummyField1": {
4 | "$value": "Humpty",
5 | "$attributes": {
6 | "language": "en-US"
7 | }
8 | },
9 | "DummyFilter": {
10 | "DummyStringFilter": "Dumpty"
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_attributes_in_response/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyRequest": {
3 | "DummyField1": {
4 | "$value": "Humpty",
5 | "$attributes": {
6 | "language": "en-US"
7 | }
8 | },
9 | "DummyFilter": {
10 | "DummyStringFilter": "Dumpty"
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_cdata_xml_in_response/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyRequest": {
3 | "DummyField1": {
4 | "$value": "Humpty",
5 | "$attributes": {
6 | "language": "en-US"
7 | }
8 | },
9 | "DummyFilter": {
10 | "DummyStringFilter": "Dumpty"
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_ignore_defined_namespaces/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyRequest": {
3 | "DummyField1": "Humpty",
4 | "DummyFilter": {
5 | "DummyStringFilter": "Dumpty"
6 | },
7 | "DummyAccount": {
8 | "DummyName": "Dummy",
9 | "DummyPassword": "1234"
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/test/request-response-samples/login__attributes_in_request_should_be_handled/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "passport":{
3 | "email":"em",
4 | "password":"pwd",
5 | "account":"acc",
6 | "role": {
7 | "$attributes": {
8 | "internalId": "3",
9 | "externalId": "2"
10 | }
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_ignore_custom_defined_namespaces/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyRequest": {
3 | "DummyField1": "Humpty",
4 | "DummyFilter": {
5 | "DummyStringFilter": "Dumpty"
6 | },
7 | "DummyAccount": {
8 | "DummyName": "Dummy",
9 | "DummyPassword": "1234"
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/test/request-response-samples/GetNodes__complex_self_referencing/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "GetNodesResult": {
3 | "Name": "Parent",
4 | "Children": {
5 | "Node": [
6 | {"Name":"Child1","Children": null},
7 | {"Name":"Child2","Children": null}
8 | ]}
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/test/request-response-samples/SetResource__should_correctly_set_element_if_complex-type_has_same_name/response.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/request-response-samples/administrate__Complex_json_object_namespace_issue/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_add_prefix_for_unqualified_global_elements/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyRequest": {
3 | "DummyField1": {
4 | "$value": "Humpty",
5 | "$attributes": {
6 | "language": "en-US"
7 | }
8 | },
9 | "DummyFilter": {
10 | "DummyStringFilter": "Dumpty"
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_use_defined_value_key/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": {
4 | "DummyElement": [
5 | {
6 | "$attributes": {
7 | "language": "en-US"
8 | },
9 | "$value": "Dummy Element Entry"
10 | }
11 | ]
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_use_defined_xml_key/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": {
4 | "DummyElement": [
5 | {
6 | "$attributes": {
7 | "language": "en-US"
8 | },
9 | "$value": "Dummy Element Entry"
10 | }
11 | ]
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/test/request-response-samples/login__attributes_namespace_should_be_configurable/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "passport":{
3 | "email":"em",
4 | "password":"pwd",
5 | "account":"acc",
6 | "role": {
7 | "$thisIsAttributesKey": {
8 | "externalId": "2",
9 | "internalId": "3"
10 | }
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/test/wsdl/typeref/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "orderRq": {
3 | "itemRq": {
4 | "ecomRq": {
5 | "rqUID": "001"
6 | },
7 | "item": {
8 | "qty": 100,
9 | "itemId": "item01"
10 | },
11 | "backupItem": {
12 | "qty": 50,
13 | "itemId": "item02"
14 | }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_ignore_defined_namespaces/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": {
4 | "DummyElement": [
5 | {
6 | "$attributes": {
7 | "language": "en-US"
8 | },
9 | "$value": "Dummy Element Entry"
10 | }
11 | ]
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/test/request-response-samples/addPets__force_namespaces/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | OK
6 |
7 |
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/get__complex_extension_without_explicit_namespace/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "baseRef":{
3 | "$attributes":{
4 | "type":"contact",
5 | "internalId":"42",
6 | "$xsiType":{
7 | "type":"RecordRef",
8 | "xmlns":"urn:core_2011_1.platform.webservices.netsuite.com"
9 | }
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_extract_envelope_from_response/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": {
4 | "DummyElement": [
5 | {
6 | "$attributes": {
7 | "language": "en-US"
8 | },
9 | "$value": "Dummy Element Entry"
10 | }
11 | ]
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_attributes_in_request/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": {
4 | "DummyElement": [
5 | {
6 | "$attributes": {
7 | "language": "en-US"
8 | },
9 | "$value": "Dummy Element Entry"
10 | }
11 | ]
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_attributes_in_response/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": {
4 | "DummyElement": [
5 | {
6 | "$attributes": {
7 | "language": "en-US"
8 | },
9 | "$value": "Dummy Element Entry"
10 | }
11 | ]
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_ignore_custom_defined_namespaces/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": {
4 | "DummyElement": [
5 | {
6 | "$attributes": {
7 | "language": "en-US"
8 | },
9 | "$value": "Dummy Element Entry"
10 | }
11 | ]
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/test/request-response-samples/addPets__force_namespaces/wsdl_options.json:
--------------------------------------------------------------------------------
1 | {
2 | "overrideRootElement": {
3 | "namespace": "xmlns:tns",
4 | "xmlnsAttributes": [{
5 | "name": "xmlns:ns2",
6 | "value": "http://tempuri.org/"
7 | }, {
8 | "name": "xmlns:ns3",
9 | "value": "http://sillypets.com/xsd"
10 | }]
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/test/request-response-samples/addList__qualified_attrs/request.xml:
--------------------------------------------------------------------------------
1 | r1r2
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_custom_header/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | value1
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/ResponseHeaders__return_soap_headers/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | value1
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/get__complex_extension_with_explicit_namespace/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "baseRef":{
3 | "$attributes":{
4 | "type":"contact",
5 | "internalId":"42",
6 | "$xsiType":{
7 | "type":"RecordRef",
8 | "xmlns":"urn:core_2011_1.platform.webservices.netsuite.com",
9 | "namespace":"platformCore"
10 | }
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Message__MessageResponses_suffixed_with_.Out/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -1
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__Messages_suffixed_with_In_Out/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -1
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__overriding_namespace_prefix/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -1
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__MessageResponses_suffixed_with_.Output/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -1
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__Messages_suffixed_with_Input_Output/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -1
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__Messages_suffixed_with_Request_Response/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -1
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/UpdateProfile__correct_ns_context/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/src/parser/index.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | exports.QName = require('./qname');
7 | exports.NamespaceContext = require('./nscontext');
8 | exports.WSDL = require('./wsdl');
9 | exports.XMLHandler = require('./xmlHandler');
10 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__MessageResponses_suffixed_with_.Response/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -1
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__Messages_suffixed_with_In_Out/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 034b7ea5-8a04-11e3-9710-0050569575d8
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__overriding_namespace_prefix/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 034b7ea5-8a04-11e3-9710-0050569575d8
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/readMetadata__should_respect_xsi_type_attribute/request.xml:
--------------------------------------------------------------------------------
1 | CustomObjectOpportunity
--------------------------------------------------------------------------------
/test/request-response-samples/Message__MessageResponses_suffixed_with_.Out/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 034b7ea5-8a04-11e3-9710-0050569575d8
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__Messages_suffixed_with_Input_Output/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 034b7ea5-8a04-11e3-9710-0050569575d8
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/UpdateProfile__correct_namespaces_for_elements_with_base/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "Result": {
3 | "$attributes": {
4 | "resultStatusFlag": "SUCCESS"
5 | },
6 | "IDs": {
7 | "UniqueID": [
8 | {
9 | "$attributes": {
10 | "source": "TESTSOURCE"
11 | },
12 | "$value": "100"
13 | }
14 | ]
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/test/request-response-samples/UpdateProfile__correct_namespaces_in_sequence_with_imports/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "Result": {
3 | "$attributes": {
4 | "resultStatusFlag": "SUCCESS"
5 | },
6 | "IDs": {
7 | "UniqueID": [
8 | {
9 | "$attributes": {
10 | "source": "TESTSOURCE"
11 | },
12 | "$value": "100"
13 | }
14 | ]
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Message__MessageResponses_suffixed_with_.Output/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 034b7ea5-8a04-11e3-9710-0050569575d8
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__MessageResponses_suffixed_with_.Response/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 034b7ea5-8a04-11e3-9710-0050569575d8
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/Message__Messages_suffixed_with_Request_Response/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 034b7ea5-8a04-11e3-9710-0050569575d8
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/SendCDATA__cdata_is_handled_correctly/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/addList__qualified_attrs/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | r1
6 | r2
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/globalize.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var path = require('path');
9 | var SG = require('strong-globalize');
10 |
11 | SG.SetRootDir(path.join(__dirname, '..'), {autonomousMsgLoading: 'all'});
12 | module.exports = SG();
13 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_use_defined_xml_key/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/test/request-response-samples/UpdateProfile__correct_namespaces_for_elements_with_base_ignorednamespaces/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "Result": {
3 | "$attributes": {
4 | "resultStatusFlag": "SUCCESS"
5 | },
6 | "IDs": {
7 | "UniqueID": [
8 | {
9 | "$attributes": {
10 | "source": "TESTSOURCE"
11 | },
12 | "$value": "100"
13 | }
14 | ]
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/test/request-response-samples/SetResource__should_correctly_set_element_if_complex-type_has_same_name/request.xml:
--------------------------------------------------------------------------------
1 | test
--------------------------------------------------------------------------------
/test/request-response-samples/UpdateProfile__correct_namespaces_for_elements_with_base/response.xml:
--------------------------------------------------------------------------------
1 | 100
--------------------------------------------------------------------------------
/test/request-response-samples/UpdateProfile__correct_namespaces_in_sequence_with_imports/response.xml:
--------------------------------------------------------------------------------
1 | 100
--------------------------------------------------------------------------------
/test/request-response-samples/addList__xsi_type/request.xml:
--------------------------------------------------------------------------------
1 | 1John
--------------------------------------------------------------------------------
/test/request-response-samples/Login__unsupported_response_name_returned_and_local_xs_schema_missed/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | test
7 | testik
8 |
9 |
10 |
--------------------------------------------------------------------------------
/test/request-response-samples/NoParams__add_correct_namespace_for_operations_without_parameters/request.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/request-response-samples/UpdateProfile__correct_namespaces_for_elements_with_base_ignorednamespaces/response.xml:
--------------------------------------------------------------------------------
1 | 100
--------------------------------------------------------------------------------
/test/request-response-samples/OneWay__should_handle_one_way_operation/request.xml:
--------------------------------------------------------------------------------
1 | never coming back
--------------------------------------------------------------------------------
/test/request-response-samples/SendCDATA__cdata_is_handled_correctly/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/test/wsdl/xsdinclude/types-without-tns.xsd:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/test/request-response-samples/addPets__force_namespaces/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Max
8 |
9 |
10 | dillon
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/parser/xsd/key.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var KeyBase = require('./keybase');
9 |
10 | class Key extends KeyBase {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 | Key.elementName = 'key';
17 |
18 | module.exports = Key;
19 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | arch:
2 | - arm64
3 | - ppc64le
4 | - s390x
5 | branches:
6 | only:
7 | - master
8 | language: node_js
9 | node_js:
10 | - 10.24.1
11 | - 12.22.12
12 | - 14.21.3
13 | - 16.20.2
14 | before_install: |
15 | NODEJS_VERSION=$(node --version)
16 | if [ 'v10' == ${NODEJS_VERSION%%.*} ]
17 | then
18 | npm install --global npm@7
19 | else
20 | npm install --global npm@8
21 | fi
22 | script:
23 | - npm run --ignore-scripts build
24 | - npm test --ignore-scripts
25 |
--------------------------------------------------------------------------------
/src/parser/xsd/any.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var XSDElement = require('./xsdElement');
9 |
10 | class Any extends XSDElement {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 | Any.elementName = 'any';
17 |
18 | module.exports = Any;
19 |
--------------------------------------------------------------------------------
/test/request-response-samples/getAvailability__should_not_fail_without_children/request.xml:
--------------------------------------------------------------------------------
1 | beeblebrox42HAMFRA2016-01-012016-02-01
--------------------------------------------------------------------------------
/src/parser/wsdl/input.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var Parameter = require('./parameter');
9 |
10 | class Input extends Parameter {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 | Input.elementName = 'input';
17 |
18 | module.exports = Input;
19 |
--------------------------------------------------------------------------------
/src/parser/xsd/unique.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var KeyBase = require('./keybase');
9 |
10 | class Unique extends KeyBase {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 | Unique.elementName = 'unique';
17 |
18 | module.exports = Unique;
19 |
--------------------------------------------------------------------------------
/src/parser/wsdl/output.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var Parameter = require('./parameter');
9 |
10 | class Output extends Parameter {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 | Output.elementName = 'output';
17 |
18 | module.exports = Output;
19 |
--------------------------------------------------------------------------------
/src/parser/xsd/import.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var XSDElement = require('./xsdElement');
9 |
10 | class Import extends XSDElement {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 | Import.elementName = 'import';
17 |
18 | module.exports = Import;
19 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig for the node-soap library - head over to editorconfig.org to see if you editor supports this file.
2 |
3 | # this is the topmost .editorconfig file
4 | root = true
5 |
6 | [*]
7 | end_of_line = lf
8 | insert_final_newline = true
9 |
10 | [*.xml]
11 | insert_final_newline = false
12 |
13 | [*.js]
14 | indent_style = space
15 | indent_size = 2
16 |
17 | [*.json]
18 | indent_style = space
19 | indent_size = 2
20 |
21 | [{package.json,.travis.yml}]
22 | indent_style = space
23 | indent_size = 2
24 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_extract_envelope_from_response/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Humpty
7 |
8 | Dumpty
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_attributes_in_request/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Humpty
7 |
8 | Dumpty
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_attributes_in_response/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Humpty
7 |
8 | Dumpty
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_cdata_xml_in_response/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Humpty
7 |
8 | Dumpty
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_missing/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | qw
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/test/wsdl/recursive-schema-import/Infrastructure.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/parser/xsd/include.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var XSDElement = require('./xsdElement');
9 |
10 | class Include extends XSDElement {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 |
17 | Include.elementName = 'include';
18 |
19 | module.exports = Include;
20 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_xml_date_time_dateTime/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyRequest": {
3 | "DummyFilter": {
4 | "DummyTimeFilter": "2018-09-01T10:20:09Z",
5 | "DummyDateFilter": "2018-09-01T10:20:09Z"
6 | },
7 | "DummyList": {
8 | "DummyElement": {
9 | "$attributes": {
10 | "created": "2018-09-01T10:20:09Z",
11 | "updated": "2018-09-01T10:20:09Z"
12 | },
13 | "$value": "123"
14 | }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/test/request-response-samples/execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_qualified/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | qw
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_add_prefix_for_unqualified_global_elements/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Humpty
7 |
8 | Dumpty
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/createData__should_generate_complex_type_request/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_unqualified/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | qw
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__ref_element_should_has_correct_namespace/common.xsd:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/parser/xsd/anyAttribute.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var XSDElement = require('./xsdElement');
9 |
10 | class AnyAttribute extends XSDElement {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 | AnyAttribute.elementName = 'anyAttribute';
17 |
18 | module.exports = AnyAttribute;
19 |
--------------------------------------------------------------------------------
/test/request-response-samples/addList__xsi_type/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 2
7 | Mary
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/parser/wsdl/import.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var WSDLElement = require('./wsdlElement');
9 |
10 | class Import extends WSDLElement {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | this.schemas = {};
14 | }
15 | }
16 |
17 | Import.elementName = 'import';
18 |
19 | module.exports = Import;
20 |
--------------------------------------------------------------------------------
/test/request-response-samples/update__complex_extension_fields_in_parent_without_explicit_namespace/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "record":{
3 | "$attributes":{
4 | "internalId":"42",
5 | "externalId":"Alex Dniprovskyy",
6 | "$xsiType":{
7 | "type":"Contact",
8 | "xmlns":"urn:relationships_2011_1.lists.webservices.netsuite.com"
9 | }
10 | },
11 | "nullFieldList":{
12 | "name":"officephone"
13 | },
14 | "firstName":"Allister",
15 | "lastName":"Sullivan",
16 | "phone":"800-555-2819"
17 | }
18 | }
--------------------------------------------------------------------------------
/src/parser/xsd/all.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var XSDElement = require('./xsdElement');
9 |
10 | class All extends XSDElement {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 | All.elementName = 'all';
17 | All.allowedChildren = ['annotation', 'element'];
18 |
19 | module.exports = All;
20 |
--------------------------------------------------------------------------------
/test/request-response-samples/get__complex_extension_with_explicit_namespace/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/request-response-samples/update__complex_extension_with_array_attributes/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "writeResponse": {
3 | "status": {
4 | "$attributes": {
5 | "isSuccess": "true"
6 | }
7 | },
8 | "baseRef": {
9 | "$attributes": {
10 | "internalId": "42",
11 | "externalId": "Alex Dniprovskyy",
12 | "type": "contact",
13 | "$xsiType": {
14 | "type": "RecordRef",
15 | "xmlns": "urn:core_2013_2.platform.webservices.netsuite.com"
16 | }
17 | }
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/test/request-response-samples/GetAccountXml__non_xmlns_attributes_should_be_returned/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 234
7 | foo
8 | more foo
9 | 43
10 | 34
11 |
12 |
13 |
--------------------------------------------------------------------------------
/test/request-response-samples/execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_missing/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | PSTN
7 | 0
8 | null
9 | true
10 |
11 |
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_unqualified/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | PSTN
7 | 0
8 | null
9 | true
10 |
11 |
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/get__complex_extension_without_explicit_namespace/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/parser/wsdl/fault.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var Parameter = require('./parameter');
9 |
10 | class Fault extends Parameter {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 | Fault.elementName = 'fault';
17 | Fault.allowedChildren = ['documentation', 'fault'];
18 |
19 | module.exports = Fault;
20 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_work_with_imported_schemas/request.xml:
--------------------------------------------------------------------------------
1 | HumptyDumpty
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_nil/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Humpty
7 |
8 | Dumpty
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/administrate__Complex_json_object_namespace_issue/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | name
8 | password
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/test/request-response-samples/update__complex_extension_fields_in_parent_without_explicit_namespace/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "writeResponse": {
3 | "status": {
4 | "$attributes": {
5 | "isSuccess": "true"
6 | }
7 | },
8 | "baseRef": {
9 | "$attributes": {
10 | "internalId": "42",
11 | "externalId": "Alex Dniprovskyy",
12 | "type": "contact",
13 | "$xsiType": {
14 | "type": "RecordRef",
15 | "xmlns": "urn:core_2013_2.platform.webservices.netsuite.com"
16 | }
17 | }
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_nil/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/execFile__valid_xml_generated_on_request_with_complex_type_element_form_default_qualified/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | PSTN
7 | 0
8 | null
9 | true
10 |
11 |
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/getAvailability__should_not_fail_without_children/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "userCredentials": {
3 | "username": "beeblebrox",
4 | "sessionid": "42"
5 | },
6 | "getAvailabilityRequest": {
7 | "attributes": {
8 | "currency": "EUR"
9 | },
10 | "departure": "HAM",
11 | "destination": "FRA",
12 | "flightDate": "2016-01-01",
13 | "returnDate": "2016-02-01",
14 | "paxCount": [
15 | {
16 | "attributes": {
17 | "count": 1,
18 | "paxType": "ADT"
19 | }
20 | }
21 | ]
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/parser/wsdl/documentation.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var WSDLElement = require('./wsdlElement');
9 |
10 | class Documentation extends WSDLElement {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 | Documentation.elementName = 'documentation';
17 | Documentation.allowedChildren = [];
18 |
19 | module.exports = Documentation;
20 |
--------------------------------------------------------------------------------
/src/parser/xsd/annotation.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var XSDElement = require('./xsdElement');
9 |
10 | class Annotation extends XSDElement {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 | Annotation.elementName = 'annotation';
17 | Annotation.allowedChildren = ['documentation', 'appinfo'];
18 |
19 | module.exports = Annotation;
20 |
--------------------------------------------------------------------------------
/src/parser/xsd/documentation.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var XSDElement = require('./xsdElement');
9 |
10 | class Documentation extends XSDElement {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 | Documentation.elementName = 'documentation';
17 | Documentation.allowedChildren = ['any'];
18 |
19 | module.exports = Documentation;
20 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__ref_element_should_has_correct_namespace/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
8 |
10 | 1
11 | foo
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/parser/wsdl/wsdlElement.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var Element = require('../element');
9 |
10 | class WSDLElement extends Element {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 | WSDLElement.targetNamespace = Element.namespaces.wsdl;
17 | WSDLElement.allowedChildren = ['documentation'];
18 |
19 | module.exports = WSDLElement;
20 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_cdata_xml_in_response/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "DummyResult": {
3 | "DummyList": {
4 | "DummyElement": [
5 | {
6 | "$attributes": {
7 | "language": "en-US"
8 | },
9 | "$value": {
10 | "response": {
11 | "forms": {
12 | "form": {
13 | "$attributes": {
14 | "ObjectId": "1234",
15 | "Form_Name": "Dummy Form"
16 | },
17 | "First_Name": "Humpty",
18 | "Last_Name": "Dumpty"
19 | }
20 | }
21 | }
22 | }
23 | }
24 | ]
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/test/request-response-samples/GetItemInformation__should_ignore_default_namespace_from_schema/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 1234
9 |
10 | 1.00
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/parser/xsd/choice.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var XSDElement = require('./xsdElement');
9 |
10 | class Choice extends XSDElement {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 | }
15 |
16 | Choice.elementName = 'choice';
17 | Choice.allowedChildren = ['annotation', 'element', 'group', 'sequence',
18 | 'choice', 'any'];
19 |
20 | module.exports = Choice;
21 |
--------------------------------------------------------------------------------
/test/wsdl/typeref/ns2.xsd:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/security/BearerSecurity.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var _ = require('lodash');
9 | var Security = require('./security');
10 |
11 | class BearerSecurity extends Security {
12 | constructor(token, options) {
13 | super(options);
14 | this.token = token;
15 | }
16 |
17 | addHttpHeaders(headers) {
18 | headers.Authorization = "Bearer " + this.token;
19 | }
20 | }
21 |
22 | module.exports = BearerSecurity;
23 |
--------------------------------------------------------------------------------
/test/wsdl/recursive-schema-import/TESTAdditionalHeaders.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/test/request-response-samples/multiCall__rpc_stype_request_xsi_attributes/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "multiCallReturn": {
3 | "$attributes": {
4 | "arrayType": "xsd:ur-type[1]",
5 | "$xsiType": {
6 | "type": "FixedArray",
7 | "xmlns": "urn:Magento"
8 | }
9 | },
10 | "item": {
11 | "$attributes": {
12 | "$xsiType": {
13 | "type": "boolean",
14 | "xmlns": "http://www.w3.org/2001/XMLSchema"
15 | }
16 | },
17 | "$value": "true"
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_parse_nil/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/test/request-response-samples/login__error_returned_should_contain_root_Json_on_fault/error_response.json:
--------------------------------------------------------------------------------
1 | {
2 | "Envelope":{
3 | "Body":{
4 | "Fault":{
5 | "faultcode":"soapenv:Server.userException",
6 | "faultstring":"You have entered an invalid email address or password. Please try again.",
7 | "detail":{
8 | "invalidCredentialsFault":{
9 | "code":"INVALID_LOGIN_CREDENTIALS",
10 | "message":"You have entered an invalid email address or password. Please try again."
11 | },
12 | "hostname":"partners-java10009.bos.netledger.com"
13 | }
14 | }
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/src/parser/xsd/sequence.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var XSDElement = require('./xsdElement');
9 | var Any = require('./any');
10 |
11 | class Sequence extends XSDElement {
12 | constructor(nsName, attrs, options) {
13 | super(nsName, attrs, options);
14 | }
15 | }
16 |
17 | Sequence.elementName = 'sequence';
18 | Sequence.allowedChildren = ['annotation', 'element', 'group', 'sequence',
19 | 'choice', 'any'];
20 |
21 | module.exports = Sequence;
22 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_xml_date_time_dateTime/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/test/wsdl/binding_document.wsdl:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/parser/xsd/simpleContent.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var XSDElement = require('./xsdElement');
9 | var Extension = require('./extension');
10 |
11 | class SimpleContent extends XSDElement {
12 | constructor(nsName, attrs, options) {
13 | super(nsName, attrs, options);
14 | }
15 | }
16 |
17 | SimpleContent.elementName = 'simpleContent';
18 | SimpleContent.allowedChildren = ['annotation', 'extension', 'restriction'];
19 |
20 | module.exports = SimpleContent;
21 |
--------------------------------------------------------------------------------
/test/request-response-samples/GetItemInformation__should_ignore_default_namespace_from_schema/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | -
7 | 1234
8 |
9 | 1.00
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | ## Security advisories
4 |
5 | Security advisories can be found on the
6 | [LoopBack website](https://loopback.io/doc/en/sec/index.html).
7 |
8 | ## Reporting a vulnerability
9 |
10 | If you think you have discovered a new security issue with any LoopBack package,
11 | **please do not report it on GitHub**. Instead, send an email to
12 | [security@loopback.io](mailto:security@loopback.io) with the following details:
13 |
14 | - Full description of the vulnerability.
15 | - Steps to reproduce the issue.
16 | - Possible solutions.
17 |
18 | If you are sending us any logs as part of the report, then make sure to redact
19 | any sensitive data from them.
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_attributes_in_request/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Dummy Element Entry
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_attributes_in_response/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Dummy Element Entry
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/test/request-response-samples/GetNodes__complex_self_referencing/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Parent
6 |
7 |
8 | Child1
9 |
10 |
11 |
12 | Child2
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/test/request-response-samples/Login__unsupported_response_name_returned_and_local_xs_schema_missed/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "SessionID": {
3 | "$attributes": {
4 | "$xsiType": {
5 | "type": "string",
6 | "xmlns": "http://www.w3.org/2001/XMLSchema"
7 | }
8 | },
9 | "$value": "{B26106C6-1F0A-416E-B8EB-B66BBA2A450A}"
10 | },
11 | "return": {
12 | "$attributes": {
13 | "$xsiType": {
14 | "type": "TewsLoginResult",
15 | "xmlns": "urn:webservice-electrasoft-ru:types-ewsServerIntf"
16 | }
17 | },
18 | "$value": "lrSuccess"
19 | }
20 | }
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_add_prefix_for_unqualified_global_elements/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Dummy Element Entry
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_use_defined_value_key/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Dummy Element Entry
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_use_defined_xml_key/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Dummy Element Entry
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_ignore_defined_namespaces/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Dummy Element Entry
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/test/wsdl/wsdlImport/xsd.xsd:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_ignore_custom_defined_namespaces/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Dummy Element Entry
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/commitlint.config.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2017,2021. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | const isCI = process.env.CI;
7 | module.exports = {
8 | extends: [
9 | '@commitlint/config-conventional',
10 | ],
11 | rules: {
12 | 'header-max-length': [2, 'always', 100],
13 | 'body-leading-blank': [2, 'always'],
14 | 'footer-leading-blank': [0, 'always'],
15 | // Only enforce the rule if CI flag is not set. This is useful for release
16 | // commits to skip DCO
17 | 'signed-off-by': [isCI ? 0 : 2, 'always', 'Signed-off-by:'],
18 | },
19 | };
20 |
--------------------------------------------------------------------------------
/test/wsdl/from-memory/multipart/xsd.xsd:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_null_args/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Dummy Element Entry
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/parser/soap12/body.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var SOAPElement = require('./soapElement');
9 | var helper = require('../helper');
10 |
11 | /**
12 | *
14 | */
15 | class Body extends SOAPElement {
16 | constructor(nsName, attrs, options) {
17 | super(nsName, attrs, options);
18 | }
19 | }
20 |
21 | Body.elementName = 'body';
22 | Body.allowedChildren = ['documentation'];
23 |
24 | module.exports = Body;
25 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_use_defined_value_key/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Humpty
7 |
8 | Dumpty
9 |
10 |
11 | Dummy
12 | 1234
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/test/request-response-samples/login__complex_schema_xmlns_should_be_handled/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | em
8 | pwd
9 | acc
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/test/request-response-samples/login__error_returned_should_contain_root_Json_on_fault/soap.platform.faultTypes.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/parser/soap/body.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var SOAPElement = require('./soapElement');
9 | var helper = require('../helper');
10 |
11 | /**
12 | *
14 | */
15 | class Body extends SOAPElement {
16 | constructor(nsName, attrs, options) {
17 | super(nsName, attrs, options);
18 | }
19 | }
20 |
21 | Body.elementName = 'body';
22 | Body.allowedChildren = ['documentation'];
23 |
24 | module.exports = Body;
25 |
--------------------------------------------------------------------------------
/src/parser/soap/fault.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var SOAPElement = require('./soapElement');
9 | var helper = require('../helper');
10 |
11 | /**
12 | *
14 | */
15 | class Fault extends SOAPElement {
16 | constructor(nsName, attrs, options) {
17 | super(nsName, attrs, options);
18 | }
19 | }
20 |
21 | Fault.elementName = 'fault';
22 | Fault.allowedChildren = ['documentation'];
23 |
24 | module.exports = Fault;
25 |
--------------------------------------------------------------------------------
/src/parser/soap12/fault.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var SOAPElement = require('./soapElement');
9 | var helper = require('../helper');
10 |
11 | /**
12 | *
14 | */
15 | class Fault extends SOAPElement {
16 | constructor(nsName, attrs, options) {
17 | super(nsName, attrs, options);
18 | }
19 | }
20 |
21 | Fault.elementName = 'fault';
22 | Fault.allowedChildren = ['documentation'];
23 |
24 | module.exports = Fault;
25 |
--------------------------------------------------------------------------------
/test/wsdl/recursive-schema-import/Common.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/login__error_returned_should_contain_root_Json_on_fault/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | em
8 | pwd
9 | acc
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_return_object_when_maxOccurs_1/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Dummy Element Entry 1
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/test/request-response-samples/login__complex_schema_xmlns_with_array_and_any_type_and_other_types/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | em
8 | pwd
9 | acc
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "bitwise":false,
3 | "boss":true,
4 | "expr":true,
5 | "camelcase":false,
6 | "curly":false,
7 | "eqeqeq":true,
8 | "freeze":true,
9 | "immed":true,
10 | "indent":2,
11 | "latedef":"nofunc",
12 | "laxbreak":true,
13 | "laxcomma":true,
14 | "newcap":true,
15 | "noarg":true,
16 | "node":true,
17 | "strict": true,
18 | "trailing":true,
19 | "undef":true,
20 | "predef": [
21 | "describe", // Used by mocha
22 | "it", // Used by mocha
23 | "xit", // Used by mocha
24 | "before", // Used by mocha
25 | "beforeEach", // Used by mocha
26 | "after", // Used by mocha
27 | "afterEach" // Used by mocha
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/src/security/security.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var _ = require('lodash');
9 |
10 | /**
11 | * Base class for Web Services Security
12 | */
13 | class Security {
14 | constructor(options) {
15 | this.options = options || {};
16 | }
17 |
18 | addOptions(options) {
19 | _.merge(options, this.options);
20 | };
21 |
22 | addHttpHeaders(headers) {
23 | }
24 |
25 | addSoapHeaders(headerElement) {
26 | }
27 |
28 | postProcess(envelopeElement, headerElement, bodyElement) {
29 | }
30 | }
31 |
32 | module.exports = Security;
33 |
--------------------------------------------------------------------------------
/test/wsdl/recursive-schema-import/TEST.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/readMetadata__should_respect_xsi_type_attribute/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "result": {
3 | "records": [
4 | {
5 | "$attributes": {
6 | "$xsiType": {
7 | "type": "CustomObject",
8 | "xmlns": "http://soap.sforce.com/2006/04/metadata"
9 | }
10 | },
11 | "fullName": "Opportunity",
12 | "businessProcesses": [
13 | {
14 | "fullName": "Some Process",
15 | "isActive": "true"
16 | },
17 | {
18 | "fullName": "Another Process",
19 | "isActive": "false"
20 | }
21 | ],
22 | "enableFeeds": "false",
23 | "enableHistory": "true"
24 | }
25 | ]
26 | }
27 | }
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ### Description
2 |
3 |
4 | #### Related issues
5 |
6 |
12 |
13 | - connect to
14 |
15 | ### Checklist
16 |
17 |
22 |
23 | - [ ] New tests added or existing tests modified to cover all changes
24 | - [ ] Code conforms with the [style
25 | guide](http://loopback.io/doc/en/contrib/style-guide.html)
26 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_ignore_defined_namespaces/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Humpty
7 |
8 | Dumpty
9 |
10 |
11 | Dummy
12 | 1234
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/parser/soap/headerFault.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var SOAPElement = require('./soapElement');
9 | var helper = require('../helper');
10 |
11 | /**
12 | * *
14 | */
15 | class HeaderFault extends SOAPElement {
16 | constructor(nsName, attrs, options) {
17 | super(nsName, attrs, options);
18 | }
19 | }
20 |
21 | HeaderFault.elementName = 'headerfault';
22 | HeaderFault.allowedChildren = ['documentation'];
23 |
24 | module.exports = HeaderFault;
25 |
--------------------------------------------------------------------------------
/src/parser/soap12/headerFault.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var SOAPElement = require('./soapElement');
9 | var helper = require('../helper');
10 |
11 | /**
12 | * *
14 | */
15 | class HeaderFault extends SOAPElement {
16 | constructor(nsName, attrs, options) {
17 | super(nsName, attrs, options);
18 | }
19 | }
20 |
21 | HeaderFault.elementName = 'headerfault';
22 | HeaderFault.allowedChildren = ['documentation'];
23 |
24 | module.exports = HeaderFault;
25 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_ignore_custom_defined_namespaces/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Humpty
7 |
8 | Dumpty
9 |
10 |
11 | Dummy
12 | 1234
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2011,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var base = './lib/';
9 | var nodeVersion = process.versions.node;
10 | var major = Number(nodeVersion.split('.')[0]);
11 | if (major >= 4) {
12 | base = './src/';
13 | }
14 |
15 | var securityModules = require(base + 'security/index');
16 |
17 | module.exports = {
18 | 'soap': require(base + 'soap'),
19 | 'http': require(base + 'http'),
20 | 'QName': require(base + 'parser/qname'),
21 | 'WSDL': require(base + 'parser/wsdl'),
22 | };
23 |
24 | for (var i in securityModules) {
25 | module.exports[i] = securityModules[i];
26 | }
27 |
28 |
29 |
--------------------------------------------------------------------------------
/src/parser/wsdl/port.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var WSDLElement = require('./wsdlElement');
9 |
10 | class Port extends WSDLElement {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | this.location = null;
14 | }
15 |
16 | addChild(child) {
17 | // soap:address
18 | if (child.name === 'address' && child.$location !== undefined) {
19 | this.location = child.$location;
20 | }
21 | }
22 | }
23 |
24 | Port.elementName = 'port';
25 | Port.allowedChildren = ['address', 'documentation'];
26 |
27 | module.exports = Port;
28 |
--------------------------------------------------------------------------------
/src/security/BasicAuthSecurity.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2019. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var _ = require('lodash');
9 | var Security = require('./security');
10 |
11 | class BasicAuthSecurity extends Security {
12 | constructor(username, password, options) {
13 | super(options);
14 | this.username = username;
15 | this.password = password;
16 | }
17 |
18 | addHttpHeaders(headers) {
19 | var cred = Buffer.from((this.username + ':' + this.password) || '')
20 | .toString('base64');
21 | headers.Authorization = 'Basic ' + cred;
22 | };
23 | }
24 |
25 | module.exports = BasicAuthSecurity;
26 |
--------------------------------------------------------------------------------
/test/request-response-samples/GetAccountXml__non_xmlns_attributes_should_be_returned/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "ResultCode": 0,
3 | "AccountXml": {
4 | "Foo": {
5 | "Foo": {
6 | "$attributes": {
7 | "PrivateLabelID": "1",
8 | "ResourceID": "034b7ea5-8a04-11e3-9710-0050569575d8",
9 | "IsPastDue": "False",
10 | "IsFree": "True",
11 | "CurrentTreeID": "1091",
12 | "CurrentUnifiedProductID": "70761"
13 | },
14 | "Tree": {
15 | "$attributes": {
16 | "TreeID": "1091",
17 | "NodeID": "1091",
18 | "UnifiedProductID": "70761",
19 | "IsFree": "True"
20 | },
21 | "FilteredTransitions": null
22 | }
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_parse_nil/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Humpty
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/test/request-response-samples/Login__unsupported_response_name_returned_and_local_xs_schema_missed/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {B26106C6-1F0A-416E-B8EB-B66BBA2A450A}
6 | lrSuccess
7 |
8 |
9 |
--------------------------------------------------------------------------------
/test/wsdl/ExtendedName.xsd:
--------------------------------------------------------------------------------
1 |
2 |
6 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/test/request-response-samples/multiCall__rpc_stype_request_xsi_attributes/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 | - true
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/security/index.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2018. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | "use strict";
7 |
8 | var WSSecurityCert;
9 | try {
10 | WSSecurityCert = require('./WSSecurityCert');
11 | } catch (err) {
12 | console.warn(err);
13 | }
14 |
15 | module.exports = {
16 | BasicAuthSecurity: require('./BasicAuthSecurity'),
17 | ClientSSLSecurity: require('./ClientSSLSecurity'),
18 | ClientSSLSecurityPFX: require('./ClientSSLSecurityPFX'),
19 | CookieSecurity: require('./CookieSecurity'),
20 | WSSecurity: require('./WSSecurity'),
21 | BearerSecurity: require('./BearerSecurity'),
22 | WSSecurityCert: WSSecurityCert,
23 | NTLMSecurity: require('./NTLMSecurity')
24 | };
25 |
--------------------------------------------------------------------------------
/test/request-response-samples/login__attributes_in_request_should_be_handled/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | em
8 | pwd
9 | acc
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/test/request-response-samples/login__attributes_namespace_should_be_configurable/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | em
8 | pwd
9 | acc
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
6 |
7 | # Description/Steps to reproduce
8 |
9 |
13 |
14 | # Link to reproduction sandbox
15 |
16 |
21 |
22 | # Expected result
23 |
24 |
27 |
28 | # Additional information
29 |
30 |
35 |
--------------------------------------------------------------------------------
/test/request-response-samples/createData__should_generate_complex_type_request/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "ModelCRUDRequest":{
3 | "ModelCRUD":{
4 | "serviceType":"CreateInterest",
5 | "TableName":"WTC_EmployeeInterest",
6 | "RecordID":0,
7 | "Filter":"",
8 | "Action":"Create",
9 | "DataRow":{
10 | "field":[{
11 | "$attributes":{"column":"C_BPartner_ID"},
12 | "val":"1001047"
13 | },{
14 | "$attributes":{"column":"Interest"},
15 | "val":"Cooking"
16 | }]
17 | }
18 | },
19 | "ADLoginRequest":{
20 | "user":"WTCAdmin",
21 | "pass":"WTCAdmin",
22 | "lang":"192",
23 | "ClientID":11,
24 | "RoleID":102,
25 | "OrgID":1000001,
26 | "WarehouseID":1000000,
27 | "stage":0
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/test/wsdl/strict/npe.wsdl:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/test/certs/agent2-cert-with-extra-data.pem:
--------------------------------------------------------------------------------
1 | issuer=/C=US/ST=California/L=SomeCity/O=SomeIssuingOrg
2 | -----BEGIN CERTIFICATE-----
3 | MIIB7DCCAZYCCQC7gs0MDNn6MTANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJV
4 | UzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYDVQQKEwZKb3llbnQxEDAO
5 | BgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MjEgMB4GCSqGSIb3DQEJARYR
6 | cnlAdGlueWNsb3Vkcy5vcmcwHhcNMTEwMzE0MTgyOTEyWhcNMzgwNzI5MTgyOTEy
7 | WjB9MQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExCzAJBgNVBAcTAlNGMQ8wDQYD
8 | VQQKEwZKb3llbnQxEDAOBgNVBAsTB05vZGUuanMxDzANBgNVBAMTBmFnZW50MjEg
9 | MB4GCSqGSIb3DQEJARYRcnlAdGlueWNsb3Vkcy5vcmcwXDANBgkqhkiG9w0BAQEF
10 | AANLADBIAkEAyXb8FrRdKbhrKLgLSsn61i1C7w7fVVVd7OQsmV/7p9WB2lWFiDlC
11 | WKGU9SiIz/A6wNZDUAuc2E+VwtpCT561AQIDAQABMA0GCSqGSIb3DQEBBQUAA0EA
12 | C8HzpuNhFLCI3A5KkBS5zHAQax6TFUOhbpBCR0aTDbJ6F1liDTK1lmU/BjvPoj+9
13 | 1LHwrmh29rK8kBPEjmymCQ==
14 | -----END CERTIFICATE-----
15 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_cdata_xml_in_response/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | ]]>
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/example/xsds.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2018. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | var soap = require('..').soap;
7 | var WSDL = soap.WSDL;
8 | var path = require('path');
9 |
10 |
11 | //user can pass in WSDL options
12 | var options = {};
13 |
14 | WSDL.open(path.resolve(__dirname, 'wsdls/weather.wsdl'), options,
15 | //User can traverse the WSDL tree and get to bindings - > operations, services, portTypes, messages, parts and XSD elements/Attributes
16 | function(err, wsdl) {
17 | var getCityForecastOp = wsdl.definitions.bindings.WeatherSoap.operations.GetCityForecastByZIP;
18 | console.log(getCityForecastOp.$name);
19 | var service = wsdl.definitions.services['Weather'];
20 | console.log(service.$name);
21 | });
22 |
--------------------------------------------------------------------------------
/test/wsdl/recursive-schema-import/Location.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/parser/xsd/keyref.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var KeyBase = require('./keybase');
9 | var QName = require('../qname');
10 |
11 | class KeyRef extends KeyBase {
12 | constructor(nsName, attrs, options) {
13 | super(nsName, attrs, options);
14 | }
15 |
16 | postProcess(definitions) {
17 | super.postProcess(definitions);
18 | if (this.$refer) {
19 | let qname = QName.parse(this.$refer);
20 | if (qname.prefix === '') {
21 | qname.nsURI = this.getTargetNamespace();
22 | } else {
23 | qname.nsURI = this.getNamespaceURI(qname.prefix);
24 | }
25 | }
26 | }
27 | }
28 |
29 | KeyRef.elementName = 'keyref';
30 |
31 | module.exports = KeyRef;
32 |
--------------------------------------------------------------------------------
/src/parser/soap12/header.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var SOAPElement = require('./soapElement');
9 | var helper = require('../helper');
10 |
11 | /**
12 | * *
14 | * *
16 | *
17 | */
18 | class Header extends SOAPElement {
19 | constructor(nsName, attrs, options) {
20 | super(nsName, attrs, options);
21 | }
22 | }
23 |
24 | Header.elementName = 'header';
25 | Header.allowedChildren = ['documentation', 'headerFault'];
26 |
27 | module.exports = Header;
28 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_work_with_imported_schemas/name.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/test/wsdl/recursive-schema-import/AccountingUnit.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_nil/name.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_null_args/name.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/example/stockquote.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | "use strict";
7 |
8 | var soap = require('..').soap;
9 | // wsdl of the web service this client is going to invoke. For local wsdl you can use, url = './wsdls/stockquote.wsdl'
10 | var url = 'http://www.webservicex.net/stockquote.asmx?WSDL';
11 |
12 | var requestArgs = {
13 | symbol: 'IBM'
14 | };
15 |
16 | var options = {};
17 | soap.createClient(url, options, function(err, client) {
18 | var method = client['StockQuote']['StockQuoteSoap']['GetQuote'];
19 | method(requestArgs, function(err, result, envelope, soapHeader) {
20 | //response envelope
21 | console.log('Response Envelope: \n' + envelope);
22 | //'result' is the response body
23 | console.log('Result: \n' + JSON.stringify(result));
24 | });
25 | });
26 |
--------------------------------------------------------------------------------
/src/strip-bom.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2019. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | /*
7 | strip the BOM characters in the beginning of UTF-8
8 | or other unicode encoded strings
9 | http://en.wikipedia.org/wiki/Byte_order_mark
10 | */
11 | 'use strict';
12 | module.exports = stripBom;
13 |
14 | function stripBom(str){
15 |
16 | if (typeof str !== 'string') {
17 | throw new Error('Invalid input, only string allowed');
18 | }
19 | var chunk = Buffer.from(str);
20 | var transformed;
21 | var value = str;
22 | if (chunk[0] === 0xFE && chunk[1] === 0XFF) {
23 | transformed = chunk.slice(2);
24 | }
25 | if (chunk[0] == 0xEF && chunk[1] == 0xBB && chunk[2] == 0xBF) {
26 | transformed = chunk.slice(3);
27 | }
28 | if (transformed) {
29 | value = transformed.toString();
30 | }
31 | return value;
32 | };
33 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security_no_timestamp/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | basicuser
7 | 2014-10-12T01:02:03Z
8 | basicpass
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/security/CookieSecurity.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var Security = require('./security');
9 |
10 | function hasCookieHeader (cookie) {
11 | return typeof cookie === 'object' && cookie.hasOwnProperty('set-cookie');
12 | }
13 |
14 | /*
15 | * Accepts either a cookie or lastResponseHeaders
16 | */
17 | class CookieSecurity extends Security {
18 | constructor(cookie, options) {
19 | super(options);
20 |
21 | cookie = hasCookieHeader(cookie) ? cookie['set-cookie'] : cookie;
22 |
23 | this.cookie = (Array.isArray(cookie) ? cookie : [cookie])
24 | .map(c => c.split(';')[0])
25 | .join('; ');
26 | }
27 |
28 | addHttpHeaders(headers) {
29 | headers.Cookie = this.cookie;
30 | }
31 | }
32 |
33 | module.exports = CookieSecurity;
34 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_extract_envelope_from_response/name.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_attributes_in_request/name.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_attributes_in_response/name.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_cdata_xml_in_response/name.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_return_object_when_maxOccurs_1/name.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/test/wsdl/recursive-schema-import/InfrastructureSOAP.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_return_array_despite_maxOccurs_1/name.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/test/request-response-samples/login__attributes_in_request_should_be_handled/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "sessionResponse":{
3 | "status":{
4 | "$attributes":{
5 | "isSuccess":"true"
6 | }
7 | },
8 | "userId":{
9 | "$attributes":{
10 | "internalId":"1645"
11 | },
12 | "name":"SCPlus Dev"
13 | },
14 | "wsRoleList":{
15 | "wsRole":[{
16 | "role":{
17 | "$attributes":{
18 | "internalId":"2"
19 | },
20 | "name":"Administrator"
21 | },
22 | "isDefault":false,
23 | "isInactive":false,
24 | "isLoggedInRole":true
25 | },
26 | {
27 | "role":{
28 | "$attributes":{
29 | "internalId":"3"
30 | },
31 | "name":"User1"
32 | },
33 | "isDefault":false,
34 | "isInactive":false,
35 | "isLoggedInRole":true
36 | }]
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/test/request-response-samples/login__complex_schema_xmlns_should_be_handled/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "sessionResponse":{
3 | "status":{
4 | "$attributes":{
5 | "isSuccess":"true"
6 | }
7 | },
8 | "userId":{
9 | "$attributes":{
10 | "internalId":"1645"
11 | },
12 | "name":"SCPlus Dev"
13 | },
14 | "wsRoleList":{
15 | "wsRole":[{
16 | "role":{
17 | "$attributes":{
18 | "internalId":"2"
19 | },
20 | "name":"Administrator"
21 | },
22 | "isDefault":false,
23 | "isInactive":false,
24 | "isLoggedInRole":false
25 | },
26 | {
27 | "role":{
28 | "$attributes":{
29 | "internalId":"3"
30 | },
31 | "name":"User1"
32 | },
33 | "isDefault":false,
34 | "isInactive":false,
35 | "isLoggedInRole":false
36 | }]
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/test/security/BearerSecurity.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2014. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | describe('BearerSecurity', function() {
9 | var BearerSecurity = require('../../').BearerSecurity;
10 | var token = "token";
11 |
12 | it('is a function', function() {
13 | BearerSecurity.should.be.type('function');
14 | });
15 |
16 | describe('defaultOption param', function() {
17 | it('is accepted as the second param', function() {
18 | new BearerSecurity(token, {});
19 | });
20 |
21 | it('is used in addOptions', function() {
22 | var options = {};
23 | var defaultOptions = { foo: 2 };
24 | var instance = new BearerSecurity(token, defaultOptions);
25 | instance.addOptions(options);
26 | options.should.have.property("foo", 2);
27 | });
28 | });
29 | });
30 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__ref_element_should_has_correct_namespace/response.xml:
--------------------------------------------------------------------------------
1 | --MIMEBoundary_2af39b87d6c9f2ba6d1c13d73db88d0bfdf9414786fcc315
2 | Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
3 | Content-Transfer-Encoding: binary
4 | Content-ID: <0.3af39b87d6c9f2ba6d1c13d73db88d0bfdf9414786fcc315@apache.org>
5 |
6 |
7 |
8 |
9 |
10 |
11 | 200
12 | OK
13 |
14 |
15 |
16 |
17 | --MIMEBoundary_2af39b87d6c9f2ba6d1c13d73db88d0bfdf9414786fcc315--
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_add_prefix_for_unqualified_global_elements/name.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/test/request-response-samples/addList__qualified_attrs/soap.messages.xsd:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/test/doc-lit-part-err-returned-test.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2018. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | "use strict";
7 |
8 | var fs = require('fs'),
9 | soap = require('..').soap,
10 | WSDL = soap.WSDL,
11 | assert = require('assert'),
12 | path = require('path');
13 |
14 | describe('doc-lit-part-err-returned-tests', function() {
15 |
16 | it('Loading wsdl should return an error via the callback', function (done) {
17 | WSDL.open(path.resolve(__dirname, 'wsdl/doc-lit-part-error/sample.wsdl'),function (err) {
18 | if(err){
19 | // check error thrown
20 | assert.equal(err.message, 'Document/literal part should use element');
21 | done();
22 | } else {
23 | done('Expepected "Document/literal part should use element" error to be thrown');
24 | }
25 | });
26 | });
27 | });
28 |
29 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_return_array_despite_maxOccurs_1/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Dummy Element Entry 1
9 |
10 |
11 | Dummy Element Entry 2
12 |
13 |
14 | Dummy Element Entry 3
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_use_defined_xml_key/name.xsd:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/test/request-response-samples/get__complex_extension_with_explicit_namespace/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "readResponse": {
3 | "status": {
4 | "$attributes": {
5 | "isSuccess": "true"
6 | }
7 | },
8 | "record": {
9 | "$attributes": {
10 | "internalId": "42",
11 | "externalId": "Alex Dniprovskyy",
12 | "$xsiType": {
13 | "type": "Contact",
14 | "xmlns": "urn:relationships_2011_1.lists.webservices.netsuite.com"
15 | }
16 | },
17 | "customForm": {
18 | "$attributes": {
19 | "internalId": "-40"
20 | },
21 | "name": "Standard Contact Form"
22 | },
23 | "entityId": "Allister Sullivan",
24 | "company": {
25 | "$attributes": {
26 | "internalId": "43"
27 | },
28 | "name": "Sullivan Distributors, Inc."
29 | },
30 | "salutation": "Mr.",
31 | "firstName": "Allister",
32 | "lastName": "Sullivan"
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/test/request-response-samples/get__complex_extension_without_explicit_namespace/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "readResponse": {
3 | "status": {
4 | "$attributes": {
5 | "isSuccess": "true"
6 | }
7 | },
8 | "record": {
9 | "$attributes": {
10 | "internalId": "42",
11 | "externalId": "Alex Dniprovskyy",
12 | "$xsiType": {
13 | "type": "Contact",
14 | "xmlns": "urn:relationships_2011_1.lists.webservices.netsuite.com"
15 | }
16 | },
17 | "customForm": {
18 | "$attributes": {
19 | "internalId": "-40"
20 | },
21 | "name": "Standard Contact Form"
22 | },
23 | "entityId": "Allister Sullivan",
24 | "company": {
25 | "$attributes": {
26 | "internalId": "43"
27 | },
28 | "name": "Sullivan Distributors, Inc."
29 | },
30 | "salutation": "Mr.",
31 | "firstName": "Allister",
32 | "lastName": "Sullivan"
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/test/request-response-samples/login__attributes_namespace_should_be_configurable/response.json:
--------------------------------------------------------------------------------
1 | {
2 | "sessionResponse":{
3 | "status":{
4 | "$thisIsAttributesKey":{
5 | "isSuccess":"true"
6 | }
7 | },
8 | "userId":{
9 | "$thisIsAttributesKey":{
10 | "internalId":"1645"
11 | },
12 | "name":"SCPlus Dev"
13 | },
14 | "wsRoleList":{
15 | "wsRole":[{
16 | "role":{
17 | "$thisIsAttributesKey":{
18 | "internalId":"2"
19 | },
20 | "name":"Administrator"
21 | },
22 | "isDefault":false,
23 | "isInactive":false,
24 | "isLoggedInRole":true
25 | },
26 | {
27 | "role":{
28 | "$thisIsAttributesKey":{
29 | "internalId":"3"
30 | },
31 | "name":"User1"
32 | },
33 | "isDefault":false,
34 | "isInactive":false,
35 | "isLoggedInRole":true
36 | }]
37 | }
38 | }
39 | }
--------------------------------------------------------------------------------
/test/wsdl/typeref/request.xml.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2015,2018. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | module.exports =
7 | '\n '+
8 | '\n '+
9 | '\n '+
10 | '\n '+
11 | '001\n '+
12 | '\n '+
13 | '\n '+
14 | 'item01\n '+
15 | '100\n '+
16 | '\n '+
17 | '\n '+
18 | 'item02\n '+
19 | '50\n '+
20 | '\n '+
21 | '\n '+
22 | '\n'+
23 | '\n';
24 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_extract_envelope_from_response/response.xml:
--------------------------------------------------------------------------------
1 | --MIMEBoundary_2af39b87d6c9f2ba6d1c13d73db88d0bfdf9414786fcc315
2 | Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
3 | Content-Transfer-Encoding: binary
4 | Content-ID: <0.3af39b87d6c9f2ba6d1c13d73db88d0bfdf9414786fcc315@apache.org>
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | Dummy Element Entry
14 |
15 |
16 |
17 |
18 |
19 |
20 | --MIMEBoundary_2af39b87d6c9f2ba6d1c13d73db88d0bfdf9414786fcc315--
--------------------------------------------------------------------------------
/src/parser/soap/soapElement.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var Element = require('../element');
9 |
10 | class SOAPElement extends Element {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 |
14 | if(this.name === 'body' || this.name === 'header' ||
15 | this.name === 'fault' || this.name === 'headerfault') {
16 | this.use = this.$use;
17 | if (this.use === 'encoded') {
18 | this.encodingStyle = this.$encodingStyle;
19 | }
20 | // The namespace attribute of soap:body will be used for RPC style
21 | // operation
22 | this.namespace = this.$namespace;
23 | }
24 | }
25 | }
26 |
27 | SOAPElement.targetNamespace = Element.namespaces.soap;
28 | SOAPElement.allowedChildren = ['documentation'];
29 |
30 | module.exports = SOAPElement;
31 |
--------------------------------------------------------------------------------
/src/parser/soap12/soapElement.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var Element = require('../element');
9 |
10 | class SOAPElement extends Element {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 |
14 | if(this.name === 'body' || this.name === 'header' ||
15 | this.name === 'fault' || this.name === 'headerfault') {
16 | this.use = this.$use;
17 | if (this.use === 'encoded') {
18 | this.encodingStyle = this.$encodingStyle;
19 | }
20 | // The namespace attribute of soap:body will be used for RPC style
21 | // operation
22 | this.namespace = this.$namespace;
23 | }
24 | }
25 | }
26 |
27 | SOAPElement.targetNamespace = Element.namespaces.soap12;
28 | SOAPElement.allowedChildren = ['documentation'];
29 |
30 | module.exports = SOAPElement;
31 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_xml_date_time_dateTime/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 2018-09-01Z
8 | 10:20:09.000Z
9 |
10 |
11 | 123
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/parser/xsd.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var helper = require('./helper');
9 | var builtinTypes;
10 |
11 | function getBuiltinTypes() {
12 | if (builtinTypes) return builtinTypes;
13 | builtinTypes = {};
14 | var SimpleType = require('./xsd/simpleType');
15 | for (let t in helper.schemaTypes) {
16 | let type = new SimpleType('xsd:simpleType',
17 | {name: t, 'xmlns:xsd': helper.namespaces.xsd}, {});
18 | type.targetNamespace = helper.namespaces.xsd;
19 | type.jsType = helper.schemaTypes[t];
20 | builtinTypes[t] = type;
21 | }
22 | return builtinTypes;
23 | }
24 |
25 | exports.getBuiltinTypes = getBuiltinTypes;
26 |
27 | exports.getBuiltinType = function(name) {
28 | return getBuiltinTypes()[name];
29 | };
30 |
31 |
32 | function parse(value, type) {
33 | var SimpleType = require('./xsd/simpleType');
34 | }
35 |
--------------------------------------------------------------------------------
/test/wsdl/Name.xsd:
--------------------------------------------------------------------------------
1 |
2 |
6 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/test/request-response-samples/UpdateProfile__correct_namespaces_for_elements_with_base/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "UpdateProfileRequest": {
3 | "Profile": {
4 | "IDs": {
5 | "UniqueID": [
6 | {
7 | "$attributes": {
8 | "source": "TESTSOURCE"
9 | },
10 | "$value": 100
11 | }
12 | ]
13 | },
14 | "Addresses": {
15 | "NameAddress": [
16 | {
17 | "AddressLine": "Another Address"
18 | },
19 | {
20 | "AddressLine": "My Address"
21 | }
22 | ]
23 | },
24 | "Phones": {
25 | "NamePhone": [
26 | {
27 | "$attributes": {
28 | "primary": true
29 | },
30 | "PhoneData": {
31 | "PhoneNumber": "123"
32 | }
33 | },
34 | {
35 | "$attributes": {
36 | "primary": false
37 | },
38 | "PhoneData": {
39 | "PhoneNumber": "456"
40 | }
41 | }
42 | ]
43 | }
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/test/security/BasicAuthSecurity.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2014. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | describe('BasicAuthSecurity', function() {
9 | var BasicAuthSecurity = require('../../').BasicAuthSecurity;
10 | var username = "admin";
11 | var password = "password1234";
12 |
13 | it('is a function', function() {
14 | BasicAuthSecurity.should.be.type('function');
15 | });
16 |
17 | describe('defaultOption param', function() {
18 | it('is accepted as the third param', function() {
19 | new BasicAuthSecurity(username, password, {});
20 | });
21 |
22 | it('is used in addOptions', function() {
23 | var options = {};
24 | var defaultOptions = { foo: 3 };
25 | var instance = new BasicAuthSecurity(username, password, defaultOptions);
26 | instance.addOptions(options);
27 | options.should.have.property("foo", 3);
28 | });
29 | });
30 | });
31 |
--------------------------------------------------------------------------------
/src/parser/soap/header.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var SOAPElement = require('./soapElement');
9 | var helper = require('../helper');
10 |
11 | /**
12 | * *
14 | * *
16 | *
17 | */
18 | class Header extends SOAPElement {
19 | constructor(nsName, attrs, options) {
20 | super(nsName, attrs, options);
21 | this.fault = null;
22 | }
23 |
24 | addChild(child) {
25 | if (child.name === 'headerfault') {
26 | this.fault = child;
27 | }
28 | }
29 | }
30 |
31 | Header.elementName = 'header';
32 | Header.allowedChildren = ['documentation', 'headerFault'];
33 |
34 | module.exports = Header;
35 |
--------------------------------------------------------------------------------
/test/request-response-samples/readMetadata__should_respect_xsi_type_attribute/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 | Opportunity
10 |
11 | Some Process
12 | true
13 |
14 |
15 | Another Process
16 | false
17 |
18 | false
19 | true
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/test/request-response-samples/UpdateProfile__correct_namespaces_for_elements_with_base_ignorednamespaces/request.json:
--------------------------------------------------------------------------------
1 | {
2 | "UpdateProfileRequest": {
3 | "Profile": {
4 | "IDs": {
5 | "UniqueID": [
6 | {
7 | "$attributes": {
8 | "source": "TESTSOURCE"
9 | },
10 | "$value": 100
11 | }
12 | ]
13 | },
14 | "Addresses": {
15 | "NameAddress": [
16 | {
17 | "AddressLine": "Another Address"
18 | },
19 | {
20 | "AddressLine": "My Address"
21 | }
22 | ]
23 | },
24 | "Phones": {
25 | "NamePhone": [
26 | {
27 | "$attributes": {
28 | "primary": true
29 | },
30 | "PhoneData": {
31 | "PhoneNumber": "123"
32 | }
33 | },
34 | {
35 | "$attributes": {
36 | "primary": false
37 | },
38 | "PhoneData": {
39 | "PhoneNumber": "456"
40 | }
41 | }
42 | ]
43 | }
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/test/soap-failure.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 | env:Sender
9 |
10 | rpc:BadArguments
11 |
12 |
13 |
14 | Processing error
15 | Chyba zpracování
16 |
17 | http://test:80/test
18 | http://test.com/test
19 |
20 |
22 | Name does not match card number
23 | 999
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/test/wsdl/unsupported/ImportSample.xsd:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/test/request-response-samples/UpdateProfile__correct_namespaces_in_sequence_with_imports/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 100
9 |
10 |
11 |
12 |
13 | 1
14 |
15 |
16 |
17 |
18 | 2
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/parser/xsd/group.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016,2017. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var XSDElement = require('./xsdElement');
9 |
10 | class Group extends XSDElement {
11 | constructor(nsName, attrs, options) {
12 | super(nsName, attrs, options);
13 | }
14 |
15 | postProcess(defintions) {
16 | var schemas = defintions.schemas;
17 | if (this.$ref) {
18 | this.ref = this.resolveSchemaObject(schemas, 'group', this.$ref);
19 | }
20 | }
21 |
22 | describe(definitions) {
23 | if (this.descriptor) return this.descriptor;
24 | if (this.ref) {
25 | this.descriptor = this.ref.describe(definitions);
26 | } else {
27 | this.descriptor = this.describeChildren(definitions);
28 | }
29 | return this.descriptor;
30 | }
31 | }
32 |
33 | Group.elementName = 'group';
34 | Group.allowedChildren = ['annotation', 'all', 'choice', 'sequence'];
35 |
36 | module.exports = Group;
37 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__ref_element_should_has_correct_namespace/main.xsd:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/test/request-response-samples/RequestHeaders__propogate_basic_security_no_token_created/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 2014-10-12T01:02:03Z
7 | 2014-10-12T01:12:03Z
8 |
9 |
10 | basicuser
11 | basicpass
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/test/request-response-samples/login__error_returned_should_contain_root_Json_on_fault/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | soapenv:Server.userException
6 | You have entered an invalid email address or password. Please try again.
7 |
8 |
9 | INVALID_LOGIN_CREDENTIALS
10 | You have entered an invalid email address or password. Please try again.
11 |
12 | partners-java10009.bos.netledger.com
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/test/request-response-samples/GetAccountXml__non_xmlns_attributes_should_be_returned/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 | 0
9 |
10 |
11 |
18 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/test/request-response-samples/update__complex_extension_with_array_attributes/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | WEBSERVICES_TSTDRV1081821_03262014105141171582141231_57da7cf
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/.github/stale.yml:
--------------------------------------------------------------------------------
1 | # Number of days of inactivity before an issue becomes stale
2 | daysUntilStale: 60
3 | # Number of days of inactivity before a stale issue is closed
4 | daysUntilClose: 14
5 | # Issues with these labels will never be considered stale
6 | exemptLabels:
7 | - pinned
8 | - security
9 | - critical
10 | - p1
11 | - major
12 | # Label to use when marking an issue as stale
13 | staleLabel: stale
14 | # Comment to post when marking an issue as stale. Set to `false` to disable
15 | markComment: >
16 | This issue has been automatically marked as stale because it has not had
17 | recent activity. It will be closed if no further activity occurs. Thank you
18 | for your contributions.
19 | # Comment to post when closing a stale issue. Set to `false` to disable
20 | closeComment: >
21 | This issue has been closed due to continued inactivity. Thank you for your understanding.
22 | If you believe this to be in error, please contact one of the code owners,
23 | listed in the [`CODEOWNERS`](https://github.com/loopbackio/strong-soap/blob/master/CODEOWNERS) file at the top-level of this repository.
24 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_use_defined_xml_key/common.xsd:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/test/request-response-samples/Dummy__should_handle_xml_date_time_dateTime/name.xsd:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/test/request-response-samples/update__complex_extension_fields_in_parent_without_explicit_namespace/response.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | WEBSERVICES_TSTDRV1081821_03262014105141171582141231_57da7cf
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/test/request-response-samples/getAvailability__should_not_fail_without_children/imported.wsdl:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/test/request-response-samples/update__complex_extension_fields_in_parent_without_explicit_namespace/request.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | officephone
9 |
10 | Allister
11 | Sullivan
12 | 800-555-2819
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/security/NTLMSecurity.js:
--------------------------------------------------------------------------------
1 | // Copyright IBM Corp. 2016. All Rights Reserved.
2 | // Node module: strong-soap
3 | // This file is licensed under the MIT License.
4 | // License text available at https://opensource.org/licenses/MIT
5 |
6 | 'use strict';
7 |
8 | var _ = require('lodash');
9 | var Security = require('./security');
10 |
11 | class NTLMSecurity extends Security {
12 | constructor(username, password, domain, workstation, wsdlAuthRequired, options) {
13 | super(options);
14 | this.username = username;
15 | this.password = password;
16 | this.domain = domain;
17 | this.workstation = workstation;
18 | //set this to true/false if remote WSDL retrieval needs NTLM authentication or not
19 | this.wsdlAuthRequired = wsdlAuthRequired;
20 | }
21 |
22 | addOptions(options) {
23 | options.username = this.username;
24 | options.password = this.password;
25 | options.domain = this.domain;
26 | options.workstation = this.workstation;
27 | options.wsdlAuthRequired = this.wsdlAuthRequired;
28 | _.merge(options, this.options);
29 | }
30 | }
31 |
32 |
33 | module.exports = NTLMSecurity;
34 |
--------------------------------------------------------------------------------
/test/client-attachment-test.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var fs = require('fs'),
4 | http = require('..').http,
5 | //http = require('http'),
6 | //WSDL = soap.WSDL,
7 | assert = require('assert'),
8 | QName = require('..').QName;
9 |
10 | describe('SOAP Http attachment', function() {
11 | it('attachment null', function(done){
12 | var httpClient = new http({})
13 | const option = httpClient.buildRequest('http://localhost:1', {}, {}, {});
14 | assert.ok(!option.multipart)
15 | assert.ok(option.body)
16 | done()
17 | })
18 |
19 | it('attachment length 1', function(done){
20 | var httpClient = new http({})
21 | const optionEx = {
22 | attachments:[{
23 | name: 'teste',
24 | contentId: '123445555',
25 | mimetype: 'jpeg',
26 | body: 'stream file'
27 | }]
28 | }
29 | const option = httpClient.buildRequest('http://localhost:1', {}, {}, optionEx);
30 | assert.ok(option.multipart.length > 0)
31 | assert.ok(!option.body)
32 | done()
33 | })
34 | })
--------------------------------------------------------------------------------