@looker/sdk-codegen 21.8.2 → 21.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +153 -167
- package/README.md +0 -1
- package/lib/codeGen.d.ts +15 -1
- package/lib/codeGen.js +23 -6
- package/lib/codeGen.js.map +1 -1
- package/lib/codeGenerators.d.ts +3 -3
- package/lib/codeGenerators.js +2 -4
- package/lib/codeGenerators.js.map +1 -1
- package/lib/csharp.gen.d.ts +1 -1
- package/lib/csharp.gen.js +2 -2
- package/lib/csharp.gen.js.map +1 -1
- package/lib/declarationInfo.d.ts +3 -3
- package/lib/declarationInfo.js +1 -2
- package/lib/declarationInfo.js.map +1 -1
- package/lib/esm/codeGen.js +33 -23
- package/lib/esm/codeGen.js.map +1 -1
- package/lib/esm/codeGenerators.js +17 -28
- package/lib/esm/codeGenerators.js.map +1 -1
- package/lib/esm/csharp.gen.js +11 -18
- package/lib/esm/csharp.gen.js.map +1 -1
- package/lib/esm/declarationInfo.js +3 -10
- package/lib/esm/declarationInfo.js.map +1 -1
- package/lib/esm/exampleInfo.js +9 -24
- package/lib/esm/exampleInfo.js.map +1 -1
- package/lib/esm/go.gen.js +11 -18
- package/lib/esm/go.gen.js.map +1 -1
- package/lib/esm/index.js +13 -148
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/kotlin.gen.js +11 -18
- package/lib/esm/kotlin.gen.js.map +1 -1
- package/lib/esm/pseudo.gen.js +6 -13
- package/lib/esm/pseudo.gen.js.map +1 -1
- package/lib/esm/python.gen.js +13 -20
- package/lib/esm/python.gen.js.map +1 -1
- package/lib/esm/sdkModels.js +431 -116
- package/lib/esm/sdkModels.js.map +1 -1
- package/lib/esm/specConverter.js +31 -59
- package/lib/esm/specConverter.js.map +1 -1
- package/lib/esm/specDiff.js +19 -36
- package/lib/esm/specDiff.js.map +1 -1
- package/lib/esm/swift.gen.js +17 -24
- package/lib/esm/swift.gen.js.map +1 -1
- package/lib/esm/typescript.gen.js +168 -31
- package/lib/esm/typescript.gen.js.map +1 -1
- package/lib/exampleInfo.d.ts +8 -20
- package/lib/exampleInfo.js +1 -2
- package/lib/exampleInfo.js.map +1 -1
- package/lib/go.gen.js +3 -3
- package/lib/go.gen.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/kotlin.gen.d.ts +1 -1
- package/lib/kotlin.gen.js +2 -2
- package/lib/kotlin.gen.js.map +1 -1
- package/lib/pseudo.gen.js +2 -2
- package/lib/pseudo.gen.js.map +1 -1
- package/lib/python.gen.js +4 -4
- package/lib/python.gen.js.map +1 -1
- package/lib/sdkModels.d.ts +33 -13
- package/lib/sdkModels.js +397 -46
- package/lib/sdkModels.js.map +1 -1
- package/lib/specConverter.d.ts +9 -12
- package/lib/specConverter.js +14 -22
- package/lib/specConverter.js.map +1 -1
- package/lib/specDiff.d.ts +4 -4
- package/lib/specDiff.js +6 -8
- package/lib/specDiff.js.map +1 -1
- package/lib/swift.gen.js +2 -2
- package/lib/swift.gen.js.map +1 -1
- package/lib/typescript.gen.d.ts +13 -0
- package/lib/typescript.gen.js +157 -13
- package/lib/typescript.gen.js.map +1 -1
- package/package.json +8 -7
- package/lib/esm/testUtils/index.js +0 -17
- package/lib/esm/testUtils/index.js.map +0 -1
- package/lib/esm/testUtils/testUtils.js +0 -66
- package/lib/esm/testUtils/testUtils.js.map +0 -1
- package/lib/testUtils/index.js +0 -17
- package/lib/testUtils/index.js.map +0 -1
- package/lib/testUtils/testUtils.js +0 -66
- package/lib/testUtils/testUtils.js.map +0 -1
package/lib/sdkModels.js
CHANGED
|
@@ -3,28 +3,27 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.typeRefs = exports.typeOfType = exports.titleCase = exports.tagTypes = exports.strWrite = exports.strRequest = exports.strBody = exports.setToCriteria = exports.safeName = exports.methodRefs = exports.mayQuote = exports.keyValues = exports.isSpecialName = exports.firstMethodRef = exports.firstCase = exports.describeParam = exports.criteriaToSet = exports.camelCase = exports.WriteType = exports.TypeOfType = exports.Type = exports.SearchCriterion = exports.SearchAll = exports.RequestType = exports.Property = exports.Parameter = exports.Method = exports.MetaType = exports.IntrinsicType = exports.HashType = exports.EnumType = exports.DelimArrayType = exports.ArrayType = exports.ApiModel = void 0;
|
|
6
|
+
exports.typeRefs = exports.typeOfType = exports.titleCase = exports.tagTypes = exports.strWrite = exports.strRequest = exports.strBody = exports.specToModel = exports.setToCriteria = exports.safeName = exports.parseFields = exports.methodRefs = exports.mayQuote = exports.keyValues = exports.isSpecialName = exports.firstMethodRef = exports.firstCase = exports.describeParam = exports.criteriaToSet = exports.camelCase = exports.WriteType = exports.TypeOfType = exports.Type = exports.SearchCriterion = exports.SearchAll = exports.RequestType = exports.Property = exports.Parameter = exports.Method = exports.MetaType = exports.IntrinsicType = exports.HashType = exports.EnumType = exports.DelimArrayType = exports.ArrayType = exports.ApiModel = void 0;
|
|
7
7
|
var OAS = _interopRequireWildcard(require("openapi3-ts"));
|
|
8
8
|
var _blueimpMd = _interopRequireDefault(require("blueimp-md5"));
|
|
9
|
+
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
9
10
|
var _sdkRtl = require("@looker/sdk-rtl");
|
|
11
|
+
var _specConverter = require("./specConverter");
|
|
10
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
function _getRequireWildcardCache(
|
|
12
|
-
function _interopRequireWildcard(
|
|
13
|
-
function ownKeys(
|
|
14
|
-
function _objectSpread(
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15
17
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
16
|
-
function _toPropertyKey(
|
|
17
|
-
function _toPrimitive(
|
|
18
|
-
var strBody = 'body';
|
|
19
|
-
exports.
|
|
20
|
-
var
|
|
21
|
-
exports.strRequest = strRequest;
|
|
22
|
-
var strWrite = 'Write';
|
|
23
|
-
exports.strWrite = strWrite;
|
|
18
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
19
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
20
|
+
var strBody = exports.strBody = 'body';
|
|
21
|
+
var strRequest = exports.strRequest = 'Request';
|
|
22
|
+
var strWrite = exports.strWrite = 'Write';
|
|
24
23
|
var lookerValuesTag = 'x-looker-values';
|
|
25
24
|
var enumTag = 'enum';
|
|
26
25
|
var simpleName = /^[a-z_][a-z_\d]*(\[])?$/im;
|
|
27
|
-
var TypeOfType = function (TypeOfType) {
|
|
26
|
+
var TypeOfType = exports.TypeOfType = function (TypeOfType) {
|
|
28
27
|
TypeOfType[TypeOfType["Intrinsic"] = 0] = "Intrinsic";
|
|
29
28
|
TypeOfType[TypeOfType["Array"] = 1] = "Array";
|
|
30
29
|
TypeOfType[TypeOfType["Hash"] = 2] = "Hash";
|
|
@@ -33,7 +32,74 @@ var TypeOfType = function (TypeOfType) {
|
|
|
33
32
|
TypeOfType[TypeOfType["Complex"] = 5] = "Complex";
|
|
34
33
|
return TypeOfType;
|
|
35
34
|
}({});
|
|
36
|
-
|
|
35
|
+
var parseFields = fields => {
|
|
36
|
+
function splitConsideringParentheses(segment) {
|
|
37
|
+
var parts = [];
|
|
38
|
+
var currentPart = '';
|
|
39
|
+
var openParentheses = 0;
|
|
40
|
+
var lastChar = '';
|
|
41
|
+
function charCheck(char) {
|
|
42
|
+
if (lastChar === char) {
|
|
43
|
+
if (char === '(' || char === ')' && openParentheses < 0) {
|
|
44
|
+
throw new Error("Unexpected '".concat(char, "' after '").concat(currentPart, "' parens:").concat(openParentheses));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
for (var char of segment) {
|
|
49
|
+
if (char === '(') {
|
|
50
|
+
openParentheses++;
|
|
51
|
+
charCheck(char);
|
|
52
|
+
} else if (char === ')') {
|
|
53
|
+
openParentheses--;
|
|
54
|
+
charCheck(char);
|
|
55
|
+
}
|
|
56
|
+
if (char === ',' && openParentheses === 0) {
|
|
57
|
+
parts.push(currentPart);
|
|
58
|
+
currentPart = '';
|
|
59
|
+
} else {
|
|
60
|
+
currentPart += char;
|
|
61
|
+
}
|
|
62
|
+
lastChar = char;
|
|
63
|
+
}
|
|
64
|
+
if (currentPart) {
|
|
65
|
+
parts.push(currentPart);
|
|
66
|
+
}
|
|
67
|
+
return parts;
|
|
68
|
+
}
|
|
69
|
+
function parseSegment(segment) {
|
|
70
|
+
var parts = splitConsideringParentheses(segment);
|
|
71
|
+
var result = {};
|
|
72
|
+
parts.forEach(part => {
|
|
73
|
+
var [key, nestedStr] = part.split(/\((.+)/);
|
|
74
|
+
key = key.trim();
|
|
75
|
+
if (nestedStr) {
|
|
76
|
+
nestedStr = nestedStr.slice(0, -1);
|
|
77
|
+
if (key in result) {
|
|
78
|
+
throw new Error("Duplicate '".concat(key, "' found"));
|
|
79
|
+
}
|
|
80
|
+
result[key] = parseSegment(nestedStr);
|
|
81
|
+
} else {
|
|
82
|
+
var p = part.trim();
|
|
83
|
+
if (p in result) {
|
|
84
|
+
throw new Error("Duplicate '".concat(key, "' found"));
|
|
85
|
+
}
|
|
86
|
+
if (p) result[p] = p;
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
if (typeof fields === 'string') {
|
|
92
|
+
fields = fields.trim();
|
|
93
|
+
if (!fields) return {};
|
|
94
|
+
return parseSegment(fields);
|
|
95
|
+
} else if (Array.isArray(fields)) {
|
|
96
|
+
var result = {};
|
|
97
|
+
fields.forEach(f => result[f] = f);
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
return fields;
|
|
101
|
+
};
|
|
102
|
+
exports.parseFields = parseFields;
|
|
37
103
|
var typeOfType = type => {
|
|
38
104
|
if (type.intrinsic) return TypeOfType.Intrinsic;
|
|
39
105
|
switch (type.className) {
|
|
@@ -73,13 +139,13 @@ exports.camelCase = camelCase;
|
|
|
73
139
|
var titleCase = value => {
|
|
74
140
|
if (!value) return '';
|
|
75
141
|
value = camelCase(value);
|
|
76
|
-
return value[0].toLocaleUpperCase() + value.
|
|
142
|
+
return value[0].toLocaleUpperCase() + value.substring(1);
|
|
77
143
|
};
|
|
78
144
|
exports.titleCase = titleCase;
|
|
79
145
|
var firstCase = value => {
|
|
80
146
|
if (!value) return '';
|
|
81
147
|
value = camelCase(value);
|
|
82
|
-
return value[0].toLocaleUpperCase() + value.
|
|
148
|
+
return value[0].toLocaleUpperCase() + value.substring(1).toLocaleLowerCase();
|
|
83
149
|
};
|
|
84
150
|
exports.firstCase = firstCase;
|
|
85
151
|
var searchIt = value => value ? value + '\t' : '';
|
|
@@ -100,13 +166,12 @@ var keyValues = list => {
|
|
|
100
166
|
return Array.from(list.values()).sort();
|
|
101
167
|
};
|
|
102
168
|
exports.keyValues = keyValues;
|
|
103
|
-
var mayQuote = function mayQuote(value) {
|
|
169
|
+
var mayQuote = exports.mayQuote = function mayQuote(value) {
|
|
104
170
|
var quoteChar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "'";
|
|
105
171
|
var str = value.toString();
|
|
106
172
|
if (!isSpecialName(str)) return str;
|
|
107
173
|
return "".concat(quoteChar).concat(str).concat(quoteChar);
|
|
108
174
|
};
|
|
109
|
-
exports.mayQuote = mayQuote;
|
|
110
175
|
var methodRefs = (api, refs) => {
|
|
111
176
|
var keys = keyValues(refs);
|
|
112
177
|
var result = [];
|
|
@@ -130,7 +195,7 @@ var typeRefs = (api, refs) => {
|
|
|
130
195
|
return result;
|
|
131
196
|
};
|
|
132
197
|
exports.typeRefs = typeRefs;
|
|
133
|
-
var firstMethodRef = function firstMethodRef(api, type) {
|
|
198
|
+
var firstMethodRef = exports.firstMethodRef = function firstMethodRef(api, type) {
|
|
134
199
|
var stack = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Set();
|
|
135
200
|
stack.add(type.name);
|
|
136
201
|
var method = methodRefs(api, type.methodRefs)[0];
|
|
@@ -145,7 +210,6 @@ var firstMethodRef = function firstMethodRef(api, type) {
|
|
|
145
210
|
}
|
|
146
211
|
return method;
|
|
147
212
|
};
|
|
148
|
-
exports.firstMethodRef = firstMethodRef;
|
|
149
213
|
var anyWriter = function anyWriter(api, type) {
|
|
150
214
|
var stack = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Set();
|
|
151
215
|
var result;
|
|
@@ -171,7 +235,7 @@ var anyWriter = function anyWriter(api, type) {
|
|
|
171
235
|
}
|
|
172
236
|
return result;
|
|
173
237
|
};
|
|
174
|
-
var SearchCriterion = function (SearchCriterion) {
|
|
238
|
+
var SearchCriterion = exports.SearchCriterion = function (SearchCriterion) {
|
|
175
239
|
SearchCriterion[SearchCriterion["method"] = 0] = "method";
|
|
176
240
|
SearchCriterion[SearchCriterion["type"] = 1] = "type";
|
|
177
241
|
SearchCriterion[SearchCriterion["name"] = 2] = "name";
|
|
@@ -184,9 +248,7 @@ var SearchCriterion = function (SearchCriterion) {
|
|
|
184
248
|
SearchCriterion[SearchCriterion["response"] = 9] = "response";
|
|
185
249
|
return SearchCriterion;
|
|
186
250
|
}({});
|
|
187
|
-
exports.
|
|
188
|
-
var SearchAll = new Set([SearchCriterion.method, SearchCriterion.type, SearchCriterion.name, SearchCriterion.description, SearchCriterion.argument, SearchCriterion.property, SearchCriterion.title, SearchCriterion.activityType, SearchCriterion.status, SearchCriterion.response]);
|
|
189
|
-
exports.SearchAll = SearchAll;
|
|
251
|
+
var SearchAll = exports.SearchAll = new Set([SearchCriterion.method, SearchCriterion.type, SearchCriterion.name, SearchCriterion.description, SearchCriterion.argument, SearchCriterion.property, SearchCriterion.title, SearchCriterion.activityType, SearchCriterion.status, SearchCriterion.response]);
|
|
190
252
|
var criteriaToSet = criteria => {
|
|
191
253
|
var result = new Set();
|
|
192
254
|
criteria.forEach(name => {
|
|
@@ -202,7 +264,7 @@ var setToCriteria = criteria => {
|
|
|
202
264
|
return result;
|
|
203
265
|
};
|
|
204
266
|
exports.setToCriteria = setToCriteria;
|
|
205
|
-
var MetaType = function (MetaType) {
|
|
267
|
+
var MetaType = exports.MetaType = function (MetaType) {
|
|
206
268
|
MetaType["Intrinsic"] = "Intrinsic";
|
|
207
269
|
MetaType["Specification"] = "Specification";
|
|
208
270
|
MetaType["Write"] = "Write";
|
|
@@ -210,7 +272,6 @@ var MetaType = function (MetaType) {
|
|
|
210
272
|
MetaType["Enumerated"] = "Enumerated";
|
|
211
273
|
return MetaType;
|
|
212
274
|
}({});
|
|
213
|
-
exports.MetaType = MetaType;
|
|
214
275
|
var tagTypes = (api, types) => {
|
|
215
276
|
var typeTags = {};
|
|
216
277
|
Object.entries(types).filter(_ref => {
|
|
@@ -305,6 +366,150 @@ class SchemadSymbol extends _Symbol {
|
|
|
305
366
|
return this.deprecated ? 'deprecated' : '';
|
|
306
367
|
}
|
|
307
368
|
}
|
|
369
|
+
var mockData = function mockData(propertyName, type, override) {
|
|
370
|
+
var _dataMocks$type$name;
|
|
371
|
+
var empty = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
372
|
+
var over = override !== undefined;
|
|
373
|
+
var stringer = mocked => {
|
|
374
|
+
if (over) {
|
|
375
|
+
return String(override);
|
|
376
|
+
}
|
|
377
|
+
if (empty) {
|
|
378
|
+
return '';
|
|
379
|
+
}
|
|
380
|
+
return mocked;
|
|
381
|
+
};
|
|
382
|
+
var inter = mocked => {
|
|
383
|
+
if (over) {
|
|
384
|
+
return parseInt(override, 10);
|
|
385
|
+
}
|
|
386
|
+
if (empty) {
|
|
387
|
+
return 0;
|
|
388
|
+
}
|
|
389
|
+
return mocked;
|
|
390
|
+
};
|
|
391
|
+
var floater = mocked => {
|
|
392
|
+
if (over) {
|
|
393
|
+
return parseFloat(override);
|
|
394
|
+
}
|
|
395
|
+
if (empty) {
|
|
396
|
+
return 0.0;
|
|
397
|
+
}
|
|
398
|
+
return mocked;
|
|
399
|
+
};
|
|
400
|
+
var dater = mocked => {
|
|
401
|
+
if (over) {
|
|
402
|
+
return new Date(override);
|
|
403
|
+
}
|
|
404
|
+
if (empty) {
|
|
405
|
+
return new Date(1970, 0, 1);
|
|
406
|
+
}
|
|
407
|
+
return mocked;
|
|
408
|
+
};
|
|
409
|
+
var booler = mocked => {
|
|
410
|
+
if (over) {
|
|
411
|
+
return Boolean(override);
|
|
412
|
+
}
|
|
413
|
+
if (empty) {
|
|
414
|
+
return false;
|
|
415
|
+
}
|
|
416
|
+
return mocked;
|
|
417
|
+
};
|
|
418
|
+
var anyer = mocked => {
|
|
419
|
+
if (over) {
|
|
420
|
+
return override;
|
|
421
|
+
}
|
|
422
|
+
if (empty) {
|
|
423
|
+
return {};
|
|
424
|
+
}
|
|
425
|
+
return mocked;
|
|
426
|
+
};
|
|
427
|
+
var dataMocks = {
|
|
428
|
+
any: {
|
|
429
|
+
value: anyer({
|
|
430
|
+
a: 1,
|
|
431
|
+
b: 'two'
|
|
432
|
+
})
|
|
433
|
+
},
|
|
434
|
+
boolean: {
|
|
435
|
+
value: booler(true)
|
|
436
|
+
},
|
|
437
|
+
byte: {
|
|
438
|
+
value: stringer('A')
|
|
439
|
+
},
|
|
440
|
+
binary: {
|
|
441
|
+
value: stringer('01')
|
|
442
|
+
},
|
|
443
|
+
date: {
|
|
444
|
+
value: dater(new Date(2024, 0, 5))
|
|
445
|
+
},
|
|
446
|
+
datetime: {
|
|
447
|
+
value: dater(new Date(2024, 0, 5, 1))
|
|
448
|
+
},
|
|
449
|
+
double: {
|
|
450
|
+
value: floater(2.2)
|
|
451
|
+
},
|
|
452
|
+
float: {
|
|
453
|
+
value: floater(1.1)
|
|
454
|
+
},
|
|
455
|
+
int32: {
|
|
456
|
+
value: inter(32)
|
|
457
|
+
},
|
|
458
|
+
int64: {
|
|
459
|
+
value: inter(64)
|
|
460
|
+
},
|
|
461
|
+
integer: {
|
|
462
|
+
value: inter(1)
|
|
463
|
+
},
|
|
464
|
+
number: {
|
|
465
|
+
value: inter(2)
|
|
466
|
+
},
|
|
467
|
+
object: {
|
|
468
|
+
value: anyer({
|
|
469
|
+
[propertyName]: 1
|
|
470
|
+
})
|
|
471
|
+
},
|
|
472
|
+
password: {
|
|
473
|
+
value: stringer('*')
|
|
474
|
+
},
|
|
475
|
+
string: {
|
|
476
|
+
value: stringer(propertyName)
|
|
477
|
+
},
|
|
478
|
+
uri: {
|
|
479
|
+
value: stringer("urn:".concat(propertyName))
|
|
480
|
+
},
|
|
481
|
+
url: {
|
|
482
|
+
value: stringer("https://".concat(propertyName, ".mock"))
|
|
483
|
+
},
|
|
484
|
+
email: {
|
|
485
|
+
value: stringer("".concat(propertyName, "@example.com"))
|
|
486
|
+
},
|
|
487
|
+
uuid: {
|
|
488
|
+
value: stringer("uuid-".concat(propertyName))
|
|
489
|
+
},
|
|
490
|
+
hostname: {
|
|
491
|
+
value: stringer("https://".concat(propertyName))
|
|
492
|
+
},
|
|
493
|
+
ipv4: {
|
|
494
|
+
value: stringer('127.0.0.1')
|
|
495
|
+
},
|
|
496
|
+
ipv6: {
|
|
497
|
+
value: stringer('::1')
|
|
498
|
+
},
|
|
499
|
+
void: {
|
|
500
|
+
value: over ? override : null
|
|
501
|
+
}
|
|
502
|
+
};
|
|
503
|
+
return (_dataMocks$type$name = dataMocks[type.name]) !== null && _dataMocks$type$name !== void 0 ? _dataMocks$type$name : override;
|
|
504
|
+
};
|
|
505
|
+
var mockOptions = options => {
|
|
506
|
+
var _options$override, _options$empty;
|
|
507
|
+
return {
|
|
508
|
+
fields: options !== null && options !== void 0 && options.fields ? options === null || options === void 0 ? void 0 : options.fields : '',
|
|
509
|
+
override: (_options$override = options === null || options === void 0 ? void 0 : options.override) !== null && _options$override !== void 0 ? _options$override : {},
|
|
510
|
+
empty: (_options$empty = options === null || options === void 0 ? void 0 : options.empty) !== null && _options$empty !== void 0 ? _options$empty : false
|
|
511
|
+
};
|
|
512
|
+
};
|
|
308
513
|
class Property extends SchemadSymbol {
|
|
309
514
|
constructor(name, type, schema) {
|
|
310
515
|
var _schema$required;
|
|
@@ -315,7 +520,7 @@ class Property extends SchemadSymbol {
|
|
|
315
520
|
_defineProperty(this, "nullable", false);
|
|
316
521
|
_defineProperty(this, "readOnly", false);
|
|
317
522
|
_defineProperty(this, "writeOnly", false);
|
|
318
|
-
this.required =
|
|
523
|
+
this.required = Boolean(required.includes(name) || ((_schema$required = schema.required) === null || _schema$required === void 0 ? void 0 : _schema$required.includes(name)));
|
|
319
524
|
this.nullable = this.schema.nullable || this.schema['x-looker-nullable'] || false;
|
|
320
525
|
this.readOnly = this.schema.readOnly || false;
|
|
321
526
|
this.writeOnly = this.schema.writeOnly || false;
|
|
@@ -338,6 +543,56 @@ class Property extends SchemadSymbol {
|
|
|
338
543
|
search(rx, criteria) {
|
|
339
544
|
return rx.test(this.searchString(criteria)) || this.type.search(rx, criteria);
|
|
340
545
|
}
|
|
546
|
+
mock() {
|
|
547
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
548
|
+
var {
|
|
549
|
+
fields,
|
|
550
|
+
override,
|
|
551
|
+
empty
|
|
552
|
+
} = mockOptions(options);
|
|
553
|
+
if ((0, _isEmpty.default)(fields) && !this.required) return undefined;
|
|
554
|
+
var keys = parseFields(fields);
|
|
555
|
+
if (!(0, _isEmpty.default)(fields) && !(this.name in keys)) return undefined;
|
|
556
|
+
var type = this.type;
|
|
557
|
+
if (type.elementType) {
|
|
558
|
+
var el = type.elementType;
|
|
559
|
+
var over = el.intrinsic && el.isString ? this.name : override;
|
|
560
|
+
var scope = typeof keys[this.name] === 'string' ? undefined : keys[this.name];
|
|
561
|
+
var opts = el.intrinsic ? {
|
|
562
|
+
fields: el.name,
|
|
563
|
+
override: over
|
|
564
|
+
} : {
|
|
565
|
+
fields: scope,
|
|
566
|
+
override
|
|
567
|
+
};
|
|
568
|
+
var val = el.mock(opts);
|
|
569
|
+
switch (type.className) {
|
|
570
|
+
case 'ArrayType':
|
|
571
|
+
return empty ? [] : [val];
|
|
572
|
+
case 'HashType':
|
|
573
|
+
return empty ? {} : {
|
|
574
|
+
a: val
|
|
575
|
+
};
|
|
576
|
+
case 'DelimArrayType':
|
|
577
|
+
return empty ? new _sdkRtl.DelimArray([]) : new _sdkRtl.DelimArray([val]);
|
|
578
|
+
case 'EnumType':
|
|
579
|
+
return type.values[0];
|
|
580
|
+
}
|
|
581
|
+
throw new Error("Don't know how to handle: ".concat(JSON.stringify(type)));
|
|
582
|
+
}
|
|
583
|
+
if (type.name) {
|
|
584
|
+
if (type.intrinsic) {
|
|
585
|
+
var data = mockData(this.name, type, undefined, empty);
|
|
586
|
+
return data.value;
|
|
587
|
+
}
|
|
588
|
+
return type.mock({
|
|
589
|
+
override,
|
|
590
|
+
empty
|
|
591
|
+
});
|
|
592
|
+
} else {
|
|
593
|
+
throw new Error('Cannot output a nameless type.');
|
|
594
|
+
}
|
|
595
|
+
}
|
|
341
596
|
}
|
|
342
597
|
exports.Property = Property;
|
|
343
598
|
class Parameter extends SchemadSymbol {
|
|
@@ -726,7 +981,7 @@ class Type {
|
|
|
726
981
|
var type = prop.type;
|
|
727
982
|
var w = type.intrinsic ? undefined : api.mayGetWriteableType(type);
|
|
728
983
|
if (w) {
|
|
729
|
-
var writeProp = _objectSpread(_objectSpread({}, prop), {
|
|
984
|
+
var writeProp = _objectSpread(_objectSpread({}, prop), {}, {
|
|
730
985
|
type: w
|
|
731
986
|
});
|
|
732
987
|
result.push(writeProp);
|
|
@@ -790,6 +1045,74 @@ class Type {
|
|
|
790
1045
|
return prop.hasSpecialNeeds;
|
|
791
1046
|
});
|
|
792
1047
|
}
|
|
1048
|
+
mock() {
|
|
1049
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1050
|
+
var {
|
|
1051
|
+
fields,
|
|
1052
|
+
override,
|
|
1053
|
+
empty
|
|
1054
|
+
} = mockOptions(options);
|
|
1055
|
+
var isArray = this.className === 'ArrayType';
|
|
1056
|
+
var props = isArray ? this.elementType.properties : this.properties;
|
|
1057
|
+
if (typeof override !== 'string' && typeof override !== 'function') {
|
|
1058
|
+
for (var _key in override) {
|
|
1059
|
+
if (!(_key in props)) {
|
|
1060
|
+
delete override[_key];
|
|
1061
|
+
} else {
|
|
1062
|
+
var prop = props[_key];
|
|
1063
|
+
if (prop.type.intrinsic) {
|
|
1064
|
+
override[_key] = mockData(_key, prop.type, override[_key], empty).value;
|
|
1065
|
+
}
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
}
|
|
1069
|
+
var keys = parseFields(fields);
|
|
1070
|
+
if (keys['*']) {
|
|
1071
|
+
var merge = {};
|
|
1072
|
+
Object.keys(props).forEach(k => merge[k] = k);
|
|
1073
|
+
keys = _objectSpread(_objectSpread({}, merge), keys);
|
|
1074
|
+
delete keys['*'];
|
|
1075
|
+
} else if ((0, _isEmpty.default)(fields)) {
|
|
1076
|
+
for (var [_key2, _prop] of Object.entries(props)) {
|
|
1077
|
+
if (_prop.required) {
|
|
1078
|
+
keys[_key2] = _key2;
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
}
|
|
1082
|
+
var overKeys = typeof override === 'string' || typeof override === 'function';
|
|
1083
|
+
var result = {};
|
|
1084
|
+
Object.keys(keys).forEach(k => {
|
|
1085
|
+
var v = keys[k];
|
|
1086
|
+
var over = overKeys ? undefined : override[k];
|
|
1087
|
+
var p = props[k];
|
|
1088
|
+
var scope = v === k ? k : {
|
|
1089
|
+
[k]: v
|
|
1090
|
+
};
|
|
1091
|
+
if (!p) {
|
|
1092
|
+
throw new Error("No property named '".concat(k, "' in type ").concat(this.name));
|
|
1093
|
+
}
|
|
1094
|
+
var val = typeof override === 'function' ? p.mock({
|
|
1095
|
+
fields: scope,
|
|
1096
|
+
empty
|
|
1097
|
+
}) : p.mock({
|
|
1098
|
+
fields: scope,
|
|
1099
|
+
override: over,
|
|
1100
|
+
empty
|
|
1101
|
+
});
|
|
1102
|
+
if (val !== undefined) {
|
|
1103
|
+
result[k] = val;
|
|
1104
|
+
}
|
|
1105
|
+
});
|
|
1106
|
+
if (typeof override !== 'string') {
|
|
1107
|
+
result = _objectSpread(_objectSpread({}, result), override);
|
|
1108
|
+
}
|
|
1109
|
+
return result;
|
|
1110
|
+
}
|
|
1111
|
+
mockType() {
|
|
1112
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1113
|
+
var result = this.mock(options);
|
|
1114
|
+
return result;
|
|
1115
|
+
}
|
|
793
1116
|
load(api) {
|
|
794
1117
|
Object.entries(this.schema.properties || {}).forEach(_ref7 => {
|
|
795
1118
|
var [propName, propSchema] = _ref7;
|
|
@@ -883,6 +1206,14 @@ class ArrayType extends Type {
|
|
|
883
1206
|
get readOnly() {
|
|
884
1207
|
return this.elementType.readOnly;
|
|
885
1208
|
}
|
|
1209
|
+
mock() {
|
|
1210
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1211
|
+
var result = super.mock(options);
|
|
1212
|
+
if (Array.isArray(result)) {
|
|
1213
|
+
return result;
|
|
1214
|
+
}
|
|
1215
|
+
return [result];
|
|
1216
|
+
}
|
|
886
1217
|
}
|
|
887
1218
|
exports.ArrayType = ArrayType;
|
|
888
1219
|
class EnumType extends Type {
|
|
@@ -923,6 +1254,10 @@ class EnumType extends Type {
|
|
|
923
1254
|
enums[hash] = this;
|
|
924
1255
|
return name;
|
|
925
1256
|
}
|
|
1257
|
+
mock() {
|
|
1258
|
+
var _options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1259
|
+
return this.values[0];
|
|
1260
|
+
}
|
|
926
1261
|
searchString(criteria) {
|
|
927
1262
|
var result = super.searchString(criteria);
|
|
928
1263
|
if (criteria.has(SearchCriterion.property)) {
|
|
@@ -980,6 +1315,15 @@ class IntrinsicType extends Type {
|
|
|
980
1315
|
this.customType = '';
|
|
981
1316
|
this.isString = IntrinsicType.stringTypes.includes(name);
|
|
982
1317
|
}
|
|
1318
|
+
mock() {
|
|
1319
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1320
|
+
var {
|
|
1321
|
+
override,
|
|
1322
|
+
empty
|
|
1323
|
+
} = mockOptions(options);
|
|
1324
|
+
if (this.isString && typeof override === 'string') return override;
|
|
1325
|
+
return mockData(this.name, this, undefined, empty).value;
|
|
1326
|
+
}
|
|
983
1327
|
get className() {
|
|
984
1328
|
return 'IntrinsicType';
|
|
985
1329
|
}
|
|
@@ -991,7 +1335,7 @@ class IntrinsicType extends Type {
|
|
|
991
1335
|
}
|
|
992
1336
|
}
|
|
993
1337
|
exports.IntrinsicType = IntrinsicType;
|
|
994
|
-
_defineProperty(IntrinsicType, "stringTypes", ['string', 'uri', 'email', 'uuid', '
|
|
1338
|
+
_defineProperty(IntrinsicType, "stringTypes", ['string', 'uri', 'url', 'email', 'uuid', 'hostname', 'password', 'ipv4', 'ipv6', 'byte', 'binary']);
|
|
995
1339
|
class RequestType extends Type {
|
|
996
1340
|
constructor(api, name, params) {
|
|
997
1341
|
var description = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
|
|
@@ -1042,6 +1386,15 @@ _defineProperty(WriteType, "readonlyProps", properties => {
|
|
|
1042
1386
|
});
|
|
1043
1387
|
return result;
|
|
1044
1388
|
});
|
|
1389
|
+
var specToModel = spec => {
|
|
1390
|
+
if (typeof spec === 'string') {
|
|
1391
|
+
spec = JSON.parse(spec);
|
|
1392
|
+
}
|
|
1393
|
+
var json = (0, _specConverter.upgradeSpecObject)(spec);
|
|
1394
|
+
var obj = new OAS.OpenApiBuilder(json).getSpec();
|
|
1395
|
+
return new ApiModel(obj);
|
|
1396
|
+
};
|
|
1397
|
+
exports.specToModel = specToModel;
|
|
1045
1398
|
class ApiModel {
|
|
1046
1399
|
constructor(spec) {
|
|
1047
1400
|
this.spec = spec;
|
|
@@ -1051,8 +1404,7 @@ class ApiModel {
|
|
|
1051
1404
|
_defineProperty(this, "types", {});
|
|
1052
1405
|
_defineProperty(this, "tags", {});
|
|
1053
1406
|
_defineProperty(this, "typeTags", {});
|
|
1054
|
-
;
|
|
1055
|
-
['string', 'integer', 'int64', 'boolean', 'object', 'uri', 'float', 'double', 'void', 'datetime', 'email', 'uuid', 'uri', 'hostname', 'ipv4', 'ipv6', 'any'].forEach(name => this.types[name] = new IntrinsicType(name));
|
|
1407
|
+
['string', 'integer', 'int64', 'boolean', 'object', 'float', 'double', 'void', 'date', 'datetime', 'binary', 'byte', 'email', 'uuid', 'uri', 'url', 'hostname', 'password', 'ipv4', 'ipv6', 'any'].forEach(name => this.types[name] = new IntrinsicType(name));
|
|
1056
1408
|
this.load();
|
|
1057
1409
|
}
|
|
1058
1410
|
get version() {
|
|
@@ -1064,12 +1416,10 @@ class ApiModel {
|
|
|
1064
1416
|
return ((_this$spec2 = this.spec) === null || _this$spec2 === void 0 ? void 0 : (_this$spec2$info = _this$spec2.info) === null || _this$spec2$info === void 0 ? void 0 : (_this$spec2$info$desc = _this$spec2$info.description) === null || _this$spec2$info$desc === void 0 ? void 0 : _this$spec2$info$desc.trim()) || '';
|
|
1065
1417
|
}
|
|
1066
1418
|
static fromString(specContent) {
|
|
1067
|
-
|
|
1068
|
-
return ApiModel.fromJson(json);
|
|
1419
|
+
return specToModel(specContent);
|
|
1069
1420
|
}
|
|
1070
1421
|
static fromJson(json) {
|
|
1071
|
-
|
|
1072
|
-
return new ApiModel(spec);
|
|
1422
|
+
return specToModel(json);
|
|
1073
1423
|
}
|
|
1074
1424
|
static isMethodSearch(criteria) {
|
|
1075
1425
|
return criteria.has(SearchCriterion.method) || criteria.has(SearchCriterion.argument) || criteria.has(SearchCriterion.response) || criteria.has(SearchCriterion.status) || criteria.has(SearchCriterion.activityType);
|
|
@@ -1142,9 +1492,9 @@ class ApiModel {
|
|
|
1142
1492
|
if (!(path instanceof Array)) {
|
|
1143
1493
|
keys = path.split(splitter);
|
|
1144
1494
|
}
|
|
1145
|
-
for (var
|
|
1146
|
-
if (
|
|
1147
|
-
item = item[
|
|
1495
|
+
for (var _key3 of keys) {
|
|
1496
|
+
if (_key3 === '#') continue;
|
|
1497
|
+
item = item[_key3];
|
|
1148
1498
|
if (item == null) return null;
|
|
1149
1499
|
}
|
|
1150
1500
|
return item;
|
|
@@ -1166,7 +1516,7 @@ class ApiModel {
|
|
|
1166
1516
|
return result;
|
|
1167
1517
|
};
|
|
1168
1518
|
if (typeof schema === 'string') {
|
|
1169
|
-
if (schema.indexOf('/requestBodies/') < 0) return this.types[schema.
|
|
1519
|
+
if (schema.indexOf('/requestBodies/') < 0) return this.types[schema.substring(schema.lastIndexOf('/') + 1)];
|
|
1170
1520
|
var deref = this.jsonPath(schema);
|
|
1171
1521
|
if (deref) {
|
|
1172
1522
|
var ref = this.jsonPath(['content', 'application/json', 'schema', '$ref'], deref);
|
|
@@ -1178,8 +1528,9 @@ class ApiModel {
|
|
|
1178
1528
|
if (schema.type === 'integer' && schema.format === 'int64') {
|
|
1179
1529
|
return this.types.int64;
|
|
1180
1530
|
}
|
|
1181
|
-
if (schema.type === 'number'
|
|
1182
|
-
return this.types[schema.format];
|
|
1531
|
+
if (schema.type === 'number') {
|
|
1532
|
+
if (schema.format) return this.types[schema.format];
|
|
1533
|
+
return this.types.float;
|
|
1183
1534
|
}
|
|
1184
1535
|
if (schema.type === 'array' && schema.items) {
|
|
1185
1536
|
var resolved = this.resolveType(schema.items);
|
|
@@ -1306,8 +1657,8 @@ class ApiModel {
|
|
|
1306
1657
|
sortList(list) {
|
|
1307
1658
|
var result = {};
|
|
1308
1659
|
var sortedKeys = Object.keys(list).sort(localeSort);
|
|
1309
|
-
for (var
|
|
1310
|
-
result[
|
|
1660
|
+
for (var _key4 of sortedKeys) {
|
|
1661
|
+
result[_key4] = list[_key4];
|
|
1311
1662
|
}
|
|
1312
1663
|
return result;
|
|
1313
1664
|
}
|
|
@@ -1422,7 +1773,7 @@ class ApiModel {
|
|
|
1422
1773
|
if (!OAS.isReferenceObject(obj)) {
|
|
1423
1774
|
var req = obj;
|
|
1424
1775
|
if ('required' in req) {
|
|
1425
|
-
required = req.required;
|
|
1776
|
+
required = Boolean(req.required);
|
|
1426
1777
|
}
|
|
1427
1778
|
}
|
|
1428
1779
|
var typeSchema = {
|
|
@@ -1452,7 +1803,7 @@ class ApiModel {
|
|
|
1452
1803
|
description: '',
|
|
1453
1804
|
location: strBody,
|
|
1454
1805
|
name: strBody,
|
|
1455
|
-
required
|
|
1806
|
+
required
|
|
1456
1807
|
}, type);
|
|
1457
1808
|
}
|
|
1458
1809
|
}
|