@looker/sdk-codegen 21.7.4 → 21.8.0

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.
Files changed (71) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/lib/codeGen.d.ts +1 -1
  3. package/lib/codeGen.js +28 -154
  4. package/lib/codeGen.js.map +1 -1
  5. package/lib/codeGenerators.js +0 -16
  6. package/lib/codeGenerators.js.map +1 -1
  7. package/lib/csharp.gen.js +3 -71
  8. package/lib/csharp.gen.js.map +1 -1
  9. package/lib/declarationInfo.js +0 -7
  10. package/lib/declarationInfo.js.map +1 -1
  11. package/lib/esm/codeGen.js +48 -157
  12. package/lib/esm/codeGen.js.map +1 -1
  13. package/lib/esm/codeGenerators.js +28 -20
  14. package/lib/esm/codeGenerators.js.map +1 -1
  15. package/lib/esm/csharp.gen.js +19 -75
  16. package/lib/esm/csharp.gen.js.map +1 -1
  17. package/lib/esm/declarationInfo.js +10 -7
  18. package/lib/esm/declarationInfo.js.map +1 -1
  19. package/lib/esm/exampleInfo.js +24 -23
  20. package/lib/esm/exampleInfo.js.map +1 -1
  21. package/lib/esm/go.gen.js +18 -92
  22. package/lib/esm/go.gen.js.map +1 -1
  23. package/lib/esm/index.js +148 -13
  24. package/lib/esm/index.js.map +1 -1
  25. package/lib/esm/kotlin.gen.js +23 -118
  26. package/lib/esm/kotlin.gen.js.map +1 -1
  27. package/lib/esm/pseudo.gen.js +14 -24
  28. package/lib/esm/pseudo.gen.js.map +1 -1
  29. package/lib/esm/python.gen.js +19 -138
  30. package/lib/esm/python.gen.js.map +1 -1
  31. package/lib/esm/sdkModels.js +100 -432
  32. package/lib/esm/sdkModels.js.map +1 -1
  33. package/lib/esm/specConverter.js +58 -88
  34. package/lib/esm/specConverter.js.map +1 -1
  35. package/lib/esm/specDiff.js +36 -51
  36. package/lib/esm/specDiff.js.map +1 -1
  37. package/lib/esm/swift.gen.js +25 -137
  38. package/lib/esm/swift.gen.js.map +1 -1
  39. package/lib/esm/testUtils/index.js +17 -0
  40. package/lib/esm/testUtils/index.js.map +1 -0
  41. package/lib/esm/testUtils/testUtils.js +66 -0
  42. package/lib/esm/testUtils/testUtils.js.map +1 -0
  43. package/lib/esm/typescript.gen.js +24 -125
  44. package/lib/esm/typescript.gen.js.map +1 -1
  45. package/lib/exampleInfo.js +1 -31
  46. package/lib/exampleInfo.js.map +1 -1
  47. package/lib/go.gen.js +3 -87
  48. package/lib/go.gen.js.map +1 -1
  49. package/lib/index.js +0 -26
  50. package/lib/index.js.map +1 -1
  51. package/lib/kotlin.gen.js +7 -113
  52. package/lib/kotlin.gen.js.map +1 -1
  53. package/lib/pseudo.gen.js +3 -24
  54. package/lib/pseudo.gen.js.map +1 -1
  55. package/lib/python.gen.js +3 -133
  56. package/lib/python.gen.js.map +1 -1
  57. package/lib/sdkModels.js +8 -438
  58. package/lib/sdkModels.js.map +1 -1
  59. package/lib/specConverter.js +6 -106
  60. package/lib/specConverter.js.map +1 -1
  61. package/lib/specDiff.js +1 -56
  62. package/lib/specDiff.js.map +1 -1
  63. package/lib/swift.gen.js +3 -128
  64. package/lib/swift.gen.js.map +1 -1
  65. package/lib/testUtils/index.js +0 -2
  66. package/lib/testUtils/index.js.map +1 -1
  67. package/lib/testUtils/testUtils.js +1 -17
  68. package/lib/testUtils/testUtils.js.map +1 -1
  69. package/lib/typescript.gen.js +5 -117
  70. package/lib/typescript.gen.js.map +1 -1
  71. package/package.json +3 -3
@@ -1,85 +1,67 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
- import { CodeGen, commentBlock } from './codeGen';
4
- import { strBody, firstCase, EnumType, describeParam } from './sdkModels';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CSharpGen = void 0;
7
+ var _codeGen = require("./codeGen");
8
+ var _sdkModels = require("./sdkModels");
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); }
5
12
  var reservedWords = new Set(['abstract', 'as', 'base', 'bool', 'break', 'byte', 'case', 'catch', 'char', 'checked', 'class', 'const', 'continue', 'decimal', 'default', 'delegate', 'do ', 'double', 'else', 'enum', 'event', 'explicit', 'extern', 'false', 'finally', 'fixed', 'float', 'for', 'foreach', 'goto', 'if', 'implicit', 'in', 'int', 'interface', 'internal', 'is', 'lock', 'long', 'namespace', 'new', 'null', 'object', 'operator', 'out', 'override', 'params', 'private', 'protected', 'public', 'readonly', 'ref', 'return', 'sbyte', 'sealed', 'short', 'sizeof', 'stackalloc', 'static', 'string', 'struct', 'switch', 'this', 'throw', 'true', 'try', 'typeof', 'uint', 'ulong', 'unchecked', 'unsafe', 'ushort', 'using', 'virtual', 'void', 'volatile', 'while']);
