├── .eslintrc.json
├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
├── esm
├── index.d.ts
├── index.js
├── index.js.map
├── wsdl-to-ts.d.ts
├── wsdl-to-ts.js
└── wsdl-to-ts.js.map
├── lib
├── index.js
├── index.js.map
├── wsdl-to-ts.js
└── wsdl-to-ts.js.map
├── package-lock.json
├── package.json
├── src
├── index.ts
└── wsdl-to-ts.ts
├── test
└── index.js
├── tsconfig.json
└── tslint.json
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["eslint:recommended"],
3 | "parserOptions": {
4 | "ecmaVersion": 2016
5 | },
6 | "globals": {
7 | "require": true,
8 | "Promise": true
9 | },
10 | "env": {
11 | "es6": true,
12 | "node": true
13 | },
14 | "rules": {
15 | "arrow-parens": "warn",
16 | "no-console": "off",
17 | "semi": "error"
18 | }
19 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Runtime data
9 | pids
10 | *.pid
11 | *.seed
12 | *.pid.lock
13 |
14 | # Directory for instrumented libs generated by jscoverage/JSCover
15 | lib-cov
16 |
17 | # Coverage directory used by tools like istanbul
18 | coverage
19 |
20 | # nyc test coverage
21 | .nyc_output
22 |
23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
24 | .grunt
25 |
26 | # Bower dependency directory (https://bower.io/)
27 | bower_components
28 |
29 | # node-waf configuration
30 | .lock-wscript
31 |
32 | # Compiled binary addons (http://nodejs.org/api/addons.html)
33 | build/Release
34 |
35 | # Dependency directories
36 | node_modules/
37 | jspm_packages/
38 |
39 | # Typescript v1 declaration files
40 | typings/
41 |
42 | # Optional npm cache directory
43 | .npm
44 |
45 | # Optional eslint cache
46 | .eslintcache
47 |
48 | # Optional REPL history
49 | .node_repl_history
50 |
51 | # Output of 'npm pack'
52 | *.tgz
53 |
54 | # Yarn Integrity file
55 | .yarn-integrity
56 |
57 | # dotenv environment variables file
58 | .env
59 |
60 | # other
61 | *~
62 | /test/results
63 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: node_js
3 | node_js:
4 | - "6"
5 | - "8"
6 | - "10"
7 | env:
8 | global:
9 | - BUILD_TIMEOUT=10000
10 | install:
11 | - npm ci --ignore-scripts
12 | before_install:
13 | - npm install --global npm@latest
14 | script:
15 | - npm run ci
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2017-2018 Tim Lundqvist
2 |
3 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
4 |
5 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # wsdl-to-ts
2 |
3 |
4 |
6 |
7 |
8 |
10 |
11 |
12 |
14 |
15 |
16 |
18 |
19 |
20 | A CLI tool and library for nodejs to generate TypeScript typings from a WSDL service.
21 |
22 | ## Installation
23 | Installation is done either through [npm](https://npmjs.com) or [yarn](https://yarnpkg.com).
24 |
25 | ### Installation for Command Line usage
26 |
27 | To install CLI tool globally run one of the following command as root or sudo:
28 | ```sh
29 | $ npm install -g wsdl-to-ts
30 | $ yarn global add wsdl-to-ts
31 | ```
32 |
33 | To install CLI tool for the current user one of these commands may be used (which places working directory at users `$HOME`):
34 | ```sh
35 | $ cd && npm install wsdl-to-ts
36 | $ cd && yarn add wsdl-to-ts
37 | ```
38 |
39 | ### Installation for Library usage
40 |
41 | To install a library as a dependency to your current npm project you enter your project directory as the current directory and run one of the following commands:
42 | ```sh
43 | $ npm install --save wsdl-to-ts
44 | $ yarn add wsdl-to-ts
45 | ```
46 |
47 | ## Usage
48 |
49 | If any more documentation is needed for library usage, other than the IDE completions; feel free to open an [issue](https://github.com/TimLuq/wsdl-to-ts/issues). Also take a look at the [type definitions](https://github.com/TimLuq/wsdl-to-ts/blob/master/esm/wsdl-to-ts.d.ts)
50 |
51 | ### Usage for Command Line
52 |
53 | Check version:
54 | ```sh
55 | $ wsdl-to-ts --version
56 | ```
57 |
58 | Generate typings for a WSDL located on an URI at the default output directory (multiple may be done at the same time by listing more on the command line):
59 | ```sh
60 | $ cd /tmp
61 | $ wsdl-to-ts "https://www.w3schools.com/xml/tempconvert.asmx?WSDL"
62 | $ ls wsdl/**/*
63 | wsdl/TempConvert/TempConvertSoap12.ts wsdl/TempConvert/TempConvertSoap.ts
64 | ```
65 |
66 | The output directory may be changed to any directory using the `--outdir` flag.
67 | ```sh
68 | $ wsdl-to-ts --outdir="./some/other/dir" "https://www.w3schools.com/xml/tempconvert.asmx?WSDL"
69 | ```
70 |
71 | #### CLI flags
72 | * `--version` - Display which version you are currently executing.
73 | * `--outdir=SOME/DIR/PATH` - Sets the path which will contain the type definitions.
74 | * `--tslint=RULE0,RULE1,RULE2` - Enable specified rules in all generated files.
75 | * `--tslint=false` - Disables tslint in all generated files.
76 | * `--tslint-disable=RULE0,RULE1,RULE2` - Disable specified rules in all generated files.
77 |
--------------------------------------------------------------------------------
/esm/index.d.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | export {};
3 |
--------------------------------------------------------------------------------
/esm/index.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | "use strict";
3 | import { rename, writeFile } from "fs";
4 | import * as minimist from "minimist";
5 | import * as mkdirp from "mkdirp";
6 | import { mergeTypedWsdl, outputTypedWsdl, wsdl2ts } from "./wsdl-to-ts";
7 | const opts = {};
8 | const config = { outdir: "./wsdl", files: [], tslintDisable: ["max-line-length", "no-empty-interface"], tslintEnable: [] };
9 | const args = minimist(process.argv.slice(2));
10 | if (args.help) {
11 | // TODO
12 | }
13 | if (args.version) {
14 | /* tslint:disable:no-var-requires */
15 | const pack = require("../package.json");
16 | console.log("%s %s", "wsdl-to-ts", pack.version);
17 | process.exit(0);
18 | throw new Error("Exited");
19 | }
20 | if (args.hasOwnProperty("tslint")) {
21 | if (args.tslint === "true") {
22 | config.tslintEnable = null;
23 | }
24 | else if (args.tslint === "false" || args.tslint === "disable") {
25 | config.tslintDisable = null;
26 | }
27 | else {
28 | config.tslintEnable = args.tslint ? args.tslint.split(",") : null;
29 | }
30 | }
31 | if (args.hasOwnProperty("tslint-disable")) {
32 | config.tslintDisable = args["tslint-disable"] ? args["tslint-disable"].split(",") : null;
33 | }
34 | if (args.outdir || args.outDir) {
35 | config.outdir = args.outdir || args.outDir;
36 | }
37 | if (args.hasOwnProperty("quote")) {
38 | if (args.quote === "false" || args.quote === "disable" || args.quote === "0") {
39 | opts.quoteProperties = false;
40 | }
41 | else if (args.quote === "true" || args.quote === "1" || !args.quote) {
42 | opts.quoteProperties = true;
43 | }
44 | }
45 | if (args._) {
46 | config.files.push.apply(config.files, args._);
47 | }
48 | if (config.files.length === 0) {
49 | console.error("No files given");
50 | process.exit(1);
51 | throw new Error("No files");
52 | }
53 | function mkdirpp(dir, mode) {
54 | return new Promise((resolve, reject) => {
55 | mkdirp(dir, mode || 0o755, (err, made) => {
56 | if (err) {
57 | reject(err);
58 | }
59 | else {
60 | resolve(made);
61 | }
62 | });
63 | });
64 | }
65 | Promise.all(config.files.map((a) => wsdl2ts(a, opts))).
66 | then((xs) => mergeTypedWsdl.apply(undefined, xs)).
67 | then(outputTypedWsdl).
68 | then((xs) => {
69 | return Promise.all(xs.map((x) => {
70 | console.log("-- %s --", x.file);
71 | console.log("%s", x.data.join("\n\n"));
72 | const file = config.outdir + "/" + x.file;
73 | const dir = file.replace(/\/[^/]+$/, "");
74 | return mkdirpp(dir).then(() => {
75 | return new Promise((resolve, reject) => {
76 | const tsfile = file + ".ts.tmp";
77 | const fileData = [];
78 | if (config.tslintEnable === null) {
79 | fileData.push("/* tslint:enable */");
80 | }
81 | if (config.tslintDisable === null) {
82 | fileData.push("/* tslint:disable */");
83 | }
84 | else if (config.tslintDisable.length !== 0) {
85 | fileData.push("/* tslint:disable:" + config.tslintDisable.join(" ") + " */");
86 | }
87 | if (config.tslintEnable && config.tslintEnable.length !== 0) {
88 | fileData.push("/* tslint:enable:" + config.tslintEnable.join(" ") + " */");
89 | }
90 | fileData.push(x.data.join("\n\n"));
91 | fileData.push("");
92 | writeFile(tsfile, fileData.join("\n"), (err) => {
93 | if (err) {
94 | reject(err);
95 | }
96 | else {
97 | resolve(tsfile);
98 | }
99 | });
100 | });
101 | });
102 | }));
103 | }).
104 | then((files) => Promise.all(files.map((file) => {
105 | return new Promise((resolve, reject) => {
106 | const realFile = file.replace(/\.[^.]+$/, "");
107 | rename(file, realFile, (err) => {
108 | if (err) {
109 | reject(err);
110 | }
111 | else {
112 | resolve(realFile);
113 | }
114 | });
115 | });
116 | }))).
117 | catch((err) => {
118 | console.error(err);
119 | process.exitCode = 3;
120 | });
121 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/esm/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
--------------------------------------------------------------------------------
/esm/wsdl-to-ts.d.ts:
--------------------------------------------------------------------------------
1 | import * as soap from "soap";
2 | export declare const nsEnums: {
3 | [k: string]: boolean;
4 | };
5 | interface ITwoDown {
6 | [k: string]: {
7 | [k: string]: T;
8 | };
9 | }
10 | export interface IInterfaceOptions {
11 | quoteProperties?: boolean;
12 | }
13 | export interface ITypedWsdl {
14 | client: soap.Client | null;
15 | files: ITwoDown;
16 | methods: ITwoDown<{
17 | [k: string]: string;
18 | }>;
19 | types: ITwoDown<{
20 | [k: string]: string;
21 | }>;
22 | namespaces: ITwoDown<{
23 | [k: string]: {
24 | [k: string]: string;
25 | };
26 | }>;
27 | }
28 | export declare class TypeCollector {
29 | readonly ns: string;
30 | readonly registered: {
31 | [k: string]: string;
32 | };
33 | readonly collected: {
34 | [k: string]: string;
35 | };
36 | constructor(ns: string);
37 | registerCollected(): this;
38 | }
39 | export declare function wsdl2ts(wsdlUri: string, opts?: IInterfaceOptions): Promise;
40 | export declare function mergeTypedWsdl(a: ITypedWsdl, ...bs: ITypedWsdl[]): ITypedWsdl;
41 | export declare function outputTypedWsdl(a: ITypedWsdl): Array<{
42 | file: string;
43 | data: string[];
44 | }>;
45 | export {};
46 |
--------------------------------------------------------------------------------
/esm/wsdl-to-ts.js:
--------------------------------------------------------------------------------
1 | import * as soap from "soap";
2 | // import { diffLines } from "diff";
3 | export const nsEnums = {};
4 | export class TypeCollector {
5 | constructor(ns) {
6 | this.ns = ns;
7 | this.registered = {};
8 | this.collected = {};
9 | }
10 | registerCollected() {
11 | for (const k of Object.keys(this.collected)) {
12 | if (this.collected[k]) {
13 | this.registered[k] = this.collected[k];
14 | }
15 | else {
16 | delete this.registered[k];
17 | }
18 | delete this.collected[k];
19 | }
20 | return this;
21 | }
22 | }
23 | function wsdlTypeToInterfaceObj(obj, typeCollector) {
24 | const r = {};
25 | for (const k of Object.keys(obj)) {
26 | if (k === "targetNSAlias" || k === "targetNamespace") {
27 | continue;
28 | }
29 | const isArray = k.endsWith("[]");
30 | const k2 = isArray ? k.substring(0, k.length - 2) : k;
31 | const v = obj[k];
32 | const t = typeof v;
33 | if (t === "string") {
34 | const vstr = v;
35 | const [typeName, superTypeClass, typeData] = vstr.indexOf("|") === -1 ? [vstr, vstr, undefined] : vstr.split("|");
36 | const typeFullName = obj.targetNamespace ? obj.targetNamespace + "#" + typeName : typeName;
37 | let typeClass = superTypeClass === "integer" ? "number" : superTypeClass;
38 | if (nsEnums[typeFullName] || typeData) {
39 | const filter = nsEnums[typeFullName] ?
40 | () => true :
41 | (x) => x !== "length" && x !== "pattern" && x !== "maxLength" && x !== "minLength";
42 | const tdsplit = typeData.split(",").filter(filter);
43 | if (tdsplit.length) {
44 | typeClass = "\"" + tdsplit.join("\" | \"") + "\"";
45 | }
46 | }
47 | if (isArray) {
48 | if (/^[A-Za-z0-9.]+$/.test(typeClass)) {
49 | typeClass += "[]";
50 | }
51 | else {
52 | typeClass = "Array<" + typeClass + ">";
53 | }
54 | }
55 | r[k2] = "/** " + typeFullName + "(" + typeData + ") */ " + typeClass + ";";
56 | }
57 | else {
58 | const to = wsdlTypeToInterfaceObj(v, typeCollector);
59 | let tr;
60 | if (isArray) {
61 | let s = wsdlTypeToInterfaceString(to);
62 | if (typeCollector && typeCollector.ns) {
63 | if (typeCollector.registered.hasOwnProperty(k2) && typeCollector.registered[k2] === s) {
64 | s = typeCollector.ns + ".I" + k2 + ";";
65 | }
66 | else if (typeCollector.collected.hasOwnProperty(k2)) {
67 | if (typeCollector.collected[k2] !== s) {
68 | typeCollector.collected[k2] = null;
69 | }
70 | }
71 | else {
72 | typeCollector.collected[k2] = s;
73 | }
74 | }
75 | s = s.replace(/\n/g, "\n ");
76 | if (s.startsWith("/**")) {
77 | const i = s.indexOf("*/") + 2;
78 | s = s.substring(0, i) + " Array<" + s.substring(i).trim().replace(/;$/, "") + ">;";
79 | }
80 | else {
81 | s = s.trim().replace(/;$/, "");
82 | if (/^[A-Za-z0-9.]+$/.test(s)) {
83 | s += "[];";
84 | }
85 | else {
86 | s = "Array<" + s + ">;";
87 | }
88 | }
89 | tr = s;
90 | }
91 | else {
92 | tr = to;
93 | if (typeCollector && typeCollector.ns) {
94 | const ss = wsdlTypeToInterfaceString(to);
95 | if (typeCollector.registered.hasOwnProperty(k2) && typeCollector.registered[k2] === ss) {
96 | tr = typeCollector.ns + ".I" + k2 + ";";
97 | }
98 | else if (typeCollector.collected.hasOwnProperty(k2)) {
99 | if (typeCollector.collected[k2] !== ss) {
100 | typeCollector.collected[k2] = null;
101 | }
102 | }
103 | else {
104 | typeCollector.collected[k2] = ss;
105 | }
106 | }
107 | }
108 | r[k2] = tr;
109 | }
110 | }
111 | // console.log("wsdlTypeToInterfaceObj:", r);
112 | return r;
113 | }
114 | function wsdlTypeToInterfaceString(d, opts = {}) {
115 | const r = [];
116 | for (const k of Object.keys(d)) {
117 | const t = typeof d[k];
118 | let p = k;
119 | if (opts.quoteProperties || (opts.quoteProperties === undefined && !/^[A-Za-z][A-Za-z0-9_-]*$/.test(k))) {
120 | p = JSON.stringify(k);
121 | }
122 | if (t === "string") {
123 | const v = d[k];
124 | if (v.startsWith("/**")) {
125 | const i = v.indexOf("*/") + 2;
126 | r.push(v.substring(0, i));
127 | // for types like "xsd:string" only the "string" part is used
128 | const rawtype = v.substring(i).trim();
129 | const colon = rawtype.indexOf(":");
130 | if (colon !== -1) {
131 | r.push(p + ": " + rawtype.substring(colon + 1));
132 | }
133 | else {
134 | r.push(p + ": " + rawtype);
135 | }
136 | }
137 | else {
138 | r.push(p + ": " + v);
139 | }
140 | }
141 | else {
142 | r.push(p + ": " + wsdlTypeToInterfaceString(d[k], opts).replace(/\n/g, "\n ") + ";");
143 | }
144 | }
145 | if (r.length === 0) {
146 | return "{}";
147 | }
148 | return "{\n " + r.join("\n ") + "\n}";
149 | }
150 | function wsdlTypeToInterface(obj, typeCollector, opts) {
151 | return wsdlTypeToInterfaceString(wsdlTypeToInterfaceObj(obj, typeCollector), opts);
152 | }
153 | export function wsdl2ts(wsdlUri, opts) {
154 | return new Promise((resolve, reject) => {
155 | soap.createClient(wsdlUri, {}, (err, client) => {
156 | if (err) {
157 | reject(err);
158 | }
159 | else {
160 | resolve(client);
161 | }
162 | });
163 | }).then((client) => {
164 | const r = {
165 | client,
166 | files: {},
167 | methods: {},
168 | namespaces: {},
169 | types: {},
170 | };
171 | const d = client.describe();
172 | for (const service of Object.keys(d)) {
173 | for (const port of Object.keys(d[service])) {
174 | const collector = new TypeCollector(port + "Types");
175 | // console.log("-- %s.%s", service, port);
176 | if (!r.types[service]) {
177 | r.types[service] = {};
178 | r.methods[service] = {};
179 | r.files[service] = {};
180 | r.namespaces[service] = {};
181 | }
182 | if (!r.types[service][port]) {
183 | r.types[service][port] = {};
184 | r.methods[service][port] = {};
185 | r.files[service][port] = service + "/" + port;
186 | r.namespaces[service][port] = {};
187 | }
188 | for (let maxi = 0; maxi < 32; maxi++) {
189 | for (const method of Object.keys(d[service][port])) {
190 | // console.log("---- %s", method);
191 | wsdlTypeToInterface(d[service][port][method].input || {}, collector, opts);
192 | wsdlTypeToInterface(d[service][port][method].output || {}, collector, opts);
193 | }
194 | const reg = cloneObj(collector.registered);
195 | collector.registerCollected();
196 | const regKeys0 = Object.keys(collector.registered);
197 | const regKeys1 = Object.keys(reg);
198 | if (regKeys0.length === regKeys1.length) {
199 | let noChange = true;
200 | for (const rk of regKeys0) {
201 | if (collector.registered[rk] !== reg[rk]) {
202 | noChange = false;
203 | break;
204 | }
205 | }
206 | if (noChange) {
207 | break;
208 | }
209 | }
210 | if (maxi === 31) {
211 | console.warn("wsdl-to-ts: Aborted nested interface changes");
212 | }
213 | }
214 | const collectedKeys = Object.keys(collector.registered);
215 | if (collectedKeys.length) {
216 | const ns = r.namespaces[service][port][collector.ns] = {};
217 | for (const k of collectedKeys) {
218 | ns[k] = "export interface I" + k + " " + collector.registered[k];
219 | }
220 | }
221 | for (const method of Object.keys(d[service][port])) {
222 | r.types[service][port]["I" + method + "Input"] =
223 | wsdlTypeToInterface(d[service][port][method].input || {}, collector, opts);
224 | r.types[service][port]["I" + method + "Output"] =
225 | wsdlTypeToInterface(d[service][port][method].output || {}, collector, opts);
226 | r.methods[service][port][method] =
227 | "(input: I" + method + "Input, " +
228 | "cb: (err: any | null," +
229 | " result: I" + method + "Output," +
230 | " raw: string, " +
231 | " soapHeader: {[k: string]: any; }) => any, " +
232 | "options?: any, " +
233 | "extraHeaders?: any" +
234 | ") => void";
235 | }
236 | }
237 | }
238 | return r;
239 | });
240 | }
241 | function cloneObj(a) {
242 | const b = {};
243 | for (const k of Object.keys(a)) {
244 | const t = typeof a[k];
245 | b[k] = t === "object" ?
246 | Array.isArray(a[k]) ? a[k].slice() : cloneObj(a[k]) : a[k];
247 | }
248 | return b;
249 | }
250 | export function mergeTypedWsdl(a, ...bs) {
251 | const x = {
252 | client: null,
253 | files: cloneObj(a.files),
254 | methods: cloneObj(a.methods),
255 | namespaces: cloneObj(a.namespaces),
256 | types: cloneObj(a.types),
257 | };
258 | for (const b of bs) {
259 | for (const service of Object.keys(b.files)) {
260 | if (!x.files.hasOwnProperty(service)) {
261 | x.files[service] = cloneObj(b.files[service]);
262 | x.methods[service] = cloneObj(b.methods[service]);
263 | x.types[service] = cloneObj(b.types[service]);
264 | x.namespaces[service] = cloneObj(b.namespaces[service]);
265 | }
266 | else {
267 | for (const port of Object.keys(b.files[service])) {
268 | if (!x.files[service].hasOwnProperty(port)) {
269 | x.files[service][port] = b.files[service][port];
270 | x.methods[service][port] = cloneObj(b.methods[service][port]);
271 | x.types[service][port] = cloneObj(b.types[service][port]);
272 | x.namespaces[service][port] = cloneObj(b.namespaces[service][port]);
273 | }
274 | else {
275 | x.files[service][port] = b.files[service][port];
276 | for (const method of Object.keys(b.methods[service][port])) {
277 | x.methods[service][port][method] = b.methods[service][port][method];
278 | }
279 | for (const type of Object.keys(b.types[service][port])) {
280 | x.types[service][port][type] = b.types[service][port][type];
281 | }
282 | for (const ns of Object.keys(b.namespaces[service][port])) {
283 | if (!x.namespaces[service][port].hasOwnProperty(ns)) {
284 | x.namespaces[service][port][ns] = cloneObj(b.namespaces[service][port][ns]);
285 | }
286 | else {
287 | for (const nsi of Object.keys(b.namespaces[service][port][ns])) {
288 | x.namespaces[service][port][ns][nsi] = b.namespaces[service][port][ns][nsi];
289 | }
290 | }
291 | }
292 | }
293 | }
294 | }
295 | }
296 | }
297 | return x;
298 | }
299 | export function outputTypedWsdl(a) {
300 | const r = [];
301 | for (const service of Object.keys(a.files)) {
302 | for (const port of Object.keys(a.files[service])) {
303 | const d = { file: a.files[service][port], data: [] };
304 | if (a.types[service] && a.types[service][port]) {
305 | for (const type of Object.keys(a.types[service][port])) {
306 | d.data.push("export interface " + type + " " + a.types[service][port][type]);
307 | }
308 | }
309 | if (a.methods[service] && a.methods[service][port]) {
310 | const ms = [];
311 | for (const method of Object.keys(a.methods[service][port])) {
312 | ms.push(method + ": " + a.methods[service][port][method] + ";");
313 | }
314 | if (ms.length) {
315 | d.data.push("export interface I" + port + "Soap {\n " + ms.join("\n ") + "\n}");
316 | }
317 | }
318 | if (a.namespaces[service] && a.namespaces[service][port]) {
319 | for (const ns of Object.keys(a.namespaces[service][port])) {
320 | const ms = [];
321 | for (const nsi of Object.keys(a.namespaces[service][port][ns])) {
322 | ms.push(a.namespaces[service][port][ns][nsi].replace(/\n/g, "\n "));
323 | }
324 | if (ms.length) {
325 | d.data.push("export namespace " + ns + " {\n " + ms.join("\n ") + "\n}");
326 | }
327 | }
328 | }
329 | r.push(d);
330 | }
331 | }
332 | return r;
333 | }
334 | //# sourceMappingURL=wsdl-to-ts.js.map
--------------------------------------------------------------------------------
/esm/wsdl-to-ts.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"wsdl-to-ts.js","sourceRoot":"","sources":["../src/wsdl-to-ts.ts"],"names":[],"mappings":"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"}
--------------------------------------------------------------------------------
/lib/index.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | "use strict";
3 | Object.defineProperty(exports, "__esModule", { value: true });
4 | const fs_1 = require("fs");
5 | const minimist = require("minimist");
6 | const mkdirp = require("mkdirp");
7 | const wsdl_to_ts_1 = require("./wsdl-to-ts");
8 | const opts = {};
9 | const config = { outdir: "./wsdl", files: [], tslintDisable: ["max-line-length", "no-empty-interface"], tslintEnable: [] };
10 | const args = minimist(process.argv.slice(2));
11 | if (args.help) {
12 | // TODO
13 | }
14 | if (args.version) {
15 | /* tslint:disable:no-var-requires */
16 | const pack = require("../package.json");
17 | console.log("%s %s", "wsdl-to-ts", pack.version);
18 | process.exit(0);
19 | throw new Error("Exited");
20 | }
21 | if (args.hasOwnProperty("tslint")) {
22 | if (args.tslint === "true") {
23 | config.tslintEnable = null;
24 | }
25 | else if (args.tslint === "false" || args.tslint === "disable") {
26 | config.tslintDisable = null;
27 | }
28 | else {
29 | config.tslintEnable = args.tslint ? args.tslint.split(",") : null;
30 | }
31 | }
32 | if (args.hasOwnProperty("tslint-disable")) {
33 | config.tslintDisable = args["tslint-disable"] ? args["tslint-disable"].split(",") : null;
34 | }
35 | if (args.outdir || args.outDir) {
36 | config.outdir = args.outdir || args.outDir;
37 | }
38 | if (args.hasOwnProperty("quote")) {
39 | if (args.quote === "false" || args.quote === "disable" || args.quote === "0") {
40 | opts.quoteProperties = false;
41 | }
42 | else if (args.quote === "true" || args.quote === "1" || !args.quote) {
43 | opts.quoteProperties = true;
44 | }
45 | }
46 | if (args._) {
47 | config.files.push.apply(config.files, args._);
48 | }
49 | if (config.files.length === 0) {
50 | console.error("No files given");
51 | process.exit(1);
52 | throw new Error("No files");
53 | }
54 | function mkdirpp(dir, mode) {
55 | return new Promise((resolve, reject) => {
56 | mkdirp(dir, mode || 0o755, (err, made) => {
57 | if (err) {
58 | reject(err);
59 | }
60 | else {
61 | resolve(made);
62 | }
63 | });
64 | });
65 | }
66 | Promise.all(config.files.map((a) => wsdl_to_ts_1.wsdl2ts(a, opts))).
67 | then((xs) => wsdl_to_ts_1.mergeTypedWsdl.apply(undefined, xs)).
68 | then(wsdl_to_ts_1.outputTypedWsdl).
69 | then((xs) => {
70 | return Promise.all(xs.map((x) => {
71 | console.log("-- %s --", x.file);
72 | console.log("%s", x.data.join("\n\n"));
73 | const file = config.outdir + "/" + x.file;
74 | const dir = file.replace(/\/[^/]+$/, "");
75 | return mkdirpp(dir).then(() => {
76 | return new Promise((resolve, reject) => {
77 | const tsfile = file + ".ts.tmp";
78 | const fileData = [];
79 | if (config.tslintEnable === null) {
80 | fileData.push("/* tslint:enable */");
81 | }
82 | if (config.tslintDisable === null) {
83 | fileData.push("/* tslint:disable */");
84 | }
85 | else if (config.tslintDisable.length !== 0) {
86 | fileData.push("/* tslint:disable:" + config.tslintDisable.join(" ") + " */");
87 | }
88 | if (config.tslintEnable && config.tslintEnable.length !== 0) {
89 | fileData.push("/* tslint:enable:" + config.tslintEnable.join(" ") + " */");
90 | }
91 | fileData.push(x.data.join("\n\n"));
92 | fileData.push("");
93 | fs_1.writeFile(tsfile, fileData.join("\n"), (err) => {
94 | if (err) {
95 | reject(err);
96 | }
97 | else {
98 | resolve(tsfile);
99 | }
100 | });
101 | });
102 | });
103 | }));
104 | }).
105 | then((files) => Promise.all(files.map((file) => {
106 | return new Promise((resolve, reject) => {
107 | const realFile = file.replace(/\.[^.]+$/, "");
108 | fs_1.rename(file, realFile, (err) => {
109 | if (err) {
110 | reject(err);
111 | }
112 | else {
113 | resolve(realFile);
114 | }
115 | });
116 | });
117 | }))).
118 | catch((err) => {
119 | console.error(err);
120 | process.exitCode = 3;
121 | });
122 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/lib/index.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
--------------------------------------------------------------------------------
/lib/wsdl-to-ts.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | const soap = require("soap");
4 | // import { diffLines } from "diff";
5 | exports.nsEnums = {};
6 | class TypeCollector {
7 | constructor(ns) {
8 | this.ns = ns;
9 | this.registered = {};
10 | this.collected = {};
11 | }
12 | registerCollected() {
13 | for (const k of Object.keys(this.collected)) {
14 | if (this.collected[k]) {
15 | this.registered[k] = this.collected[k];
16 | }
17 | else {
18 | delete this.registered[k];
19 | }
20 | delete this.collected[k];
21 | }
22 | return this;
23 | }
24 | }
25 | exports.TypeCollector = TypeCollector;
26 | function wsdlTypeToInterfaceObj(obj, typeCollector) {
27 | const r = {};
28 | for (const k of Object.keys(obj)) {
29 | if (k === "targetNSAlias" || k === "targetNamespace") {
30 | continue;
31 | }
32 | const isArray = k.endsWith("[]");
33 | const k2 = isArray ? k.substring(0, k.length - 2) : k;
34 | const v = obj[k];
35 | const t = typeof v;
36 | if (t === "string") {
37 | const vstr = v;
38 | const [typeName, superTypeClass, typeData] = vstr.indexOf("|") === -1 ? [vstr, vstr, undefined] : vstr.split("|");
39 | const typeFullName = obj.targetNamespace ? obj.targetNamespace + "#" + typeName : typeName;
40 | let typeClass = superTypeClass === "integer" ? "number" : superTypeClass;
41 | if (exports.nsEnums[typeFullName] || typeData) {
42 | const filter = exports.nsEnums[typeFullName] ?
43 | () => true :
44 | (x) => x !== "length" && x !== "pattern" && x !== "maxLength" && x !== "minLength";
45 | const tdsplit = typeData.split(",").filter(filter);
46 | if (tdsplit.length) {
47 | typeClass = "\"" + tdsplit.join("\" | \"") + "\"";
48 | }
49 | }
50 | if (isArray) {
51 | if (/^[A-Za-z0-9.]+$/.test(typeClass)) {
52 | typeClass += "[]";
53 | }
54 | else {
55 | typeClass = "Array<" + typeClass + ">";
56 | }
57 | }
58 | r[k2] = "/** " + typeFullName + "(" + typeData + ") */ " + typeClass + ";";
59 | }
60 | else {
61 | const to = wsdlTypeToInterfaceObj(v, typeCollector);
62 | let tr;
63 | if (isArray) {
64 | let s = wsdlTypeToInterfaceString(to);
65 | if (typeCollector && typeCollector.ns) {
66 | if (typeCollector.registered.hasOwnProperty(k2) && typeCollector.registered[k2] === s) {
67 | s = typeCollector.ns + ".I" + k2 + ";";
68 | }
69 | else if (typeCollector.collected.hasOwnProperty(k2)) {
70 | if (typeCollector.collected[k2] !== s) {
71 | typeCollector.collected[k2] = null;
72 | }
73 | }
74 | else {
75 | typeCollector.collected[k2] = s;
76 | }
77 | }
78 | s = s.replace(/\n/g, "\n ");
79 | if (s.startsWith("/**")) {
80 | const i = s.indexOf("*/") + 2;
81 | s = s.substring(0, i) + " Array<" + s.substring(i).trim().replace(/;$/, "") + ">;";
82 | }
83 | else {
84 | s = s.trim().replace(/;$/, "");
85 | if (/^[A-Za-z0-9.]+$/.test(s)) {
86 | s += "[];";
87 | }
88 | else {
89 | s = "Array<" + s + ">;";
90 | }
91 | }
92 | tr = s;
93 | }
94 | else {
95 | tr = to;
96 | if (typeCollector && typeCollector.ns) {
97 | const ss = wsdlTypeToInterfaceString(to);
98 | if (typeCollector.registered.hasOwnProperty(k2) && typeCollector.registered[k2] === ss) {
99 | tr = typeCollector.ns + ".I" + k2 + ";";
100 | }
101 | else if (typeCollector.collected.hasOwnProperty(k2)) {
102 | if (typeCollector.collected[k2] !== ss) {
103 | typeCollector.collected[k2] = null;
104 | }
105 | }
106 | else {
107 | typeCollector.collected[k2] = ss;
108 | }
109 | }
110 | }
111 | r[k2] = tr;
112 | }
113 | }
114 | // console.log("wsdlTypeToInterfaceObj:", r);
115 | return r;
116 | }
117 | function wsdlTypeToInterfaceString(d, opts = {}) {
118 | const r = [];
119 | for (const k of Object.keys(d)) {
120 | const t = typeof d[k];
121 | let p = k;
122 | if (opts.quoteProperties || (opts.quoteProperties === undefined && !/^[A-Za-z][A-Za-z0-9_-]*$/.test(k))) {
123 | p = JSON.stringify(k);
124 | }
125 | if (t === "string") {
126 | const v = d[k];
127 | if (v.startsWith("/**")) {
128 | const i = v.indexOf("*/") + 2;
129 | r.push(v.substring(0, i));
130 | // for types like "xsd:string" only the "string" part is used
131 | const rawtype = v.substring(i).trim();
132 | const colon = rawtype.indexOf(":");
133 | if (colon !== -1) {
134 | r.push(p + ": " + rawtype.substring(colon + 1));
135 | }
136 | else {
137 | r.push(p + ": " + rawtype);
138 | }
139 | }
140 | else {
141 | r.push(p + ": " + v);
142 | }
143 | }
144 | else {
145 | r.push(p + ": " + wsdlTypeToInterfaceString(d[k], opts).replace(/\n/g, "\n ") + ";");
146 | }
147 | }
148 | if (r.length === 0) {
149 | return "{}";
150 | }
151 | return "{\n " + r.join("\n ") + "\n}";
152 | }
153 | function wsdlTypeToInterface(obj, typeCollector, opts) {
154 | return wsdlTypeToInterfaceString(wsdlTypeToInterfaceObj(obj, typeCollector), opts);
155 | }
156 | function wsdl2ts(wsdlUri, opts) {
157 | return new Promise((resolve, reject) => {
158 | soap.createClient(wsdlUri, {}, (err, client) => {
159 | if (err) {
160 | reject(err);
161 | }
162 | else {
163 | resolve(client);
164 | }
165 | });
166 | }).then((client) => {
167 | const r = {
168 | client,
169 | files: {},
170 | methods: {},
171 | namespaces: {},
172 | types: {},
173 | };
174 | const d = client.describe();
175 | for (const service of Object.keys(d)) {
176 | for (const port of Object.keys(d[service])) {
177 | const collector = new TypeCollector(port + "Types");
178 | // console.log("-- %s.%s", service, port);
179 | if (!r.types[service]) {
180 | r.types[service] = {};
181 | r.methods[service] = {};
182 | r.files[service] = {};
183 | r.namespaces[service] = {};
184 | }
185 | if (!r.types[service][port]) {
186 | r.types[service][port] = {};
187 | r.methods[service][port] = {};
188 | r.files[service][port] = service + "/" + port;
189 | r.namespaces[service][port] = {};
190 | }
191 | for (let maxi = 0; maxi < 32; maxi++) {
192 | for (const method of Object.keys(d[service][port])) {
193 | // console.log("---- %s", method);
194 | wsdlTypeToInterface(d[service][port][method].input || {}, collector, opts);
195 | wsdlTypeToInterface(d[service][port][method].output || {}, collector, opts);
196 | }
197 | const reg = cloneObj(collector.registered);
198 | collector.registerCollected();
199 | const regKeys0 = Object.keys(collector.registered);
200 | const regKeys1 = Object.keys(reg);
201 | if (regKeys0.length === regKeys1.length) {
202 | let noChange = true;
203 | for (const rk of regKeys0) {
204 | if (collector.registered[rk] !== reg[rk]) {
205 | noChange = false;
206 | break;
207 | }
208 | }
209 | if (noChange) {
210 | break;
211 | }
212 | }
213 | if (maxi === 31) {
214 | console.warn("wsdl-to-ts: Aborted nested interface changes");
215 | }
216 | }
217 | const collectedKeys = Object.keys(collector.registered);
218 | if (collectedKeys.length) {
219 | const ns = r.namespaces[service][port][collector.ns] = {};
220 | for (const k of collectedKeys) {
221 | ns[k] = "export interface I" + k + " " + collector.registered[k];
222 | }
223 | }
224 | for (const method of Object.keys(d[service][port])) {
225 | r.types[service][port]["I" + method + "Input"] =
226 | wsdlTypeToInterface(d[service][port][method].input || {}, collector, opts);
227 | r.types[service][port]["I" + method + "Output"] =
228 | wsdlTypeToInterface(d[service][port][method].output || {}, collector, opts);
229 | r.methods[service][port][method] =
230 | "(input: I" + method + "Input, " +
231 | "cb: (err: any | null," +
232 | " result: I" + method + "Output," +
233 | " raw: string, " +
234 | " soapHeader: {[k: string]: any; }) => any, " +
235 | "options?: any, " +
236 | "extraHeaders?: any" +
237 | ") => void";
238 | }
239 | }
240 | }
241 | return r;
242 | });
243 | }
244 | exports.wsdl2ts = wsdl2ts;
245 | function cloneObj(a) {
246 | const b = {};
247 | for (const k of Object.keys(a)) {
248 | const t = typeof a[k];
249 | b[k] = t === "object" ?
250 | Array.isArray(a[k]) ? a[k].slice() : cloneObj(a[k]) : a[k];
251 | }
252 | return b;
253 | }
254 | function mergeTypedWsdl(a, ...bs) {
255 | const x = {
256 | client: null,
257 | files: cloneObj(a.files),
258 | methods: cloneObj(a.methods),
259 | namespaces: cloneObj(a.namespaces),
260 | types: cloneObj(a.types),
261 | };
262 | for (const b of bs) {
263 | for (const service of Object.keys(b.files)) {
264 | if (!x.files.hasOwnProperty(service)) {
265 | x.files[service] = cloneObj(b.files[service]);
266 | x.methods[service] = cloneObj(b.methods[service]);
267 | x.types[service] = cloneObj(b.types[service]);
268 | x.namespaces[service] = cloneObj(b.namespaces[service]);
269 | }
270 | else {
271 | for (const port of Object.keys(b.files[service])) {
272 | if (!x.files[service].hasOwnProperty(port)) {
273 | x.files[service][port] = b.files[service][port];
274 | x.methods[service][port] = cloneObj(b.methods[service][port]);
275 | x.types[service][port] = cloneObj(b.types[service][port]);
276 | x.namespaces[service][port] = cloneObj(b.namespaces[service][port]);
277 | }
278 | else {
279 | x.files[service][port] = b.files[service][port];
280 | for (const method of Object.keys(b.methods[service][port])) {
281 | x.methods[service][port][method] = b.methods[service][port][method];
282 | }
283 | for (const type of Object.keys(b.types[service][port])) {
284 | x.types[service][port][type] = b.types[service][port][type];
285 | }
286 | for (const ns of Object.keys(b.namespaces[service][port])) {
287 | if (!x.namespaces[service][port].hasOwnProperty(ns)) {
288 | x.namespaces[service][port][ns] = cloneObj(b.namespaces[service][port][ns]);
289 | }
290 | else {
291 | for (const nsi of Object.keys(b.namespaces[service][port][ns])) {
292 | x.namespaces[service][port][ns][nsi] = b.namespaces[service][port][ns][nsi];
293 | }
294 | }
295 | }
296 | }
297 | }
298 | }
299 | }
300 | }
301 | return x;
302 | }
303 | exports.mergeTypedWsdl = mergeTypedWsdl;
304 | function outputTypedWsdl(a) {
305 | const r = [];
306 | for (const service of Object.keys(a.files)) {
307 | for (const port of Object.keys(a.files[service])) {
308 | const d = { file: a.files[service][port], data: [] };
309 | if (a.types[service] && a.types[service][port]) {
310 | for (const type of Object.keys(a.types[service][port])) {
311 | d.data.push("export interface " + type + " " + a.types[service][port][type]);
312 | }
313 | }
314 | if (a.methods[service] && a.methods[service][port]) {
315 | const ms = [];
316 | for (const method of Object.keys(a.methods[service][port])) {
317 | ms.push(method + ": " + a.methods[service][port][method] + ";");
318 | }
319 | if (ms.length) {
320 | d.data.push("export interface I" + port + "Soap {\n " + ms.join("\n ") + "\n}");
321 | }
322 | }
323 | if (a.namespaces[service] && a.namespaces[service][port]) {
324 | for (const ns of Object.keys(a.namespaces[service][port])) {
325 | const ms = [];
326 | for (const nsi of Object.keys(a.namespaces[service][port][ns])) {
327 | ms.push(a.namespaces[service][port][ns][nsi].replace(/\n/g, "\n "));
328 | }
329 | if (ms.length) {
330 | d.data.push("export namespace " + ns + " {\n " + ms.join("\n ") + "\n}");
331 | }
332 | }
333 | }
334 | r.push(d);
335 | }
336 | }
337 | return r;
338 | }
339 | exports.outputTypedWsdl = outputTypedWsdl;
340 | //# sourceMappingURL=wsdl-to-ts.js.map
--------------------------------------------------------------------------------
/lib/wsdl-to-ts.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"wsdl-to-ts.js","sourceRoot":"","sources":["../src/wsdl-to-ts.ts"],"names":[],"mappings":"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"}
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "wsdl-to-ts",
3 | "version": "0.2.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@types/bluebird": {
8 | "version": "3.5.23",
9 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/@types%2fbluebird/-/bluebird-3.5.23.tgz",
10 | "integrity": "sha512-xlehmc6RT+wMEhy9ZqeqmozVmuFzTfsaV2NlfFFWhigy7n6sjMbUUB+SZBWK78lZgWHA4DBAdQvQxUvcB8N1tw==",
11 | "dev": true
12 | },
13 | "@types/minimist": {
14 | "version": "1.2.0",
15 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/@types%2fminimist/-/minimist-1.2.0.tgz",
16 | "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=",
17 | "dev": true
18 | },
19 | "@types/mkdirp": {
20 | "version": "0.5.2",
21 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/@types%2fmkdirp/-/mkdirp-0.5.2.tgz",
22 | "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==",
23 | "dev": true,
24 | "requires": {
25 | "@types/node": "*"
26 | }
27 | },
28 | "@types/node": {
29 | "version": "10.5.3",
30 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/@types%2fnode/-/node-10.5.3.tgz",
31 | "integrity": "sha512-jQ1p+SyF/z8ygPxfSPKZKMWazlCgTBSyIaC1UCUvkLHDdxdmPQtQFk02X4WFM31Z1BKMAS3MSAK0cRP2c92n6Q==",
32 | "dev": true
33 | },
34 | "ajv": {
35 | "version": "5.5.2",
36 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/ajv/-/ajv-5.5.2.tgz",
37 | "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
38 | "requires": {
39 | "co": "^4.6.0",
40 | "fast-deep-equal": "^1.0.0",
41 | "fast-json-stable-stringify": "^2.0.0",
42 | "json-schema-traverse": "^0.3.0"
43 | }
44 | },
45 | "ansi-regex": {
46 | "version": "2.1.1",
47 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/ansi-regex/-/ansi-regex-2.1.1.tgz",
48 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
49 | "dev": true
50 | },
51 | "ansi-styles": {
52 | "version": "2.2.1",
53 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/ansi-styles/-/ansi-styles-2.2.1.tgz",
54 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
55 | "dev": true
56 | },
57 | "argparse": {
58 | "version": "1.0.10",
59 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/argparse/-/argparse-1.0.10.tgz",
60 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
61 | "dev": true,
62 | "requires": {
63 | "sprintf-js": "~1.0.2"
64 | }
65 | },
66 | "asn1": {
67 | "version": "0.2.3",
68 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/asn1/-/asn1-0.2.3.tgz",
69 | "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
70 | },
71 | "assert-plus": {
72 | "version": "1.0.0",
73 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/assert-plus/-/assert-plus-1.0.0.tgz",
74 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
75 | },
76 | "asynckit": {
77 | "version": "0.4.0",
78 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/asynckit/-/asynckit-0.4.0.tgz",
79 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
80 | },
81 | "aws-sign2": {
82 | "version": "0.7.0",
83 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/aws-sign2/-/aws-sign2-0.7.0.tgz",
84 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
85 | },
86 | "aws4": {
87 | "version": "1.7.0",
88 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/aws4/-/aws4-1.7.0.tgz",
89 | "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w=="
90 | },
91 | "babel-code-frame": {
92 | "version": "6.26.0",
93 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
94 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
95 | "dev": true,
96 | "requires": {
97 | "chalk": "^1.1.3",
98 | "esutils": "^2.0.2",
99 | "js-tokens": "^3.0.2"
100 | },
101 | "dependencies": {
102 | "chalk": {
103 | "version": "1.1.3",
104 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/chalk/-/chalk-1.1.3.tgz",
105 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
106 | "dev": true,
107 | "requires": {
108 | "ansi-styles": "^2.2.1",
109 | "escape-string-regexp": "^1.0.2",
110 | "has-ansi": "^2.0.0",
111 | "strip-ansi": "^3.0.0",
112 | "supports-color": "^2.0.0"
113 | }
114 | }
115 | }
116 | },
117 | "balanced-match": {
118 | "version": "1.0.0",
119 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/balanced-match/-/balanced-match-1.0.0.tgz",
120 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
121 | "dev": true
122 | },
123 | "bcrypt-pbkdf": {
124 | "version": "1.0.2",
125 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
126 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
127 | "optional": true,
128 | "requires": {
129 | "tweetnacl": "^0.14.3"
130 | }
131 | },
132 | "bluebird": {
133 | "version": "3.5.1",
134 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/bluebird/-/bluebird-3.5.1.tgz",
135 | "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
136 | },
137 | "brace-expansion": {
138 | "version": "1.1.11",
139 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/brace-expansion/-/brace-expansion-1.1.11.tgz",
140 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
141 | "dev": true,
142 | "requires": {
143 | "balanced-match": "^1.0.0",
144 | "concat-map": "0.0.1"
145 | }
146 | },
147 | "buffer-from": {
148 | "version": "1.1.0",
149 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/buffer-from/-/buffer-from-1.1.0.tgz",
150 | "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ=="
151 | },
152 | "builtin-modules": {
153 | "version": "1.1.1",
154 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/builtin-modules/-/builtin-modules-1.1.1.tgz",
155 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
156 | "dev": true
157 | },
158 | "caseless": {
159 | "version": "0.12.0",
160 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/caseless/-/caseless-0.12.0.tgz",
161 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
162 | },
163 | "chalk": {
164 | "version": "2.4.1",
165 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/chalk/-/chalk-2.4.1.tgz",
166 | "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
167 | "dev": true,
168 | "requires": {
169 | "ansi-styles": "^3.2.1",
170 | "escape-string-regexp": "^1.0.5",
171 | "supports-color": "^5.3.0"
172 | },
173 | "dependencies": {
174 | "ansi-styles": {
175 | "version": "3.2.1",
176 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/ansi-styles/-/ansi-styles-3.2.1.tgz",
177 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
178 | "dev": true,
179 | "requires": {
180 | "color-convert": "^1.9.0"
181 | }
182 | },
183 | "supports-color": {
184 | "version": "5.4.0",
185 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/supports-color/-/supports-color-5.4.0.tgz",
186 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
187 | "dev": true,
188 | "requires": {
189 | "has-flag": "^3.0.0"
190 | }
191 | }
192 | }
193 | },
194 | "co": {
195 | "version": "4.6.0",
196 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/co/-/co-4.6.0.tgz",
197 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
198 | },
199 | "color-convert": {
200 | "version": "1.9.2",
201 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/color-convert/-/color-convert-1.9.2.tgz",
202 | "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==",
203 | "dev": true,
204 | "requires": {
205 | "color-name": "1.1.1"
206 | }
207 | },
208 | "color-name": {
209 | "version": "1.1.1",
210 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/color-name/-/color-name-1.1.1.tgz",
211 | "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=",
212 | "dev": true
213 | },
214 | "combined-stream": {
215 | "version": "1.0.6",
216 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/combined-stream/-/combined-stream-1.0.6.tgz",
217 | "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
218 | "requires": {
219 | "delayed-stream": "~1.0.0"
220 | }
221 | },
222 | "commander": {
223 | "version": "2.16.0",
224 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/commander/-/commander-2.16.0.tgz",
225 | "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==",
226 | "dev": true
227 | },
228 | "concat-map": {
229 | "version": "0.0.1",
230 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/concat-map/-/concat-map-0.0.1.tgz",
231 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
232 | "dev": true
233 | },
234 | "concat-stream": {
235 | "version": "1.6.2",
236 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/concat-stream/-/concat-stream-1.6.2.tgz",
237 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
238 | "requires": {
239 | "buffer-from": "^1.0.0",
240 | "inherits": "^2.0.3",
241 | "readable-stream": "^2.2.2",
242 | "typedarray": "^0.0.6"
243 | }
244 | },
245 | "core-util-is": {
246 | "version": "1.0.2",
247 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/core-util-is/-/core-util-is-1.0.2.tgz",
248 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
249 | },
250 | "dashdash": {
251 | "version": "1.14.1",
252 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/dashdash/-/dashdash-1.14.1.tgz",
253 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
254 | "requires": {
255 | "assert-plus": "^1.0.0"
256 | }
257 | },
258 | "debug": {
259 | "version": "2.6.9",
260 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/debug/-/debug-2.6.9.tgz",
261 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
262 | "requires": {
263 | "ms": "2.0.0"
264 | }
265 | },
266 | "delayed-stream": {
267 | "version": "1.0.0",
268 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/delayed-stream/-/delayed-stream-1.0.0.tgz",
269 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
270 | },
271 | "depd": {
272 | "version": "1.1.2",
273 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/depd/-/depd-1.1.2.tgz",
274 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
275 | },
276 | "destroy": {
277 | "version": "1.0.4",
278 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/destroy/-/destroy-1.0.4.tgz",
279 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
280 | },
281 | "diff": {
282 | "version": "3.5.0",
283 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/diff/-/diff-3.5.0.tgz",
284 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
285 | "dev": true
286 | },
287 | "ecc-jsbn": {
288 | "version": "0.1.1",
289 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
290 | "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
291 | "optional": true,
292 | "requires": {
293 | "jsbn": "~0.1.0"
294 | }
295 | },
296 | "ee-first": {
297 | "version": "1.1.1",
298 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/ee-first/-/ee-first-1.1.1.tgz",
299 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
300 | },
301 | "ejs": {
302 | "version": "2.5.9",
303 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/ejs/-/ejs-2.5.9.tgz",
304 | "integrity": "sha512-GJCAeDBKfREgkBtgrYSf9hQy9kTb3helv0zGdzqhM7iAkW8FA/ZF97VQDbwFiwIT8MQLLOe5VlPZOEvZAqtUAQ=="
305 | },
306 | "encodeurl": {
307 | "version": "1.0.2",
308 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/encodeurl/-/encodeurl-1.0.2.tgz",
309 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
310 | },
311 | "escape-html": {
312 | "version": "1.0.3",
313 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/escape-html/-/escape-html-1.0.3.tgz",
314 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
315 | },
316 | "escape-string-regexp": {
317 | "version": "1.0.5",
318 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
319 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
320 | "dev": true
321 | },
322 | "esprima": {
323 | "version": "4.0.1",
324 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/esprima/-/esprima-4.0.1.tgz",
325 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
326 | "dev": true
327 | },
328 | "esutils": {
329 | "version": "2.0.2",
330 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/esutils/-/esutils-2.0.2.tgz",
331 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
332 | "dev": true
333 | },
334 | "etag": {
335 | "version": "1.8.1",
336 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/etag/-/etag-1.8.1.tgz",
337 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
338 | },
339 | "extend": {
340 | "version": "3.0.2",
341 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/extend/-/extend-3.0.2.tgz",
342 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
343 | },
344 | "extsprintf": {
345 | "version": "1.3.0",
346 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/extsprintf/-/extsprintf-1.3.0.tgz",
347 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
348 | },
349 | "fast-deep-equal": {
350 | "version": "1.1.0",
351 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
352 | "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
353 | },
354 | "fast-json-stable-stringify": {
355 | "version": "2.0.0",
356 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
357 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
358 | },
359 | "finalhandler": {
360 | "version": "1.1.1",
361 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/finalhandler/-/finalhandler-1.1.1.tgz",
362 | "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
363 | "requires": {
364 | "debug": "2.6.9",
365 | "encodeurl": "~1.0.2",
366 | "escape-html": "~1.0.3",
367 | "on-finished": "~2.3.0",
368 | "parseurl": "~1.3.2",
369 | "statuses": "~1.4.0",
370 | "unpipe": "~1.0.0"
371 | }
372 | },
373 | "first-chunk-stream": {
374 | "version": "0.1.0",
375 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/first-chunk-stream/-/first-chunk-stream-0.1.0.tgz",
376 | "integrity": "sha1-dV0+wU1JqG49L8wIvurVwMornAo="
377 | },
378 | "forever-agent": {
379 | "version": "0.6.1",
380 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/forever-agent/-/forever-agent-0.6.1.tgz",
381 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
382 | },
383 | "form-data": {
384 | "version": "2.3.2",
385 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/form-data/-/form-data-2.3.2.tgz",
386 | "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
387 | "requires": {
388 | "asynckit": "^0.4.0",
389 | "combined-stream": "1.0.6",
390 | "mime-types": "^2.1.12"
391 | }
392 | },
393 | "fresh": {
394 | "version": "0.5.2",
395 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/fresh/-/fresh-0.5.2.tgz",
396 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
397 | },
398 | "fs.realpath": {
399 | "version": "1.0.0",
400 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/fs.realpath/-/fs.realpath-1.0.0.tgz",
401 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
402 | "dev": true
403 | },
404 | "getpass": {
405 | "version": "0.1.7",
406 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/getpass/-/getpass-0.1.7.tgz",
407 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
408 | "requires": {
409 | "assert-plus": "^1.0.0"
410 | }
411 | },
412 | "glob": {
413 | "version": "7.1.2",
414 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/glob/-/glob-7.1.2.tgz",
415 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
416 | "dev": true,
417 | "requires": {
418 | "fs.realpath": "^1.0.0",
419 | "inflight": "^1.0.4",
420 | "inherits": "2",
421 | "minimatch": "^3.0.4",
422 | "once": "^1.3.0",
423 | "path-is-absolute": "^1.0.0"
424 | }
425 | },
426 | "har-schema": {
427 | "version": "2.0.0",
428 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/har-schema/-/har-schema-2.0.0.tgz",
429 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
430 | },
431 | "har-validator": {
432 | "version": "5.0.3",
433 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/har-validator/-/har-validator-5.0.3.tgz",
434 | "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
435 | "requires": {
436 | "ajv": "^5.1.0",
437 | "har-schema": "^2.0.0"
438 | }
439 | },
440 | "has-ansi": {
441 | "version": "2.0.0",
442 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/has-ansi/-/has-ansi-2.0.0.tgz",
443 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
444 | "dev": true,
445 | "requires": {
446 | "ansi-regex": "^2.0.0"
447 | }
448 | },
449 | "has-flag": {
450 | "version": "3.0.0",
451 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/has-flag/-/has-flag-3.0.0.tgz",
452 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
453 | "dev": true
454 | },
455 | "http-errors": {
456 | "version": "1.6.3",
457 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/http-errors/-/http-errors-1.6.3.tgz",
458 | "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
459 | "requires": {
460 | "depd": "~1.1.2",
461 | "inherits": "2.0.3",
462 | "setprototypeof": "1.1.0",
463 | "statuses": ">= 1.4.0 < 2"
464 | }
465 | },
466 | "http-signature": {
467 | "version": "1.2.0",
468 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/http-signature/-/http-signature-1.2.0.tgz",
469 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
470 | "requires": {
471 | "assert-plus": "^1.0.0",
472 | "jsprim": "^1.2.2",
473 | "sshpk": "^1.7.0"
474 | }
475 | },
476 | "inflight": {
477 | "version": "1.0.6",
478 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/inflight/-/inflight-1.0.6.tgz",
479 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
480 | "dev": true,
481 | "requires": {
482 | "once": "^1.3.0",
483 | "wrappy": "1"
484 | }
485 | },
486 | "inherits": {
487 | "version": "2.0.3",
488 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/inherits/-/inherits-2.0.3.tgz",
489 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
490 | },
491 | "is-typedarray": {
492 | "version": "1.0.0",
493 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/is-typedarray/-/is-typedarray-1.0.0.tgz",
494 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
495 | },
496 | "is-utf8": {
497 | "version": "0.2.1",
498 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/is-utf8/-/is-utf8-0.2.1.tgz",
499 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
500 | },
501 | "isarray": {
502 | "version": "1.0.0",
503 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/isarray/-/isarray-1.0.0.tgz",
504 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
505 | },
506 | "isstream": {
507 | "version": "0.1.2",
508 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/isstream/-/isstream-0.1.2.tgz",
509 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
510 | },
511 | "js-tokens": {
512 | "version": "3.0.2",
513 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/js-tokens/-/js-tokens-3.0.2.tgz",
514 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
515 | "dev": true
516 | },
517 | "js-yaml": {
518 | "version": "3.12.0",
519 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/js-yaml/-/js-yaml-3.12.0.tgz",
520 | "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
521 | "dev": true,
522 | "requires": {
523 | "argparse": "^1.0.7",
524 | "esprima": "^4.0.0"
525 | }
526 | },
527 | "jsbn": {
528 | "version": "0.1.1",
529 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/jsbn/-/jsbn-0.1.1.tgz",
530 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
531 | "optional": true
532 | },
533 | "json-schema": {
534 | "version": "0.2.3",
535 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/json-schema/-/json-schema-0.2.3.tgz",
536 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
537 | },
538 | "json-schema-traverse": {
539 | "version": "0.3.1",
540 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
541 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
542 | },
543 | "json-stringify-safe": {
544 | "version": "5.0.1",
545 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
546 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
547 | },
548 | "jsprim": {
549 | "version": "1.4.1",
550 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/jsprim/-/jsprim-1.4.1.tgz",
551 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
552 | "requires": {
553 | "assert-plus": "1.0.0",
554 | "extsprintf": "1.3.0",
555 | "json-schema": "0.2.3",
556 | "verror": "1.10.0"
557 | }
558 | },
559 | "lodash": {
560 | "version": "4.17.10",
561 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/lodash/-/lodash-4.17.10.tgz",
562 | "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg=="
563 | },
564 | "mime": {
565 | "version": "1.4.1",
566 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/mime/-/mime-1.4.1.tgz",
567 | "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
568 | },
569 | "mime-db": {
570 | "version": "1.35.0",
571 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/mime-db/-/mime-db-1.35.0.tgz",
572 | "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg=="
573 | },
574 | "mime-types": {
575 | "version": "2.1.19",
576 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/mime-types/-/mime-types-2.1.19.tgz",
577 | "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==",
578 | "requires": {
579 | "mime-db": "~1.35.0"
580 | }
581 | },
582 | "minimatch": {
583 | "version": "3.0.4",
584 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/minimatch/-/minimatch-3.0.4.tgz",
585 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
586 | "dev": true,
587 | "requires": {
588 | "brace-expansion": "^1.1.7"
589 | }
590 | },
591 | "minimist": {
592 | "version": "1.2.0",
593 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/minimist/-/minimist-1.2.0.tgz",
594 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
595 | },
596 | "mkdirp": {
597 | "version": "0.5.1",
598 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/mkdirp/-/mkdirp-0.5.1.tgz",
599 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
600 | "requires": {
601 | "minimist": "0.0.8"
602 | },
603 | "dependencies": {
604 | "minimist": {
605 | "version": "0.0.8",
606 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/minimist/-/minimist-0.0.8.tgz",
607 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
608 | }
609 | }
610 | },
611 | "ms": {
612 | "version": "2.0.0",
613 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/ms/-/ms-2.0.0.tgz",
614 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
615 | },
616 | "oauth-sign": {
617 | "version": "0.8.2",
618 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/oauth-sign/-/oauth-sign-0.8.2.tgz",
619 | "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
620 | },
621 | "on-finished": {
622 | "version": "2.3.0",
623 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/on-finished/-/on-finished-2.3.0.tgz",
624 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
625 | "requires": {
626 | "ee-first": "1.1.1"
627 | }
628 | },
629 | "once": {
630 | "version": "1.4.0",
631 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/once/-/once-1.4.0.tgz",
632 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
633 | "dev": true,
634 | "requires": {
635 | "wrappy": "1"
636 | }
637 | },
638 | "parseurl": {
639 | "version": "1.3.2",
640 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/parseurl/-/parseurl-1.3.2.tgz",
641 | "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
642 | },
643 | "path-is-absolute": {
644 | "version": "1.0.1",
645 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
646 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
647 | "dev": true
648 | },
649 | "path-parse": {
650 | "version": "1.0.5",
651 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/path-parse/-/path-parse-1.0.5.tgz",
652 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
653 | "dev": true
654 | },
655 | "performance-now": {
656 | "version": "2.1.0",
657 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/performance-now/-/performance-now-2.1.0.tgz",
658 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
659 | },
660 | "process-nextick-args": {
661 | "version": "2.0.0",
662 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
663 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
664 | },
665 | "punycode": {
666 | "version": "1.4.1",
667 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/punycode/-/punycode-1.4.1.tgz",
668 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
669 | },
670 | "qs": {
671 | "version": "6.5.2",
672 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/qs/-/qs-6.5.2.tgz",
673 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
674 | },
675 | "range-parser": {
676 | "version": "1.2.0",
677 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/range-parser/-/range-parser-1.2.0.tgz",
678 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
679 | },
680 | "readable-stream": {
681 | "version": "2.3.6",
682 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/readable-stream/-/readable-stream-2.3.6.tgz",
683 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
684 | "requires": {
685 | "core-util-is": "~1.0.0",
686 | "inherits": "~2.0.3",
687 | "isarray": "~1.0.0",
688 | "process-nextick-args": "~2.0.0",
689 | "safe-buffer": "~5.1.1",
690 | "string_decoder": "~1.1.1",
691 | "util-deprecate": "~1.0.1"
692 | }
693 | },
694 | "request": {
695 | "version": "2.87.0",
696 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/request/-/request-2.87.0.tgz",
697 | "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
698 | "requires": {
699 | "aws-sign2": "~0.7.0",
700 | "aws4": "^1.6.0",
701 | "caseless": "~0.12.0",
702 | "combined-stream": "~1.0.5",
703 | "extend": "~3.0.1",
704 | "forever-agent": "~0.6.1",
705 | "form-data": "~2.3.1",
706 | "har-validator": "~5.0.3",
707 | "http-signature": "~1.2.0",
708 | "is-typedarray": "~1.0.0",
709 | "isstream": "~0.1.2",
710 | "json-stringify-safe": "~5.0.1",
711 | "mime-types": "~2.1.17",
712 | "oauth-sign": "~0.8.2",
713 | "performance-now": "^2.1.0",
714 | "qs": "~6.5.1",
715 | "safe-buffer": "^5.1.1",
716 | "tough-cookie": "~2.3.3",
717 | "tunnel-agent": "^0.6.0",
718 | "uuid": "^3.1.0"
719 | }
720 | },
721 | "resolve": {
722 | "version": "1.8.1",
723 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/resolve/-/resolve-1.8.1.tgz",
724 | "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
725 | "dev": true,
726 | "requires": {
727 | "path-parse": "^1.0.5"
728 | }
729 | },
730 | "safe-buffer": {
731 | "version": "5.1.2",
732 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/safe-buffer/-/safe-buffer-5.1.2.tgz",
733 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
734 | },
735 | "safer-buffer": {
736 | "version": "2.1.2",
737 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/safer-buffer/-/safer-buffer-2.1.2.tgz",
738 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
739 | },
740 | "sax": {
741 | "version": "1.2.4",
742 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/sax/-/sax-1.2.4.tgz",
743 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
744 | },
745 | "selectn": {
746 | "version": "0.9.6",
747 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/selectn/-/selectn-0.9.6.tgz",
748 | "integrity": "sha1-vYc6VW0Y+W2FFfyRUD7G/zmP+aI="
749 | },
750 | "semver": {
751 | "version": "5.5.0",
752 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/semver/-/semver-5.5.0.tgz",
753 | "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
754 | "dev": true
755 | },
756 | "send": {
757 | "version": "0.16.2",
758 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/send/-/send-0.16.2.tgz",
759 | "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
760 | "requires": {
761 | "debug": "2.6.9",
762 | "depd": "~1.1.2",
763 | "destroy": "~1.0.4",
764 | "encodeurl": "~1.0.2",
765 | "escape-html": "~1.0.3",
766 | "etag": "~1.8.1",
767 | "fresh": "0.5.2",
768 | "http-errors": "~1.6.2",
769 | "mime": "1.4.1",
770 | "ms": "2.0.0",
771 | "on-finished": "~2.3.0",
772 | "range-parser": "~1.2.0",
773 | "statuses": "~1.4.0"
774 | }
775 | },
776 | "serve-static": {
777 | "version": "1.13.2",
778 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/serve-static/-/serve-static-1.13.2.tgz",
779 | "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
780 | "requires": {
781 | "encodeurl": "~1.0.2",
782 | "escape-html": "~1.0.3",
783 | "parseurl": "~1.3.2",
784 | "send": "0.16.2"
785 | }
786 | },
787 | "setprototypeof": {
788 | "version": "1.1.0",
789 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/setprototypeof/-/setprototypeof-1.1.0.tgz",
790 | "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
791 | },
792 | "soap": {
793 | "version": "0.24.0",
794 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/soap/-/soap-0.24.0.tgz",
795 | "integrity": "sha512-1bGC2R+KKzC6pm8bbWZTvgryzwnGh4E4AjKnIgyClOpBpL20NcScbVXk0cg52WbueaQT0LDLDQVB1uo8sT8Mcw==",
796 | "requires": {
797 | "bluebird": "^3.5.0",
798 | "concat-stream": "^1.5.1",
799 | "debug": "^2.6.9",
800 | "ejs": "~2.5.5",
801 | "finalhandler": "^1.0.3",
802 | "lodash": "^4.17.5",
803 | "request": ">=2.9.0",
804 | "sax": ">=0.6",
805 | "selectn": "^0.9.6",
806 | "serve-static": "^1.11.1",
807 | "strip-bom": "~0.3.1",
808 | "uuid": "^3.1.0",
809 | "xml-crypto": "~0.8.0"
810 | }
811 | },
812 | "sprintf-js": {
813 | "version": "1.0.3",
814 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/sprintf-js/-/sprintf-js-1.0.3.tgz",
815 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
816 | "dev": true
817 | },
818 | "sshpk": {
819 | "version": "1.14.2",
820 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/sshpk/-/sshpk-1.14.2.tgz",
821 | "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
822 | "requires": {
823 | "asn1": "~0.2.3",
824 | "assert-plus": "^1.0.0",
825 | "bcrypt-pbkdf": "^1.0.0",
826 | "dashdash": "^1.12.0",
827 | "ecc-jsbn": "~0.1.1",
828 | "getpass": "^0.1.1",
829 | "jsbn": "~0.1.0",
830 | "safer-buffer": "^2.0.2",
831 | "tweetnacl": "~0.14.0"
832 | }
833 | },
834 | "statuses": {
835 | "version": "1.4.0",
836 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/statuses/-/statuses-1.4.0.tgz",
837 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
838 | },
839 | "string_decoder": {
840 | "version": "1.1.1",
841 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/string_decoder/-/string_decoder-1.1.1.tgz",
842 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
843 | "requires": {
844 | "safe-buffer": "~5.1.0"
845 | }
846 | },
847 | "strip-ansi": {
848 | "version": "3.0.1",
849 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/strip-ansi/-/strip-ansi-3.0.1.tgz",
850 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
851 | "dev": true,
852 | "requires": {
853 | "ansi-regex": "^2.0.0"
854 | }
855 | },
856 | "strip-bom": {
857 | "version": "0.3.1",
858 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/strip-bom/-/strip-bom-0.3.1.tgz",
859 | "integrity": "sha1-noo57/RW/5q8LwWfXyIluw8/fKU=",
860 | "requires": {
861 | "first-chunk-stream": "^0.1.0",
862 | "is-utf8": "^0.2.0"
863 | }
864 | },
865 | "supports-color": {
866 | "version": "2.0.0",
867 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/supports-color/-/supports-color-2.0.0.tgz",
868 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
869 | "dev": true
870 | },
871 | "tough-cookie": {
872 | "version": "2.3.4",
873 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/tough-cookie/-/tough-cookie-2.3.4.tgz",
874 | "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
875 | "requires": {
876 | "punycode": "^1.4.1"
877 | }
878 | },
879 | "tslib": {
880 | "version": "1.9.3",
881 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/tslib/-/tslib-1.9.3.tgz",
882 | "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
883 | "dev": true
884 | },
885 | "tslint": {
886 | "version": "5.11.0",
887 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/tslint/-/tslint-5.11.0.tgz",
888 | "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=",
889 | "dev": true,
890 | "requires": {
891 | "babel-code-frame": "^6.22.0",
892 | "builtin-modules": "^1.1.1",
893 | "chalk": "^2.3.0",
894 | "commander": "^2.12.1",
895 | "diff": "^3.2.0",
896 | "glob": "^7.1.1",
897 | "js-yaml": "^3.7.0",
898 | "minimatch": "^3.0.4",
899 | "resolve": "^1.3.2",
900 | "semver": "^5.3.0",
901 | "tslib": "^1.8.0",
902 | "tsutils": "^2.27.2"
903 | }
904 | },
905 | "tsutils": {
906 | "version": "2.29.0",
907 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/tsutils/-/tsutils-2.29.0.tgz",
908 | "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
909 | "dev": true,
910 | "requires": {
911 | "tslib": "^1.8.1"
912 | }
913 | },
914 | "tunnel-agent": {
915 | "version": "0.6.0",
916 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
917 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
918 | "requires": {
919 | "safe-buffer": "^5.0.1"
920 | }
921 | },
922 | "tweetnacl": {
923 | "version": "0.14.5",
924 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/tweetnacl/-/tweetnacl-0.14.5.tgz",
925 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
926 | "optional": true
927 | },
928 | "typedarray": {
929 | "version": "0.0.6",
930 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/typedarray/-/typedarray-0.0.6.tgz",
931 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
932 | },
933 | "typescript": {
934 | "version": "2.9.2",
935 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/typescript/-/typescript-2.9.2.tgz",
936 | "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
937 | "dev": true
938 | },
939 | "unpipe": {
940 | "version": "1.0.0",
941 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/unpipe/-/unpipe-1.0.0.tgz",
942 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
943 | },
944 | "util-deprecate": {
945 | "version": "1.0.2",
946 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/util-deprecate/-/util-deprecate-1.0.2.tgz",
947 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
948 | },
949 | "uuid": {
950 | "version": "3.3.2",
951 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/uuid/-/uuid-3.3.2.tgz",
952 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
953 | },
954 | "verror": {
955 | "version": "1.10.0",
956 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/verror/-/verror-1.10.0.tgz",
957 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
958 | "requires": {
959 | "assert-plus": "^1.0.0",
960 | "core-util-is": "1.0.2",
961 | "extsprintf": "^1.2.0"
962 | }
963 | },
964 | "wrappy": {
965 | "version": "1.0.2",
966 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/wrappy/-/wrappy-1.0.2.tgz",
967 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
968 | "dev": true
969 | },
970 | "xml-crypto": {
971 | "version": "0.8.5",
972 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/xml-crypto/-/xml-crypto-0.8.5.tgz",
973 | "integrity": "sha1-K7z7PrM/OoKiGLgiv2craxwg5Tg=",
974 | "requires": {
975 | "xmldom": "=0.1.19",
976 | "xpath.js": ">=0.0.3"
977 | }
978 | },
979 | "xmldom": {
980 | "version": "0.1.19",
981 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/xmldom/-/xmldom-0.1.19.tgz",
982 | "integrity": "sha1-Yx/Ad3bv2EEYvyUXGzftTQdaCrw="
983 | },
984 | "xpath.js": {
985 | "version": "1.1.0",
986 | "resolved": "https://registry.kase.se/yTdajDWYTVuNFFmbAjvaYeFZtOyPVJQc/xpath.js/-/xpath.js-1.1.0.tgz",
987 | "integrity": "sha512-jg+qkfS4K8E7965sqaUl8mRngXiKb3WZGfONgE18pr03FUQiuSV6G+Ej4tS55B+rIQSFEIw3phdVAQ4pPqNWfQ=="
988 | }
989 | }
990 | }
991 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "wsdl-to-ts",
3 | "version": "0.2.3",
4 | "description": "Build TypeScript typings for SOAP WSDL",
5 | "main": "lib/wsdl-to-ts.js",
6 | "module": "esm/wsdl-to-ts.js",
7 | "types": "esm/wsdl-to-ts.d.ts",
8 | "scripts": {
9 | "test": "node test/index.js",
10 | "build": "npx tsc -p tsconfig.json && npx tsc -p tsconfig.json -d --outDir esm --module es2015 --target es2016",
11 | "ci": "npm run build && npm test"
12 | },
13 | "bin": {
14 | "wsdl-to-ts": "lib/index.js"
15 | },
16 | "keywords": [
17 | "soap",
18 | "typescript",
19 | "wsdl",
20 | "ts"
21 | ],
22 | "author": {
23 | "name": "TimLuq",
24 | "url": "https://github.com/TimLuq"
25 | },
26 | "license": "ISC",
27 | "devDependencies": {
28 | "@types/bluebird": "^3.5.23",
29 | "@types/minimist": "^1.2.0",
30 | "@types/mkdirp": ">=0.5.1 <1.0.0",
31 | "@types/node": ">=6.0.0 <12.0.0",
32 | "tslint": "^5.11.0",
33 | "typescript": "^2.2.0"
34 | },
35 | "dependencies": {
36 | "minimist": "^1.2.0",
37 | "mkdirp": ">=0.5.1 <1.0.0",
38 | "soap": ">=0.21.0 <1.0.0"
39 | },
40 | "bugs": {
41 | "url": "https://github.com/TimLuq/wsdl-to-ts/issues"
42 | },
43 | "repository": {
44 | "type": "git",
45 | "url": "https://github.com/TimLuq/wsdl-to-ts.git"
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | "use strict";
3 |
4 | import { rename, writeFile } from "fs";
5 | import * as minimist from "minimist";
6 | import * as mkdirp from "mkdirp";
7 | import { IInterfaceOptions, ITypedWsdl, mergeTypedWsdl, outputTypedWsdl, wsdl2ts } from "./wsdl-to-ts";
8 |
9 | interface IConfigObject {
10 | outdir: string;
11 | files: string[];
12 | tslintDisable: null | string[];
13 | tslintEnable: null | string[];
14 | }
15 |
16 | const opts: IInterfaceOptions = {};
17 | const config: IConfigObject = { outdir: "./wsdl", files: [], tslintDisable: ["max-line-length", "no-empty-interface"], tslintEnable: [] };
18 |
19 | const args = minimist(process.argv.slice(2));
20 |
21 | if (args.help) {
22 | // TODO
23 | }
24 |
25 | if (args.version) {
26 | /* tslint:disable:no-var-requires */
27 | const pack = require("../package.json");
28 | console.log("%s %s", "wsdl-to-ts", pack.version);
29 | process.exit(0);
30 | throw new Error("Exited");
31 | }
32 |
33 | if (args.hasOwnProperty("tslint")) {
34 | if (args.tslint === "true") {
35 | config.tslintEnable = null;
36 | } else if (args.tslint === "false" || args.tslint === "disable") {
37 | config.tslintDisable = null;
38 | } else {
39 | config.tslintEnable = args.tslint ? args.tslint.split(",") : null;
40 | }
41 | }
42 |
43 | if (args.hasOwnProperty("tslint-disable")) {
44 | config.tslintDisable = args["tslint-disable"] ? args["tslint-disable"].split(",") : null;
45 | }
46 |
47 | if (args.outdir || args.outDir) {
48 | config.outdir = args.outdir || args.outDir;
49 | }
50 |
51 | if (args.hasOwnProperty("quote")) {
52 | if (args.quote === "false" || args.quote === "disable" || args.quote === "0") {
53 | opts.quoteProperties = false;
54 | } else if (args.quote === "true" || args.quote === "1" || !args.quote) {
55 | opts.quoteProperties = true;
56 | }
57 | }
58 |
59 | if (args._) {
60 | config.files.push.apply(config.files, args._);
61 | }
62 |
63 | if (config.files.length === 0) {
64 | console.error("No files given");
65 | process.exit(1);
66 | throw new Error("No files");
67 | }
68 |
69 | function mkdirpp(dir: string, mode?: number): Promise {
70 | return new Promise((resolve, reject) => {
71 | mkdirp(dir, mode || 0o755, (err, made) => {
72 | if (err) {
73 | reject(err);
74 | } else {
75 | resolve(made);
76 | }
77 | });
78 | });
79 | }
80 |
81 | Promise.all(config.files.map((a) => wsdl2ts(a, opts))).
82 | then((xs) => mergeTypedWsdl.apply(undefined, xs)).
83 | then(outputTypedWsdl).
84 | then((xs: Array<{ file: string, data: string[] }>) => {
85 | return Promise.all(xs.map((x) => {
86 | console.log("-- %s --", x.file);
87 | console.log("%s", x.data.join("\n\n"));
88 | const file = config.outdir + "/" + x.file;
89 | const dir = file.replace(/\/[^/]+$/, "");
90 | return mkdirpp(dir).then(() => {
91 | return new Promise((resolve, reject) => {
92 | const tsfile = file + ".ts.tmp";
93 | const fileData: string[] = [];
94 | if (config.tslintEnable === null) {
95 | fileData.push("/* tslint:enable */");
96 | }
97 | if (config.tslintDisable === null) {
98 | fileData.push("/* tslint:disable */");
99 | } else if (config.tslintDisable.length !== 0) {
100 | fileData.push("/* tslint:disable:" + config.tslintDisable.join(" ") + " */");
101 | }
102 | if (config.tslintEnable && config.tslintEnable.length !== 0) {
103 | fileData.push("/* tslint:enable:" + config.tslintEnable.join(" ") + " */");
104 | }
105 | fileData.push(x.data.join("\n\n"));
106 | fileData.push("");
107 | writeFile(tsfile, fileData.join("\n"), (err) => {
108 | if (err) {
109 | reject(err);
110 | } else {
111 | resolve(tsfile);
112 | }
113 | });
114 | });
115 | });
116 | }));
117 | }).
118 | then((files: string[]) => Promise.all(files.map((file) => {
119 | return new Promise((resolve, reject) => {
120 | const realFile = file.replace(/\.[^.]+$/, "");
121 | rename(file, realFile, (err) => {
122 | if (err) {
123 | reject(err);
124 | } else {
125 | resolve(realFile);
126 | }
127 | });
128 | });
129 | }))).
130 | catch((err) => {
131 | console.error(err);
132 | process.exitCode = 3;
133 | });
134 |
--------------------------------------------------------------------------------
/src/wsdl-to-ts.ts:
--------------------------------------------------------------------------------
1 | import * as soap from "soap";
2 | // import { diffLines } from "diff";
3 |
4 | export const nsEnums: { [k: string]: boolean } = {};
5 |
6 | interface ITwoDown {
7 | [k: string]: { [k: string]: T };
8 | }
9 |
10 | interface IInterfaceObject {
11 | [key: string]: string | IInterfaceObject;
12 | }
13 |
14 | export interface IInterfaceOptions {
15 | quoteProperties?: boolean;
16 | }
17 |
18 | export interface ITypedWsdl {
19 | client: soap.Client | null;
20 | files: ITwoDown;
21 | methods: ITwoDown<{ [k: string]: string }>;
22 | types: ITwoDown<{ [k: string]: string }>;
23 | namespaces: ITwoDown<{ [k: string]: { [k: string]: string } }>;
24 | }
25 |
26 | export class TypeCollector {
27 |
28 | public readonly registered: { [k: string]: string };
29 | public readonly collected: { [k: string]: string };
30 |
31 | constructor(public readonly ns: string) {
32 | this.registered = {};
33 | this.collected = {};
34 | }
35 |
36 | public registerCollected() {
37 | for (const k of Object.keys(this.collected)) {
38 | if (this.collected[k]) {
39 | this.registered[k] = this.collected[k];
40 | } else {
41 | delete this.registered[k];
42 | }
43 | delete this.collected[k];
44 | }
45 | return this;
46 | }
47 | }
48 |
49 | function wsdlTypeToInterfaceObj(obj: IInterfaceObject, typeCollector?: TypeCollector): { [k: string]: any } {
50 | const r: { [k: string]: any } = {};
51 | for (const k of Object.keys(obj)) {
52 | if (k === "targetNSAlias" || k === "targetNamespace") {
53 | continue;
54 | }
55 | const isArray = k.endsWith("[]");
56 | const k2 = isArray ? k.substring(0, k.length - 2) : k;
57 | const v = obj[k];
58 | const t = typeof v;
59 | if (t === "string") {
60 | const vstr = v as string;
61 | const [typeName, superTypeClass, typeData] =
62 | vstr.indexOf("|") === -1 ? [vstr, vstr, undefined] : vstr.split("|");
63 | const typeFullName = obj.targetNamespace ? obj.targetNamespace + "#" + typeName : typeName;
64 | let typeClass = superTypeClass === "integer" ? "number" : superTypeClass;
65 | if (nsEnums[typeFullName] || typeData) {
66 | const filter = nsEnums[typeFullName] ?
67 | () => true :
68 | (x: string) => x !== "length" && x !== "pattern" && x !== "maxLength" && x !== "minLength";
69 | const tdsplit = typeData.split(",").filter(filter);
70 | if (tdsplit.length) {
71 | typeClass = "\"" + tdsplit.join("\" | \"") + "\"";
72 | }
73 | }
74 | if (isArray) {
75 | if (/^[A-Za-z0-9.]+$/.test(typeClass)) {
76 | typeClass += "[]";
77 | } else {
78 | typeClass = "Array<" + typeClass + ">";
79 | }
80 | }
81 | r[k2] = "/** " + typeFullName + "(" + typeData + ") */ " + typeClass + ";";
82 | } else {
83 | const to = wsdlTypeToInterfaceObj(v as IInterfaceObject, typeCollector);
84 | let tr: { [k: string]: any } | string;
85 | if (isArray) {
86 | let s = wsdlTypeToInterfaceString(to);
87 | if (typeCollector && typeCollector.ns) {
88 | if (typeCollector.registered.hasOwnProperty(k2) && typeCollector.registered[k2] === s) {
89 | s = typeCollector.ns + ".I" + k2 + ";";
90 | } else if (typeCollector.collected.hasOwnProperty(k2)) {
91 | if (typeCollector.collected[k2] !== s) {
92 | typeCollector.collected[k2] = null;
93 | }
94 | } else {
95 | typeCollector.collected[k2] = s;
96 | }
97 | }
98 | s = s.replace(/\n/g, "\n ");
99 |
100 | if (s.startsWith("/**")) {
101 | const i = s.indexOf("*/") + 2;
102 | s = s.substring(0, i) + " Array<" + s.substring(i).trim().replace(/;$/, "") + ">;";
103 | } else {
104 | s = s.trim().replace(/;$/, "");
105 | if (/^[A-Za-z0-9.]+$/.test(s)) {
106 | s += "[];";
107 | } else {
108 | s = "Array<" + s + ">;";
109 | }
110 | }
111 |
112 | tr = s;
113 | } else {
114 | tr = to;
115 | if (typeCollector && typeCollector.ns) {
116 | const ss = wsdlTypeToInterfaceString(to);
117 | if (typeCollector.registered.hasOwnProperty(k2) && typeCollector.registered[k2] === ss) {
118 | tr = typeCollector.ns + ".I" + k2 + ";";
119 | } else if (typeCollector.collected.hasOwnProperty(k2)) {
120 | if (typeCollector.collected[k2] !== ss) {
121 | typeCollector.collected[k2] = null;
122 | }
123 | } else {
124 | typeCollector.collected[k2] = ss;
125 | }
126 | }
127 | }
128 | r[k2] = tr;
129 | }
130 | }
131 | // console.log("wsdlTypeToInterfaceObj:", r);
132 | return r;
133 | }
134 |
135 | function wsdlTypeToInterfaceString(d: { [k: string]: any }, opts: IInterfaceOptions = {}): string {
136 | const r: string[] = [];
137 | for (const k of Object.keys(d)) {
138 | const t = typeof d[k];
139 | let p: string = k;
140 | if (opts.quoteProperties || (opts.quoteProperties === undefined && !/^[A-Za-z][A-Za-z0-9_-]*$/.test(k))) {
141 | p = JSON.stringify(k);
142 | }
143 | if (t === "string") {
144 | const v = d[k];
145 | if (v.startsWith("/**")) {
146 | const i = v.indexOf("*/") + 2;
147 | r.push(v.substring(0, i));
148 |
149 | // for types like "xsd:string" only the "string" part is used
150 | const rawtype = v.substring(i).trim();
151 | const colon = rawtype.indexOf(":");
152 | if (colon !== -1) {
153 | r.push(p + ": " + rawtype.substring(colon + 1));
154 | } else {
155 | r.push(p + ": " + rawtype);
156 | }
157 | } else {
158 | r.push(p + ": " + v);
159 | }
160 | } else {
161 | r.push(p + ": " + wsdlTypeToInterfaceString(d[k], opts).replace(/\n/g, "\n ") + ";");
162 | }
163 | }
164 | if (r.length === 0) {
165 | return "{}";
166 | }
167 | return "{\n " + r.join("\n ") + "\n}";
168 | }
169 |
170 | function wsdlTypeToInterface(obj: { [k: string]: any }, typeCollector?: TypeCollector, opts?: IInterfaceOptions): string {
171 | return wsdlTypeToInterfaceString(wsdlTypeToInterfaceObj(obj, typeCollector), opts);
172 | }
173 |
174 | export function wsdl2ts(wsdlUri: string, opts?: IInterfaceOptions): Promise {
175 | return new Promise((resolve, reject) => {
176 | soap.createClient(wsdlUri, {}, (err, client) => {
177 | if (err) {
178 | reject(err);
179 | } else {
180 | resolve(client);
181 | }
182 | });
183 | }).then((client) => {
184 | const r: ITypedWsdl = {
185 | client,
186 | files: {},
187 | methods: {},
188 | namespaces: {},
189 | types: {},
190 | };
191 | const d = client.describe();
192 |
193 | for (const service of Object.keys(d)) {
194 | for (const port of Object.keys(d[service])) {
195 | const collector = new TypeCollector(port + "Types");
196 | // console.log("-- %s.%s", service, port);
197 |
198 | if (!r.types[service]) {
199 | r.types[service] = {};
200 | r.methods[service] = {};
201 | r.files[service] = {};
202 | r.namespaces[service] = {};
203 | }
204 | if (!r.types[service][port]) {
205 | r.types[service][port] = {};
206 | r.methods[service][port] = {};
207 | r.files[service][port] = service + "/" + port;
208 | r.namespaces[service][port] = {};
209 | }
210 |
211 | for (let maxi = 0; maxi < 32; maxi++) {
212 | for (const method of Object.keys(d[service][port])) {
213 | // console.log("---- %s", method);
214 |
215 | wsdlTypeToInterface(d[service][port][method].input || {}, collector, opts);
216 | wsdlTypeToInterface(d[service][port][method].output || {}, collector, opts);
217 | }
218 |
219 | const reg = cloneObj(collector.registered);
220 | collector.registerCollected();
221 | const regKeys0: string[] = Object.keys(collector.registered);
222 | const regKeys1: string[] = Object.keys(reg);
223 | if (regKeys0.length === regKeys1.length) {
224 | let noChange = true;
225 | for (const rk of regKeys0) {
226 | if (collector.registered[rk] !== reg[rk]) {
227 | noChange = false;
228 | break;
229 | }
230 | }
231 | if (noChange) {
232 | break;
233 | }
234 | }
235 | if (maxi === 31) {
236 | console.warn("wsdl-to-ts: Aborted nested interface changes");
237 | }
238 | }
239 |
240 | const collectedKeys: string[] = Object.keys(collector.registered);
241 | if (collectedKeys.length) {
242 | const ns: { [k: string]: string } = r.namespaces[service][port][collector.ns] = {};
243 | for (const k of collectedKeys) {
244 | ns[k] = "export interface I" + k + " " + collector.registered[k];
245 | }
246 | }
247 |
248 | for (const method of Object.keys(d[service][port])) {
249 |
250 | r.types[service][port]["I" + method + "Input"] =
251 | wsdlTypeToInterface(d[service][port][method].input || {}, collector, opts);
252 | r.types[service][port]["I" + method + "Output"] =
253 | wsdlTypeToInterface(d[service][port][method].output || {}, collector, opts);
254 | r.methods[service][port][method] =
255 | "(input: I" + method + "Input, " +
256 | "cb: (err: any | null," +
257 | " result: I" + method + "Output," +
258 | " raw: string, " +
259 | " soapHeader: {[k: string]: any; }) => any, " +
260 | "options?: any, " +
261 | "extraHeaders?: any" +
262 | ") => void";
263 | }
264 | }
265 | }
266 |
267 | return r;
268 | });
269 | }
270 |
271 | function cloneObj(a: T): T {
272 | const b: T = {} as any;
273 | for (const k of Object.keys(a)) {
274 | const t = typeof a[k];
275 | b[k] = t === "object" ?
276 | Array.isArray(a[k]) ? a[k].slice() : cloneObj(a[k]) : a[k];
277 | }
278 | return b;
279 | }
280 |
281 | export function mergeTypedWsdl(a: ITypedWsdl, ...bs: ITypedWsdl[]): ITypedWsdl {
282 | const x: ITypedWsdl = {
283 | client: null,
284 | files: cloneObj(a.files),
285 | methods: cloneObj(a.methods),
286 | namespaces: cloneObj(a.namespaces),
287 | types: cloneObj(a.types),
288 | };
289 | for (const b of bs) {
290 | for (const service of Object.keys(b.files)) {
291 | if (!x.files.hasOwnProperty(service)) {
292 | x.files[service] = cloneObj(b.files[service]);
293 | x.methods[service] = cloneObj(b.methods[service]);
294 | x.types[service] = cloneObj(b.types[service]);
295 | x.namespaces[service] = cloneObj(b.namespaces[service]);
296 | } else {
297 | for (const port of Object.keys(b.files[service])) {
298 | if (!x.files[service].hasOwnProperty(port)) {
299 | x.files[service][port] = b.files[service][port];
300 | x.methods[service][port] = cloneObj(b.methods[service][port]);
301 | x.types[service][port] = cloneObj(b.types[service][port]);
302 | x.namespaces[service][port] = cloneObj(b.namespaces[service][port]);
303 | } else {
304 | x.files[service][port] = b.files[service][port];
305 | for (const method of Object.keys(b.methods[service][port])) {
306 | x.methods[service][port][method] = b.methods[service][port][method];
307 | }
308 | for (const type of Object.keys(b.types[service][port])) {
309 | x.types[service][port][type] = b.types[service][port][type];
310 | }
311 | for (const ns of Object.keys(b.namespaces[service][port])) {
312 | if (!x.namespaces[service][port].hasOwnProperty(ns)) {
313 | x.namespaces[service][port][ns] = cloneObj(b.namespaces[service][port][ns]);
314 | } else {
315 | for (const nsi of Object.keys(b.namespaces[service][port][ns])) {
316 | x.namespaces[service][port][ns][nsi] = b.namespaces[service][port][ns][nsi];
317 | }
318 | }
319 | }
320 | }
321 | }
322 | }
323 | }
324 | }
325 | return x;
326 | }
327 |
328 | export function outputTypedWsdl(a: ITypedWsdl): Array<{ file: string, data: string[] }> {
329 | const r: Array<{ file: string, data: string[] }> = [];
330 | for (const service of Object.keys(a.files)) {
331 | for (const port of Object.keys(a.files[service])) {
332 | const d: { file: string, data: string[] } = { file: a.files[service][port], data: [] };
333 | if (a.types[service] && a.types[service][port]) {
334 | for (const type of Object.keys(a.types[service][port])) {
335 | d.data.push("export interface " + type + " " + a.types[service][port][type]);
336 | }
337 | }
338 | if (a.methods[service] && a.methods[service][port]) {
339 | const ms: string[] = [];
340 | for (const method of Object.keys(a.methods[service][port])) {
341 | ms.push(method + ": " + a.methods[service][port][method] + ";");
342 | }
343 | if (ms.length) {
344 | d.data.push("export interface I" + port + "Soap {\n " + ms.join("\n ") + "\n}");
345 | }
346 | }
347 | if (a.namespaces[service] && a.namespaces[service][port]) {
348 | for (const ns of Object.keys(a.namespaces[service][port])) {
349 | const ms: string[] = [];
350 | for (const nsi of Object.keys(a.namespaces[service][port][ns])) {
351 | ms.push(a.namespaces[service][port][ns][nsi].replace(/\n/g, "\n "));
352 | }
353 | if (ms.length) {
354 | d.data.push("export namespace " + ns + " {\n " + ms.join("\n ") + "\n}");
355 | }
356 | }
357 | }
358 | r.push(d);
359 | }
360 | }
361 | return r;
362 | }
363 |
--------------------------------------------------------------------------------
/test/index.js:
--------------------------------------------------------------------------------
1 | const { wsdl2ts, mergeTypedWsdl, outputTypedWsdl } = require("../lib/wsdl-to-ts");
2 |
3 | /** @type {Array.<{0: string; 1: Promise.}>} */
4 | const testResults = [];
5 |
6 | // test simple case; disregard result
7 |
8 | const wsdl = "https://www2.agenciatributaria.gob.es" +
9 | "/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/";
10 | const sentWsdl = wsdl + "SuministroFactEmitidas.wsdl";
11 | const rcvdWsdl = wsdl + "SuministroFactRecibidas.wsdl";
12 |
13 | testResults.push(["simple", Promise.all([
14 | wsdl2ts(sentWsdl),
15 | wsdl2ts(rcvdWsdl),
16 | ]).
17 | then((xs) => mergeTypedWsdl.apply(undefined, xs)).
18 | then(outputTypedWsdl).
19 | then(() => "OK")
20 | ]);
21 |
22 | // test cases that need key excaping; write to files
23 |
24 | const sii11 = "https://www.agenciatributaria.es" +
25 | "/static_files/AEAT/Contenidos_Comunes/La_Agencia_Tributaria/Modelos_y_formularios/" +
26 | "Suministro_inmediato_informacion/FicherosSuministros/V_1_1/";
27 | const sii11Sent = sii11 + "SuministroFactEmitidas.wsdl";
28 | const sii11Rcvd = sii11 + "SuministroFactRecibidas.wsdl";
29 |
30 | const { readdir, readFile, unlink, writeFile, stat } = require("fs");
31 | const mkdirp = require("mkdirp");
32 |
33 | /**
34 | * @param {string} dir
35 | * @returns {Promise.}
36 | */
37 | function mkdirpP(dir) {
38 | return new Promise((resolve, reject) => {
39 | mkdirp(dir, (err, made) => {
40 | if (err) {
41 | reject(err);
42 | } else {
43 | resolve(made);
44 | }
45 | });
46 | });
47 | }
48 |
49 | /**
50 | * @param {string} dir
51 | * @returns {Promise.}
52 | */
53 | function readdirP(dir) {
54 | return new Promise((resolve, reject) => {
55 | readdir(dir, "utf8", (err, files) => {
56 | if (err) {
57 | reject(err);
58 | } else {
59 | resolve(files);
60 | }
61 | });
62 | });
63 | }
64 |
65 | /**
66 | * @param {string} path
67 | * @returns {Promise.