@looker/sdk-codegen 21.7.4 → 21.8.1
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 +20 -0
- package/lib/codeGen.d.ts +1 -1
- package/lib/codeGen.js +28 -154
- package/lib/codeGen.js.map +1 -1
- package/lib/codeGenerators.js +0 -16
- package/lib/codeGenerators.js.map +1 -1
- package/lib/csharp.gen.js +3 -71
- package/lib/csharp.gen.js.map +1 -1
- package/lib/declarationInfo.js +0 -7
- package/lib/declarationInfo.js.map +1 -1
- package/lib/esm/codeGen.js +48 -157
- package/lib/esm/codeGen.js.map +1 -1
- package/lib/esm/codeGenerators.js +28 -20
- package/lib/esm/codeGenerators.js.map +1 -1
- package/lib/esm/csharp.gen.js +19 -75
- package/lib/esm/csharp.gen.js.map +1 -1
- package/lib/esm/declarationInfo.js +10 -7
- package/lib/esm/declarationInfo.js.map +1 -1
- package/lib/esm/exampleInfo.js +24 -23
- package/lib/esm/exampleInfo.js.map +1 -1
- package/lib/esm/go.gen.js +18 -92
- package/lib/esm/go.gen.js.map +1 -1
- package/lib/esm/index.js +148 -13
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/kotlin.gen.js +23 -118
- package/lib/esm/kotlin.gen.js.map +1 -1
- package/lib/esm/pseudo.gen.js +14 -24
- package/lib/esm/pseudo.gen.js.map +1 -1
- package/lib/esm/python.gen.js +19 -138
- package/lib/esm/python.gen.js.map +1 -1
- package/lib/esm/sdkModels.js +103 -435
- package/lib/esm/sdkModels.js.map +1 -1
- package/lib/esm/specConverter.js +58 -88
- package/lib/esm/specConverter.js.map +1 -1
- package/lib/esm/specDiff.js +39 -54
- package/lib/esm/specDiff.js.map +1 -1
- package/lib/esm/swift.gen.js +25 -137
- package/lib/esm/swift.gen.js.map +1 -1
- package/lib/esm/testUtils/index.js +17 -0
- package/lib/esm/testUtils/index.js.map +1 -0
- package/lib/esm/testUtils/testUtils.js +66 -0
- package/lib/esm/testUtils/testUtils.js.map +1 -0
- package/lib/esm/typescript.gen.js +24 -125
- package/lib/esm/typescript.gen.js.map +1 -1
- package/lib/exampleInfo.js +1 -31
- package/lib/exampleInfo.js.map +1 -1
- package/lib/go.gen.js +3 -87
- package/lib/go.gen.js.map +1 -1
- package/lib/index.js +0 -26
- package/lib/index.js.map +1 -1
- package/lib/kotlin.gen.js +7 -113
- package/lib/kotlin.gen.js.map +1 -1
- package/lib/pseudo.gen.js +3 -24
- package/lib/pseudo.gen.js.map +1 -1
- package/lib/python.gen.js +3 -133
- package/lib/python.gen.js.map +1 -1
- package/lib/sdkModels.js +20 -450
- package/lib/sdkModels.js.map +1 -1
- package/lib/specConverter.js +6 -106
- package/lib/specConverter.js.map +1 -1
- package/lib/specDiff.js +4 -59
- package/lib/specDiff.js.map +1 -1
- package/lib/swift.gen.js +3 -128
- package/lib/swift.gen.js.map +1 -1
- package/lib/testUtils/index.js +0 -2
- package/lib/testUtils/index.js.map +1 -1
- package/lib/testUtils/testUtils.js +1 -17
- package/lib/testUtils/testUtils.js.map +1 -1
- package/lib/typescript.gen.js +5 -117
- package/lib/typescript.gen.js.map +1 -1
- package/package.json +3 -3
package/lib/go.gen.js
CHANGED
|
@@ -4,36 +4,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.GoGen = void 0;
|
|
7
|
-
|
|
8
7
|
var _codeGen = require("./codeGen");
|
|
9
|
-
|
|
10
8
|
var _sdkModels = require("./sdkModels");
|
|
11
|
-
|
|
12
|
-
function
|
|
13
|
-
|
|
9
|
+
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; }
|
|
10
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
11
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
14
12
|
var align = (str, size) => {
|
|
15
13
|
var num = size - str.length + 1;
|
|
16
14
|
return str + ' '.repeat(num);
|
|
17
15
|
};
|
|
18
|
-
|
|
19
16
|
class AlignColumnWriter {
|
|
20
17
|
constructor() {
|
|
21
18
|
_defineProperty(this, "rows", []);
|
|
22
|
-
|
|
23
19
|
_defineProperty(this, "sizes", []);
|
|
24
20
|
}
|
|
25
|
-
|
|
26
21
|
writeRow() {
|
|
27
22
|
for (var _len = arguments.length, cols = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
28
23
|
cols[_key] = arguments[_key];
|
|
29
24
|
}
|
|
30
|
-
|
|
31
25
|
cols.forEach((value, index) => {
|
|
32
26
|
this.sizes[index] = Math.max(this.sizes[index] || 0, value.length);
|
|
33
27
|
});
|
|
34
28
|
this.rows.push(cols);
|
|
35
29
|
}
|
|
36
|
-
|
|
37
30
|
toString() {
|
|
38
31
|
var result = '';
|
|
39
32
|
this.rows.forEach(row => {
|
|
@@ -45,76 +38,52 @@ class AlignColumnWriter {
|
|
|
45
38
|
});
|
|
46
39
|
return result;
|
|
47
40
|
}
|
|
48
|
-
|
|
49
41
|
}
|
|
50
|
-
|
|
51
42
|
class GoGen extends _codeGen.CodeGen {
|
|
52
43
|
constructor(api, versions) {
|
|
53
44
|
super(api, versions);
|
|
54
45
|
this.api = api;
|
|
55
46
|
this.versions = versions;
|
|
56
|
-
|
|
57
47
|
_defineProperty(this, "codePath", './go');
|
|
58
|
-
|
|
59
48
|
_defineProperty(this, "fileExtension", '.go');
|
|
60
|
-
|
|
61
49
|
_defineProperty(this, "nullStr", 'nil');
|
|
62
|
-
|
|
63
50
|
_defineProperty(this, "packagePath", '');
|
|
64
|
-
|
|
65
51
|
_defineProperty(this, "commentStr", '// ');
|
|
66
|
-
|
|
67
52
|
_defineProperty(this, "enumDelimiter", '\n');
|
|
68
|
-
|
|
69
53
|
_defineProperty(this, "indentStr", ' ');
|
|
70
|
-
|
|
71
54
|
_defineProperty(this, "endTypeStr", '}');
|
|
72
|
-
|
|
73
55
|
_defineProperty(this, "codeQuote", "\"");
|
|
74
|
-
|
|
75
56
|
_defineProperty(this, "useNamedParameters", false);
|
|
76
|
-
|
|
77
57
|
_defineProperty(this, "needsRequestTypes", true);
|
|
78
|
-
|
|
79
58
|
_defineProperty(this, "keywords", new Set(['break', 'default', 'func', 'interface', 'select', 'case', 'defer', 'go', 'map', 'struct', 'chan', 'else', 'goto', 'package', 'switch', 'const', 'fallthrough', 'if', 'range', 'type', 'continue', 'for', 'import', 'return', 'var']));
|
|
80
|
-
|
|
81
59
|
this.packageName = "v".concat(this.apiVersion.substring(0, this.apiVersion.indexOf('.')));
|
|
82
60
|
this.apiVersion = this.packageName;
|
|
83
61
|
}
|
|
84
|
-
|
|
85
62
|
supportsMultiApi() {
|
|
86
63
|
return false;
|
|
87
64
|
}
|
|
88
|
-
|
|
89
65
|
reserve(name) {
|
|
90
66
|
if (this.keywords.has(name)) {
|
|
91
67
|
return "".concat(name, "0");
|
|
92
68
|
}
|
|
93
|
-
|
|
94
69
|
return name;
|
|
95
70
|
}
|
|
96
|
-
|
|
97
71
|
commentHeader(indent, text) {
|
|
98
72
|
if (this.noComment) return '';
|
|
99
73
|
return text ? "".concat(indent, "/*\n\n").concat((0, _codeGen.commentBlock)(text, indent, ''), "\n").concat(indent, "*/\n") : '';
|
|
100
74
|
}
|
|
101
|
-
|
|
102
75
|
comment(indent, description) {
|
|
103
76
|
if (this.noComment) return '';
|
|
104
77
|
return (0, _codeGen.commentBlock)(description, indent, this.commentStr);
|
|
105
78
|
}
|
|
106
|
-
|
|
107
79
|
sdkFileName(baseFileName) {
|
|
108
80
|
return this.fileName("".concat(this.sdkPath, "/").concat(this.packageName, "/").concat(baseFileName));
|
|
109
81
|
}
|
|
110
|
-
|
|
111
82
|
methodSignature(indent, method) {
|
|
112
83
|
return this.methodHeaderDeclaration(indent, method, false);
|
|
113
84
|
}
|
|
114
|
-
|
|
115
85
|
methodHeaderDeclaration(indent, method) {
|
|
116
86
|
var _method$description;
|
|
117
|
-
|
|
118
87
|
var streamer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
119
88
|
var mapped = this.typeMap(method.type);
|
|
120
89
|
var head = (_method$description = method.description) === null || _method$description === void 0 ? void 0 : _method$description.trim();
|
|
@@ -122,7 +91,6 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
122
91
|
var fragment = '';
|
|
123
92
|
var requestType = this.requestTypeName(method);
|
|
124
93
|
var bump = indent + this.indentStr;
|
|
125
|
-
|
|
126
94
|
if (requestType) {
|
|
127
95
|
fragment = "request ".concat(requestType);
|
|
128
96
|
} else {
|
|
@@ -131,50 +99,39 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
131
99
|
if (args && args.length > 0) args.forEach(p => params.push(this.declareParameter(bump, method, p)));
|
|
132
100
|
fragment = params.length > 0 ? "\n".concat(params.join(this.paramDelimiter)) : '';
|
|
133
101
|
}
|
|
134
|
-
|
|
135
102
|
if (method.responseIsBoth()) {
|
|
136
103
|
headComment += "\n\n**Note**: Binary content may be returned by this method.\n";
|
|
137
104
|
} else if (method.responseIsBinary()) {
|
|
138
105
|
headComment += "\n\n**Note**: Binary content is returned by this method.\n";
|
|
139
106
|
}
|
|
140
|
-
|
|
141
107
|
if (method.deprecated) {
|
|
142
108
|
headComment += '\n\nDeprecated: This method is deprecated.\n';
|
|
143
109
|
}
|
|
144
|
-
|
|
145
110
|
var callback = "callback: (readable: Readable) => Promise<".concat(mapped.name, ">,");
|
|
146
111
|
var retType = mapped.name === 'Void' ? '' : "".concat(mapped.name, ", ");
|
|
147
112
|
var header = this.comment('', headComment) + '\n' + "func (l *LookerSDK) ".concat(this.toCamelCaseCap(method.name), "(") + (streamer ? "\n".concat(bump).concat(callback) : '');
|
|
148
113
|
return header + fragment + "".concat(fragment ? ',' : '', "\n").concat(bump, "options *rtl.ApiSettings) (").concat(retType, "error) {\n");
|
|
149
114
|
}
|
|
150
|
-
|
|
151
115
|
declareMethod(indent, method) {
|
|
152
116
|
var bump = this.bumper(indent);
|
|
153
117
|
return this.methodSignature(indent, method) + this.encodePathParams(bump, method) + this.httpCall(bump, method) + "\n}";
|
|
154
118
|
}
|
|
155
|
-
|
|
156
119
|
declareParameter(indent, method, param) {
|
|
157
120
|
var type = param.location === _sdkModels.strBody ? this.writeableType(param.type, method) || param.type : param.type;
|
|
158
121
|
var mapped = this.typeMap(type);
|
|
159
122
|
var pOpt = '';
|
|
160
|
-
|
|
161
123
|
if (param.location === _sdkModels.strBody) {
|
|
162
124
|
mapped.name = "".concat(mapped.name);
|
|
163
125
|
}
|
|
164
|
-
|
|
165
126
|
if (!param.required) {
|
|
166
127
|
pOpt = mapped.default ? '' : '*';
|
|
167
128
|
}
|
|
168
|
-
|
|
169
129
|
return "".concat(indent).concat(this.toCamelCase(this.reserve(param.name)), " ").concat(pOpt).concat(mapped.name);
|
|
170
130
|
}
|
|
171
|
-
|
|
172
131
|
encodePathParams(indent, method) {
|
|
173
132
|
var encodings = '';
|
|
174
|
-
|
|
175
133
|
if (method.pathParams.length > 0) {
|
|
176
134
|
var prefix = this.useRequest(method) ? 'request' : '';
|
|
177
|
-
|
|
178
135
|
for (var param of method.pathParams) {
|
|
179
136
|
if (param.doEncode()) {
|
|
180
137
|
var name = this.accessor(param.name, prefix);
|
|
@@ -182,10 +139,8 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
182
139
|
}
|
|
183
140
|
}
|
|
184
141
|
}
|
|
185
|
-
|
|
186
142
|
return encodings;
|
|
187
143
|
}
|
|
188
|
-
|
|
189
144
|
httpCall(indent, method) {
|
|
190
145
|
var request = this.useRequest(method) ? 'request' : '';
|
|
191
146
|
var mapped = this.typeMap(method.type);
|
|
@@ -196,7 +151,6 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
196
151
|
var result = mapped.name === 'Void' ? '' : 'result, ';
|
|
197
152
|
return "" + resultDef + "".concat(indent, "err := l.session.Do(").concat(resultPointer, ", \"").concat(this.capitalize(method.httpMethod.toUpperCase()), "\", \"").concat(this.apiPath, "\", ").concat(this.httpPath(method.endpoint, request)) + "".concat(args ? ', ' + args : '', ")") + '\n' + "".concat(indent, "return ").concat(result, "err") + '\n';
|
|
198
153
|
}
|
|
199
|
-
|
|
200
154
|
httpArgs(indent, method) {
|
|
201
155
|
var request = this.useRequest(method) ? 'request' : '';
|
|
202
156
|
var result = this.argFill('', 'options');
|
|
@@ -204,27 +158,21 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
204
158
|
result = this.argFill(result, this.argGroup(indent, method.queryArgs, request));
|
|
205
159
|
return result;
|
|
206
160
|
}
|
|
207
|
-
|
|
208
161
|
argGroup(_indent, args, prefix) {
|
|
209
162
|
if (!args || args.length === 0) return this.nullStr;
|
|
210
163
|
var hash = [];
|
|
211
|
-
|
|
212
164
|
for (var arg of args) {
|
|
213
165
|
var reserved = this.reserve(arg);
|
|
214
|
-
|
|
215
166
|
if (prefix) {
|
|
216
167
|
hash.push("\"".concat(reserved, "\": ").concat(this.accessor(arg, prefix)));
|
|
217
168
|
} else {
|
|
218
169
|
hash.push("\"".concat(reserved, "\": ").concat(this.toCamelCase(reserved)));
|
|
219
170
|
}
|
|
220
171
|
}
|
|
221
|
-
|
|
222
172
|
return "map[string]interface{}{".concat(hash.join(this.argDelimiter), "}");
|
|
223
173
|
}
|
|
224
|
-
|
|
225
174
|
httpPath(path, prefix) {
|
|
226
175
|
prefix = prefix || '';
|
|
227
|
-
|
|
228
176
|
if (path.indexOf('{') >= 0) {
|
|
229
177
|
var vars = [];
|
|
230
178
|
var str = path.replace(/({.*?})/g, group => {
|
|
@@ -234,49 +182,38 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
234
182
|
var allVars = vars.join(', ');
|
|
235
183
|
return allVars ? "fmt.Sprintf(\"".concat(str, "\", ").concat(allVars, ")") : "\"".concat(str, "\"");
|
|
236
184
|
}
|
|
237
|
-
|
|
238
185
|
return "\"".concat(path, "\"");
|
|
239
186
|
}
|
|
240
|
-
|
|
241
187
|
accessor(name, prefix) {
|
|
242
188
|
var reserved = this.reserve(this.toCamelCase(name));
|
|
243
189
|
if (!prefix) return reserved;
|
|
244
190
|
return "".concat(prefix, ".").concat(this.toCamelCaseCap(name));
|
|
245
191
|
}
|
|
246
|
-
|
|
247
192
|
methodsEpilogue(_indent) {
|
|
248
193
|
return '';
|
|
249
194
|
}
|
|
250
|
-
|
|
251
195
|
methodsPrologue(_indent) {
|
|
252
196
|
return "\n// ".concat(this.warnEditing(), "\n\npackage ").concat(this.packageName, "\n\nimport (\n \"fmt\"\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"net/url\"\n \"time\"\n)\n\ntype LookerSDK struct {\n session *rtl.AuthSession\n}\n\nfunc NewLookerSDK(session *rtl.AuthSession) *LookerSDK {\n return &LookerSDK{\n session: session,\n }\n}\n");
|
|
253
197
|
}
|
|
254
|
-
|
|
255
198
|
modelsPrologue(_indent) {
|
|
256
199
|
var goImport = "\nimport (\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"time\"\n)";
|
|
257
200
|
return "\n// ".concat(this.warnEditing(), "\n\npackage ").concat(this.packageName, "\n").concat(goImport, "\n");
|
|
258
201
|
}
|
|
259
|
-
|
|
260
202
|
modelsEpilogue(_indent) {
|
|
261
203
|
return '';
|
|
262
204
|
}
|
|
263
|
-
|
|
264
205
|
summary(_indent, _text) {
|
|
265
206
|
return '';
|
|
266
207
|
}
|
|
267
|
-
|
|
268
208
|
typeSignature(indent, type) {
|
|
269
209
|
return this.comment(indent, type.description) + '\n' + "".concat(indent, "type ").concat(type.name, " struct {\n");
|
|
270
210
|
}
|
|
271
|
-
|
|
272
211
|
beginRegion(indent, description) {
|
|
273
212
|
return "".concat(indent, "// region ").concat(description);
|
|
274
213
|
}
|
|
275
|
-
|
|
276
214
|
endRegion(indent, description) {
|
|
277
215
|
return "".concat(indent, "// endregion ").concat(description);
|
|
278
216
|
}
|
|
279
|
-
|
|
280
217
|
typeMap(type) {
|
|
281
218
|
super.typeMap(type);
|
|
282
219
|
var mt = this.nullStr;
|
|
@@ -350,17 +287,14 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
350
287
|
name: 'Void'
|
|
351
288
|
}
|
|
352
289
|
};
|
|
353
|
-
|
|
354
290
|
if (type.elementType) {
|
|
355
291
|
var map = this.typeMap(type.elementType);
|
|
356
|
-
|
|
357
292
|
switch (type.className) {
|
|
358
293
|
case 'ArrayType':
|
|
359
294
|
return {
|
|
360
295
|
default: this.nullStr,
|
|
361
296
|
name: "[]".concat(map.name)
|
|
362
297
|
};
|
|
363
|
-
|
|
364
298
|
case 'HashType':
|
|
365
299
|
{
|
|
366
300
|
var mapName = type.elementType.name === 'string' ? 'interface{}' : map.name;
|
|
@@ -369,23 +303,19 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
369
303
|
name: 'map[string]' + "".concat(mapName)
|
|
370
304
|
};
|
|
371
305
|
}
|
|
372
|
-
|
|
373
306
|
case 'DelimArrayType':
|
|
374
307
|
return {
|
|
375
308
|
default: this.nullStr,
|
|
376
309
|
name: "rtl.Delim".concat(this.capitalize(map.name))
|
|
377
310
|
};
|
|
378
|
-
|
|
379
311
|
case 'EnumType':
|
|
380
312
|
return {
|
|
381
313
|
default: '',
|
|
382
314
|
name: this.capitalize(type.name)
|
|
383
315
|
};
|
|
384
316
|
}
|
|
385
|
-
|
|
386
317
|
throw new Error("Don't know how to handle: ".concat(JSON.stringify(type)));
|
|
387
318
|
}
|
|
388
|
-
|
|
389
319
|
if (type.name) {
|
|
390
320
|
return ktTypes[type.name] || {
|
|
391
321
|
default: this.nullStr,
|
|
@@ -395,11 +325,9 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
395
325
|
throw new Error('Cannot output a nameless type.');
|
|
396
326
|
}
|
|
397
327
|
}
|
|
398
|
-
|
|
399
328
|
declareType(indent, type) {
|
|
400
329
|
var bump = this.bumper(indent);
|
|
401
330
|
var writer = new AlignColumnWriter();
|
|
402
|
-
|
|
403
331
|
try {
|
|
404
332
|
if (type instanceof _sdkModels.EnumType) {
|
|
405
333
|
var props = [];
|
|
@@ -419,21 +347,16 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
419
347
|
} catch (_unused) {
|
|
420
348
|
throw new Error(JSON.stringify(type, null, 2));
|
|
421
349
|
}
|
|
422
|
-
|
|
423
350
|
return this.typeSignature(indent, type) + writer.toString() + this.construct(indent, type) + "".concat(this.endTypeStr ? indent : '').concat(this.endTypeStr);
|
|
424
351
|
}
|
|
425
|
-
|
|
426
352
|
declareEnumValue(_indent, value, typename, writer) {
|
|
427
353
|
var quote = typeof value === 'string' ? this.codeQuote : '';
|
|
428
354
|
var name = "".concat(typename, "_").concat(this.toCamelCaseCap(value.toString()));
|
|
429
|
-
|
|
430
355
|
if (writer) {
|
|
431
356
|
writer.writeRow('const', name, typename || '', '=', "".concat(quote).concat(value).concat(quote));
|
|
432
357
|
}
|
|
433
|
-
|
|
434
358
|
return "const ".concat(name, " ").concat(typename, " = ").concat(quote).concat(value).concat(quote);
|
|
435
359
|
}
|
|
436
|
-
|
|
437
360
|
declareProperty(indent, property, writer) {
|
|
438
361
|
var type = this.typeMap(property.type);
|
|
439
362
|
var name = this.toCamelCaseCap(property.name);
|
|
@@ -441,27 +364,20 @@ class GoGen extends _codeGen.CodeGen {
|
|
|
441
364
|
var doc = property.description ? "".concat(this.comment(' ', property.description)) : '';
|
|
442
365
|
var optionalJson = property.required ? '' : ',omitempty';
|
|
443
366
|
var optionalPointer = property.required ? '' : '*';
|
|
444
|
-
|
|
445
367
|
if (writer) {
|
|
446
368
|
writer.writeRow("".concat(indent).concat(name), "".concat(optionalPointer).concat(typeName), "`json:\"".concat(property.name).concat(optionalJson, "\"`"), doc);
|
|
447
369
|
}
|
|
448
|
-
|
|
449
370
|
return "";
|
|
450
371
|
}
|
|
451
|
-
|
|
452
372
|
capitalize(str) {
|
|
453
373
|
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
454
374
|
}
|
|
455
|
-
|
|
456
375
|
toCamelCaseCap(str) {
|
|
457
376
|
return this.capitalize(str.replace(/([-_][a-z])/g, group => group.toUpperCase().replace('-', '').replace('_', '')));
|
|
458
377
|
}
|
|
459
|
-
|
|
460
378
|
toCamelCase(str) {
|
|
461
379
|
return str.replace(/([-_][a-z])/g, group => group.toUpperCase().replace('-', '').replace('_', ''));
|
|
462
380
|
}
|
|
463
|
-
|
|
464
381
|
}
|
|
465
|
-
|
|
466
382
|
exports.GoGen = GoGen;
|
|
467
383
|
//# sourceMappingURL=go.gen.js.map
|
package/lib/go.gen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/go.gen.ts"],"names":["align","str","size","num","length","repeat","AlignColumnWriter","writeRow","cols","forEach","value","index","sizes","Math","max","rows","push","toString","result","row","rowSize","col","colIndex","trimRight","GoGen","CodeGen","constructor","api","versions","Set","packageName","apiVersion","substring","indexOf","supportsMultiApi","reserve","name","keywords","has","commentHeader","indent","text","noComment","comment","description","commentStr","sdkFileName","baseFileName","fileName","sdkPath","methodSignature","method","methodHeaderDeclaration","streamer","mapped","typeMap","type","head","trim","headComment","httpMethod","endpoint","fragment","requestType","requestTypeName","bump","indentStr","params","args","allParams","p","declareParameter","join","paramDelimiter","responseIsBoth","responseIsBinary","deprecated","callback","retType","header","toCamelCaseCap","declareMethod","bumper","encodePathParams","httpCall","param","location","strBody","writeableType","pOpt","required","default","toCamelCase","encodings","pathParams","prefix","useRequest","doEncode","accessor","request","httpArgs","resultDef","resultPointer","capitalize","toUpperCase","apiPath","httpPath","argFill","bodyArg","nullStr","argGroup","queryArgs","_indent","hash","arg","reserved","argDelimiter","path","vars","replace","group","allVars","methodsEpilogue","methodsPrologue","warnEditing","modelsPrologue","goImport","modelsEpilogue","summary","_text","typeSignature","beginRegion","endRegion","mt","ktTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","map","className","mapName","Error","JSON","stringify","declareType","writer","EnumType","props","propertyValues","typeName","values","declareEnumValue","enumDelimiter","typeProperties","prop","declareProperty","construct","endTypeStr","typename","quote","codeQuote","property","doc","optionalJson","optionalPointer","charAt","slice"],"mappings":";;;;;;;AA2BA;;AAUA;;;;AAEA,IAAMA,KAAK,GAAG,CAACC,GAAD,EAAcC,IAAd,KAAuC;AACnD,MAAMC,GAAG,GAAGD,IAAI,GAAGD,GAAG,CAACG,MAAX,GAAoB,CAAhC;AACA,SAAOH,GAAG,GAAG,IAAII,MAAJ,CAAWF,GAAX,CAAb;AACD,CAHD;;AAQA,MAAMG,iBAAN,CAAwB;AAAA;AAAA,kCACU,EADV;;AAAA,mCAEI,EAFJ;AAAA;;AAItBC,EAAAA,QAAQ,GAAoB;AAAA,sCAAhBC,IAAgB;AAAhBA,MAAAA,IAAgB;AAAA;;AAC1BA,IAAAA,IAAI,CAACC,OAAL,CAAa,CAACC,KAAD,EAAQC,KAAR,KAAkB;AAC7B,WAAKC,KAAL,CAAWD,KAAX,IAAoBE,IAAI,CAACC,GAAL,CAAS,KAAKF,KAAL,CAAWD,KAAX,KAAqB,CAA9B,EAAiCD,KAAK,CAACN,MAAvC,CAApB;AACD,KAFD;AAGA,SAAKW,IAAL,CAAUC,IAAV,CAAeR,IAAf;AACD;;AAEDS,EAAAA,QAAQ,GAAW;AACjB,QAAIC,MAAM,GAAG,EAAb;AACA,SAAKH,IAAL,CAAUN,OAAV,CAAmBU,GAAD,IAAS;AACzB,UAAMC,OAAO,GAAGD,GAAG,CAACf,MAApB;AACAe,MAAAA,GAAG,CAACV,OAAJ,CAAY,CAACY,GAAD,EAAMC,QAAN,KAAmB;AAC7BJ,QAAAA,MAAM,IACJE,OAAO,GAAG,CAAV,KAAgBE,QAAhB,GAA2BD,GAA3B,GAAiCrB,KAAK,CAACqB,GAAD,EAAM,KAAKT,KAAL,CAAWU,QAAX,CAAN,CADxC;AAED,OAHD;AAIAJ,MAAAA,MAAM,GAAGA,MAAM,CAACK,SAAP,KAAqB,IAA9B;AACD,KAPD;AAQA,WAAOL,MAAP;AACD;;AAtBqB;;AA4BjB,MAAMM,KAAN,SAAoBC,gBAApB,CAA4B;AA2CjCC,EAAAA,WAAW,CAAQC,GAAR,EAA8BC,QAA9B,EAAuD;AAChE,UAAMD,GAAN,EAAWC,QAAX;AADgE,SAA/CD,GAA+C,GAA/CA,GAA+C;AAAA,SAAzBC,QAAyB,GAAzBA,QAAyB;;AAAA,sCA1CvD,MA0CuD;;AAAA,2CAzClD,KAyCkD;;AAAA,qCAxCxD,KAwCwD;;AAAA,yCAvCpD,EAuCoD;;AAAA,wCAtCrD,KAsCqD;;AAAA,2CApClD,IAoCkD;;AAAA,uCAnCtD,IAmCsD;;AAAA,wCAlCrD,GAkCqD;;AAAA;;AAAA,gDA/B7C,KA+B6C;;AAAA,+CA9B9C,IA8B8C;;AAAA,sCA5BvD,IAAIC,GAAJ,CAAgB,CACzB,OADyB,EAEzB,SAFyB,EAGzB,MAHyB,EAIzB,WAJyB,EAKzB,QALyB,EAMzB,MANyB,EAOzB,OAPyB,EAQzB,IARyB,EASzB,KATyB,EAUzB,QAVyB,EAWzB,MAXyB,EAYzB,MAZyB,EAazB,MAbyB,EAczB,SAdyB,EAezB,QAfyB,EAgBzB,OAhByB,EAiBzB,aAjByB,EAkBzB,IAlByB,EAmBzB,OAnByB,EAoBzB,MApByB,EAqBzB,UArByB,EAsBzB,KAtByB,EAuBzB,QAvByB,EAwBzB,QAxByB,EAyBzB,KAzByB,CAAhB,CA4BuD;;AAEhE,SAAKC,WAAL,cAAuB,KAAKC,UAAL,CAAgBC,SAAhB,CACrB,CADqB,EAErB,KAAKD,UAAL,CAAgBE,OAAhB,CAAwB,GAAxB,CAFqB,CAAvB;AAIA,SAAKF,UAAL,GAAkB,KAAKD,WAAvB;AACD;;AAEDI,EAAAA,gBAAgB,GAAY;AAC1B,WAAO,KAAP;AACD;;AAEDC,EAAAA,OAAO,CAACC,IAAD,EAAe;AACpB,QAAI,KAAKC,QAAL,CAAcC,GAAd,CAAkBF,IAAlB,CAAJ,EAA6B;AAC3B,uBAAUA,IAAV;AACD;;AACD,WAAOA,IAAP;AACD;;AAEDG,EAAAA,aAAa,CAACC,MAAD,EAAiBC,IAAjB,EAA2C;AACtD,QAAI,KAAKC,SAAT,EAAoB,OAAO,EAAP;AACpB,WAAOD,IAAI,aACJD,MADI,mBACW,2BAAaC,IAAb,EAAmBD,MAAnB,EAA2B,EAA3B,CADX,eAC8CA,MAD9C,YAEP,EAFJ;AAGD;;AAEDG,EAAAA,OAAO,CAACH,MAAD,EAAiBI,WAAjB,EAAsC;AAC3C,QAAI,KAAKF,SAAT,EAAoB,OAAO,EAAP;AACpB,WAAO,2BAAaE,WAAb,EAA0BJ,MAA1B,EAAkC,KAAKK,UAAvC,CAAP;AACD;;AAEDC,EAAAA,WAAW,CAACC,YAAD,EAAuB;AAChC,WAAO,KAAKC,QAAL,WAAiB,KAAKC,OAAtB,cAAiC,KAAKnB,WAAtC,cAAqDiB,YAArD,EAAP;AACD;;AAEDG,EAAAA,eAAe,CAACV,MAAD,EAAiBW,MAAjB,EAA0C;AACvD,WAAO,KAAKC,uBAAL,CAA6BZ,MAA7B,EAAqCW,MAArC,EAA6C,KAA7C,CAAP;AACD;;AAEDC,EAAAA,uBAAuB,CAACZ,MAAD,EAAiBW,MAAjB,EAAoD;AAAA;;AAAA,QAAlBE,QAAkB,uEAAP,KAAO;AACzE,QAAMC,MAAM,GAAG,KAAKC,OAAL,CAAaJ,MAAM,CAACK,IAApB,CAAf;AACA,QAAMC,IAAI,0BAAGN,MAAM,CAACP,WAAV,wDAAG,oBAAoBc,IAApB,EAAb;AACA,QAAIC,WAAW,GACb,CAACF,IAAI,aAAMA,IAAN,YAAmB,EAAxB,cACGN,MAAM,CAACS,UADV,cACwBT,MAAM,CAACU,QAD/B,iBAC8CP,MAAM,CAAClB,IADrD,CADF;AAGA,QAAI0B,QAAQ,GAAG,EAAf;AACA,QAAMC,WAAW,GAAG,KAAKC,eAAL,CAAqBb,MAArB,CAApB;AACA,QAAMc,IAAI,GAAGzB,MAAM,GAAG,KAAK0B,SAA3B;;AAEA,QAAIH,WAAJ,EAAiB;AACfD,MAAAA,QAAQ,qBAAcC,WAAd,CAAR;AACD,KAFD,MAEO;AACL,UAAMI,MAAgB,GAAG,EAAzB;AACA,UAAMC,IAAI,GAAGjB,MAAM,CAACkB,SAApB;AACA,UAAID,IAAI,IAAIA,IAAI,CAAChE,MAAL,GAAc,CAA1B,EACEgE,IAAI,CAAC3D,OAAL,CAAc6D,CAAD,IAAOH,MAAM,CAACnD,IAAP,CAAY,KAAKuD,gBAAL,CAAsBN,IAAtB,EAA4Bd,MAA5B,EAAoCmB,CAApC,CAAZ,CAApB;AACFR,MAAAA,QAAQ,GACNK,MAAM,CAAC/D,MAAP,GAAgB,CAAhB,eAAyB+D,MAAM,CAACK,IAAP,CAAY,KAAKC,cAAjB,CAAzB,IAA8D,EADhE;AAED;;AACD,QAAItB,MAAM,CAACuB,cAAP,EAAJ,EAA6B;AAC3Bf,MAAAA,WAAW,oEAAX;AACD,KAFD,MAEO,IAAIR,MAAM,CAACwB,gBAAP,EAAJ,EAA+B;AACpChB,MAAAA,WAAW,gEAAX;AACD;;AACD,QAAIR,MAAM,CAACyB,UAAX,EAAuB;AACrBjB,MAAAA,WAAW,IAAI,8CAAf;AACD;;AACD,QAAMkB,QAAQ,uDAAgDvB,MAAM,CAAClB,IAAvD,OAAd;AACA,QAAM0C,OAAO,GAAGxB,MAAM,CAAClB,IAAP,KAAgB,MAAhB,GAAyB,EAAzB,aAAiCkB,MAAM,CAAClB,IAAxC,OAAhB;AACA,QAAM2C,MAAM,GACV,KAAKpC,OAAL,CAAa,EAAb,EAAiBgB,WAAjB,IACA,IADA,iCAEuB,KAAKqB,cAAL,CAAoB7B,MAAM,CAACf,IAA3B,CAFvB,UAGCiB,QAAQ,eAAQY,IAAR,SAAeY,QAAf,IAA4B,EAHrC,CADF;AAMA,WACEE,MAAM,GACNjB,QADA,aAGEA,QAAQ,GAAG,GAAH,GAAS,EAHnB,eAIKG,IAJL,wCAIuCa,OAJvC,eADF;AAOD;;AAEDG,EAAAA,aAAa,CAACzC,MAAD,EAAiBW,MAAjB,EAAkC;AAC7C,QAAMc,IAAI,GAAG,KAAKiB,MAAL,CAAY1C,MAAZ,CAAb;AACA,WACE,KAAKU,eAAL,CAAqBV,MAArB,EAA6BW,MAA7B,IACA,KAAKgC,gBAAL,CAAsBlB,IAAtB,EAA4Bd,MAA5B,CADA,GAEA,KAAKiC,QAAL,CAAcnB,IAAd,EAAoBd,MAApB,CAFA,QADF;AAMD;;AAEDoB,EAAAA,gBAAgB,CAAC/B,MAAD,EAAiBW,MAAjB,EAAkCkC,KAAlC,EAAqD;AACnE,QAAM7B,IAAI,GACR6B,KAAK,CAACC,QAAN,KAAmBC,kBAAnB,GACI,KAAKC,aAAL,CAAmBH,KAAK,CAAC7B,IAAzB,EAA+BL,MAA/B,KAA0CkC,KAAK,CAAC7B,IADpD,GAEI6B,KAAK,CAAC7B,IAHZ;AAIA,QAAMF,MAAM,GAAG,KAAKC,OAAL,CAAaC,IAAb,CAAf;AACA,QAAIiC,IAAI,GAAG,EAAX;;AACA,QAAIJ,KAAK,CAACC,QAAN,KAAmBC,kBAAvB,EAAgC;AAC9BjC,MAAAA,MAAM,CAAClB,IAAP,aAAiBkB,MAAM,CAAClB,IAAxB;AACD;;AACD,QAAI,CAACiD,KAAK,CAACK,QAAX,EAAqB;AACnBD,MAAAA,IAAI,GAAGnC,MAAM,CAACqC,OAAP,GAAiB,EAAjB,GAAsB,GAA7B;AACD;;AACD,qBAGKnD,MAHL,SAGc,KAAKoD,WAAL,CAAiB,KAAKzD,OAAL,CAAakD,KAAK,CAACjD,IAAnB,CAAjB,CAHd,cAG4DqD,IAH5D,SAIInC,MAAM,CAAClB,IAJX;AAOD;;AAED+C,EAAAA,gBAAgB,CAAC3C,MAAD,EAAiBW,MAAjB,EAAkC;AAChD,QAAI0C,SAAS,GAAG,EAAhB;;AACA,QAAI1C,MAAM,CAAC2C,UAAP,CAAkB1F,MAAlB,GAA2B,CAA/B,EAAkC;AAChC,UAAM2F,MAAM,GAAG,KAAKC,UAAL,CAAgB7C,MAAhB,IAA0B,SAA1B,GAAsC,EAArD;;AACA,WAAK,IAAMkC,KAAX,IAAoBlC,MAAM,CAAC2C,UAA3B,EAAuC;AACrC,YAAIT,KAAK,CAACY,QAAN,EAAJ,EAAsB;AACpB,cAAM7D,IAAI,GAAG,KAAK8D,QAAL,CAAcb,KAAK,CAACjD,IAApB,EAA0B2D,MAA1B,CAAb;AAEAF,UAAAA,SAAS,cAAOrD,MAAP,SAAgBJ,IAAhB,+BAAyCA,IAAzC,QAAT;AACD;AACF;AACF;;AACD,WAAOyD,SAAP;AACD;;AAEDT,EAAAA,QAAQ,CAAC5C,MAAD,EAAiBW,MAAjB,EAAkC;AACxC,QAAMgD,OAAO,GAAG,KAAKH,UAAL,CAAgB7C,MAAhB,IAA0B,SAA1B,GAAsC,EAAtD;AACA,QAAMG,MAAM,GAAG,KAAKC,OAAL,CAAaJ,MAAM,CAACK,IAApB,CAAf;AACA,QAAMS,IAAI,GAAGzB,MAAM,GAAG,KAAK0B,SAA3B;AACA,QAAME,IAAI,GAAG,KAAKgC,QAAL,CAAcnC,IAAd,EAAoBd,MAApB,CAAb;AAEA,QAAMkD,SAAS,GACb/C,MAAM,CAAClB,IAAP,KAAgB,MAAhB,GAAyB,EAAzB,aAAiCI,MAAjC,wBAAqDc,MAAM,CAAClB,IAA5D,OADF;AAEA,QAAMkE,aAAa,GAAGhD,MAAM,CAAClB,IAAP,KAAgB,MAAhB,GAAyB,KAAzB,YAAtB;AACA,QAAMlB,MAAM,GAAGoC,MAAM,CAAClB,IAAP,KAAgB,MAAhB,GAAyB,EAAzB,GAA8B,UAA7C;AACA,WACE,KACAiE,SADA,aAEG7D,MAFH,iCAEgC8D,aAFhC,iBAEmD,KAAKC,UAAL,CACjDpD,MAAM,CAACS,UAAP,CAAkB4C,WAAlB,EADiD,CAFnD,mBAIQ,KAAKC,OAJb,iBAI0B,KAAKC,QAAL,CAAcvD,MAAM,CAACU,QAArB,EAA+BsC,OAA/B,CAJ1B,cAKG/B,IAAI,GAAG,OAAOA,IAAV,GAAiB,EALxB,SAMA,IANA,aAOG5B,MAPH,oBAOmBtB,MAPnB,WAQA,IATF;AAWD;;AAUDkF,EAAAA,QAAQ,CAAC5D,MAAD,EAAiBW,MAAjB,EAAkC;AACxC,QAAMgD,OAAO,GAAG,KAAKH,UAAL,CAAgB7C,MAAhB,IAA0B,SAA1B,GAAsC,EAAtD;AAIA,QAAIjC,MAAM,GAAG,KAAKyF,OAAL,CAAa,EAAb,EAAiB,SAAjB,CAAb;AAGAzF,IAAAA,MAAM,GAAG,KAAKyF,OAAL,CACPzF,MADO,EAEPiC,MAAM,CAACyD,OAAP,GAAiB,KAAKV,QAAL,CAAc/C,MAAM,CAACyD,OAArB,EAA8BT,OAA9B,CAAjB,GAA0D,KAAKU,OAFxD,CAAT;AAIA3F,IAAAA,MAAM,GAAG,KAAKyF,OAAL,CACPzF,MADO,EAEP,KAAK4F,QAAL,CAActE,MAAd,EAAsBW,MAAM,CAAC4D,SAA7B,EAAwCZ,OAAxC,CAFO,CAAT;AAIA,WAAOjF,MAAP;AACD;;AAED4F,EAAAA,QAAQ,CAACE,OAAD,EAAkB5C,IAAlB,EAA+B2B,MAA/B,EAAgD;AACtD,QAAI,CAAC3B,IAAD,IAASA,IAAI,CAAChE,MAAL,KAAgB,CAA7B,EAAgC,OAAO,KAAKyG,OAAZ;AAChC,QAAMI,IAAc,GAAG,EAAvB;;AACA,SAAK,IAAMC,GAAX,IAAkB9C,IAAlB,EAAwB;AACtB,UAAM+C,QAAQ,GAAG,KAAKhF,OAAL,CAAa+E,GAAb,CAAjB;;AACA,UAAInB,MAAJ,EAAY;AACVkB,QAAAA,IAAI,CAACjG,IAAL,aAAcmG,QAAd,iBAA4B,KAAKjB,QAAL,CAAcgB,GAAd,EAAmBnB,MAAnB,CAA5B;AACD,OAFD,MAEO;AACLkB,QAAAA,IAAI,CAACjG,IAAL,aAAcmG,QAAd,iBAA4B,KAAKvB,WAAL,CAAiBuB,QAAjB,CAA5B;AACD;AACF;;AACD,4CAAiCF,IAAI,CAACzC,IAAL,CAAU,KAAK4C,YAAf,CAAjC;AACD;;AAEDV,EAAAA,QAAQ,CAACW,IAAD,EAAetB,MAAf,EAAgC;AACtCA,IAAAA,MAAM,GAAGA,MAAM,IAAI,EAAnB;;AACA,QAAIsB,IAAI,CAACpF,OAAL,CAAa,GAAb,KAAqB,CAAzB,EAA4B;AAC1B,UAAMqF,IAAmB,GAAG,EAA5B;AACA,UAAMrH,GAAG,GAAGoH,IAAI,CAACE,OAAL,CAAa,UAAb,EAA0BC,KAAD,IAAW;AAC9CF,QAAAA,IAAI,CAACtG,IAAL,CACE,KAAKkF,QAAL,CAAcsB,KAAK,CAACD,OAAN,CAAc,GAAd,EAAmB,EAAnB,EAAuBA,OAAvB,CAA+B,GAA/B,EAAoC,EAApC,CAAd,EAAuDxB,MAAvD,CADF;AAGA,eAAO,IAAP;AACD,OALW,CAAZ;AAMA,UAAM0B,OAAO,GAAGH,IAAI,CAAC9C,IAAL,CAAU,IAAV,CAAhB;AACA,aAAOiD,OAAO,2BAAmBxH,GAAnB,iBAA4BwH,OAA5B,qBAA6CxH,GAA7C,OAAd;AACD;;AACD,uBAAWoH,IAAX;AACD;;AAeDnB,EAAAA,QAAQ,CAAC9D,IAAD,EAAe2D,MAAf,EAAgC;AACtC,QAAMoB,QAAQ,GAAG,KAAKhF,OAAL,CAAa,KAAKyD,WAAL,CAAiBxD,IAAjB,CAAb,CAAjB;AACA,QAAI,CAAC2D,MAAL,EAAa,OAAOoB,QAAP;AACb,qBAAUpB,MAAV,cAAoB,KAAKf,cAAL,CAAoB5C,IAApB,CAApB;AAGD;;AAEDsF,EAAAA,eAAe,CAACV,OAAD,EAA0B;AACvC,WAAO,EAAP;AACD;;AAEDW,EAAAA,eAAe,CAACX,OAAD,EAA0B;AACvC,0BACC,KAAKY,WAAL,EADD,yBAGM,KAAK9F,WAHX;AAsBD;;AAED+F,EAAAA,cAAc,CAACb,OAAD,EAAkB;AAC9B,QAAMc,QAAQ,sFAAd;AAMA,0BACC,KAAKF,WAAL,EADD,yBAGM,KAAK9F,WAHX,eAIFgG,QAJE;AAMD;;AAEDC,EAAAA,cAAc,CAACf,OAAD,EAA0B;AACtC,WAAO,EAAP;AACD;;AAEDgB,EAAAA,OAAO,CAAChB,OAAD,EAAkBiB,KAAlB,EAAqD;AAC1D,WAAO,EAAP;AACD;;AAEDC,EAAAA,aAAa,CAAC1F,MAAD,EAAiBgB,IAAjB,EAAsC;AACjD,WACE,KAAKb,OAAL,CAAaH,MAAb,EAAqBgB,IAAI,CAACZ,WAA1B,IACA,IADA,aAEGJ,MAFH,kBAEiBgB,IAAI,CAACpB,IAFtB,gBADF;AAKD;;AAED+F,EAAAA,WAAW,CAAC3F,MAAD,EAAiBI,WAAjB,EAA8C;AACvD,qBAAUJ,MAAV,uBAA6BI,WAA7B;AACD;;AAEDwF,EAAAA,SAAS,CAAC5F,MAAD,EAAiBI,WAAjB,EAA8C;AACrD,qBAAUJ,MAAV,0BAAgCI,WAAhC;AACD;;AAEDW,EAAAA,OAAO,CAACC,IAAD,EAA2B;AAChC,UAAMD,OAAN,CAAcC,IAAd;AACA,QAAM6E,EAAE,GAAG,KAAKxB,OAAhB;AACA,QAAMyB,OAAoC,GAAG;AAC3CC,MAAAA,GAAG,EAAE;AAAE5C,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OADsC;AAE3CoG,MAAAA,OAAO,EAAE;AAAE7C,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OAFkC;AAG3CqG,MAAAA,IAAI,EAAE;AAAE9C,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OAHqC;AAI3CsG,MAAAA,IAAI,EAAE;AAAE/C,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OAJqC;AAK3CuG,MAAAA,QAAQ,EAAE;AAAEhD,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OALiC;AAM3CwG,MAAAA,MAAM,EAAE;AAAEjD,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OANmC;AAO3CyG,MAAAA,KAAK,EAAE;AAAElD,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OAPoC;AAQ3C0G,MAAAA,KAAK,EAAE;AAAEnD,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OARoC;AAS3C2G,MAAAA,KAAK,EAAE;AAAEpD,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OAToC;AAU3C4G,MAAAA,OAAO,EAAE;AAAErD,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OAVkC;AAW3C6G,MAAAA,MAAM,EAAE;AAAEtD,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OAXmC;AAY3C8G,MAAAA,MAAM,EAAE;AAAEvD,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OAZmC;AAa3C+G,MAAAA,QAAQ,EAAE;AAAExD,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OAbiC;AAc3CgH,MAAAA,MAAM,EAAE;AAAEzD,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OAdmC;AAe3CiH,MAAAA,GAAG,EAAE;AAAE1D,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OAfsC;AAgB3CkH,MAAAA,GAAG,EAAE;AAAE3D,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB,OAhBsC;AAiB3CmH,MAAAA,IAAI,EAAE;AAAE5D,QAAAA,OAAO,EAAE0C,EAAX;AAAejG,QAAAA,IAAI,EAAE;AAArB;AAjBqC,KAA7C;;AAoBA,QAAIoB,IAAI,CAACgG,WAAT,EAAsB;AAEpB,UAAMC,GAAG,GAAG,KAAKlG,OAAL,CAAaC,IAAI,CAACgG,WAAlB,CAAZ;;AACA,cAAQhG,IAAI,CAACkG,SAAb;AACE,aAAK,WAAL;AACE,iBAAO;AAAE/D,YAAAA,OAAO,EAAE,KAAKkB,OAAhB;AAAyBzE,YAAAA,IAAI,cAAOqH,GAAG,CAACrH,IAAX;AAA7B,WAAP;;AACF,aAAK,UAAL;AAAiB;AACf,gBAAMuH,OAAO,GACXnG,IAAI,CAACgG,WAAL,CAAiBpH,IAAjB,KAA0B,QAA1B,GAAqC,aAArC,GAAqDqH,GAAG,CAACrH,IAD3D;AAIA,mBAAO;AACLuD,cAAAA,OAAO,EAAE,KAAKkB,OADT;AAELzE,cAAAA,IAAI,EAAE,0BAAmBuH,OAAnB;AAFD,aAAP;AAID;;AACD,aAAK,gBAAL;AACE,iBAAO;AACLhE,YAAAA,OAAO,EAAE,KAAKkB,OADT;AAELzE,YAAAA,IAAI,qBAAc,KAAKmE,UAAL,CAAgBkD,GAAG,CAACrH,IAApB,CAAd;AAFC,WAAP;;AAIF,aAAK,UAAL;AACE,iBAAO;AAAEuD,YAAAA,OAAO,EAAE,EAAX;AAAevD,YAAAA,IAAI,EAAE,KAAKmE,UAAL,CAAgB/C,IAAI,CAACpB,IAArB;AAArB,WAAP;AAnBJ;;AAqBA,YAAM,IAAIwH,KAAJ,qCAAuCC,IAAI,CAACC,SAAL,CAAetG,IAAf,CAAvC,EAAN;AACD;;AAED,QAAIA,IAAI,CAACpB,IAAT,EAAe;AACb,aACEkG,OAAO,CAAC9E,IAAI,CAACpB,IAAN,CAAP,IAAsB;AAAEuD,QAAAA,OAAO,EAAE,KAAKkB,OAAhB;AAAyBzE,QAAAA,IAAI,YAAKoB,IAAI,CAACpB,IAAV;AAA7B,OADxB;AAGD,KAJD,MAIO;AACL,YAAM,IAAIwH,KAAJ,CAAU,gCAAV,CAAN;AACD;AACF;;AAEDG,EAAAA,WAAW,CAACvH,MAAD,EAAiBgB,IAAjB,EAA8B;AACvC,QAAMS,IAAI,GAAG,KAAKiB,MAAL,CAAY1C,MAAZ,CAAb;AAEA,QAAMwH,MAAM,GAAG,IAAI1J,iBAAJ,EAAf;;AAEA,QAAI;AACF,UAAIkD,IAAI,YAAYyG,mBAApB,EAA8B;AAE5B,YAAMC,KAAe,GAAG,EAAxB;AACA,YAAIC,cAAc,GAAG,EAArB;AACA,YAAMhK,GAAG,GAAGqD,IAAZ;AACA,YAAM4G,QAAQ,GAAG,KAAK7D,UAAL,CAAgB/C,IAAI,CAACpB,IAArB,CAAjB;AACA8H,QAAAA,KAAK,CAAClJ,IAAN,gBAAmBoJ,QAAnB;AACAjK,QAAAA,GAAG,CAACkK,MAAJ,CAAW5J,OAAX,CAAoBC,KAAD,IAAW;AAE5B,eAAK4J,gBAAL,CAAsBrG,IAAtB,EAA4BvD,KAA5B,EAAmC0J,QAAnC,EAA6CJ,MAA7C;AACD,SAHD;AAIAE,QAAAA,KAAK,CAAClJ,IAAN,CAAWgJ,MAAM,CAAC/I,QAAP,EAAX;AACAkJ,QAAAA,cAAc,GAAGD,KAAK,CAAC1F,IAAN,CAAW,KAAK+F,aAAhB,CAAjB;AAEA,eAAOJ,cAAP;AACD,OAfD,MAeO;AACL,aAAKK,cAAL,CAAoBhH,IAApB,EAA0B/C,OAA1B,CAAmCgK,IAAD,IAEhC,KAAKC,eAAL,CAAqBzG,IAArB,EAA2BwG,IAA3B,EAAiCT,MAAjC,CAFF;AAKD;AACF,KAvBD,CAuBE,gBAAM;AACN,YAAM,IAAIJ,KAAJ,CAAUC,IAAI,CAACC,SAAL,CAAetG,IAAf,EAAqB,IAArB,EAA2B,CAA3B,CAAV,CAAN;AACD;;AACD,WACE,KAAK0E,aAAL,CAAmB1F,MAAnB,EAA2BgB,IAA3B,IACAwG,MAAM,CAAC/I,QAAP,EADA,GAEA,KAAK0J,SAAL,CAAenI,MAAf,EAAuBgB,IAAvB,CAFA,aAGG,KAAKoH,UAAL,GAAkBpI,MAAlB,GAA2B,EAH9B,SAGmC,KAAKoI,UAHxC,CADF;AAMD;;AAEDN,EAAAA,gBAAgB,CACdtD,OADc,EAEdtG,KAFc,EAGdmK,QAHc,EAIdb,MAJc,EAKd;AACA,QAAMc,KAAK,GAAG,OAAOpK,KAAP,KAAiB,QAAjB,GAA4B,KAAKqK,SAAjC,GAA6C,EAA3D;AACA,QAAM3I,IAAI,aAAMyI,QAAN,cAAkB,KAAK7F,cAAL,CAAoBtE,KAAK,CAACO,QAAN,EAApB,CAAlB,CAAV;;AACA,QAAI+I,MAAJ,EAAY;AACVA,MAAAA,MAAM,CAACzJ,QAAP,CACE,OADF,EAEE6B,IAFF,EAGEyI,QAAQ,IAAI,EAHd,EAIE,GAJF,YAKKC,KALL,SAKapK,KALb,SAKqBoK,KALrB;AAOD;;AACD,2BAAgB1I,IAAhB,cAAwByI,QAAxB,gBAAsCC,KAAtC,SAA8CpK,KAA9C,SAAsDoK,KAAtD;AACD;;AAEDJ,EAAAA,eAAe,CACblI,MADa,EAEbwI,QAFa,EAGbhB,MAHa,EAIL;AACR,QAAMxG,IAAI,GAAG,KAAKD,OAAL,CAAayH,QAAQ,CAACxH,IAAtB,CAAb;AACA,QAAMpB,IAAI,GAAG,KAAK4C,cAAL,CAAoBgG,QAAQ,CAAC5I,IAA7B,CAAb;AACA,QAAMgI,QAAQ,GAAG5G,IAAI,CAACpB,IAAtB;AAEA,QAAM6I,GAAG,GAAGD,QAAQ,CAACpI,WAAT,aACL,KAAKD,OAAL,CAAa,GAAb,EAAkBqI,QAAQ,CAACpI,WAA3B,CADK,IAER,EAFJ;AAIA,QAAMsI,YAAY,GAAGF,QAAQ,CAACtF,QAAT,GAAoB,EAApB,GAAyB,YAA9C;AACA,QAAMyF,eAAe,GAAGH,QAAQ,CAACtF,QAAT,GAAoB,EAApB,GAAyB,GAAjD;;AAEA,QAAIsE,MAAJ,EAAY;AACVA,MAAAA,MAAM,CAACzJ,QAAP,WACKiC,MADL,SACcJ,IADd,aAEK+I,eAFL,SAEuBf,QAFvB,qBAGaY,QAAQ,CAAC5I,IAHtB,SAG6B8I,YAH7B,UAIED,GAJF;AAMD;;AACD;AACD;;AAED1E,EAAAA,UAAU,CAACtG,GAAD,EAAsB;AAC9B,WAAOA,GAAG,CAACmL,MAAJ,CAAW,CAAX,EAAc5E,WAAd,KAA8BvG,GAAG,CAACoL,KAAJ,CAAU,CAAV,CAArC;AACD;;AAEDrG,EAAAA,cAAc,CAAC/E,GAAD,EAAsB;AAClC,WAAO,KAAKsG,UAAL,CACLtG,GAAG,CAACsH,OAAJ,CAAY,cAAZ,EAA6BC,KAAD,IAC1BA,KAAK,CAAChB,WAAN,GAAoBe,OAApB,CAA4B,GAA5B,EAAiC,EAAjC,EAAqCA,OAArC,CAA6C,GAA7C,EAAkD,EAAlD,CADF,CADK,CAAP;AAKD;;AAED3B,EAAAA,WAAW,CAAC3F,GAAD,EAAsB;AAC/B,WAAOA,GAAG,CAACsH,OAAJ,CAAY,cAAZ,EAA6BC,KAAD,IACjCA,KAAK,CAAChB,WAAN,GAAoBe,OAApB,CAA4B,GAA5B,EAAiC,EAAjC,EAAqCA,OAArC,CAA6C,GAA7C,EAAkD,EAAlD,CADK,CAAP;AAGD;;AAzfgC","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { IMappedType, IVersionInfo } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\nimport type {\n ApiModel,\n Arg,\n EnumValueType,\n IMethod,\n IParameter,\n IProperty,\n IType,\n} from './sdkModels'\nimport { EnumType, strBody } from './sdkModels'\n\nconst align = (str: string, size: number): string => {\n const num = size - str.length + 1\n return str + ' '.repeat(num)\n}\n\n/**\n * AlignColumnWriter writes text aligned by column width, it is used to keep the go struct formatting consistent.\n */\nclass AlignColumnWriter {\n private rows: Array<string[]> = []\n private sizes: number[] = []\n\n writeRow(...cols: string[]) {\n cols.forEach((value, index) => {\n this.sizes[index] = Math.max(this.sizes[index] || 0, value.length)\n })\n this.rows.push(cols)\n }\n\n toString(): string {\n let result = ''\n this.rows.forEach((row) => {\n const rowSize = row.length\n row.forEach((col, colIndex) => {\n result +=\n rowSize - 1 === colIndex ? col : align(col, this.sizes[colIndex])\n })\n result = result.trimRight() + '\\n'\n })\n return result\n }\n}\n\n/**\n * Go generator\n */\nexport class GoGen extends CodeGen {\n codePath = './go'\n fileExtension = '.go'\n nullStr = 'nil'\n packagePath = ''\n commentStr = '// '\n\n enumDelimiter = '\\n'\n indentStr = ' '\n endTypeStr = '}'\n codeQuote = `\"`\n\n useNamedParameters = false\n needsRequestTypes = true\n\n keywords = new Set<string>([\n 'break',\n 'default',\n 'func',\n 'interface',\n 'select',\n 'case',\n 'defer',\n 'go',\n 'map',\n 'struct',\n 'chan',\n 'else',\n 'goto',\n 'package',\n 'switch',\n 'const',\n 'fallthrough',\n 'if',\n 'range',\n 'type',\n 'continue',\n 'for',\n 'import',\n 'return',\n 'var',\n ])\n\n constructor(public api: ApiModel, public versions?: IVersionInfo) {\n super(api, versions)\n this.packageName = `v${this.apiVersion.substring(\n 0,\n this.apiVersion.indexOf('.')\n )}`\n this.apiVersion = this.packageName\n }\n\n supportsMultiApi(): boolean {\n return false\n }\n\n reserve(name: string) {\n if (this.keywords.has(name)) {\n return `${name}0`\n }\n return name\n }\n\n commentHeader(indent: string, text: string | undefined) {\n if (this.noComment) return ''\n return text\n ? `${indent}/*\\n\\n${commentBlock(text, indent, '')}\\n${indent}*/\\n`\n : ''\n }\n\n comment(indent: string, description: string) {\n if (this.noComment) return ''\n return commentBlock(description, indent, this.commentStr)\n }\n\n sdkFileName(baseFileName: string) {\n return this.fileName(`${this.sdkPath}/${this.packageName}/${baseFileName}`)\n }\n\n methodSignature(indent: string, method: IMethod): string {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const mapped = this.typeMap(method.type)\n const head = method.description?.trim()\n let headComment =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${mapped.name}`\n let fragment = ''\n const requestType = this.requestTypeName(method)\n const bump = indent + this.indentStr\n\n if (requestType) {\n fragment = `request ${requestType}`\n } else {\n const params: string[] = []\n const args = method.allParams // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) => params.push(this.declareParameter(bump, method, p)))\n fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : ''\n }\n if (method.responseIsBoth()) {\n headComment += `\\n\\n**Note**: Binary content may be returned by this method.\\n`\n } else if (method.responseIsBinary()) {\n headComment += `\\n\\n**Note**: Binary content is returned by this method.\\n`\n }\n if (method.deprecated) {\n headComment += '\\n\\nDeprecated: This method is deprecated.\\n'\n }\n const callback = `callback: (readable: Readable) => Promise<${mapped.name}>,`\n const retType = mapped.name === 'Void' ? '' : `${mapped.name}, `\n const header =\n this.comment('', headComment) +\n '\\n' +\n `func (l *LookerSDK) ${this.toCamelCaseCap(method.name)}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n\n return (\n header +\n fragment +\n `${\n fragment ? ',' : ''\n }\\n${bump}options *rtl.ApiSettings) (${retType}error) {\\n`\n )\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method) +\n `\\n}`\n )\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const type =\n param.location === strBody\n ? this.writeableType(param.type, method) || param.type\n : param.type\n const mapped = this.typeMap(type)\n let pOpt = ''\n if (param.location === strBody) {\n mapped.name = `${mapped.name}`\n }\n if (!param.required) {\n pOpt = mapped.default ? '' : '*'\n }\n return (\n // so it turns out Go doesn't like parameter comments. Go figure https://stackoverflow.com/a/67878816\n // this.commentHeader(indent, this.paramComment(param, mapped)) +\n `${indent}${this.toCamelCase(this.reserve(param.name))} ${pOpt}${\n mapped.name\n }`\n )\n }\n\n encodePathParams(indent: string, method: IMethod) {\n let encodings = ''\n if (method.pathParams.length > 0) {\n const prefix = this.useRequest(method) ? 'request' : ''\n for (const param of method.pathParams) {\n if (param.doEncode()) {\n const name = this.accessor(param.name, prefix)\n\n encodings += `${indent}${name} = url.PathEscape(${name})\\n`\n }\n }\n }\n return encodings\n }\n\n httpCall(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request' : ''\n const mapped = this.typeMap(method.type)\n const bump = indent + this.indentStr\n const args = this.httpArgs(bump, method)\n // const errors = this.errorResponses(indent, method)\n const resultDef =\n mapped.name === 'Void' ? '' : `${indent}var result ${mapped.name}\\n`\n const resultPointer = mapped.name === 'Void' ? 'nil' : `&result`\n const result = mapped.name === 'Void' ? '' : 'result, '\n return (\n `` +\n resultDef +\n `${indent}err := l.session.Do(${resultPointer}, \"${this.capitalize(\n method.httpMethod.toUpperCase()\n )}\", \"${this.apiPath}\", ${this.httpPath(method.endpoint, request)}` +\n `${args ? ', ' + args : ''})` +\n '\\n' +\n `${indent}return ${result}err` +\n '\\n'\n )\n }\n\n // build the http argument list from back to front, so trailing undefined arguments\n // can be omitted. Path arguments are resolved as part of the path parameter to general\n // purpose API method call\n // e.g.\n // {queryArgs...}, bodyArg, {headerArgs...}, {cookieArgs...}\n // {queryArgs...}, null, null, {cookieArgs...}\n // null, bodyArg\n // {queryArgs...}\n httpArgs(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request' : ''\n // add options at the end of the request calls. this will cause all other arguments to be\n // filled in but there's no way to avoid this for passing in the last optional parameter.\n // Fortunately, this code bloat is minimal and also hidden from the consumer.\n let result = this.argFill('', 'options')\n // let result = this.argFill('', this.argGroup(indent, method.cookieArgs, request))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs, request))\n result = this.argFill(\n result,\n method.bodyArg ? this.accessor(method.bodyArg, request) : this.nullStr\n )\n result = this.argFill(\n result,\n this.argGroup(indent, method.queryArgs, request)\n )\n return result\n }\n\n argGroup(_indent: string, args: Arg[], prefix?: string) {\n if (!args || args.length === 0) return this.nullStr\n const hash: string[] = []\n for (const arg of args) {\n const reserved = this.reserve(arg)\n if (prefix) {\n hash.push(`\"${reserved}\": ${this.accessor(arg, prefix)}`)\n } else {\n hash.push(`\"${reserved}\": ${this.toCamelCase(reserved)}`)\n }\n }\n return `map[string]interface{}{${hash.join(this.argDelimiter)}}`\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0) {\n const vars: Array<string> = []\n const str = path.replace(/({.*?})/g, (group) => {\n vars.push(\n this.accessor(group.replace('{', '').replace('}', ''), prefix)\n )\n return '%v'\n })\n const allVars = vars.join(', ')\n return allVars ? `fmt.Sprintf(\"${str}\", ${allVars})` : `\"${str}\"`\n }\n return `\"${path}\"`\n }\n\n /**\n * Determine the type of accessor needed for the symbol name\n *\n * If the prefix is defined:\n * If the name is special, use array accessor\n * If the name is simple, use dotted notation\n *\n * With no prefix, return the \"reserved\" version of the name, which may be the same as name\n *\n * @param name variable to access\n * @param prefix optional prefix for accessor\n * @returns one of 4 possible accessor patterns\n */\n accessor(name: string, prefix?: string) {\n const reserved = this.reserve(this.toCamelCase(name))\n if (!prefix) return reserved\n return `${prefix}.${this.toCamelCaseCap(name)}`\n // if (reserved === name) return `${prefix}.${name}`\n // return `${prefix}[${reserved}]`\n }\n\n methodsEpilogue(_indent: string): string {\n return ''\n }\n\n methodsPrologue(_indent: string): string {\n return `\n// ${this.warnEditing()}\n\npackage ${this.packageName}\n\nimport (\n \"fmt\"\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"net/url\"\n \"time\"\n)\n\ntype LookerSDK struct {\n session *rtl.AuthSession\n}\n\nfunc NewLookerSDK(session *rtl.AuthSession) *LookerSDK {\n return &LookerSDK{\n session: session,\n }\n}\n`\n }\n\n modelsPrologue(_indent: string) {\n const goImport = `\nimport (\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"time\"\n)`\n\n return `\n// ${this.warnEditing()}\n\npackage ${this.packageName}\n${goImport}\n`\n }\n\n modelsEpilogue(_indent: string): string {\n return ''\n }\n\n summary(_indent: string, _text: string | undefined): string {\n return ''\n }\n\n typeSignature(indent: string, type: IType): string {\n return (\n this.comment(indent, type.description) +\n '\\n' +\n `${indent}type ${type.name} struct {\\n`\n )\n }\n\n beginRegion(indent: string, description: string): string {\n return `${indent}// region ${description}`\n }\n\n endRegion(indent: string, description: string): string {\n return `${indent}// endregion ${description}`\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n const mt = this.nullStr\n const ktTypes: Record<string, IMappedType> = {\n any: { default: mt, name: 'interface{}' },\n boolean: { default: mt, name: 'bool' },\n byte: { default: mt, name: 'byte' },\n date: { default: mt, name: 'time.Time' },\n datetime: { default: mt, name: 'time.Time' },\n double: { default: mt, name: 'float64' },\n float: { default: mt, name: 'float32' },\n int32: { default: mt, name: 'int32' },\n int64: { default: mt, name: 'int64' },\n integer: { default: mt, name: 'int' },\n number: { default: mt, name: 'float64' },\n object: { default: mt, name: 'interface{}' },\n password: { default: mt, name: 'string' },\n string: { default: mt, name: 'string' },\n uri: { default: mt, name: 'url.URL' },\n url: { default: mt, name: 'url.URL' },\n void: { default: mt, name: 'Void' }, // todo: check how to handle Void\n }\n\n if (type.elementType) {\n // This is a structure with nested types\n const map = this.typeMap(type.elementType)\n switch (type.className) {\n case 'ArrayType':\n return { default: this.nullStr, name: `[]${map.name}` }\n case 'HashType': {\n const mapName =\n type.elementType.name === 'string' ? 'interface{}' : map.name // TODO fix bad API spec, like MergeQuery vis_config\n // TODO figure out this bizarre string template error either in IntelliJ or TypeScript\n // return {name: `Map<String,${map.name}>`, default: '{}'}\n return {\n default: this.nullStr,\n name: 'map[string]' + `${mapName}`,\n }\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `rtl.Delim${this.capitalize(map.name)}`,\n }\n case 'EnumType':\n return { default: '', name: this.capitalize(type.name) }\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`)\n }\n\n if (type.name) {\n return (\n ktTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n )\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n\n declareType(indent: string, type: IType) {\n const bump = this.bumper(indent)\n\n const writer = new AlignColumnWriter()\n\n try {\n if (type instanceof EnumType) {\n // enum has special handling\n const props: string[] = []\n let propertyValues = ''\n const num = type as EnumType\n const typeName = this.capitalize(type.name)\n props.push(`type ${typeName} string`) // todo: handle other types than string\n num.values.forEach((value) => {\n // props.push(this.declareEnumValue(bump, value, typeName))\n this.declareEnumValue(bump, value, typeName, writer)\n })\n props.push(writer.toString())\n propertyValues = props.join(this.enumDelimiter)\n\n return propertyValues\n } else {\n this.typeProperties(type).forEach((prop) =>\n // props.push(this.declareProperty(bump, prop))\n this.declareProperty(bump, prop, writer)\n )\n // propertyValues = props.join(this.propDelimiter)\n }\n } catch {\n throw new Error(JSON.stringify(type, null, 2))\n }\n return (\n this.typeSignature(indent, type) +\n writer.toString() +\n this.construct(indent, type) +\n `${this.endTypeStr ? indent : ''}${this.endTypeStr}`\n )\n }\n\n declareEnumValue(\n _indent: string,\n value: EnumValueType,\n typename?: string,\n writer?: AlignColumnWriter\n ) {\n const quote = typeof value === 'string' ? this.codeQuote : ''\n const name = `${typename}_${this.toCamelCaseCap(value.toString())}`\n if (writer) {\n writer.writeRow(\n 'const',\n name,\n typename || '',\n '=',\n `${quote}${value}${quote}`\n )\n }\n return `const ${name} ${typename} = ${quote}${value}${quote}`\n }\n\n declareProperty(\n indent: string,\n property: IProperty,\n writer?: AlignColumnWriter\n ): string {\n const type = this.typeMap(property.type)\n const name = this.toCamelCaseCap(property.name)\n const typeName = type.name\n\n const doc = property.description\n ? `${this.comment(' ', property.description)}`\n : ''\n\n const optionalJson = property.required ? '' : ',omitempty'\n const optionalPointer = property.required ? '' : '*'\n\n if (writer) {\n writer.writeRow(\n `${indent}${name}`,\n `${optionalPointer}${typeName}`,\n `\\`json:\"${property.name}${optionalJson}\"\\``,\n doc\n )\n }\n return ``\n }\n\n capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n }\n\n toCamelCaseCap(str: string): string {\n return this.capitalize(\n str.replace(/([-_][a-z])/g, (group) =>\n group.toUpperCase().replace('-', '').replace('_', '')\n )\n )\n }\n\n toCamelCase(str: string): string {\n return str.replace(/([-_][a-z])/g, (group) =>\n group.toUpperCase().replace('-', '').replace('_', '')\n )\n }\n}\n"],"file":"go.gen.js"}
|
|
1
|
+
{"version":3,"file":"go.gen.js","names":["_codeGen","require","_sdkModels","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","align","str","size","num","length","repeat","AlignColumnWriter","constructor","writeRow","_len","arguments","cols","Array","_key","forEach","index","sizes","Math","max","rows","push","toString","result","row","rowSize","col","colIndex","trimRight","GoGen","CodeGen","api","versions","Set","packageName","concat","apiVersion","substring","indexOf","supportsMultiApi","reserve","name","keywords","has","commentHeader","indent","text","noComment","commentBlock","comment","description","commentStr","sdkFileName","baseFileName","fileName","sdkPath","methodSignature","method","methodHeaderDeclaration","_method$description","streamer","mapped","typeMap","type","head","trim","headComment","httpMethod","endpoint","fragment","requestType","requestTypeName","bump","indentStr","params","args","allParams","p","declareParameter","join","paramDelimiter","responseIsBoth","responseIsBinary","deprecated","callback","retType","header","toCamelCaseCap","declareMethod","bumper","encodePathParams","httpCall","param","location","strBody","writeableType","pOpt","required","default","toCamelCase","encodings","pathParams","prefix","useRequest","doEncode","accessor","request","httpArgs","resultDef","resultPointer","capitalize","toUpperCase","apiPath","httpPath","argFill","bodyArg","nullStr","argGroup","queryArgs","_indent","hash","reserved","argDelimiter","path","vars","replace","group","allVars","methodsEpilogue","methodsPrologue","warnEditing","modelsPrologue","goImport","modelsEpilogue","summary","_text","typeSignature","beginRegion","endRegion","mt","ktTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","map","className","mapName","Error","JSON","stringify","declareType","writer","EnumType","props","propertyValues","typeName","values","declareEnumValue","enumDelimiter","typeProperties","prop","declareProperty","_unused","construct","endTypeStr","typename","quote","codeQuote","property","doc","optionalJson","optionalPointer","charAt","slice","exports"],"sources":["../src/go.gen.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { IMappedType, IVersionInfo } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\nimport type {\n ApiModel,\n Arg,\n EnumValueType,\n IMethod,\n IParameter,\n IProperty,\n IType,\n} from './sdkModels'\nimport { EnumType, strBody } from './sdkModels'\n\nconst align = (str: string, size: number): string => {\n const num = size - str.length + 1\n return str + ' '.repeat(num)\n}\n\n/**\n * AlignColumnWriter writes text aligned by column width, it is used to keep the go struct formatting consistent.\n */\nclass AlignColumnWriter {\n private rows: Array<string[]> = []\n private sizes: number[] = []\n\n writeRow(...cols: string[]) {\n cols.forEach((value, index) => {\n this.sizes[index] = Math.max(this.sizes[index] || 0, value.length)\n })\n this.rows.push(cols)\n }\n\n toString(): string {\n let result = ''\n this.rows.forEach((row) => {\n const rowSize = row.length\n row.forEach((col, colIndex) => {\n result +=\n rowSize - 1 === colIndex ? col : align(col, this.sizes[colIndex])\n })\n result = result.trimRight() + '\\n'\n })\n return result\n }\n}\n\n/**\n * Go generator\n */\nexport class GoGen extends CodeGen {\n codePath = './go'\n fileExtension = '.go'\n nullStr = 'nil'\n packagePath = ''\n commentStr = '// '\n\n enumDelimiter = '\\n'\n indentStr = ' '\n endTypeStr = '}'\n codeQuote = `\"`\n\n useNamedParameters = false\n needsRequestTypes = true\n\n keywords = new Set<string>([\n 'break',\n 'default',\n 'func',\n 'interface',\n 'select',\n 'case',\n 'defer',\n 'go',\n 'map',\n 'struct',\n 'chan',\n 'else',\n 'goto',\n 'package',\n 'switch',\n 'const',\n 'fallthrough',\n 'if',\n 'range',\n 'type',\n 'continue',\n 'for',\n 'import',\n 'return',\n 'var',\n ])\n\n constructor(public api: ApiModel, public versions?: IVersionInfo) {\n super(api, versions)\n this.packageName = `v${this.apiVersion.substring(\n 0,\n this.apiVersion.indexOf('.')\n )}`\n this.apiVersion = this.packageName\n }\n\n supportsMultiApi(): boolean {\n return false\n }\n\n reserve(name: string) {\n if (this.keywords.has(name)) {\n return `${name}0`\n }\n return name\n }\n\n commentHeader(indent: string, text: string | undefined) {\n if (this.noComment) return ''\n return text\n ? `${indent}/*\\n\\n${commentBlock(text, indent, '')}\\n${indent}*/\\n`\n : ''\n }\n\n comment(indent: string, description: string) {\n if (this.noComment) return ''\n return commentBlock(description, indent, this.commentStr)\n }\n\n sdkFileName(baseFileName: string) {\n return this.fileName(`${this.sdkPath}/${this.packageName}/${baseFileName}`)\n }\n\n methodSignature(indent: string, method: IMethod): string {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const mapped = this.typeMap(method.type)\n const head = method.description?.trim()\n let headComment =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${mapped.name}`\n let fragment = ''\n const requestType = this.requestTypeName(method)\n const bump = indent + this.indentStr\n\n if (requestType) {\n fragment = `request ${requestType}`\n } else {\n const params: string[] = []\n const args = method.allParams // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) => params.push(this.declareParameter(bump, method, p)))\n fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : ''\n }\n if (method.responseIsBoth()) {\n headComment += `\\n\\n**Note**: Binary content may be returned by this method.\\n`\n } else if (method.responseIsBinary()) {\n headComment += `\\n\\n**Note**: Binary content is returned by this method.\\n`\n }\n if (method.deprecated) {\n headComment += '\\n\\nDeprecated: This method is deprecated.\\n'\n }\n const callback = `callback: (readable: Readable) => Promise<${mapped.name}>,`\n const retType = mapped.name === 'Void' ? '' : `${mapped.name}, `\n const header =\n this.comment('', headComment) +\n '\\n' +\n `func (l *LookerSDK) ${this.toCamelCaseCap(method.name)}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n\n return (\n header +\n fragment +\n `${\n fragment ? ',' : ''\n }\\n${bump}options *rtl.ApiSettings) (${retType}error) {\\n`\n )\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method) +\n `\\n}`\n )\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const type =\n param.location === strBody\n ? this.writeableType(param.type, method) || param.type\n : param.type\n const mapped = this.typeMap(type)\n let pOpt = ''\n if (param.location === strBody) {\n mapped.name = `${mapped.name}`\n }\n if (!param.required) {\n pOpt = mapped.default ? '' : '*'\n }\n return (\n // so it turns out Go doesn't like parameter comments. Go figure https://stackoverflow.com/a/67878816\n // this.commentHeader(indent, this.paramComment(param, mapped)) +\n `${indent}${this.toCamelCase(this.reserve(param.name))} ${pOpt}${\n mapped.name\n }`\n )\n }\n\n encodePathParams(indent: string, method: IMethod) {\n let encodings = ''\n if (method.pathParams.length > 0) {\n const prefix = this.useRequest(method) ? 'request' : ''\n for (const param of method.pathParams) {\n if (param.doEncode()) {\n const name = this.accessor(param.name, prefix)\n\n encodings += `${indent}${name} = url.PathEscape(${name})\\n`\n }\n }\n }\n return encodings\n }\n\n httpCall(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request' : ''\n const mapped = this.typeMap(method.type)\n const bump = indent + this.indentStr\n const args = this.httpArgs(bump, method)\n // const errors = this.errorResponses(indent, method)\n const resultDef =\n mapped.name === 'Void' ? '' : `${indent}var result ${mapped.name}\\n`\n const resultPointer = mapped.name === 'Void' ? 'nil' : `&result`\n const result = mapped.name === 'Void' ? '' : 'result, '\n return (\n `` +\n resultDef +\n `${indent}err := l.session.Do(${resultPointer}, \"${this.capitalize(\n method.httpMethod.toUpperCase()\n )}\", \"${this.apiPath}\", ${this.httpPath(method.endpoint, request)}` +\n `${args ? ', ' + args : ''})` +\n '\\n' +\n `${indent}return ${result}err` +\n '\\n'\n )\n }\n\n // build the http argument list from back to front, so trailing undefined arguments\n // can be omitted. Path arguments are resolved as part of the path parameter to general\n // purpose API method call\n // e.g.\n // {queryArgs...}, bodyArg, {headerArgs...}, {cookieArgs...}\n // {queryArgs...}, null, null, {cookieArgs...}\n // null, bodyArg\n // {queryArgs...}\n httpArgs(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request' : ''\n // add options at the end of the request calls. this will cause all other arguments to be\n // filled in but there's no way to avoid this for passing in the last optional parameter.\n // Fortunately, this code bloat is minimal and also hidden from the consumer.\n let result = this.argFill('', 'options')\n // let result = this.argFill('', this.argGroup(indent, method.cookieArgs, request))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs, request))\n result = this.argFill(\n result,\n method.bodyArg ? this.accessor(method.bodyArg, request) : this.nullStr\n )\n result = this.argFill(\n result,\n this.argGroup(indent, method.queryArgs, request)\n )\n return result\n }\n\n argGroup(_indent: string, args: Arg[], prefix?: string) {\n if (!args || args.length === 0) return this.nullStr\n const hash: string[] = []\n for (const arg of args) {\n const reserved = this.reserve(arg)\n if (prefix) {\n hash.push(`\"${reserved}\": ${this.accessor(arg, prefix)}`)\n } else {\n hash.push(`\"${reserved}\": ${this.toCamelCase(reserved)}`)\n }\n }\n return `map[string]interface{}{${hash.join(this.argDelimiter)}}`\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0) {\n const vars: Array<string> = []\n const str = path.replace(/({.*?})/g, (group) => {\n vars.push(\n this.accessor(group.replace('{', '').replace('}', ''), prefix)\n )\n return '%v'\n })\n const allVars = vars.join(', ')\n return allVars ? `fmt.Sprintf(\"${str}\", ${allVars})` : `\"${str}\"`\n }\n return `\"${path}\"`\n }\n\n /**\n * Determine the type of accessor needed for the symbol name\n *\n * If the prefix is defined:\n * If the name is special, use array accessor\n * If the name is simple, use dotted notation\n *\n * With no prefix, return the \"reserved\" version of the name, which may be the same as name\n *\n * @param name variable to access\n * @param prefix optional prefix for accessor\n * @returns one of 4 possible accessor patterns\n */\n accessor(name: string, prefix?: string) {\n const reserved = this.reserve(this.toCamelCase(name))\n if (!prefix) return reserved\n return `${prefix}.${this.toCamelCaseCap(name)}`\n // if (reserved === name) return `${prefix}.${name}`\n // return `${prefix}[${reserved}]`\n }\n\n methodsEpilogue(_indent: string): string {\n return ''\n }\n\n methodsPrologue(_indent: string): string {\n return `\n// ${this.warnEditing()}\n\npackage ${this.packageName}\n\nimport (\n \"fmt\"\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"net/url\"\n \"time\"\n)\n\ntype LookerSDK struct {\n session *rtl.AuthSession\n}\n\nfunc NewLookerSDK(session *rtl.AuthSession) *LookerSDK {\n return &LookerSDK{\n session: session,\n }\n}\n`\n }\n\n modelsPrologue(_indent: string) {\n const goImport = `\nimport (\n \"github.com/looker-open-source/sdk-codegen/go/rtl\"\n \"time\"\n)`\n\n return `\n// ${this.warnEditing()}\n\npackage ${this.packageName}\n${goImport}\n`\n }\n\n modelsEpilogue(_indent: string): string {\n return ''\n }\n\n summary(_indent: string, _text: string | undefined): string {\n return ''\n }\n\n typeSignature(indent: string, type: IType): string {\n return (\n this.comment(indent, type.description) +\n '\\n' +\n `${indent}type ${type.name} struct {\\n`\n )\n }\n\n beginRegion(indent: string, description: string): string {\n return `${indent}// region ${description}`\n }\n\n endRegion(indent: string, description: string): string {\n return `${indent}// endregion ${description}`\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n const mt = this.nullStr\n const ktTypes: Record<string, IMappedType> = {\n any: { default: mt, name: 'interface{}' },\n boolean: { default: mt, name: 'bool' },\n byte: { default: mt, name: 'byte' },\n date: { default: mt, name: 'time.Time' },\n datetime: { default: mt, name: 'time.Time' },\n double: { default: mt, name: 'float64' },\n float: { default: mt, name: 'float32' },\n int32: { default: mt, name: 'int32' },\n int64: { default: mt, name: 'int64' },\n integer: { default: mt, name: 'int' },\n number: { default: mt, name: 'float64' },\n object: { default: mt, name: 'interface{}' },\n password: { default: mt, name: 'string' },\n string: { default: mt, name: 'string' },\n uri: { default: mt, name: 'url.URL' },\n url: { default: mt, name: 'url.URL' },\n void: { default: mt, name: 'Void' }, // todo: check how to handle Void\n }\n\n if (type.elementType) {\n // This is a structure with nested types\n const map = this.typeMap(type.elementType)\n switch (type.className) {\n case 'ArrayType':\n return { default: this.nullStr, name: `[]${map.name}` }\n case 'HashType': {\n const mapName =\n type.elementType.name === 'string' ? 'interface{}' : map.name // TODO fix bad API spec, like MergeQuery vis_config\n // TODO figure out this bizarre string template error either in IntelliJ or TypeScript\n // return {name: `Map<String,${map.name}>`, default: '{}'}\n return {\n default: this.nullStr,\n name: 'map[string]' + `${mapName}`,\n }\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `rtl.Delim${this.capitalize(map.name)}`,\n }\n case 'EnumType':\n return { default: '', name: this.capitalize(type.name) }\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`)\n }\n\n if (type.name) {\n return (\n ktTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n )\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n\n declareType(indent: string, type: IType) {\n const bump = this.bumper(indent)\n\n const writer = new AlignColumnWriter()\n\n try {\n if (type instanceof EnumType) {\n // enum has special handling\n const props: string[] = []\n let propertyValues = ''\n const num = type as EnumType\n const typeName = this.capitalize(type.name)\n props.push(`type ${typeName} string`) // todo: handle other types than string\n num.values.forEach((value) => {\n // props.push(this.declareEnumValue(bump, value, typeName))\n this.declareEnumValue(bump, value, typeName, writer)\n })\n props.push(writer.toString())\n propertyValues = props.join(this.enumDelimiter)\n\n return propertyValues\n } else {\n this.typeProperties(type).forEach((prop) =>\n // props.push(this.declareProperty(bump, prop))\n this.declareProperty(bump, prop, writer)\n )\n // propertyValues = props.join(this.propDelimiter)\n }\n } catch {\n throw new Error(JSON.stringify(type, null, 2))\n }\n return (\n this.typeSignature(indent, type) +\n writer.toString() +\n this.construct(indent, type) +\n `${this.endTypeStr ? indent : ''}${this.endTypeStr}`\n )\n }\n\n declareEnumValue(\n _indent: string,\n value: EnumValueType,\n typename?: string,\n writer?: AlignColumnWriter\n ) {\n const quote = typeof value === 'string' ? this.codeQuote : ''\n const name = `${typename}_${this.toCamelCaseCap(value.toString())}`\n if (writer) {\n writer.writeRow(\n 'const',\n name,\n typename || '',\n '=',\n `${quote}${value}${quote}`\n )\n }\n return `const ${name} ${typename} = ${quote}${value}${quote}`\n }\n\n declareProperty(\n indent: string,\n property: IProperty,\n writer?: AlignColumnWriter\n ): string {\n const type = this.typeMap(property.type)\n const name = this.toCamelCaseCap(property.name)\n const typeName = type.name\n\n const doc = property.description\n ? `${this.comment(' ', property.description)}`\n : ''\n\n const optionalJson = property.required ? '' : ',omitempty'\n const optionalPointer = property.required ? '' : '*'\n\n if (writer) {\n writer.writeRow(\n `${indent}${name}`,\n `${optionalPointer}${typeName}`,\n `\\`json:\"${property.name}${optionalJson}\"\\``,\n doc\n )\n }\n return ``\n }\n\n capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1)\n }\n\n toCamelCaseCap(str: string): string {\n return this.capitalize(\n str.replace(/([-_][a-z])/g, (group) =>\n group.toUpperCase().replace('-', '').replace('_', '')\n )\n )\n }\n\n toCamelCase(str: string): string {\n return str.replace(/([-_][a-z])/g, (group) =>\n group.toUpperCase().replace('-', '').replace('_', '')\n )\n }\n}\n"],"mappings":"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"}
|