6
- export class CSharpGen extends CodeGen {
13
+ class CSharpGen extends _codeGen.CodeGen {
7
14
  constructor() {
8
15
  super(...arguments);
9
-
10
16
  _defineProperty(this, "codePath", './csharp');
11
-
12
17
  _defineProperty(this, "packagePath", '');
13
-
14
18
  _defineProperty(this, "itself", 'this');
15
-
16
19
  _defineProperty(this, "fileExtension", '.cs');
17
-
18
20
  _defineProperty(this, "commentStr", '// ');
19
-
20
21
  _defineProperty(this, "nullStr", 'null');
21
-
22
22
  _defineProperty(this, "transport", 'Transport');
23
-
24
23
  _defineProperty(this, "argDelimiter", ',');
25
-
26
24
  _defineProperty(this, "paramDelimiter", ',\n');
27
-
28
25
  _defineProperty(this, "propDelimiter", '\n');
29
-
30
26
  _defineProperty(this, "indentStr", ' ');
31
-
32
27
  _defineProperty(this, "endTypeStr", '\n}');
33
-
34
28
  _defineProperty(this, "needsRequestTypes", false);
35
-
36
29
  _defineProperty(this, "willItStream", false);
37
-
38
30
  _defineProperty(this, "codeQuote", '"');
39
31
  }
40
-
41
32
  commentHeader(indent, text) {
42
33
  if (this.noComment) return '';
43
- return text ? "".concat(commentBlock(text, indent, '/// '), "\n") : '';
34
+ return text ? "".concat((0, _codeGen.commentBlock)(text, indent, '/// '), "\n") : '';
44
35
  }
45
-
46
36
  modelsPrologue(_indent) {
47
37
  return "#nullable enable\nusing System;\nusing System.Runtime.Serialization;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Converters;\nusing Looker.RTL;\nusing Url = System.String;\nusing Password = System.String;\n// ReSharper disable InconsistentNaming\n\n".concat(this.commentHeader('', this.warnEditing()), "\nnamespace Looker.SDK.API").concat(this.apiRef, "\n{\n\n");
48
38
  }
49
-
50
39
  modelsEpilogue(_indent) {
51
40
  return '\n}';
52
41
  }
53
-
54
42
  methodsPrologue(_indent) {
55
43
  return "#nullable enable\nusing System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Looker.RTL;\n// ReSharper disable InconsistentNaming\n\n".concat(this.commentHeader('', this.warnEditing()), "\nnamespace Looker.SDK.API").concat(this.apiRef, "\n{\n\n public class ").concat(this.packageName, ": ApiMethods\n {\n public ").concat(this.packageName, "(IAuthSession authSession): base(authSession, \"").concat(this.apiVersion, "\") { }\n");
56
44
  }
57
-
58
45
  methodsEpilogue(indent) {
59
46
  return "".concat(indent, "}\n}\n");
60
47
  }
61
-
62
48
  reserve(name) {
63
49
  if (reservedWords.has(name)) {
64
50
  return '@' + name;
65
51
  }
66
-
67
52
  return name;
68
53
  }
69
-
70
54
  declareParameter(indent, method, param) {
71
- var type = param.location === strBody ? this.writeableType(param.type, method) || param.type : param.type;
55
+ var type = param.location === _sdkModels.strBody ? this.writeableType(param.type, method) || param.type : param.type;
72
56
  var mapped = this.typeMap(type);
73
57
  var arg = this.reserve(param.name);
74
58
  var pOpt = param.required ? '' : '?';
75
59
  var defaulting = param.required ? '' : mapped.optional ? " = ".concat(mapped.optional) : '';
76
60
  return "".concat(indent).concat(mapped.name).concat(pOpt, " ").concat(arg).concat(defaulting);
77
61
  }
78
-
79
62
  declareProperty(indent, property) {
80
63
  var type = this.typeMap(property.type);
81
64
  var getset = '{ get; set; }';
82
-
83
65
  if (property.required) {
84
66
  if (type.default) {
85
67
  getset += " = ".concat(type.default, ";");
@@ -89,42 +71,33 @@ export class CSharpGen extends CodeGen {
89
71
  getset += " = ".concat(type.optional, ";");
90
72
  }
91
73
  }
92
-
93
74
  var arg = this.reserve(property.name);
94
75
  var pOpt = property.required ? '' : '?';
95
- var attr = property.type instanceof EnumType ? "".concat(indent, "[JsonConverter(typeof(StringEnumConverter))]\n") : '';
96
-
76
+ var attr = property.type instanceof _sdkModels.EnumType ? "".concat(indent, "[JsonConverter(typeof(StringEnumConverter))]\n") : '';
97
77
  if (property.hasSpecialNeeds) {
98
78
  attr += "".concat(indent, "[JsonProperty(\"").concat(property.jsonName, "\")]\n");
99
79
  }
100
-
101
80
  return this.summary(indent, this.describeProperty(property)) + attr + "".concat(indent, "public ").concat(type.name).concat(pOpt, " ").concat(arg, " ").concat(getset);
102
81
  }
103
-
104
82
  methodHeader(indent, method) {
105
83
  var _method$description;
106
-
107
84
  var type = this.typeMap(method.type);
108
85
  var head = (_method$description = method.description) === null || _method$description === void 0 ? void 0 : _method$description.trim();
109
86
  var headComment = (head ? "".concat(head, "\n\n") : '') + "".concat(method.httpMethod, " ").concat(method.endpoint, " -> ").concat(type.name);
110
-
111
87
  if (method.responseIsBoth()) {
112
88
  headComment += "\n\n**Note**: Binary content may be returned by this method.";
113
89
  } else if (method.responseIsBinary()) {
114
90
  headComment += "\n\n**Note**: Binary content is returned by this method.";
115
91
  }
116
-
117
92
  headComment += this.returnComment(method);
118
93
  method.params.forEach(param => headComment += this.paramComment(param));
119
94
  var dep = method.deprecated ? "".concat(indent, "[Obsolete(\"Deprecated\")]\n") : '';
120
95
  return this.commentHeader(indent, headComment) + dep;
121
96
  }
122
-
123
97
  genericBits(method) {
124
98
  var success = 'TSuccess';
125
99
  var generic = '<TSuccess>';
126
100
  var constraint = ' where TSuccess : class';
127
-
128
101
  if (method.returnType) {
129
102
  var ret = method.returnType;
130
103
  var type = this.typeMap(ret.type);
@@ -132,14 +105,12 @@ export class CSharpGen extends CodeGen {
132
105
  generic = '';
133
106
  constraint = '';
134
107
  }
135
-
136
108
  return {
137
109
  success,
138
110
  generic,
139
111
  constraint
140
112
  };
141
113
  }
142
-
143
114
  methodHeaderDeclaration(indent, method) {
144
115
  var streamer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
145
116
  var type = this.typeMap(method.type);
@@ -153,57 +124,46 @@ export class CSharpGen extends CodeGen {
153
124
  var header = this.methodHeader(indent, method) + "".concat(indent, "public async Task<SdkResponse<").concat(bits.success, ", Exception>> ").concat(method.name).concat(bits.generic, "(") + (streamer ? "\n".concat(bump).concat(callback) : '');
154
125
  return header + fragment + "".concat(fragment ? ',' : '', "\n").concat(bump, "ITransportSettings? options = null)").concat(bits.constraint, "\n{").concat(indent, "\n");
155
126
  }
156
-
157
127
  methodSignature(indent, method) {
158
128
  return this.methodHeaderDeclaration(indent, method, false);
159
129
  }
160
-
161
130
  httpPath(path, prefix) {
162
131
  prefix = prefix || '';
163
-
164
132
  if (path.indexOf('{') >= 0) {
165
133
  return "$\"".concat(path.replace(/{/gi, '{' + prefix), "\"");
166
134
  }
167
-
168
135
  return "'".concat(path, "'");
169
136
  }
170
-
171
137
  declareMethod(indent, method) {
172
138
  var bump = this.bumper(indent);
173
139
  return this.methodSignature(indent, method) + this.encodePathParams(bump, method) + this.httpCall(bump, method) + "\n".concat(indent, "}");
174
140
  }
175
-
176
141
  errorResponses(_indent, _method) {
177
142
  return 'Exception';
178
143
  }
179
-
180
144
  argGroup(_indent, args, prefix) {
181
145
  prefix = prefix || '';
182
146
  var values = args.map(arg => "{ \"".concat(arg, "\", ").concat(this.reserve(arg), " }"));
183
147
  var bump = this.bumper(this.indentStr) + this.indentStr;
184
148
  return args && args.length !== 0 ? "new Values {\n".concat(bump).concat(values.join("".concat(this.argDelimiter.trim(), "\n").concat(bump).concat(prefix)), "}") : this.nullStr;
185
149
  }
186
-
187
150
  httpArgs(indent, method) {
188
151
  var result = this.argFill('', 'options');
189
152
  result = this.argFill(result, method.bodyArg ? method.bodyArg : this.nullStr);
190
153
  result = this.argFill(result, this.argGroup(indent, method.queryArgs));
191
154
  return result;
192
155
  }
193
-
194
156
  httpCall(indent, method) {
195
157
  var bump = indent + this.indentStr;
196
158
  var args = this.httpArgs(bump, method);
197
159
  var dollah = method.pathArgs.length ? '$' : '';
198
160
  var bits = this.genericBits(method);
199
- var fragment = "AuthRequest<".concat(bits.success, ", Exception>(HttpMethod.").concat(firstCase(method.httpMethod), ", ").concat(dollah, "\"").concat(method.endpoint, "\"").concat(args ? ', ' + args : '', ")");
161
+ var fragment = "AuthRequest<".concat(bits.success, ", Exception>(HttpMethod.").concat((0, _sdkModels.firstCase)(method.httpMethod), ", ").concat(dollah, "\"").concat(method.endpoint, "\"").concat(args ? ', ' + args : '', ")");
200
162
  return "".concat(indent, "return await ").concat(fragment, ";");
201
163
  }
202
-
203
164
  encodePathParams(indent, method) {
204
165
  var bump = indent + this.indentStr;
205
166
  var encodings = '';
206
-
207
167
  if (method.pathParams.length > 0) {
208
168
  for (var param of method.pathParams) {
209
169
  if (param.doEncode()) {
@@ -211,28 +171,22 @@ export class CSharpGen extends CodeGen {
211
171
  }
212
172
  }
213
173
  }
214
-
215
174
  return encodings;
216
175
  }
217
-
218
176
  summary(indent, summary) {
219
177
  if (this.noComment || !summary) return '';
220
178
  var nl = summary.indexOf('\n') >= 0 ? '\n' : '';
221
179
  return this.commentHeader(indent, "<summary>".concat(nl).concat(summary).concat(nl, "</summary>"));
222
180
  }
223
-
224
181
  paramComment(param) {
225
- return param.description ? "\n<param name=\"".concat(param.name, "\">").concat(describeParam(param), "</param>") : '';
182
+ return param.description ? "\n<param name=\"".concat(param.name, "\">").concat((0, _sdkModels.describeParam)(param), "</param>") : '';
226
183
  }
227
-
228
184
  returnComment(method) {
229
185
  var type = method.returnType;
230
-
231
186
  if (type) {
232
187
  var mapped = this.typeMap(type.type);
233
188
  return "\n\n<returns><c>".concat(mapped.name, "</c> ").concat(type.description, " (").concat(type.mediaType, ")</returns>\n");
234
189
  }
235
-
236
190
  var desc = [];
237
191
  method.okResponses.forEach(r => {
238
192
  var mapped = this.typeMap(r.type);
@@ -241,18 +195,15 @@ export class CSharpGen extends CodeGen {
241
195
  var lines = desc.join('\n');
242
196
  return "\n\n<returns>\n".concat(lines, "\n</returns>\n");
243
197
  }
244
-
245
198
  declareEnumValue(indent, value) {
246
199
  return "".concat(indent, "[EnumMember(Value = \"").concat(value, "\")]\n").concat(indent).concat(this.reserve(value.toString()));
247
200
  }
248
-
249
201
  typeSignature(indent, type) {
250
- var isEnum = type instanceof EnumType;
202
+ var isEnum = type instanceof _sdkModels.EnumType;
251
203
  var kind = isEnum ? 'enum' : 'class';
252
204
  var parent = isEnum ? '' : ' : SdkModel';
253
205
  return this.commentHeader(indent, type.description) + "".concat(indent, "public ").concat(kind, " ").concat(this.reserve(type.name)).concat(parent, "\n{\n");
254
206
  }
255
-
256
207
  typeMap(type) {
257
208
  super.typeMap(type);
258
209
  var mt = '';
@@ -344,10 +295,8 @@ export class CSharpGen extends CodeGen {
344
295
  name: 'void'
345
296
  }
346
297
  };
347
-
348
298
  if (type.elementType) {
349
299
  var map = this.typeMap(type.elementType);
350
-
351
300
  switch (type.className) {
352
301
  case 'ArrayType':
353
302
  return {
@@ -355,31 +304,26 @@ export class CSharpGen extends CodeGen {
355
304
  name: "".concat(map.name, "[]"),
356
305
  optional
357
306
  };
358
-
359
307
  case 'HashType':
360
308
  return {
361
309
  default: this.nullStr,
362
310
  name: "StringDictionary<".concat(map.name, ">"),
363
311
  optional
364
312
  };
365
-
366
313
  case 'DelimArrayType':
367
314
  return {
368
315
  default: this.nullStr,
369
316
  name: "DelimArray<".concat(map.name, ">"),
370
317
  optional
371
318
  };
372
-
373
319
  case 'EnumType':
374
320
  return {
375
321
  default: '',
376
322
  name: type.name
377
323
  };
378
324
  }
379
-
380
325
  throw new Error("Don't know how to handle: ".concat(JSON.stringify(type)));
381
326
  }
382
-
383
327
  if (type.name) {
384
328
  return csTypes[type.name] || {
385
329
  default: this.nullStr,
@@ -389,6 +333,6 @@ export class CSharpGen extends CodeGen {
389
333
  throw new Error('Cannot output a nameless type.');
390
334
  }
391
335
  }
392
-
393
336
  }
337
+ exports.CSharpGen = CSharpGen;
394
338
  //# sourceMappingURL=csharp.gen.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/csharp.gen.ts"],"names":["CodeGen","commentBlock","strBody","firstCase","EnumType","describeParam","reservedWords","Set","CSharpGen","commentHeader","indent","text","noComment","modelsPrologue","_indent","warnEditing","apiRef","modelsEpilogue","methodsPrologue","packageName","apiVersion","methodsEpilogue","reserve","name","has","declareParameter","method","param","type","location","writeableType","mapped","typeMap","arg","pOpt","required","defaulting","optional","declareProperty","property","getset","default","attr","hasSpecialNeeds","jsonName","summary","describeProperty","methodHeader","head","description","trim","headComment","httpMethod","endpoint","responseIsBoth","responseIsBinary","returnComment","params","forEach","paramComment","dep","deprecated","genericBits","success","generic","constraint","returnType","ret","methodHeaderDeclaration","streamer","bump","indentStr","args","allParams","length","p","push","fragment","join","paramDelimiter","callback","bits","header","methodSignature","httpPath","path","prefix","indexOf","replace","declareMethod","bumper","encodePathParams","httpCall","errorResponses","_method","argGroup","values","map","argDelimiter","nullStr","httpArgs","result","argFill","bodyArg","queryArgs","dollah","pathArgs","encodings","pathParams","doEncode","nl","mediaType","desc","okResponses","r","lines","declareEnumValue","value","toString","typeSignature","isEnum","kind","parent","mt","quotes","csTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","className","Error","JSON","stringify"],"mappings":";;AA2BA,SAASA,OAAT,EAAkBC,YAAlB,QAAsC,WAAtC;AASA,SAASC,OAAT,EAAkBC,SAAlB,EAA6BC,QAA7B,EAAuCC,aAAvC,QAA4D,aAA5D;AAGA,IAAMC,aAAa,GAAG,IAAIC,GAAJ,CAAgB,CACpC,UADoC,EAEpC,IAFoC,EAGpC,MAHoC,EAIpC,MAJoC,EAKpC,OALoC,EAMpC,MANoC,EAOpC,MAPoC,EAQpC,OARoC,EASpC,MAToC,EAUpC,SAVoC,EAWpC,OAXoC,EAYpC,OAZoC,EAapC,UAboC,EAcpC,SAdoC,EAepC,SAfoC,EAgBpC,UAhBoC,EAiBpC,KAjBoC,EAkBpC,QAlBoC,EAmBpC,MAnBoC,EAoBpC,MApBoC,EAqBpC,OArBoC,EAsBpC,UAtBoC,EAuBpC,QAvBoC,EAwBpC,OAxBoC,EAyBpC,SAzBoC,EA0BpC,OA1BoC,EA2BpC,OA3BoC,EA4BpC,KA5BoC,EA6BpC,SA7BoC,EA8BpC,MA9BoC,EA+BpC,IA/BoC,EAgCpC,UAhCoC,EAiCpC,IAjCoC,EAkCpC,KAlCoC,EAmCpC,WAnCoC,EAoCpC,UApCoC,EAqCpC,IArCoC,EAsCpC,MAtCoC,EAuCpC,MAvCoC,EAwCpC,WAxCoC,EAyCpC,KAzCoC,EA0CpC,MA1CoC,EA2CpC,QA3CoC,EA4CpC,UA5CoC,EA6CpC,KA7CoC,EA8CpC,UA9CoC,EA+CpC,QA/CoC,EAgDpC,SAhDoC,EAiDpC,WAjDoC,EAkDpC,QAlDoC,EAmDpC,UAnDoC,EAoDpC,KApDoC,EAqDpC,QArDoC,EAsDpC,OAtDoC,EAuDpC,QAvDoC,EAwDpC,OAxDoC,EAyDpC,QAzDoC,EA0DpC,YA1DoC,EA2DpC,QA3DoC,EA4DpC,QA5DoC,EA6DpC,QA7DoC,EA8DpC,QA9DoC,EA+DpC,MA/DoC,EAgEpC,OAhEoC,EAiEpC,MAjEoC,EAkEpC,KAlEoC,EAmEpC,QAnEoC,EAoEpC,MApEoC,EAqEpC,OArEoC,EAsEpC,WAtEoC,EAuEpC,QAvEoC,EAwEpC,QAxEoC,EAyEpC,OAzEoC,EA0EpC,SA1EoC,EA2EpC,MA3EoC,EA4EpC,UA5EoC,EA6EpC,OA7EoC,CAAhB,CAAtB;AAmFA,OAAO,MAAMC,SAAN,SAAwBR,OAAxB,CAAgC;AAAA;AAAA;;AAAA,sCAC1B,UAD0B;;AAAA,yCAEvB,EAFuB;;AAAA,oCAG5B,MAH4B;;AAAA,2CAIrB,KAJqB;;AAAA,wCAKxB,KALwB;;AAAA,qCAM3B,MAN2B;;AAAA,uCAOzB,WAPyB;;AAAA,0CAStB,GATsB;;AAAA,4CAUpB,KAVoB;;AAAA,2CAWrB,IAXqB;;AAAA,uCAazB,IAbyB;;AAAA,wCAcxB,KAdwB;;AAAA,+CAejB,KAfiB;;AAAA,0CAgBtB,KAhBsB;;AAAA,uCAiBzB,GAjByB;AAAA;;AAmBrCS,EAAAA,aAAa,CAACC,MAAD,EAAiBC,IAAjB,EAA2C;AACtD,QAAI,KAAKC,SAAT,EAAoB,OAAO,EAAP;AACpB,WAAOD,IAAI,aAAMV,YAAY,CAACU,IAAD,EAAOD,MAAP,EAAe,MAAf,CAAlB,UAA+C,EAA1D;AACD;;AAEDG,EAAAA,cAAc,CAACC,OAAD,EAAkB;AAC9B,iRAUF,KAAKL,aAAL,CAAmB,EAAnB,EAAuB,KAAKM,WAAL,EAAvB,CAVE,uCAWsB,KAAKC,MAX3B;AAeD;;AAEDC,EAAAA,cAAc,CAACH,OAAD,EAAkB;AAC9B,WAAO,KAAP;AACD;;AAEDI,EAAAA,eAAe,CAACJ,OAAD,EAAkB;AAC/B,2KAOF,KAAKL,aAAL,CAAmB,EAAnB,EAAuB,KAAKM,WAAL,EAAvB,CAPE,uCAQsB,KAAKC,MAR3B,mCAWa,KAAKG,WAXlB,2CAaS,KAAKA,WAbd,6DAcE,KAAKC,UAdP;AAiBD;;AAEDC,EAAAA,eAAe,CAACX,MAAD,EAAiB;AAC9B,qBAAUA,MAAV;AAGD;;AAEDY,EAAAA,OAAO,CAACC,IAAD,EAAe;AACpB,QAAIjB,aAAa,CAACkB,GAAd,CAAkBD,IAAlB,CAAJ,EAA6B;AAC3B,aAAO,MAAMA,IAAb;AACD;;AACD,WAAOA,IAAP;AACD;;AAEDE,EAAAA,gBAAgB,CAACf,MAAD,EAAiBgB,MAAjB,EAAkCC,KAAlC,EAAqD;AACnE,QAAMC,IAAI,GACRD,KAAK,CAACE,QAAN,KAAmB3B,OAAnB,GACI,KAAK4B,aAAL,CAAmBH,KAAK,CAACC,IAAzB,EAA+BF,MAA/B,KAA0CC,KAAK,CAACC,IADpD,GAEID,KAAK,CAACC,IAHZ;AAIA,QAAMG,MAAM,GAAG,KAAKC,OAAL,CAAaJ,IAAb,CAAf;AACA,QAAMK,GAAG,GAAG,KAAKX,OAAL,CAAaK,KAAK,CAACJ,IAAnB,CAAZ;AACA,QAAMW,IAAI,GAAGP,KAAK,CAACQ,QAAN,GAAiB,EAAjB,GAAsB,GAAnC;AACA,QAAMC,UAAU,GAAGT,KAAK,CAACQ,QAAN,GACf,EADe,GAEfJ,MAAM,CAACM,QAAP,gBACMN,MAAM,CAACM,QADb,IAEA,EAJJ;AAKA,qBAAU3B,MAAV,SAAmBqB,MAAM,CAACR,IAA1B,SAAiCW,IAAjC,cAAyCD,GAAzC,SAA+CG,UAA/C;AACD;;AAEDE,EAAAA,eAAe,CAAC5B,MAAD,EAAiB6B,QAAjB,EAA8C;AAC3D,QAAMX,IAAI,GAAG,KAAKI,OAAL,CAAaO,QAAQ,CAACX,IAAtB,CAAb;AAGA,QAAIY,MAAM,GAAG,eAAb;;AACA,QAAID,QAAQ,CAACJ,QAAb,EAAuB;AACrB,UAAIP,IAAI,CAACa,OAAT,EAAkB;AAChBD,QAAAA,MAAM,iBAAUZ,IAAI,CAACa,OAAf,MAAN;AACD;AACF,KAJD,MAIO;AACL,UAAIb,IAAI,CAACS,QAAT,EAAmB;AACjBG,QAAAA,MAAM,iBAAUZ,IAAI,CAACS,QAAf,MAAN;AACD;AACF;;AAED,QAAMJ,GAAG,GAAG,KAAKX,OAAL,CAAaiB,QAAQ,CAAChB,IAAtB,CAAZ;AACA,QAAMW,IAAI,GAAGK,QAAQ,CAACJ,QAAT,GAAoB,EAApB,GAAyB,GAAtC;AACA,QAAIO,IAAI,GACNH,QAAQ,CAACX,IAAT,YAAyBxB,QAAzB,aACOM,MADP,sDAEI,EAHN;;AAIA,QAAI6B,QAAQ,CAACI,eAAb,EAA8B;AAC5BD,MAAAA,IAAI,cAAOhC,MAAP,6BAA+B6B,QAAQ,CAACK,QAAxC,WAAJ;AACD;;AACD,WACE,KAAKC,OAAL,CAAanC,MAAb,EAAqB,KAAKoC,gBAAL,CAAsBP,QAAtB,CAArB,IACAG,IADA,aAEGhC,MAFH,oBAEmBkB,IAAI,CAACL,IAFxB,SAE+BW,IAF/B,cAEuCD,GAFvC,cAE8CO,MAF9C,CADF;AAKD;;AAEDO,EAAAA,YAAY,CAACrC,MAAD,EAAiBgB,MAAjB,EAAkC;AAAA;;AAC5C,QAAME,IAAI,GAAG,KAAKI,OAAL,CAAaN,MAAM,CAACE,IAApB,CAAb;AACA,QAAMoB,IAAI,0BAAGtB,MAAM,CAACuB,WAAV,wDAAG,oBAAoBC,IAApB,EAAb;AACA,QAAIC,WAAW,GACb,CAACH,IAAI,aAAMA,IAAN,YAAmB,EAAxB,cACGtB,MAAM,CAAC0B,UADV,cACwB1B,MAAM,CAAC2B,QAD/B,iBAC8CzB,IAAI,CAACL,IADnD,CADF;;AAGA,QAAIG,MAAM,CAAC4B,cAAP,EAAJ,EAA6B;AAC3BH,MAAAA,WAAW,kEAAX;AACD,KAFD,MAEO,IAAIzB,MAAM,CAAC6B,gBAAP,EAAJ,EAA+B;AACpCJ,MAAAA,WAAW,8DAAX;AACD;;AAEDA,IAAAA,WAAW,IAAI,KAAKK,aAAL,CAAmB9B,MAAnB,CAAf;AACAA,IAAAA,MAAM,CAAC+B,MAAP,CAAcC,OAAd,CAAuB/B,KAAD,IAAYwB,WAAW,IAAI,KAAKQ,YAAL,CAAkBhC,KAAlB,CAAjD;AACA,QAAMiC,GAAG,GAAGlC,MAAM,CAACmC,UAAP,aAAuBnD,MAAvB,oCAA4D,EAAxE;AACA,WAAO,KAAKD,aAAL,CAAmBC,MAAnB,EAA2ByC,WAA3B,IAA0CS,GAAjD;AACD;;AAEDE,EAAAA,WAAW,CAACpC,MAAD,EAAkB;AAC3B,QAAIqC,OAAO,GAAG,UAAd;AACA,QAAIC,OAAO,GAAG,YAAd;AACA,QAAIC,UAAU,GAAG,yBAAjB;;AACA,QAAIvC,MAAM,CAACwC,UAAX,EAAuB;AACrB,UAAMC,GAAG,GAAGzC,MAAM,CAACwC,UAAnB;AACA,UAAMtC,IAAI,GAAG,KAAKI,OAAL,CAAamC,GAAG,CAACvC,IAAjB,CAAb;AACAmC,MAAAA,OAAO,GAAGnC,IAAI,CAACL,IAAL,KAAc,MAAd,GAAuB,QAAvB,GAAkCK,IAAI,CAACL,IAAjD;AACAyC,MAAAA,OAAO,GAAG,EAAV;AACAC,MAAAA,UAAU,GAAG,EAAb;AACD;;AACD,WAAO;AAAEF,MAAAA,OAAF;AAAWC,MAAAA,OAAX;AAAoBC,MAAAA;AAApB,KAAP;AACD;;AAEDG,EAAAA,uBAAuB,CAAC1D,MAAD,EAAiBgB,MAAjB,EAAoD;AAAA,QAAlB2C,QAAkB,uEAAP,KAAO;AACzE,QAAMzC,IAAI,GAAG,KAAKI,OAAL,CAAaN,MAAM,CAACE,IAApB,CAAb;AACA,QAAM0C,IAAI,GAAG5D,MAAM,GAAG,KAAK6D,SAA3B;AAEA,QAAMd,MAAgB,GAAG,EAAzB;AACA,QAAMe,IAAI,GAAG9C,MAAM,CAAC+C,SAApB;AACA,QAAID,IAAI,IAAIA,IAAI,CAACE,MAAL,GAAc,CAA1B,EACEF,IAAI,CAACd,OAAL,CAAciB,CAAD,IAAOlB,MAAM,CAACmB,IAAP,CAAY,KAAKnD,gBAAL,CAAsB6C,IAAtB,EAA4B5C,MAA5B,EAAoCiD,CAApC,CAAZ,CAApB;AACF,QAAME,QAAQ,GACZpB,MAAM,CAACiB,MAAP,GAAgB,CAAhB,eAAyBjB,MAAM,CAACqB,IAAP,CAAY,KAAKC,cAAjB,CAAzB,IAA8D,EADhE;AAEA,QAAMC,QAAQ,uDAAgDpD,IAAI,CAACL,IAArD,OAAd;AACA,QAAM0D,IAAI,GAAG,KAAKnB,WAAL,CAAiBpC,MAAjB,CAAb;AACA,QAAMwD,MAAM,GACV,KAAKnC,YAAL,CAAkBrC,MAAlB,EAA0BgB,MAA1B,cACGhB,MADH,2CAC0CuE,IAAI,CAAClB,OAD/C,2BACuErC,MAAM,CAACH,IAD9E,SACqF0D,IAAI,CAACjB,OAD1F,UAECK,QAAQ,eAAQC,IAAR,SAAeU,QAAf,IAA4B,EAFrC,CADF;AAKA,WACEE,MAAM,GACNL,QADA,aAEGA,QAAQ,GAAG,GAAH,GAAS,EAFpB,eAE2BP,IAF3B,gDAGEW,IAAI,CAAChB,UAHP,gBAIMvD,MAJN,OADF;AAOD;;AAEDyE,EAAAA,eAAe,CAACzE,MAAD,EAAiBgB,MAAjB,EAA0C;AACvD,WAAO,KAAK0C,uBAAL,CAA6B1D,MAA7B,EAAqCgB,MAArC,EAA6C,KAA7C,CAAP;AACD;;AAED0D,EAAAA,QAAQ,CAACC,IAAD,EAAeC,MAAf,EAAgC;AACtCA,IAAAA,MAAM,GAAGA,MAAM,IAAI,EAAnB;;AACA,QAAID,IAAI,CAACE,OAAL,CAAa,GAAb,KAAqB,CAAzB,EAA4B;AAC1B,0BAAYF,IAAI,CAACG,OAAL,CAAa,KAAb,EAAoB,MAAMF,MAA1B,CAAZ;AACD;;AACD,sBAAWD,IAAX;AACD;;AAEDI,EAAAA,aAAa,CAAC/E,MAAD,EAAiBgB,MAAjB,EAAkC;AAC7C,QAAM4C,IAAI,GAAG,KAAKoB,MAAL,CAAYhF,MAAZ,CAAb;AACA,WACE,KAAKyE,eAAL,CAAqBzE,MAArB,EAA6BgB,MAA7B,IACA,KAAKiE,gBAAL,CAAsBrB,IAAtB,EAA4B5C,MAA5B,CADA,GAEA,KAAKkE,QAAL,CAActB,IAAd,EAAoB5C,MAApB,CAFA,eAGKhB,MAHL,MADF;AAMD;;AAEDmF,EAAAA,cAAc,CAAC/E,OAAD,EAAkBgF,OAAlB,EAAoC;AAChD,WAAO,WAAP;AACD;;AAEDC,EAAAA,QAAQ,CAACjF,OAAD,EAAkB0D,IAAlB,EAA+Bc,MAA/B,EAAgD;AACtDA,IAAAA,MAAM,GAAGA,MAAM,IAAI,EAAnB;AACA,QAAMU,MAAM,GAAGxB,IAAI,CAACyB,GAAL,CAAUhE,GAAD,kBAAeA,GAAf,iBAAwB,KAAKX,OAAL,CAAaW,GAAb,CAAxB,OAAT,CAAf;AACA,QAAMqC,IAAI,GAAG,KAAKoB,MAAL,CAAY,KAAKnB,SAAjB,IAA8B,KAAKA,SAAhD;AACA,WAAOC,IAAI,IAAIA,IAAI,CAACE,MAAL,KAAgB,CAAxB,2BACcJ,IADd,SACqB0B,MAAM,CAAClB,IAAP,WACnB,KAAKoB,YAAL,CAAkBhD,IAAlB,EADmB,eACUoB,IADV,SACiBgB,MADjB,EADrB,SAIH,KAAKa,OAJT;AAKD;;AAEDC,EAAAA,QAAQ,CAAC1F,MAAD,EAAiBgB,MAAjB,EAAkC;AACxC,QAAI2E,MAAM,GAAG,KAAKC,OAAL,CAAa,EAAb,EAAiB,SAAjB,CAAb;AAGAD,IAAAA,MAAM,GAAG,KAAKC,OAAL,CACPD,MADO,EAEP3E,MAAM,CAAC6E,OAAP,GAAiB7E,MAAM,CAAC6E,OAAxB,GAAkC,KAAKJ,OAFhC,CAAT;AAIAE,IAAAA,MAAM,GAAG,KAAKC,OAAL,CAAaD,MAAb,EAAqB,KAAKN,QAAL,CAAcrF,MAAd,EAAsBgB,MAAM,CAAC8E,SAA7B,CAArB,CAAT;AACA,WAAOH,MAAP;AACD;;AAEDT,EAAAA,QAAQ,CAAClF,MAAD,EAAiBgB,MAAjB,EAAkC;AACxC,QAAM4C,IAAI,GAAG5D,MAAM,GAAG,KAAK6D,SAA3B;AACA,QAAMC,IAAI,GAAG,KAAK4B,QAAL,CAAc9B,IAAd,EAAoB5C,MAApB,CAAb;AACA,QAAM+E,MAAM,GAAG/E,MAAM,CAACgF,QAAP,CAAgBhC,MAAhB,GAAyB,GAAzB,GAA+B,EAA9C;AAEA,QAAMO,IAAI,GAAG,KAAKnB,WAAL,CAAiBpC,MAAjB,CAAb;AACA,QAAMmD,QAAQ,yBACZI,IAAI,CAAClB,OADO,qCAEa5D,SAAS,CAACuB,MAAM,CAAC0B,UAAR,CAFtB,eAE8CqD,MAF9C,eAGZ/E,MAAM,CAAC2B,QAHK,eAIVmB,IAAI,GAAG,OAAOA,IAAV,GAAiB,EAJX,MAAd;AAKA,qBAAU9D,MAAV,0BAAgCmE,QAAhC;AACD;;AAEDc,EAAAA,gBAAgB,CAACjF,MAAD,EAAiBgB,MAAjB,EAA0C;AACxD,QAAM4C,IAAI,GAAG5D,MAAM,GAAG,KAAK6D,SAA3B;AACA,QAAIoC,SAAS,GAAG,EAAhB;;AACA,QAAIjF,MAAM,CAACkF,UAAP,CAAkBlC,MAAlB,GAA2B,CAA/B,EAAkC;AAChC,WAAK,IAAM/C,KAAX,IAAoBD,MAAM,CAACkF,UAA3B,EAAuC;AACrC,YAAIjF,KAAK,CAACkF,QAAN,EAAJ,EAAsB;AACpBF,UAAAA,SAAS,cAAOrC,IAAP,SAAc3C,KAAK,CAACJ,IAApB,qCAAmDI,KAAK,CAACJ,IAAzD,SAAT;AACD;AACF;AACF;;AACD,WAAOoF,SAAP;AACD;;AAED9D,EAAAA,OAAO,CAACnC,MAAD,EAAiBmC,OAAjB,EAAkC;AACvC,QAAI,KAAKjC,SAAL,IAAkB,CAACiC,OAAvB,EAAgC,OAAO,EAAP;AAChC,QAAMiE,EAAE,GAAGjE,OAAO,CAAC0C,OAAR,CAAgB,IAAhB,KAAyB,CAAzB,GAA6B,IAA7B,GAAoC,EAA/C;AACA,WAAO,KAAK9E,aAAL,CAAmBC,MAAnB,qBAAuCoG,EAAvC,SAA4CjE,OAA5C,SAAsDiE,EAAtD,gBAAP;AACD;;AAEDnD,EAAAA,YAAY,CAAChC,KAAD,EAAoB;AAC9B,WAAOA,KAAK,CAACsB,WAAN,6BACetB,KAAK,CAACJ,IADrB,gBAC8BlB,aAAa,CAACsB,KAAD,CAD3C,gBAEH,EAFJ;AAGD;;AAED6B,EAAAA,aAAa,CAAC9B,MAAD,EAAkB;AAC7B,QAAME,IAAI,GAAGF,MAAM,CAACwC,UAApB;;AACA,QAAItC,IAAJ,EAAU;AACR,UAAMG,MAAM,GAAG,KAAKC,OAAL,CAAaJ,IAAI,CAACA,IAAlB,CAAf;AACA,uCAA0BG,MAAM,CAACR,IAAjC,kBAA6CK,IAAI,CAACqB,WAAlD,eAAkErB,IAAI,CAACmF,SAAvE;AACD;;AACD,QAAMC,IAAc,GAAG,EAAvB;AACAtF,IAAAA,MAAM,CAACuF,WAAP,CAAmBvD,OAAnB,CAA4BwD,CAAD,IAAO;AAChC,UAAMnF,MAAM,GAAG,KAAKC,OAAL,CAAakF,CAAC,CAACtF,IAAf,CAAf;AACAoF,MAAAA,IAAI,CAACpC,IAAL,cAAgB7C,MAAM,CAACR,IAAvB,kBAAmC2F,CAAC,CAACjE,WAArC,eAAqDiE,CAAC,CAACH,SAAvD;AACD,KAHD;AAIA,QAAMI,KAAK,GAAGH,IAAI,CAAClC,IAAL,CAAU,IAAV,CAAd;AACA,oCAAyBqC,KAAzB;AACD;;AAEDC,EAAAA,gBAAgB,CAAC1G,MAAD,EAAiB2G,KAAjB,EAAuC;AACrD,qBAAU3G,MAAV,mCAAwC2G,KAAxC,mBACF3G,MADE,SACO,KAAKY,OAAL,CAAa+F,KAAK,CAACC,QAAN,EAAb,CADP;AAED;;AAIDC,EAAAA,aAAa,CAAC7G,MAAD,EAAiBkB,IAAjB,EAA8B;AACzC,QAAM4F,MAAM,GAAG5F,IAAI,YAAYxB,QAA/B;AACA,QAAMqH,IAAI,GAAGD,MAAM,GAAG,MAAH,GAAY,OAA/B;AACA,QAAME,MAAM,GAAGF,MAAM,GAAG,EAAH,GAAQ,aAA7B;AACA,WACE,KAAK/G,aAAL,CAAmBC,MAAnB,EAA2BkB,IAAI,CAACqB,WAAhC,cACGvC,MADH,oBACmB+G,IADnB,cAC2B,KAAKnG,OAAL,CAAaM,IAAI,CAACL,IAAlB,CAD3B,SACqDmG,MADrD,UADF;AAID;;AAED1F,EAAAA,OAAO,CAACJ,IAAD,EAA2B;AAChC,UAAMI,OAAN,CAAcJ,IAAd;AAGA,QAAM+F,EAAE,GAAG,EAAX;AACA,QAAMC,MAAM,GAAG,IAAf;AACA,QAAMvF,QAAQ,GAAG,KAAK8D,OAAtB;AAEA,QAAM0B,OAAoC,GAAG;AAC3CC,MAAAA,GAAG,EAAE;AAAErF,QAAAA,OAAO,EAAE,KAAK0D,OAAhB;AAAyB5E,QAAAA,IAAI,EAAE,QAA/B;AAAyCc,QAAAA;AAAzC,OADsC;AAE3C0F,MAAAA,OAAO,EAAE;AAAEtF,QAAAA,OAAO,EAAEkF,EAAX;AAAepG,QAAAA,IAAI,EAAE,MAArB;AAA6Bc,QAAAA;AAA7B,OAFkC;AAG3C2F,MAAAA,IAAI,EAAE;AAAEvF,QAAAA,OAAO,EAAEkF,EAAX;AAAepG,QAAAA,IAAI,EAAE,MAArB;AAA6Bc,QAAAA;AAA7B,OAHqC;AAI3C4F,MAAAA,IAAI,EAAE;AAAExF,QAAAA,OAAO,EAAEkF,EAAX;AAAepG,QAAAA,IAAI,EAAE,UAArB;AAAiCc,QAAAA;AAAjC,OAJqC;AAK3C6F,MAAAA,QAAQ,EAAE;AAAEzF,QAAAA,OAAO,EAAEkF,EAAX;AAAepG,QAAAA,IAAI,EAAE,UAArB;AAAiCc,QAAAA;AAAjC,OALiC;AAM3C8F,MAAAA,MAAM,EAAE;AAAE1F,QAAAA,OAAO,EAAEkF,EAAX;AAAepG,QAAAA,IAAI,EAAE,QAArB;AAA+Bc,QAAAA;AAA/B,OANmC;AAO3C+F,MAAAA,KAAK,EAAE;AAAE3F,QAAAA,OAAO,EAAEkF,EAAX;AAAepG,QAAAA,IAAI,EAAE,OAArB;AAA8Bc,QAAAA;AAA9B,OAPoC;AAQ3CgG,MAAAA,KAAK,EAAE;AAAE5F,QAAAA,OAAO,EAAEkF,EAAX;AAAepG,QAAAA,IAAI,EAAE,KAArB;AAA4Bc,QAAAA;AAA5B,OARoC;AAS3CiG,MAAAA,KAAK,EAAE;AAAE7F,QAAAA,OAAO,EAAEkF,EAAX;AAAepG,QAAAA,IAAI,EAAE,MAArB;AAA6Bc,QAAAA;AAA7B,OAToC;AAU3CkG,MAAAA,OAAO,EAAE;AAAE9F,QAAAA,OAAO,EAAEkF,EAAX;AAAepG,QAAAA,IAAI,EAAE,KAArB;AAA4Bc,QAAAA;AAA5B,OAVkC;AAW3CmG,MAAAA,MAAM,EAAE;AAAE/F,QAAAA,OAAO,EAAEkF,EAAX;AAAepG,QAAAA,IAAI,EAAE,QAArB;AAA+Bc,QAAAA;AAA/B,OAXmC;AAY3CoG,MAAAA,MAAM,EAAE;AAAEhG,QAAAA,OAAO,EAAE,KAAK0D,OAAhB;AAAyB5E,QAAAA,IAAI,EAAE,QAA/B;AAAyCc,QAAAA;AAAzC,OAZmC;AAa3CqG,MAAAA,QAAQ,EAAE;AAAEjG,QAAAA,OAAO,EAAEmF,MAAX;AAAmBrG,QAAAA,IAAI,EAAE,UAAzB;AAAqCc,QAAAA;AAArC,OAbiC;AAc3CsG,MAAAA,MAAM,EAAE;AAAElG,QAAAA,OAAO,EAAEmF,MAAX;AAAmBrG,QAAAA,IAAI,EAAE,QAAzB;AAAmCc,QAAAA;AAAnC,OAdmC;AAe3CuG,MAAAA,GAAG,EAAE;AAAEnG,QAAAA,OAAO,EAAEmF,MAAX;AAAmBrG,QAAAA,IAAI,EAAE,KAAzB;AAAgCc,QAAAA;AAAhC,OAfsC;AAgB3CwG,MAAAA,GAAG,EAAE;AAAEpG,QAAAA,OAAO,EAAEmF,MAAX;AAAmBrG,QAAAA,IAAI,EAAE,KAAzB;AAAgCc,QAAAA;AAAhC,OAhBsC;AAiB3CyG,MAAAA,IAAI,EAAE;AAAErG,QAAAA,OAAO,EAAEkF,EAAX;AAAepG,QAAAA,IAAI,EAAE;AAArB;AAjBqC,KAA7C;;AAoBA,QAAIK,IAAI,CAACmH,WAAT,EAAsB;AAEpB,UAAM9C,GAAG,GAAG,KAAKjE,OAAL,CAAaJ,IAAI,CAACmH,WAAlB,CAAZ;;AACA,cAAQnH,IAAI,CAACoH,SAAb;AACE,aAAK,WAAL;AACE,iBAAO;AAAEvG,YAAAA,OAAO,EAAE,KAAK0D,OAAhB;AAAyB5E,YAAAA,IAAI,YAAK0E,GAAG,CAAC1E,IAAT,OAA7B;AAAgDc,YAAAA;AAAhD,WAAP;;AACF,aAAK,UAAL;AACE,iBAAO;AACLI,YAAAA,OAAO,EAAE,KAAK0D,OADT;AAEL5E,YAAAA,IAAI,6BAAsB0E,GAAG,CAAC1E,IAA1B,MAFC;AAGLc,YAAAA;AAHK,WAAP;;AAKF,aAAK,gBAAL;AACE,iBAAO;AACLI,YAAAA,OAAO,EAAE,KAAK0D,OADT;AAEL5E,YAAAA,IAAI,uBAAgB0E,GAAG,CAAC1E,IAApB,MAFC;AAGLc,YAAAA;AAHK,WAAP;;AAKF,aAAK,UAAL;AACE,iBAAO;AAAEI,YAAAA,OAAO,EAAE,EAAX;AAAelB,YAAAA,IAAI,EAAEK,IAAI,CAACL;AAA1B,WAAP;AAhBJ;;AAkBA,YAAM,IAAI0H,KAAJ,qCAAuCC,IAAI,CAACC,SAAL,CAAevH,IAAf,CAAvC,EAAN;AACD;;AAED,QAAIA,IAAI,CAACL,IAAT,EAAe;AACb,aACEsG,OAAO,CAACjG,IAAI,CAACL,IAAN,CAAP,IAAsB;AAAEkB,QAAAA,OAAO,EAAE,KAAK0D,OAAhB;AAAyB5E,QAAAA,IAAI,YAAKK,IAAI,CAACL,IAAV;AAA7B,OADxB;AAGD,KAJD,MAIO;AACL,YAAM,IAAI0H,KAAJ,CAAU,gCAAV,CAAN;AACD;AACF;;AA3WoC","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 } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\nimport type {\n IMethod,\n IParameter,\n IType,\n IProperty,\n Arg,\n EnumValueType,\n} from './sdkModels'\nimport { strBody, firstCase, EnumType, describeParam } from './sdkModels'\n\n// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\nconst reservedWords = new Set<string>([\n 'abstract',\n 'as',\n 'base',\n 'bool',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'checked',\n 'class',\n 'const',\n 'continue',\n 'decimal',\n 'default',\n 'delegate',\n 'do ',\n 'double',\n 'else',\n 'enum',\n 'event',\n 'explicit',\n 'extern',\n 'false',\n 'finally',\n 'fixed',\n 'float',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'int',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'long',\n 'namespace',\n 'new',\n 'null',\n 'object',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'ref',\n 'return',\n 'sbyte',\n 'sealed',\n 'short',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'string',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'true',\n 'try',\n 'typeof',\n 'uint',\n 'ulong',\n 'unchecked',\n 'unsafe',\n 'ushort',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while',\n])\n\n/**\n * C# code generator\n */\nexport class CSharpGen extends CodeGen {\n codePath = './csharp'\n packagePath = ''\n itself = 'this'\n fileExtension = '.cs'\n commentStr = '// '\n nullStr = 'null'\n transport = 'Transport'\n\n argDelimiter = ','\n paramDelimiter = ',\\n'\n propDelimiter = '\\n'\n\n indentStr = ' '\n endTypeStr = '\\n}'\n needsRequestTypes = false\n willItStream = false\n codeQuote = '\"'\n\n commentHeader(indent: string, text: string | undefined) {\n if (this.noComment) return ''\n return text ? `${commentBlock(text, indent, '/// ')}\\n` : ''\n }\n\n modelsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Runtime.Serialization;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Converters;\nusing Looker.RTL;\nusing Url = System.String;\nusing Password = System.String;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n`\n }\n\n modelsEpilogue(_indent: string) {\n return '\\n}'\n }\n\n methodsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Looker.RTL;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n public class ${this.packageName}: ApiMethods\n {\n public ${this.packageName}(IAuthSession authSession): base(authSession, \"${\n this.apiVersion\n }\") { }\n`\n }\n\n methodsEpilogue(indent: string) {\n return `${indent}}\n}\n`\n }\n\n reserve(name: string) {\n if (reservedWords.has(name)) {\n return '@' + name\n }\n return name\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 const arg = this.reserve(param.name)\n const pOpt = param.required ? '' : '?'\n const defaulting = param.required\n ? ''\n : mapped.optional\n ? ` = ${mapped.optional}`\n : ''\n return `${indent}${mapped.name}${pOpt} ${arg}${defaulting}`\n }\n\n declareProperty(indent: string, property: IProperty): string {\n const type = this.typeMap(property.type)\n // TODO notation for readonly support\n // let getset = property.readOnly ? '{ get; }' : '{ get; set; }'\n let getset = '{ get; set; }'\n if (property.required) {\n if (type.default) {\n getset += ` = ${type.default};`\n }\n } else {\n if (type.optional) {\n getset += ` = ${type.optional};`\n }\n }\n\n const arg = this.reserve(property.name)\n const pOpt = property.required ? '' : '?'\n let attr =\n property.type instanceof EnumType\n ? `${indent}[JsonConverter(typeof(StringEnumConverter))]\\n`\n : ''\n if (property.hasSpecialNeeds) {\n attr += `${indent}[JsonProperty(\"${property.jsonName}\")]\\n`\n }\n return (\n this.summary(indent, this.describeProperty(property)) +\n attr +\n `${indent}public ${type.name}${pOpt} ${arg} ${getset}`\n )\n }\n\n methodHeader(indent: string, method: IMethod) {\n const type = this.typeMap(method.type)\n const head = method.description?.trim()\n let headComment =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${type.name}`\n if (method.responseIsBoth()) {\n headComment += `\\n\\n**Note**: Binary content may be returned by this method.`\n } else if (method.responseIsBinary()) {\n headComment += `\\n\\n**Note**: Binary content is returned by this method.`\n }\n\n headComment += this.returnComment(method)\n method.params.forEach((param) => (headComment += this.paramComment(param)))\n const dep = method.deprecated ? `${indent}[Obsolete(\"Deprecated\")]\\n` : ''\n return this.commentHeader(indent, headComment) + dep\n }\n\n genericBits(method: IMethod) {\n let success = 'TSuccess'\n let generic = '<TSuccess>'\n let constraint = ' where TSuccess : class'\n if (method.returnType) {\n const ret = method.returnType\n const type = this.typeMap(ret.type)\n success = type.name === 'void' ? 'string' : type.name\n generic = ''\n constraint = ''\n }\n return { success, generic, constraint }\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const type = this.typeMap(method.type)\n const bump = indent + this.indentStr\n\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 const fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : ''\n const callback = `callback: (readable: Readable) => Promise<${type.name}>,`\n const bits = this.genericBits(method)\n const header =\n this.methodHeader(indent, method) +\n `${indent}public async Task<SdkResponse<${bits.success}, Exception>> ${method.name}${bits.generic}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n\n return (\n header +\n fragment +\n `${fragment ? ',' : ''}\\n${bump}ITransportSettings? options = null)${\n bits.constraint\n }\\n{${indent}\\n`\n )\n }\n\n methodSignature(indent: string, method: IMethod): string {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0) {\n return `$\"${path.replace(/{/gi, '{' + prefix)}\"`\n }\n return `'${path}'`\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${indent}}`\n )\n }\n\n errorResponses(_indent: string, _method: IMethod) {\n return 'Exception'\n }\n\n argGroup(_indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || ''\n const values = args.map((arg) => `{ \"${arg}\", ${this.reserve(arg)} }`)\n const bump = this.bumper(this.indentStr) + this.indentStr\n return args && args.length !== 0\n ? `new Values {\\n${bump}${values.join(\n `${this.argDelimiter.trim()}\\n${bump}${prefix}`\n )}}`\n : this.nullStr\n }\n\n httpArgs(indent: string, method: IMethod) {\n let result = this.argFill('', 'options')\n // result = this.argFill(result, this.argGroup(indent, method.cookieArgs))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs))\n result = this.argFill(\n result,\n method.bodyArg ? method.bodyArg : this.nullStr\n )\n result = this.argFill(result, this.argGroup(indent, method.queryArgs))\n return result\n }\n\n httpCall(indent: string, method: IMethod) {\n const bump = indent + this.indentStr\n const args = this.httpArgs(bump, method)\n const dollah = method.pathArgs.length ? '$' : ''\n // const errors = `(${this.errorResponses(indent, method)})`\n const bits = this.genericBits(method)\n const fragment = `AuthRequest<${\n bits.success\n }, Exception>(HttpMethod.${firstCase(method.httpMethod)}, ${dollah}\"${\n method.endpoint\n }\"${args ? ', ' + args : ''})`\n return `${indent}return await ${fragment};`\n }\n\n encodePathParams(indent: string, method: IMethod): string {\n const bump = indent + this.indentStr\n let encodings = ''\n if (method.pathParams.length > 0) {\n for (const param of method.pathParams) {\n if (param.doEncode()) {\n encodings += `${bump}${param.name} = SdkUtils.EncodeParam(${param.name});\\n`\n }\n }\n }\n return encodings\n }\n\n summary(indent: string, summary: string) {\n if (this.noComment || !summary) return ''\n const nl = summary.indexOf('\\n') >= 0 ? '\\n' : ''\n return this.commentHeader(indent, `<summary>${nl}${summary}${nl}</summary>`)\n }\n\n paramComment(param: IParameter) {\n return param.description\n ? `\\n<param name=\"${param.name}\">${describeParam(param)}</param>`\n : ''\n }\n\n returnComment(method: IMethod) {\n const type = method.returnType\n if (type) {\n const mapped = this.typeMap(type.type)\n return `\\n\\n<returns><c>${mapped.name}</c> ${type.description} (${type.mediaType})</returns>\\n`\n }\n const desc: string[] = []\n method.okResponses.forEach((r) => {\n const mapped = this.typeMap(r.type)\n desc.push(`<c>${mapped.name}</c> ${r.description} (${r.mediaType})`)\n })\n const lines = desc.join('\\n')\n return `\\n\\n<returns>\\n${lines}\\n</returns>\\n`\n }\n\n declareEnumValue(indent: string, value: EnumValueType) {\n return `${indent}[EnumMember(Value = \"${value}\")]\n${indent}${this.reserve(value.toString())}`\n }\n\n // TODO document properties in `typeHeader()` instead of inline\n // TODO create class constructor for all required parameters\n typeSignature(indent: string, type: IType) {\n const isEnum = type instanceof EnumType\n const kind = isEnum ? 'enum' : 'class'\n const parent = isEnum ? '' : ' : SdkModel'\n return (\n this.commentHeader(indent, type.description) +\n `${indent}public ${kind} ${this.reserve(type.name)}${parent}\\n{\\n`\n )\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n // all optional types are Nullable<T> and should have a \"default value\" of null\n // see https://stackoverflow.com/a/29153833 for discussion\n const mt = ''\n const quotes = '\"\"'\n const optional = this.nullStr\n\n const csTypes: Record<string, IMappedType> = {\n any: { default: this.nullStr, name: 'object', optional },\n boolean: { default: mt, name: 'bool', optional },\n byte: { default: mt, name: 'byte', optional },\n date: { default: mt, name: 'DateTime', optional },\n datetime: { default: mt, name: 'DateTime', optional },\n double: { default: mt, name: 'double', optional },\n float: { default: mt, name: 'float', optional },\n int32: { default: mt, name: 'int', optional },\n int64: { default: mt, name: 'long', optional },\n integer: { default: mt, name: 'int', optional },\n number: { default: mt, name: 'double', optional },\n object: { default: this.nullStr, name: 'object', optional },\n password: { default: quotes, name: 'Password', optional },\n string: { default: quotes, name: 'string', optional },\n uri: { default: quotes, name: 'Url', optional },\n url: { default: quotes, name: 'Url', optional },\n void: { default: mt, name: '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}[]`, optional }\n case 'HashType':\n return {\n default: this.nullStr,\n name: `StringDictionary<${map.name}>`,\n optional,\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `DelimArray<${map.name}>`,\n optional,\n }\n case 'EnumType':\n return { default: '', name: 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 csTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n )\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n}\n"],"file":"csharp.gen.js"}
1
+ {"version":3,"file":"csharp.gen.js","names":["reservedWords","Set","CSharpGen","CodeGen","commentHeader","indent","text","noComment","commentBlock","modelsPrologue","_indent","warnEditing","apiRef","modelsEpilogue","methodsPrologue","packageName","apiVersion","methodsEpilogue","reserve","name","has","declareParameter","method","param","type","location","strBody","writeableType","mapped","typeMap","arg","pOpt","required","defaulting","optional","declareProperty","property","getset","default","attr","EnumType","hasSpecialNeeds","jsonName","summary","describeProperty","methodHeader","head","description","trim","headComment","httpMethod","endpoint","responseIsBoth","responseIsBinary","returnComment","params","forEach","paramComment","dep","deprecated","genericBits","success","generic","constraint","returnType","ret","methodHeaderDeclaration","streamer","bump","indentStr","args","allParams","length","p","push","fragment","join","paramDelimiter","callback","bits","header","methodSignature","httpPath","path","prefix","indexOf","replace","declareMethod","bumper","encodePathParams","httpCall","errorResponses","_method","argGroup","values","map","argDelimiter","nullStr","httpArgs","result","argFill","bodyArg","queryArgs","dollah","pathArgs","firstCase","encodings","pathParams","doEncode","nl","describeParam","mediaType","desc","okResponses","r","lines","declareEnumValue","value","toString","typeSignature","isEnum","kind","parent","mt","quotes","csTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","string","uri","url","void","elementType","className","Error","JSON","stringify"],"sources":["../../src/csharp.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 } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\nimport type {\n IMethod,\n IParameter,\n IType,\n IProperty,\n Arg,\n EnumValueType,\n} from './sdkModels'\nimport { strBody, firstCase, EnumType, describeParam } from './sdkModels'\n\n// https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\nconst reservedWords = new Set<string>([\n 'abstract',\n 'as',\n 'base',\n 'bool',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'checked',\n 'class',\n 'const',\n 'continue',\n 'decimal',\n 'default',\n 'delegate',\n 'do ',\n 'double',\n 'else',\n 'enum',\n 'event',\n 'explicit',\n 'extern',\n 'false',\n 'finally',\n 'fixed',\n 'float',\n 'for',\n 'foreach',\n 'goto',\n 'if',\n 'implicit',\n 'in',\n 'int',\n 'interface',\n 'internal',\n 'is',\n 'lock',\n 'long',\n 'namespace',\n 'new',\n 'null',\n 'object',\n 'operator',\n 'out',\n 'override',\n 'params',\n 'private',\n 'protected',\n 'public',\n 'readonly',\n 'ref',\n 'return',\n 'sbyte',\n 'sealed',\n 'short',\n 'sizeof',\n 'stackalloc',\n 'static',\n 'string',\n 'struct',\n 'switch',\n 'this',\n 'throw',\n 'true',\n 'try',\n 'typeof',\n 'uint',\n 'ulong',\n 'unchecked',\n 'unsafe',\n 'ushort',\n 'using',\n 'virtual',\n 'void',\n 'volatile',\n 'while',\n])\n\n/**\n * C# code generator\n */\nexport class CSharpGen extends CodeGen {\n codePath = './csharp'\n packagePath = ''\n itself = 'this'\n fileExtension = '.cs'\n commentStr = '// '\n nullStr = 'null'\n transport = 'Transport'\n\n argDelimiter = ','\n paramDelimiter = ',\\n'\n propDelimiter = '\\n'\n\n indentStr = ' '\n endTypeStr = '\\n}'\n needsRequestTypes = false\n willItStream = false\n codeQuote = '\"'\n\n commentHeader(indent: string, text: string | undefined) {\n if (this.noComment) return ''\n return text ? `${commentBlock(text, indent, '/// ')}\\n` : ''\n }\n\n modelsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Runtime.Serialization;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Converters;\nusing Looker.RTL;\nusing Url = System.String;\nusing Password = System.String;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n`\n }\n\n modelsEpilogue(_indent: string) {\n return '\\n}'\n }\n\n methodsPrologue(_indent: string) {\n return `#nullable enable\nusing System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing Looker.RTL;\n// ReSharper disable InconsistentNaming\n\n${this.commentHeader('', this.warnEditing())}\nnamespace Looker.SDK.API${this.apiRef}\n{\n\n public class ${this.packageName}: ApiMethods\n {\n public ${this.packageName}(IAuthSession authSession): base(authSession, \"${\n this.apiVersion\n }\") { }\n`\n }\n\n methodsEpilogue(indent: string) {\n return `${indent}}\n}\n`\n }\n\n reserve(name: string) {\n if (reservedWords.has(name)) {\n return '@' + name\n }\n return name\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 const arg = this.reserve(param.name)\n const pOpt = param.required ? '' : '?'\n const defaulting = param.required\n ? ''\n : mapped.optional\n ? ` = ${mapped.optional}`\n : ''\n return `${indent}${mapped.name}${pOpt} ${arg}${defaulting}`\n }\n\n declareProperty(indent: string, property: IProperty): string {\n const type = this.typeMap(property.type)\n // TODO notation for readonly support\n // let getset = property.readOnly ? '{ get; }' : '{ get; set; }'\n let getset = '{ get; set; }'\n if (property.required) {\n if (type.default) {\n getset += ` = ${type.default};`\n }\n } else {\n if (type.optional) {\n getset += ` = ${type.optional};`\n }\n }\n\n const arg = this.reserve(property.name)\n const pOpt = property.required ? '' : '?'\n let attr =\n property.type instanceof EnumType\n ? `${indent}[JsonConverter(typeof(StringEnumConverter))]\\n`\n : ''\n if (property.hasSpecialNeeds) {\n attr += `${indent}[JsonProperty(\"${property.jsonName}\")]\\n`\n }\n return (\n this.summary(indent, this.describeProperty(property)) +\n attr +\n `${indent}public ${type.name}${pOpt} ${arg} ${getset}`\n )\n }\n\n methodHeader(indent: string, method: IMethod) {\n const type = this.typeMap(method.type)\n const head = method.description?.trim()\n let headComment =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${type.name}`\n if (method.responseIsBoth()) {\n headComment += `\\n\\n**Note**: Binary content may be returned by this method.`\n } else if (method.responseIsBinary()) {\n headComment += `\\n\\n**Note**: Binary content is returned by this method.`\n }\n\n headComment += this.returnComment(method)\n method.params.forEach((param) => (headComment += this.paramComment(param)))\n const dep = method.deprecated ? `${indent}[Obsolete(\"Deprecated\")]\\n` : ''\n return this.commentHeader(indent, headComment) + dep\n }\n\n genericBits(method: IMethod) {\n let success = 'TSuccess'\n let generic = '<TSuccess>'\n let constraint = ' where TSuccess : class'\n if (method.returnType) {\n const ret = method.returnType\n const type = this.typeMap(ret.type)\n success = type.name === 'void' ? 'string' : type.name\n generic = ''\n constraint = ''\n }\n return { success, generic, constraint }\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const type = this.typeMap(method.type)\n const bump = indent + this.indentStr\n\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 const fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : ''\n const callback = `callback: (readable: Readable) => Promise<${type.name}>,`\n const bits = this.genericBits(method)\n const header =\n this.methodHeader(indent, method) +\n `${indent}public async Task<SdkResponse<${bits.success}, Exception>> ${method.name}${bits.generic}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n\n return (\n header +\n fragment +\n `${fragment ? ',' : ''}\\n${bump}ITransportSettings? options = null)${\n bits.constraint\n }\\n{${indent}\\n`\n )\n }\n\n methodSignature(indent: string, method: IMethod): string {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0) {\n return `$\"${path.replace(/{/gi, '{' + prefix)}\"`\n }\n return `'${path}'`\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${indent}}`\n )\n }\n\n errorResponses(_indent: string, _method: IMethod) {\n return 'Exception'\n }\n\n argGroup(_indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || ''\n const values = args.map((arg) => `{ \"${arg}\", ${this.reserve(arg)} }`)\n const bump = this.bumper(this.indentStr) + this.indentStr\n return args && args.length !== 0\n ? `new Values {\\n${bump}${values.join(\n `${this.argDelimiter.trim()}\\n${bump}${prefix}`\n )}}`\n : this.nullStr\n }\n\n httpArgs(indent: string, method: IMethod) {\n let result = this.argFill('', 'options')\n // result = this.argFill(result, this.argGroup(indent, method.cookieArgs))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs))\n result = this.argFill(\n result,\n method.bodyArg ? method.bodyArg : this.nullStr\n )\n result = this.argFill(result, this.argGroup(indent, method.queryArgs))\n return result\n }\n\n httpCall(indent: string, method: IMethod) {\n const bump = indent + this.indentStr\n const args = this.httpArgs(bump, method)\n const dollah = method.pathArgs.length ? '$' : ''\n // const errors = `(${this.errorResponses(indent, method)})`\n const bits = this.genericBits(method)\n const fragment = `AuthRequest<${\n bits.success\n }, Exception>(HttpMethod.${firstCase(method.httpMethod)}, ${dollah}\"${\n method.endpoint\n }\"${args ? ', ' + args : ''})`\n return `${indent}return await ${fragment};`\n }\n\n encodePathParams(indent: string, method: IMethod): string {\n const bump = indent + this.indentStr\n let encodings = ''\n if (method.pathParams.length > 0) {\n for (const param of method.pathParams) {\n if (param.doEncode()) {\n encodings += `${bump}${param.name} = SdkUtils.EncodeParam(${param.name});\\n`\n }\n }\n }\n return encodings\n }\n\n summary(indent: string, summary: string) {\n if (this.noComment || !summary) return ''\n const nl = summary.indexOf('\\n') >= 0 ? '\\n' : ''\n return this.commentHeader(indent, `<summary>${nl}${summary}${nl}</summary>`)\n }\n\n paramComment(param: IParameter) {\n return param.description\n ? `\\n<param name=\"${param.name}\">${describeParam(param)}</param>`\n : ''\n }\n\n returnComment(method: IMethod) {\n const type = method.returnType\n if (type) {\n const mapped = this.typeMap(type.type)\n return `\\n\\n<returns><c>${mapped.name}</c> ${type.description} (${type.mediaType})</returns>\\n`\n }\n const desc: string[] = []\n method.okResponses.forEach((r) => {\n const mapped = this.typeMap(r.type)\n desc.push(`<c>${mapped.name}</c> ${r.description} (${r.mediaType})`)\n })\n const lines = desc.join('\\n')\n return `\\n\\n<returns>\\n${lines}\\n</returns>\\n`\n }\n\n declareEnumValue(indent: string, value: EnumValueType) {\n return `${indent}[EnumMember(Value = \"${value}\")]\n${indent}${this.reserve(value.toString())}`\n }\n\n // TODO document properties in `typeHeader()` instead of inline\n // TODO create class constructor for all required parameters\n typeSignature(indent: string, type: IType) {\n const isEnum = type instanceof EnumType\n const kind = isEnum ? 'enum' : 'class'\n const parent = isEnum ? '' : ' : SdkModel'\n return (\n this.commentHeader(indent, type.description) +\n `${indent}public ${kind} ${this.reserve(type.name)}${parent}\\n{\\n`\n )\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n // all optional types are Nullable<T> and should have a \"default value\" of null\n // see https://stackoverflow.com/a/29153833 for discussion\n const mt = ''\n const quotes = '\"\"'\n const optional = this.nullStr\n\n const csTypes: Record<string, IMappedType> = {\n any: { default: this.nullStr, name: 'object', optional },\n boolean: { default: mt, name: 'bool', optional },\n byte: { default: mt, name: 'byte', optional },\n date: { default: mt, name: 'DateTime', optional },\n datetime: { default: mt, name: 'DateTime', optional },\n double: { default: mt, name: 'double', optional },\n float: { default: mt, name: 'float', optional },\n int32: { default: mt, name: 'int', optional },\n int64: { default: mt, name: 'long', optional },\n integer: { default: mt, name: 'int', optional },\n number: { default: mt, name: 'double', optional },\n object: { default: this.nullStr, name: 'object', optional },\n password: { default: quotes, name: 'Password', optional },\n string: { default: quotes, name: 'string', optional },\n uri: { default: quotes, name: 'Url', optional },\n url: { default: quotes, name: 'Url', optional },\n void: { default: mt, name: '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}[]`, optional }\n case 'HashType':\n return {\n default: this.nullStr,\n name: `StringDictionary<${map.name}>`,\n optional,\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `DelimArray<${map.name}>`,\n optional,\n }\n case 'EnumType':\n return { default: '', name: 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 csTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n )\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n}\n"],"mappings":"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"}
@@ -1,23 +1,26 @@
1
- import { permaLink } from './exampleInfo';
2
- export var findDeclaration = function findDeclaration(lode, methodId, typeId) {
3
- var sourcerer = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : permaLink;
4
- var declaration;
1
+ "use strict";
5
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.findDeclaration = void 0;
7
+ var _exampleInfo = require("./exampleInfo");
8
+ var findDeclaration = function findDeclaration(lode, methodId, typeId) {
9
+ var sourcerer = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _exampleInfo.permaLink;
10
+ var declaration;
6
11
  if (methodId) {
7
12
  declaration = lode.methods[methodId];
8
13
  } else if (typeId) {
9
14
  declaration = lode.types[typeId];
10
15
  }
11
-
12
16
  var link;
13
-
14
17
  if (declaration) {
15
18
  link = sourcerer(lode.remoteOrigin, lode.commitHash, declaration.sourceFile, declaration.line);
16
19
  }
17
-
18
20
  return {
19
21
  declaration,
20
22
  link
21
23
  };
22
24
  };
25
+ exports.findDeclaration = findDeclaration;
23
26
  //# sourceMappingURL=declarationInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/declarationInfo.ts"],"names":["permaLink","findDeclaration","lode","methodId","typeId","sourcerer","declaration","methods","types","link","remoteOrigin","commitHash","sourceFile","line"],"mappings":"AA0BA,SAASA,SAAT,QAA0B,eAA1B;AAqBA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAC7BC,IAD6B,EAE7BC,QAF6B,EAG7BC,MAH6B,EAK1B;AAAA,MADHC,SACG,uEADqBL,SACrB;AACH,MAAIM,WAAJ;;AACA,MAAIH,QAAJ,EAAc;AACZG,IAAAA,WAAW,GAAGJ,IAAI,CAACK,OAAL,CAAaJ,QAAb,CAAd;AACD,GAFD,MAEO,IAAIC,MAAJ,EAAY;AACjBE,IAAAA,WAAW,GAAGJ,IAAI,CAACM,KAAL,CAAWJ,MAAX,CAAd;AACD;;AAED,MAAIK,IAAJ;;AACA,MAAIH,WAAJ,EAAiB;AACfG,IAAAA,IAAI,GAAGJ,SAAS,CACdH,IAAI,CAACQ,YADS,EAEdR,IAAI,CAACS,UAFS,EAGdL,WAAW,CAACM,UAHE,EAIdN,WAAW,CAACO,IAJE,CAAhB;AAOD;;AACD,SAAO;AAAEP,IAAAA,WAAF;AAAeG,IAAAA;AAAf,GAAP;AACD,CAxBM","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 */\nimport type { IMine, IFileCall, SourceLink } from './exampleInfo'\nimport { permaLink } from './exampleInfo'\nimport type { KeyedCollection } from './sdkModels'\n\n/** All mined declaration data */\nexport interface IDeclarationMine extends IMine {\n types: DeclarationNuggets\n methods: DeclarationNuggets\n}\n\nexport interface IDeclarationNugget extends IFileCall {}\n\nexport type DeclarationNuggets = KeyedCollection<IDeclarationNugget>\n\n/**\n * Searches for declaration of a given method or type and returns a GitHub\n * permalink if found\n * @param lode All declaration data\n * @param methodId Method id to search for\n * @param typeId Type id to search for\n * @param sourcerer Function to format source code link\n */\nexport const findDeclaration = (\n lode: IDeclarationMine,\n methodId?: string,\n typeId?: string,\n sourcerer: SourceLink = permaLink\n) => {\n let declaration\n if (methodId) {\n declaration = lode.methods[methodId]\n } else if (typeId) {\n declaration = lode.types[typeId]\n }\n\n let link\n if (declaration) {\n link = sourcerer(\n lode.remoteOrigin,\n lode.commitHash,\n declaration.sourceFile,\n declaration.line\n )\n // link = ideLink(parentPath, declaration.sourceFile, declaration.line)\n }\n return { declaration, link }\n}\n"],"file":"declarationInfo.js"}
1
+ {"version":3,"file":"declarationInfo.js","names":["findDeclaration","lode","methodId","typeId","sourcerer","permaLink","declaration","methods","types","link","remoteOrigin","commitHash","sourceFile","line"],"sources":["../../src/declarationInfo.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 */\nimport type { IMine, IFileCall, SourceLink } from './exampleInfo'\nimport { permaLink } from './exampleInfo'\nimport type { KeyedCollection } from './sdkModels'\n\n/** All mined declaration data */\nexport interface IDeclarationMine extends IMine {\n types: DeclarationNuggets\n methods: DeclarationNuggets\n}\n\nexport interface IDeclarationNugget extends IFileCall {}\n\nexport type DeclarationNuggets = KeyedCollection<IDeclarationNugget>\n\n/**\n * Searches for declaration of a given method or type and returns a GitHub\n * permalink if found\n * @param lode All declaration data\n * @param methodId Method id to search for\n * @param typeId Type id to search for\n * @param sourcerer Function to format source code link\n */\nexport const findDeclaration = (\n lode: IDeclarationMine,\n methodId?: string,\n typeId?: string,\n sourcerer: SourceLink = permaLink\n) => {\n let declaration\n if (methodId) {\n declaration = lode.methods[methodId]\n } else if (typeId) {\n declaration = lode.types[typeId]\n }\n\n let link\n if (declaration) {\n link = sourcerer(\n lode.remoteOrigin,\n lode.commitHash,\n declaration.sourceFile,\n declaration.line\n )\n // link = ideLink(parentPath, declaration.sourceFile, declaration.line)\n }\n return { declaration, link }\n}\n"],"mappings":";;;;;;AA0BA;AAqBO,IAAMA,eAAe,GAAG,SAAlBA,eAAe,CAC1BC,IAAsB,EACtBC,QAAiB,EACjBC,MAAe,EAEZ;EAAA,IADHC,SAAqB,uEAAGC,sBAAS;EAEjC,IAAIC,WAAW;EACf,IAAIJ,QAAQ,EAAE;IACZI,WAAW,GAAGL,IAAI,CAACM,OAAO,CAACL,QAAQ,CAAC;EACtC,CAAC,MAAM,IAAIC,MAAM,EAAE;IACjBG,WAAW,GAAGL,IAAI,CAACO,KAAK,CAACL,MAAM,CAAC;EAClC;EAEA,IAAIM,IAAI;EACR,IAAIH,WAAW,EAAE;IACfG,IAAI,GAAGL,SAAS,CACdH,IAAI,CAACS,YAAY,EACjBT,IAAI,CAACU,UAAU,EACfL,WAAW,CAACM,UAAU,EACtBN,WAAW,CAACO,IAAI,CACjB;EAEH;EACA,OAAO;IAAEP,WAAW;IAAEG;EAAK,CAAC;AAC9B,CAAC;AAAA"}
@@ -1,17 +1,26 @@
1
- export var permaLink = (remote, hash, fileName, line) => "".concat(remote, "/blob/").concat(hash, "/").concat(fileName, "#L").concat(line);
2
- export var codeSearchLink = (remote, hash, fileName, line) => "".concat(remote, "/").concat(fileName, "?l=").concat(line, "&rcl=").concat(hash);
3
- export var ideLink = (parentPath, fileName, line) => {
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.summarize = exports.permaLink = exports.ideLink = exports.getLanguageExtensions = exports.findExamples = exports.findExampleLanguages = exports.extensionToLanguage = exports.exampleLink = exports.codeSearchLink = void 0;
7
+ var permaLink = (remote, hash, fileName, line) => "".concat(remote, "/blob/").concat(hash, "/").concat(fileName, "#L").concat(line);
8
+ exports.permaLink = permaLink;
9
+ var codeSearchLink = (remote, hash, fileName, line) => "".concat(remote, "/").concat(fileName, "?l=").concat(line, "&rcl=").concat(hash);
10
+ exports.codeSearchLink = codeSearchLink;
11
+ var ideLink = (parentPath, fileName, line) => {
4
12
  var vscode = 'vscode://';
5
13
  return "".concat(vscode).concat(parentPath, "/").concat(fileName, ":L:").concat(line);
6
14
  };
7
- export var summarize = (lode, call) => {
15
+ exports.ideLink = ideLink;
16
+ var summarize = (lode, call) => {
8
17
  if (call.sourceFile in lode.summaries) {
9
18
  return lode.summaries[call.sourceFile].summary;
10
19
  }
11
-
12
20
  return call.sourceFile;
13
21
  };
14
- export var exampleLink = (lode, call) => {
22
+ exports.summarize = summarize;
23
+ var exampleLink = (lode, call) => {
15
24
  var link = permaLink(lode.remoteOrigin, lode.commitHash, call.sourceFile, call.line);
16
25
  return {
17
26
  permalink: link,
@@ -20,7 +29,8 @@ export var exampleLink = (lode, call) => {
20
29
  lineNumber: call.line.toString()
21
30
  };
22
31
  };
23
- export var extensionToLanguage = {
32
+ exports.exampleLink = exampleLink;
33
+ var extensionToLanguage = {
24
34
  '.py': 'Python',
25
35
  '.ts': 'TypeScript',
26
36
  '.tsx': 'TypeScript',
@@ -33,42 +43,35 @@ export var extensionToLanguage = {
33
43
  '.md': 'Markdown',
34
44
  '.java': 'Java'
35
45
  };
36
- export var getLanguageExtensions = language => {
46
+ exports.extensionToLanguage = extensionToLanguage;
47
+ var getLanguageExtensions = language => {
37
48
  switch (language.toLowerCase()) {
38
49
  case 'ts':
39
50
  case 'typescript':
40
51
  return ['.ts', 'tsx'];
41
-
42
52
  case 'csharp':
43
53
  case 'c#':
44
54
  return ['.cs'];
45
-
46
55
  case 'ruby':
47
56
  return ['.rb'];
48
-
49
57
  case 'python':
50
58
  return ['.py'];
51
-
52
59
  case 'swift':
53
60
  return ['.swift'];
54
-
55
61
  case 'kotlin':
56
62
  return ['.kt'];
57
-
58
63
  case 'dart':
59
64
  return ['.dart'];
60
-
61
65
  case 'go':
62
66
  return ['.go'];
63
-
64
67
  case 'java':
65
68
  return ['.java'];
66
-
67
69
  default:
68
70
  return [];
69
71
  }
70
72
  };
71
- export var findExampleLanguages = (lode, methodName) => {
73
+ exports.getLanguageExtensions = getLanguageExtensions;
74
+ var findExampleLanguages = (lode, methodName) => {
72
75
  var all = lode.nuggets[methodName];
73
76
  if (!all) return [];
74
77
  var result = new Set();
@@ -78,19 +81,17 @@ export var findExampleLanguages = (lode, methodName) => {
78
81
  });
79
82
  return Array.from(result);
80
83
  };
81
- export var findExamples = (lode, language, operationId) => {
84
+ exports.findExampleLanguages = findExampleLanguages;
85
+ var findExamples = (lode, language, operationId) => {
82
86
  var all = lode.nuggets[operationId];
83
87
  var exts = getLanguageExtensions(language);
84
88
  var links = [];
85
-
86
89
  if (all && exts.length > 0) {
87
90
  exts.forEach(ext => {
88
91
  var calls = all.calls[ext];
89
-
90
92
  if (calls) {
91
93
  calls.forEach(call => {
92
94
  var link = exampleLink(lode, call);
93
-
94
95
  if (link) {
95
96
  links.push(exampleLink(lode, call));
96
97
  }
@@ -98,7 +99,7 @@ export var findExamples = (lode, language, operationId) => {
98
99
  }
99
100
  });
100
101
  }
101
-
102
102
  return links.sort((a, b) => a.permalink.localeCompare(b.permalink));
103
103
  };
104
+ exports.findExamples = findExamples;
104
105
  //# sourceMappingURL=exampleInfo.js.map