@looker/sdk-codegen 21.8.1 → 21.9.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 (78) hide show
  1. package/CHANGELOG.md +128 -167
  2. package/README.md +0 -1
  3. package/lib/codeGen.d.ts +1 -1
  4. package/lib/codeGen.js +4 -6
  5. package/lib/codeGen.js.map +1 -1
  6. package/lib/codeGenerators.d.ts +1 -1
  7. package/lib/codeGenerators.js +2 -4
  8. package/lib/codeGenerators.js.map +1 -1
  9. package/lib/csharp.gen.d.ts +1 -1
  10. package/lib/csharp.gen.js +2 -2
  11. package/lib/csharp.gen.js.map +1 -1
  12. package/lib/declarationInfo.d.ts +3 -3
  13. package/lib/declarationInfo.js +1 -2
  14. package/lib/declarationInfo.js.map +1 -1
  15. package/lib/esm/codeGen.js +14 -23
  16. package/lib/esm/codeGen.js.map +1 -1
  17. package/lib/esm/codeGenerators.js +17 -28
  18. package/lib/esm/codeGenerators.js.map +1 -1
  19. package/lib/esm/csharp.gen.js +11 -18
  20. package/lib/esm/csharp.gen.js.map +1 -1
  21. package/lib/esm/declarationInfo.js +3 -10
  22. package/lib/esm/declarationInfo.js.map +1 -1
  23. package/lib/esm/exampleInfo.js +9 -24
  24. package/lib/esm/exampleInfo.js.map +1 -1
  25. package/lib/esm/go.gen.js +11 -18
  26. package/lib/esm/go.gen.js.map +1 -1
  27. package/lib/esm/index.js +13 -148
  28. package/lib/esm/index.js.map +1 -1
  29. package/lib/esm/kotlin.gen.js +11 -18
  30. package/lib/esm/kotlin.gen.js.map +1 -1
  31. package/lib/esm/pseudo.gen.js +6 -13
  32. package/lib/esm/pseudo.gen.js.map +1 -1
  33. package/lib/esm/python.gen.js +15 -19
  34. package/lib/esm/python.gen.js.map +1 -1
  35. package/lib/esm/sdkModels.js +52 -96
  36. package/lib/esm/sdkModels.js.map +1 -1
  37. package/lib/esm/specConverter.js +29 -57
  38. package/lib/esm/specConverter.js.map +1 -1
  39. package/lib/esm/specDiff.js +17 -36
  40. package/lib/esm/specDiff.js.map +1 -1
  41. package/lib/esm/swift.gen.js +17 -24
  42. package/lib/esm/swift.gen.js.map +1 -1
  43. package/lib/esm/testUtils/index.js +1 -16
  44. package/lib/esm/testUtils/index.js.map +1 -1
  45. package/lib/esm/testUtils/testUtils.js +12 -25
  46. package/lib/esm/testUtils/testUtils.js.map +1 -1
  47. package/lib/esm/typescript.gen.js +16 -23
  48. package/lib/esm/typescript.gen.js.map +1 -1
  49. package/lib/exampleInfo.d.ts +6 -6
  50. package/lib/exampleInfo.js +1 -2
  51. package/lib/exampleInfo.js.map +1 -1
  52. package/lib/go.gen.js +3 -3
  53. package/lib/go.gen.js.map +1 -1
  54. package/lib/index.js.map +1 -1
  55. package/lib/kotlin.gen.d.ts +1 -1
  56. package/lib/kotlin.gen.js +2 -2
  57. package/lib/kotlin.gen.js.map +1 -1
  58. package/lib/pseudo.gen.js +2 -2
  59. package/lib/pseudo.gen.js.map +1 -1
  60. package/lib/python.gen.js +6 -3
  61. package/lib/python.gen.js.map +1 -1
  62. package/lib/sdkModels.d.ts +13 -13
  63. package/lib/sdkModels.js +15 -25
  64. package/lib/sdkModels.js.map +1 -1
  65. package/lib/specConverter.d.ts +6 -9
  66. package/lib/specConverter.js +12 -20
  67. package/lib/specConverter.js.map +1 -1
  68. package/lib/specDiff.d.ts +4 -4
  69. package/lib/specDiff.js +4 -8
  70. package/lib/specDiff.js.map +1 -1
  71. package/lib/swift.gen.js +2 -2
  72. package/lib/swift.gen.js.map +1 -1
  73. package/lib/testUtils/index.js.map +1 -1
  74. package/lib/testUtils/testUtils.js +4 -6
  75. package/lib/testUtils/testUtils.js.map +1 -1
  76. package/lib/typescript.gen.js +4 -4
  77. package/lib/typescript.gen.js.map +1 -1
  78. package/package.json +6 -6
@@ -1,33 +1,21 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.specFromFile = exports.rootFile = exports.getRootPath = exports.TestConfig = void 0;
7
- var fs = _interopRequireWildcard(require("fs"));
8
- var _path = _interopRequireDefault(require("path"));
9
- var _nodeSettings = require("../../../sdk-node/src/nodeSettings");
10
- var _sdkModels = require("../sdkModels");
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
1
+ import * as fs from 'fs';
2
+ import path from 'path';
3
+ import { ApiConfig } from '../../../sdk-node/src/nodeSettings';
4
+ import { ApiModel } from '../sdkModels';
14
5
  var utf8 = 'utf-8';
15
- var specFromFile = specFile => {
6
+ export var specFromFile = specFile => {
16
7
  var specContent = fs.readFileSync(specFile, {
17
8
  encoding: utf8
18
9
  });
19
- return _sdkModels.ApiModel.fromString(specContent);
10
+ return ApiModel.fromString(specContent);
20
11
  };
21
- exports.specFromFile = specFromFile;
22
12
  var homeToRoost = '../../../../';
23
- var getRootPath = () => _path.default.join(__dirname, homeToRoost);
24
- exports.getRootPath = getRootPath;
25
- var rootFile = function rootFile() {
13
+ export var getRootPath = () => path.join(__dirname, homeToRoost);
14
+ export var rootFile = function rootFile() {
26
15
  var fileName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
27
- return _path.default.join(getRootPath(), fileName);
16
+ return path.join(getRootPath(), fileName);
28
17
  };
29
- exports.rootFile = rootFile;
30
- var TestConfig = function TestConfig() {
18
+ export var TestConfig = function TestConfig() {
31
19
  var rootPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
32
20
  var testFile = 'data.yml.json';
33
21
  rootPath = rootPath || getRootPath();
@@ -37,12 +25,12 @@ var TestConfig = function TestConfig() {
37
25
  var testData = JSON.parse(fs.readFileSync(dataFile, utf8));
38
26
  var testIni = "".concat(rootPath).concat(testData.iniFile);
39
27
  var configContents = fs.readFileSync(localIni, utf8);
40
- var config = (0, _nodeSettings.ApiConfig)(configContents);
28
+ var config = ApiConfig(configContents);
41
29
  var section = config.Looker;
42
30
  var baseUrl = section.base_url;
43
31
  var timeout = parseInt(section.timeout, 10);
44
32
  var testContents = fs.readFileSync(testIni, utf8);
45
- var testConfig = (0, _nodeSettings.ApiConfig)(testContents);
33
+ var testConfig = ApiConfig(testContents);
46
34
  var testSection = testConfig.Looker;
47
35
  var apiTestModel = specFromFile("".concat(testPath, "openApiRef.json"));
48
36
  return {
@@ -62,5 +50,4 @@ var TestConfig = function TestConfig() {
62
50
  timeout
63
51
  };
64
52
  };
65
- exports.TestConfig = TestConfig;
66
53
  //# sourceMappingURL=testUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testUtils.js","names":["fs","_interopRequireWildcard","require","_path","_interopRequireDefault","_nodeSettings","_sdkModels","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","utf8","specFromFile","specFile","specContent","readFileSync","encoding","ApiModel","fromString","exports","homeToRoost","getRootPath","path","join","__dirname","rootFile","fileName","arguments","length","undefined","TestConfig","rootPath","testFile","localIni","process","env","LOOKERSDK_INI","concat","testPath","dataFile","testData","JSON","parse","testIni","iniFile","configContents","config","ApiConfig","section","Looker","baseUrl","base_url","timeout","parseInt","testContents","testConfig","testSection","apiTestModel"],"sources":["../../../src/testUtils/testUtils.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 * as fs from 'fs'\nimport path from 'path'\nimport { ApiConfig } from '../../../sdk-node/src/nodeSettings'\nimport { ApiModel } from '../sdkModels'\n\ninterface IKeyAny {\n [key: string]: any\n}\n\nconst utf8 = 'utf-8'\n\n/**\n * Convert a spec file into an APIModel\n * @param specFile name of spec file\n */\nexport const specFromFile = (specFile: string): ApiModel => {\n const specContent = fs.readFileSync(specFile, { encoding: utf8 })\n return ApiModel.fromString(specContent)\n}\n\n/**\n * Properties used for various typescript-based tests\n */\nexport interface ITestConfig {\n /** the openApi.json snapshot in the test/ dir */\n apiTestModel: ApiModel\n /** root dir of this repository */\n rootPath: string\n /** <rootPath>/test dir */\n testPath: string\n /** test/data.yml.json file */\n dataFile: string\n /** root looker.ini file or LOOKERSDK_INI value */\n localIni: string\n /** base_url from looker.ini section */\n baseUrl: string\n /** timeout from looker.ini section */\n timeout: number\n /** contents of test/data.yml.json */\n testData: any\n /** ini file configured in testData */\n testIni: string\n /** contents of local ini */\n configContents: string\n /** the APIConfig version of local ini */\n config: IKeyAny\n /** [Looker] section of local ini */\n section: IKeyAny\n /** APIConfig of the test ini */\n testConfig: IKeyAny\n /** [Looker] section of test ini */\n testSection: IKeyAny\n}\n\nconst homeToRoost = '../../../../'\n\n/** fully resolved root dir of the repository */\nexport const getRootPath = (): string => path.join(__dirname, homeToRoost)\n\n/**\n * Fully resolved path to a file based from the root path\n * @param fileName to path. It can start with folders\n */\nexport const rootFile = (fileName = ''): string =>\n path.join(getRootPath(), fileName)\n\n/**\n * Reads configuration information, returning various test values\n * @param {string} rootPath\n * @returns {{testConfig: {[p: string]: any}; localIni: string; baseUrl: any; testData: any; apiVersion: any; testIni: string; configContents: string; rootPath: string; testSection: any; timeout: number}}\n * @constructor\n */\nexport const TestConfig = (rootPath = ''): ITestConfig => {\n const testFile = 'data.yml.json'\n rootPath = rootPath || getRootPath()\n const localIni = process.env.LOOKERSDK_INI || `${rootPath}looker.ini`\n const testPath = `${rootPath}test/`\n const dataFile = `${testPath}${testFile}`\n const testData = JSON.parse(fs.readFileSync(dataFile, utf8))\n const testIni = `${rootPath}${testData.iniFile}`\n const configContents = fs.readFileSync(localIni, utf8)\n const config = ApiConfig(configContents)\n const section = config.Looker\n const baseUrl = section.base_url\n const timeout = parseInt(section.timeout, 10)\n const testContents = fs.readFileSync(testIni, utf8)\n const testConfig = ApiConfig(testContents)\n const testSection = testConfig.Looker\n const apiTestModel = specFromFile(`${testPath}openApiRef.json`)\n return {\n apiTestModel,\n baseUrl,\n config,\n configContents,\n dataFile,\n localIni,\n rootPath,\n section,\n testConfig,\n testData,\n testIni,\n testPath,\n testSection,\n timeout,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"testUtils.js","names":["fs","path","ApiConfig","ApiModel","utf8","specFromFile","specFile","specContent","readFileSync","encoding","fromString","homeToRoost","getRootPath","join","__dirname","rootFile","fileName","arguments","length","undefined","TestConfig","rootPath","testFile","localIni","process","env","LOOKERSDK_INI","concat","testPath","dataFile","testData","JSON","parse","testIni","iniFile","configContents","config","section","Looker","baseUrl","base_url","timeout","parseInt","testContents","testConfig","testSection","apiTestModel"],"sources":["../../../src/testUtils/testUtils.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 * as fs from 'fs';\nimport path from 'path';\nimport { ApiConfig } from '../../../sdk-node/src/nodeSettings';\nimport { ApiModel } from '../sdkModels';\n\ninterface IKeyAny {\n [key: string]: any;\n}\n\nconst utf8 = 'utf-8';\n\n/**\n * Convert a spec file into an APIModel\n * @param specFile name of spec file\n */\nexport const specFromFile = (specFile: string): ApiModel => {\n const specContent = fs.readFileSync(specFile, { encoding: utf8 });\n return ApiModel.fromString(specContent);\n};\n\n/**\n * Properties used for various typescript-based tests\n */\nexport interface ITestConfig {\n /** the openApi.json snapshot in the test/ dir */\n apiTestModel: ApiModel;\n /** root dir of this repository */\n rootPath: string;\n /** <rootPath>/test dir */\n testPath: string;\n /** test/data.yml.json file */\n dataFile: string;\n /** root looker.ini file or LOOKERSDK_INI value */\n localIni: string;\n /** base_url from looker.ini section */\n baseUrl: string;\n /** timeout from looker.ini section */\n timeout: number;\n /** contents of test/data.yml.json */\n testData: any;\n /** ini file configured in testData */\n testIni: string;\n /** contents of local ini */\n configContents: string;\n /** the APIConfig version of local ini */\n config: IKeyAny;\n /** [Looker] section of local ini */\n section: IKeyAny;\n /** APIConfig of the test ini */\n testConfig: IKeyAny;\n /** [Looker] section of test ini */\n testSection: IKeyAny;\n}\n\nconst homeToRoost = '../../../../';\n\n/** fully resolved root dir of the repository */\nexport const getRootPath = (): string => path.join(__dirname, homeToRoost);\n\n/**\n * Fully resolved path to a file based from the root path\n * @param fileName to path. It can start with folders\n */\nexport const rootFile = (fileName = ''): string =>\n path.join(getRootPath(), fileName);\n\n/**\n * Reads configuration information, returning various test values\n * @param {string} rootPath\n * @returns {{testConfig: {[p: string]: any}; localIni: string; baseUrl: any; testData: any; apiVersion: any; testIni: string; configContents: string; rootPath: string; testSection: any; timeout: number}}\n * @constructor\n */\nexport const TestConfig = (rootPath = ''): ITestConfig => {\n const testFile = 'data.yml.json';\n rootPath = rootPath || getRootPath();\n const localIni = process.env.LOOKERSDK_INI || `${rootPath}looker.ini`;\n const testPath = `${rootPath}test/`;\n const dataFile = `${testPath}${testFile}`;\n const testData = JSON.parse(fs.readFileSync(dataFile, utf8));\n const testIni = `${rootPath}${testData.iniFile}`;\n const configContents = fs.readFileSync(localIni, utf8);\n const config = ApiConfig(configContents);\n const section = config.Looker;\n const baseUrl = section.base_url;\n const timeout = parseInt(section.timeout, 10);\n const testContents = fs.readFileSync(testIni, utf8);\n const testConfig = ApiConfig(testContents);\n const testSection = testConfig.Looker;\n const apiTestModel = specFromFile(`${testPath}openApiRef.json`);\n return {\n apiTestModel,\n baseUrl,\n config,\n configContents,\n dataFile,\n localIni,\n rootPath,\n section,\n testConfig,\n testData,\n testIni,\n testPath,\n testSection,\n timeout,\n };\n};\n"],"mappings":"AA0BA,OAAO,KAAKA,EAAE,MAAM,IAAI;AACxB,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,SAAS,QAAQ,oCAAoC;AAC9D,SAASC,QAAQ,QAAQ,cAAc;AAMvC,IAAMC,IAAI,GAAG,OAAO;AAMpB,OAAO,IAAMC,YAAY,GAAIC,QAAgB,IAAe;EAC1D,IAAMC,WAAW,GAAGP,EAAE,CAACQ,YAAY,CAACF,QAAQ,EAAE;IAAEG,QAAQ,EAAEL;EAAK,CAAC,CAAC;EACjE,OAAOD,QAAQ,CAACO,UAAU,CAACH,WAAW,CAAC;AACzC,CAAC;AAoCD,IAAMI,WAAW,GAAG,cAAc;AAGlC,OAAO,IAAMC,WAAW,GAAGA,CAAA,KAAcX,IAAI,CAACY,IAAI,CAACC,SAAS,EAAEH,WAAW,CAAC;AAM1E,OAAO,IAAMI,QAAQ,GAAG,SAAXA,QAAQA,CAAA;EAAA,IAAIC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,OACpChB,IAAI,CAACY,IAAI,CAACD,WAAW,CAAC,CAAC,EAAEI,QAAQ,CAAC;AAAA;AAQpC,OAAO,IAAMI,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAmC;EAAA,IAA/BC,QAAQ,GAAAJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EACtC,IAAMK,QAAQ,GAAG,eAAe;EAChCD,QAAQ,GAAGA,QAAQ,IAAIT,WAAW,CAAC,CAAC;EACpC,IAAMW,QAAQ,GAAGC,OAAO,CAACC,GAAG,CAACC,aAAa,OAAAC,MAAA,CAAON,QAAQ,eAAY;EACrE,IAAMO,QAAQ,MAAAD,MAAA,CAAMN,QAAQ,UAAO;EACnC,IAAMQ,QAAQ,MAAAF,MAAA,CAAMC,QAAQ,EAAAD,MAAA,CAAGL,QAAQ,CAAE;EACzC,IAAMQ,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAAChC,EAAE,CAACQ,YAAY,CAACqB,QAAQ,EAAEzB,IAAI,CAAC,CAAC;EAC5D,IAAM6B,OAAO,MAAAN,MAAA,CAAMN,QAAQ,EAAAM,MAAA,CAAGG,QAAQ,CAACI,OAAO,CAAE;EAChD,IAAMC,cAAc,GAAGnC,EAAE,CAACQ,YAAY,CAACe,QAAQ,EAAEnB,IAAI,CAAC;EACtD,IAAMgC,MAAM,GAAGlC,SAAS,CAACiC,cAAc,CAAC;EACxC,IAAME,OAAO,GAAGD,MAAM,CAACE,MAAM;EAC7B,IAAMC,OAAO,GAAGF,OAAO,CAACG,QAAQ;EAChC,IAAMC,OAAO,GAAGC,QAAQ,CAACL,OAAO,CAACI,OAAO,EAAE,EAAE,CAAC;EAC7C,IAAME,YAAY,GAAG3C,EAAE,CAACQ,YAAY,CAACyB,OAAO,EAAE7B,IAAI,CAAC;EACnD,IAAMwC,UAAU,GAAG1C,SAAS,CAACyC,YAAY,CAAC;EAC1C,IAAME,WAAW,GAAGD,UAAU,CAACN,MAAM;EACrC,IAAMQ,YAAY,GAAGzC,YAAY,IAAAsB,MAAA,CAAIC,QAAQ,oBAAiB,CAAC;EAC/D,OAAO;IACLkB,YAAY;IACZP,OAAO;IACPH,MAAM;IACND,cAAc;IACdN,QAAQ;IACRN,QAAQ;IACRF,QAAQ;IACRgB,OAAO;IACPO,UAAU;IACVd,QAAQ;IACRG,OAAO;IACPL,QAAQ;IACRiB,WAAW;IACXJ;EACF,CAAC;AACH,CAAC"}
@@ -1,17 +1,11 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TypescriptGen = void 0;
7
- var _sdkModels = require("./sdkModels");
8
- var _codeGen = require("./codeGen");
9
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
10
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
3
  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; }
12
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
13
- 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
- class TypescriptGen extends _codeGen.CodeGen {
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
5
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
+ import { EnumType, describeParam, isSpecialName, strBody } from './sdkModels';
7
+ import { CodeGen, commentBlock } from './codeGen';
8
+ export class TypescriptGen extends CodeGen {
15
9
  constructor() {
16
10
  super(...arguments);
17
11
  _defineProperty(this, "codePath", './packages/');
@@ -77,9 +71,9 @@ class TypescriptGen extends _codeGen.CodeGen {
77
71
  if (this.noComment || !text) return '';
78
72
  var commentPrefix = text.includes(' License') && text.includes('Copyright (c)') ? '/*' : '/**';
79
73
  if (commentStr === ' ') {
80
- return "".concat(indent).concat(commentPrefix, "\n\n").concat((0, _codeGen.commentBlock)(text, indent, commentStr), "\n").concat(indent, " */\n");
74
+ return "".concat(indent).concat(commentPrefix, "\n\n").concat(commentBlock(text, indent, commentStr), "\n").concat(indent, " */\n");
81
75
  }
82
- return "".concat(indent).concat(commentPrefix, "\n").concat((0, _codeGen.commentBlock)(text, indent, commentStr), "\n").concat(indent, " */\n");
76
+ return "".concat(indent).concat(commentPrefix, "\n").concat(commentBlock(text, indent, commentStr), "\n").concat(indent, " */\n");
83
77
  }
84
78
  beginRegion(indent, description) {
85
79
  return "".concat(indent, "//#region ").concat(description);
@@ -90,7 +84,7 @@ class TypescriptGen extends _codeGen.CodeGen {
90
84
  declareProperty(indent, property) {
91
85
  var optional = !property.required ? '?' : '';
92
86
  var nullify = property.nullable ? ' | null' : '';
93
- if (property.name === _sdkModels.strBody) {
87
+ if (property.name === strBody) {
94
88
  property.type.refCount++;
95
89
  return this.commentHeader(indent, property.description || 'body parameter for dynamically created request type') + "".concat(indent).concat(property.name).concat(optional, ": ").concat(this.typeName(property.type)).concat(nullify);
96
90
  }
@@ -98,7 +92,7 @@ class TypescriptGen extends _codeGen.CodeGen {
98
92
  return this.commentHeader(indent, this.describeProperty(property)) + "".concat(indent).concat(this.reserve(property.name)).concat(optional, ": ").concat(mapped.name).concat(nullify);
99
93
  }
100
94
  impartial(param, mapped) {
101
- if (param.type.intrinsic || param.location !== _sdkModels.strBody) return mapped.name;
95
+ if (param.type.intrinsic || param.location !== strBody) return mapped.name;
102
96
  return "Partial<".concat(mapped.name, ">");
103
97
  }
104
98
  paramComment(param, mapped) {
@@ -106,12 +100,12 @@ class TypescriptGen extends _codeGen.CodeGen {
106
100
  if (!desc) {
107
101
  desc = this.impartial(param, mapped);
108
102
  }
109
- return "@param ".concat(param.name, " ").concat((0, _sdkModels.describeParam)(_objectSpread(_objectSpread({}, param), {
103
+ return "@param ".concat(param.name, " ").concat(describeParam(_objectSpread(_objectSpread({}, param), {
110
104
  description: desc
111
105
  })));
112
106
  }
113
107
  declareParameter(indent, method, param) {
114
- var type = param.location === _sdkModels.strBody ? this.writeableType(param.type, method) || param.type : param.type;
108
+ var type = param.location === strBody ? this.writeableType(param.type, method) || param.type : param.type;
115
109
  var mapped = this.typeMap(type);
116
110
  var pOpt = '';
117
111
  mapped.name = this.impartial(param, mapped);
@@ -255,18 +249,18 @@ class TypescriptGen extends _codeGen.CodeGen {
255
249
  return this.streamerSignature(indent, method) + this.encodePathParams(bump, method) + this.streamCall(bump, method) + "\n".concat(indent, "}");
256
250
  }
257
251
  reserve(name) {
258
- if (!(0, _sdkModels.isSpecialName)(name)) return name;
252
+ if (!isSpecialName(name)) return name;
259
253
  return "'".concat(name, "'");
260
254
  }
261
255
  typeName(type) {
262
256
  type.refCount++;
263
- if (type.customType && !(type instanceof _sdkModels.EnumType)) {
257
+ if (type.customType && !(type instanceof EnumType)) {
264
258
  return this.reserve("I".concat(type.name));
265
259
  }
266
260
  return this.reserve(type.name);
267
261
  }
268
262
  typeSignature(indent, type) {
269
- var meta = type instanceof _sdkModels.EnumType ? 'enum' : 'interface';
263
+ var meta = type instanceof EnumType ? 'enum' : 'interface';
270
264
  return this.commentHeader(indent, type.description) + "".concat(indent, "export ").concat(meta, " ").concat(this.typeName(type), " ").concat(this.typeOpen, "\n");
271
265
  }
272
266
  errorResponses(_indent, method) {
@@ -461,5 +455,4 @@ class TypescriptGen extends _codeGen.CodeGen {
461
455
  }
462
456
  }
463
457
  }
464
- exports.TypescriptGen = TypescriptGen;
465
458
  //# sourceMappingURL=typescript.gen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.gen.js","names":["_sdkModels","require","_codeGen","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","TypescriptGen","CodeGen","constructor","Set","reset","rtlNeeds","sdkFileName","baseFileName","_this$versions","fileName","concat","versions","spec","rtlImports","rtl","Array","from","join","rtlImportStatement","methodsPrologue","_indent","warnEditing","packageName","typeNames","apiVersion","functionsPrologue","apiRef","interfacesPrologue","streamsPrologue","methodsEpilogue","modelsPrologue","modelsEpilogue","commentHeader","indent","text","commentStr","noComment","commentPrefix","includes","commentBlock","beginRegion","description","endRegion","declareProperty","property","optional","required","nullify","nullable","name","strBody","type","refCount","typeName","mapped","typeMap","describeProperty","reserve","impartial","param","intrinsic","location","paramComment","desc","describeParam","declareParameter","method","writeableType","pOpt","default","makeTheCall","inputs","args","assignParams","fun","mono","methodHeaderComment","_method$description","params","lines","trim","resultType","httpMethod","endpoint","deprecated","responseIsBoth","responseIsBinary","p","allParams","requestType","requestTypeName","paramMappedType","methodHeaderDeclaration","streamer","fragment","bump","bumper","headComment","paramDelimiter","callback","header","returns","returnType","methodSignature","encodePathParams","indentStr","encodings","pathParams","prefix","useRequest","doEncode","accessor","declareMethod","httpCall","errors","errorResponses","functionSignature","declareFunction","itself","result","declareInterface","sig","trimRight","replace","substr","streamerSignature","declareStreamer","streamCall","isSpecialName","customType","EnumType","typeSignature","meta","typeOpen","results","map","r","httpPath","path","indexOf","argGroup","nullStr","hash","reserved","argDelimiter","argList","bits","a","argFill","current","httpArgs","request","bodyArg","queryArgs","it","toLowerCase","toUpperCase","summary","names","api","types","values","mt","asString","_","v","tsTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","password","asVal","string","uri","url","void","_i","_v","elementType","className","add","Error","JSON","stringify","exports"],"sources":["../../src/typescript.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 {\n Arg,\n ArgValues,\n IMethod,\n IParameter,\n IProperty,\n IType,\n} from './sdkModels'\nimport { describeParam, EnumType, isSpecialName, strBody } from './sdkModels'\nimport type { CodeAssignment, IMappedType } from './codeGen'\nimport { CodeGen, commentBlock } from './codeGen'\n\n/**\n * TypeScript code generator\n */\nexport class TypescriptGen extends CodeGen {\n /**\n * special case for TypeScript output path due to mono repository\n */\n codePath = './packages/'\n /**\n * special case for TypeScript output path due to mono repository\n */\n useFunctions = true\n useInterfaces = true\n packagePath = 'sdk/src'\n itself = 'this'\n fileExtension = '.ts'\n commentStr = '// '\n nullStr = 'null'\n transport = 'transport'\n\n argDelimiter = ', '\n paramDelimiter = ',\\n'\n propDelimiter = '\\n'\n\n indentStr = ' '\n endTypeStr = '\\n}'\n willItStream = true\n useNamedParameters = false\n useNamedArguments = false\n /** Track special imports of sdk-rtl */\n rtlNeeds = new Set<string>()\n\n reset() {\n this.rtlNeeds = new Set<string>()\n }\n\n sdkFileName(baseFileName: string) {\n return this.fileName(`${this.versions?.spec.key}/${baseFileName}`)\n }\n\n /** lists all special sdk-rtl import types encountered */\n rtlImports() {\n let rtl = Array.from(this.rtlNeeds).join(', ')\n if (rtl) {\n rtl += ', '\n }\n return rtl\n }\n\n /** creates a full @looker/sdk-rtl import statement if one is required */\n rtlImportStatement() {\n const rtl = this.rtlImports()\n return rtl ? `\\nimport type { ${rtl} } from '@looker/sdk-rtl'\\n` : ''\n }\n\n methodsPrologue(_indent: string) {\n return `\nimport type { ${this.rtlImports()}IAuthSession, ITransportSettings, SDKResponse } from '@looker/sdk-rtl'\nimport { APIMethods, encodeParam } from '@looker/sdk-rtl'\n/**\n * ${this.warnEditing()}\n *\n */\nimport { sdkVersion } from '../constants'\nimport type { I${this.packageName} } from './methodsInterface'\nimport type { ${this.typeNames().join(', ')} } from './models'\n\nexport class ${this.packageName} extends APIMethods implements I${\n this.packageName\n } {\n static readonly ApiVersion = '${this.apiVersion}'\n constructor(authSession: IAuthSession) {\n super(authSession, sdkVersion)\n this.apiVersion = ${this.packageName}.ApiVersion\n this.apiPath =\n authSession.settings.base_url === ''\n ? ''\n : authSession.settings.base_url + '/api/' + this.apiVersion\n }\n\n`\n }\n\n functionsPrologue(_indent: string) {\n return `\nimport type { ${this.rtlImports()}IAPIMethods, IAuthSession, ITransportSettings, SDKResponse } from '@looker/sdk-rtl'\nimport { encodeParam, functionalSdk } from '@looker/sdk-rtl'\n\n/**\n * ${this.warnEditing()}\n *\n */\n\nimport { sdkVersion } from '../constants'\nimport type { ${this.typeNames().join(', ')} } from './models'\n\n/**\n * Creates a \"functional sdk\" that knows the API and Looker release version\n * @param authSession authentication session\n */\nexport const functionalSdk${this.apiRef} = (\n authSession: IAuthSession,\n) => {\n return functionalSdk(authSession, '${this.apiVersion}', sdkVersion)\n}\n\n`\n }\n\n interfacesPrologue(_indent: string) {\n return `\nimport type { ${this.rtlImports()} IAPIMethods, ITransportSettings, SDKResponse } from '@looker/sdk-rtl'\n/**\n * ${this.warnEditing()}\n *\n */\nimport type { ${this.typeNames().join(', ')} } from './models'\n\nexport interface I${this.packageName} extends IAPIMethods {\n\n`\n }\n\n streamsPrologue(_indent: string): string {\n return `\nimport type { Readable } from 'readable-stream'\nimport type { ${this.rtlImports()}IAuthSession, ITransportSettings } from '@looker/sdk-rtl'\nimport { APIMethods, encodeParam } from '@looker/sdk-rtl'\n\n/**\n * ${this.warnEditing()}\n *\n */\nimport { sdkVersion } from '../constants'\nimport type { ${this.typeNames().join(', ')} } from './models'\n\nexport class ${this.packageName}Stream extends APIMethods {\n static readonly ApiVersion = '${this.apiVersion}'\n constructor(authSession: IAuthSession) {\n super(authSession, sdkVersion)\n this.apiVersion = ${this.packageName}Stream.ApiVersion\n this.apiPath =\n authSession.settings.base_url === ''\n ? ''\n : authSession.settings.base_url + '/api/' + this.apiVersion\n }\n`\n }\n\n methodsEpilogue(_indent: string) {\n return '\\n}'\n }\n\n modelsPrologue(_indent: string) {\n return `${this.rtlImportStatement()}\n/*\n * ${this.warnEditing()}\n */\n\n`\n }\n\n modelsEpilogue(_indent: string) {\n return ''\n }\n\n commentHeader(indent: string, text: string | undefined, commentStr = ' * ') {\n if (this.noComment || !text) return ''\n const commentPrefix =\n text.includes(' License') && text.includes('Copyright (c)') ? '/*' : '/**'\n if (commentStr === ' ') {\n return `${indent}${commentPrefix}\\n\\n${commentBlock(\n text,\n indent,\n commentStr\n )}\\n${indent} */\\n`\n }\n return `${indent}${commentPrefix}\\n${commentBlock(\n text,\n indent,\n commentStr\n )}\\n${indent} */\\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 declareProperty(indent: string, property: IProperty) {\n const optional = !property.required ? '?' : ''\n const nullify = property.nullable ? ' | null' : ''\n if (property.name === strBody) {\n // TODO refactor this hack to track context when the body parameter is created for the request type\n property.type.refCount++\n return (\n this.commentHeader(\n indent,\n property.description ||\n 'body parameter for dynamically created request type'\n ) +\n `${indent}${property.name}${optional}: ${this.typeName(\n property.type\n )}${nullify}`\n )\n }\n const mapped = this.typeMap(property.type)\n return (\n this.commentHeader(indent, this.describeProperty(property)) +\n `${indent}${this.reserve(property.name)}${optional}: ${\n mapped.name\n }${nullify}`\n )\n }\n\n /**\n * Detect need for Partial<T> vs T for a parameter type\n * @param param to cast (or not)\n * @param mapped type to cast\n */\n impartial(param: IParameter, mapped: IMappedType) {\n if (param.type.intrinsic || param.location !== strBody) return mapped.name\n return `Partial<${mapped.name}>`\n }\n\n paramComment(param: IParameter, mapped: IMappedType) {\n // Don't include mapped type name for Typescript param comments in headers\n let desc = param.description || param.type.description\n if (!desc) {\n desc = this.impartial(param, mapped)\n }\n\n return `@param ${param.name} ${describeParam({\n ...param,\n ...{ description: desc },\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 mapped.name = this.impartial(param, mapped)\n if (!param.required) {\n pOpt = mapped.default ? '' : '?'\n }\n return (\n `${indent}${this.reserve(param.name)}${pOpt}: ${mapped.name}` +\n (param.required ? '' : mapped.default ? ` = ${mapped.default}` : '')\n )\n }\n\n makeTheCall(method: IMethod, inputs: ArgValues): string {\n const args = this.assignParams(method, inputs)\n const fun = `// functional SDK syntax is recommended for minimizing browser payloads\nlet response = await sdk.ok(${method.name}(sdk${args ? ',' : ''}`\n const mono = `// monolithic SDK syntax can also be used for Node apps\nlet response = await sdk.ok(sdk.${method.name}(`\n return `${fun}${args}))\\n${mono}${args}))`\n }\n\n methodHeaderComment(method: IMethod, params: string[] = []) {\n if (this.noComment) return ''\n const lines: string[] = []\n\n const desc = method.description?.trim()\n if (desc) {\n lines.push(desc)\n lines.push('')\n }\n\n const resultType = this.typeMap(method.type).name\n lines.push(`${method.httpMethod} ${method.endpoint} -> ${resultType}`)\n lines.push('')\n\n if (method.deprecated) {\n lines.push('@deprecated')\n lines.push('')\n }\n\n if (method.responseIsBoth()) {\n lines.push('@remarks')\n lines.push('**NOTE**: Binary content may be returned by this function.')\n lines.push('')\n } else if (method.responseIsBinary()) {\n lines.push('@remarks')\n lines.push('**NOTE**: Binary content is returned by this function.')\n lines.push('')\n }\n\n params.forEach((p) => lines.push(`@param ${p}`))\n\n const args = method.allParams\n if (args.length) {\n let requestType = this.requestTypeName(method)\n\n if (requestType) {\n requestType =\n method.httpMethod === 'PATCH'\n ? `Partial<I${requestType}>`\n : `I${requestType}`\n lines.push(\n `@param request composed interface \"${requestType}\" for complex method parameters`\n )\n } else {\n args.forEach((p) =>\n lines.push(this.paramComment(p, this.paramMappedType(p, method)))\n )\n }\n }\n lines.push('@param options one-time API call overrides')\n lines.push('')\n\n return lines.join('\\n')\n }\n\n methodHeaderDeclaration(\n indent: string,\n method: IMethod,\n streamer = false,\n params: string[] = []\n ) {\n const mapped = this.typeMap(method.type)\n let fragment: string\n const requestType = this.requestTypeName(method)\n const bump = this.bumper(indent)\n const headComment = streamer\n ? this.methodHeaderComment(method, ['callback streaming output function'])\n : this.methodHeaderComment(method, params)\n if (requestType) {\n // use the request type that will be generated in models.ts\n // No longer using Partial<T> by default here because required and optional are supposed to be accurate\n // However, for update methods (iow, patch) Partial<T> is still necessary since only the delta gets set\n fragment =\n method.httpMethod === 'PATCH'\n ? `request: Partial<I${requestType}>`\n : `request: I${requestType}`\n params.push(fragment)\n fragment = params.join(', ')\n } else {\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 const callback = `callback: (readable: Readable) => Promise<${mapped.name}>,`\n const header =\n this.commentHeader(indent, headComment) +\n `${indent}async ${method.name}(` +\n (streamer ? `\\n${bump}${callback}` : '')\n const returns = streamer ? '' : `: ${this.returnType(indent, method)}`\n\n return (\n header +\n fragment +\n (fragment ? ', ' : '') +\n `options?: Partial<ITransportSettings>)${returns} {\\n`\n )\n }\n\n methodSignature(indent: string, method: IMethod) {\n return this.methodHeaderDeclaration(indent, method, false)\n }\n\n encodePathParams(indent: string, method: IMethod) {\n const bump = indent + this.indentStr\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 encodings += `${bump}${name} = encodeParam(${name})\\n`\n }\n }\n }\n return encodings\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(indent, method) +\n this.httpCall(bump, method) +\n `\\n${indent}}`\n )\n }\n\n /**\n * Return type declaration for the method\n * @param indent\n * @param method\n */\n returnType(indent: string, method: IMethod): string {\n const mapped = this.typeMap(method.type)\n const errors = this.errorResponses(indent, method)\n return `Promise<SDKResponse<${mapped.name}, ${errors}>>`\n }\n\n functionSignature(indent: string, method: IMethod): string {\n let fragment: string\n const requestType = this.requestTypeName(method)\n const bump = this.bumper(indent)\n const params = ['sdk: IAPIMethods']\n\n const headComment = this.methodHeaderComment(method, [\n 'sdk IAPIMethods implementation',\n ])\n if (requestType) {\n // use the request type that will be generated in models.ts\n // No longer using Partial<T> by default here because required and optional are supposed to be accurate\n // However, for update methods (iow, patch) Partial<T> is still necessary since only the delta gets set\n fragment =\n method.httpMethod === 'PATCH'\n ? `request: Partial<I${requestType}>`\n : `request: I${requestType}`\n params.push(fragment)\n fragment = params.join(', ')\n } else {\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 const header =\n this.commentHeader(indent, headComment) +\n `${indent}export const ${method.name} = async (`\n const returns = this.returnType(indent, method)\n\n return (\n header +\n fragment +\n (fragment ? ', ' : '') +\n `options?: Partial<ITransportSettings>): ${returns} => {\\n`\n )\n }\n\n declareFunction(indent: string, method: IMethod): string {\n const bump = this.bumper(indent)\n // horribly hacky tweak to httpCall\n this.itself = 'sdk'\n const result =\n this.functionSignature(indent, method) +\n this.encodePathParams(indent, method) +\n this.httpCall(bump, method) +\n `\\n${indent}}`\n this.itself = 'this'\n return result\n }\n\n declareInterface(indent: string, method: IMethod): string {\n let sig = this.methodSignature(indent, method).trimRight()\n sig = sig.replace(/^\\s*async /gm, '')\n sig = sig.substr(0, sig.length - 2)\n return `${sig}\\n`\n }\n\n streamerSignature(indent: string, method: IMethod) {\n return this.methodHeaderDeclaration(indent, method, true)\n }\n\n declareStreamer(indent: string, method: IMethod) {\n const bump = this.bumper(indent)\n return (\n this.streamerSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.streamCall(bump, method) +\n `\\n${indent}}`\n )\n }\n\n reserve(name: string): string {\n if (!isSpecialName(name)) return name\n return `'${name}'`\n }\n\n /**\n * Get the language's type name for generation\n *\n * Also refcounts the type\n *\n * @param type to name\n * @private\n */\n private typeName(type: IType) {\n type.refCount++\n if (type.customType && !(type instanceof EnumType)) {\n return this.reserve(`I${type.name}`)\n }\n return this.reserve(type.name)\n }\n\n typeSignature(indent: string, type: IType) {\n const meta = type instanceof EnumType ? 'enum' : 'interface'\n return (\n this.commentHeader(indent, type.description) +\n `${indent}export ${meta} ${this.typeName(type)} ${this.typeOpen}\\n`\n )\n }\n\n errorResponses(_indent: string, method: IMethod) {\n const results: string[] = method.errorResponses.map(\n (r) => `${this.typeName(r.type)}`\n )\n return results.join(' | ')\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || ''\n if (path.indexOf('{') >= 0)\n return `\\`${path.replace(/{/gi, '${' + prefix)}\\``\n return `'${path}'`\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)\n }\n }\n return `{${hash.join(this.argDelimiter)}}`\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(name)\n if (!prefix) return reserved\n if (reserved === name) return `${prefix}.${name}`\n return `${prefix}[${reserved}]`\n }\n\n argList(indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || ''\n const bits = args.map((a) => this.accessor(a, prefix))\n\n return args && args.length !== 0\n ? `\\n${indent}${bits.join(this.argDelimiter)}`\n : this.nullStr\n }\n\n // this is a builder function to produce arguments with optional null place holders but no extra required optional arguments\n argFill(current: string, args: string) {\n if (!current && args.trim() === this.nullStr) {\n // Don't append trailing optional arguments if none have been set yet\n return ''\n }\n return `${args}${current ? this.argDelimiter : ''}${current}`\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 httpCall(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request.' : ''\n const mapped = this.typeMap(method.type)\n const bump = this.bumper(indent)\n const args = this.httpArgs(bump, method)\n const errors = this.errorResponses(indent, method)\n return (\n `${indent}return ${this.it(method.httpMethod.toLowerCase())}` +\n `<${mapped.name}, ${errors}>(` +\n this.httpPath(method.endpoint, request) +\n `${args ? ', ' + args : ''})`\n )\n }\n\n streamCall(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 return `${indent}return ${this.it('authStream')}<${\n mapped.name\n }>(callback, '${method.httpMethod.toUpperCase()}', ${this.httpPath(\n method.endpoint,\n request\n )}${args ? ', ' + args : ''})`\n }\n\n summary(indent: string, text: string | undefined) {\n return this.commentHeader(indent, text)\n }\n\n // TODO avoid duplicate code\n typeNames() {\n const names: string[] = []\n if (!this.api) return names\n const types = this.api.types\n Object.values(types)\n .filter((type) => type.refCount > 0 && !type.intrinsic)\n .forEach((type) => names.push(this.typeName(type)))\n return names\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type)\n const mt = ''\n\n const asString: CodeAssignment = (_, v) => `'${v}'`\n const tsTypes: Record<string, IMappedType> = {\n any: { default: mt, name: 'any' },\n boolean: { default: mt, name: 'boolean' },\n // TODO can we use blob for binary somehow? https://developer.mozilla.org/en-US/docs/Web/API/Blob\n byte: { default: mt, name: 'binary' },\n date: { default: mt, name: 'Date' },\n datetime: { default: mt, name: 'Date' },\n double: { default: mt, name: 'number' },\n float: { default: mt, name: 'number' },\n int32: { default: mt, name: 'number' },\n int64: { default: mt, name: 'number' },\n integer: { default: mt, name: 'number' },\n number: { default: mt, name: 'number' },\n object: { default: mt, name: 'any' },\n password: { default: mt, name: 'Password', asVal: asString },\n string: { default: mt, name: 'string', asVal: asString },\n uri: { default: mt, name: 'Url', asVal: asString },\n url: { default: mt, name: 'Url', asVal: asString },\n void: { default: mt, name: 'void', asVal: (_i, _v: any) => '' },\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 {\n default: '[]',\n name: `${map.name}[]`,\n }\n case 'HashType':\n this.rtlNeeds.add('IDictionary')\n return {\n default: '',\n name: `IDictionary<${map.name}>`,\n }\n case 'DelimArrayType':\n this.rtlNeeds.add('DelimArray')\n return {\n default: '',\n name: `DelimArray<${map.name}>`,\n asVal: (_, v) => `new DelimArray<${map.name}>([${v}])`,\n }\n case 'EnumType':\n return {\n default: '',\n name: this.typeName(type),\n asVal: (_, v) => `${type.name}.${v}`,\n }\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`)\n }\n\n if (type.name) {\n const mapped = tsTypes[type.name]\n if (mapped && mapped.name === 'Url') this.rtlNeeds.add(mapped.name)\n return mapped || { default: '', name: this.typeName(type) } // No null default for complex types\n } else {\n throw new Error('Cannot output a nameless type.')\n }\n }\n}\n"],"mappings":";;;;;;AAkCA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AAAiD,SAAAE,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,IAAAC,eAAA,CAAAP,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAkB,yBAAA,GAAAlB,MAAA,CAAAmB,gBAAA,CAAAT,MAAA,EAAAV,MAAA,CAAAkB,yBAAA,CAAAJ,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAoB,cAAA,CAAAV,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAAA,SAAAO,gBAAAI,GAAA,EAAAL,GAAA,EAAAM,KAAA,IAAAN,GAAA,GAAAO,cAAA,CAAAP,GAAA,OAAAA,GAAA,IAAAK,GAAA,IAAArB,MAAA,CAAAoB,cAAA,CAAAC,GAAA,EAAAL,GAAA,IAAAM,KAAA,EAAAA,KAAA,EAAAhB,UAAA,QAAAkB,YAAA,QAAAC,QAAA,oBAAAJ,GAAA,CAAAL,GAAA,IAAAM,KAAA,WAAAD,GAAA;AAAA,SAAAE,eAAAG,GAAA,QAAAV,GAAA,GAAAW,YAAA,CAAAD,GAAA,2BAAAV,GAAA,gBAAAA,GAAA,GAAAY,MAAA,CAAAZ,GAAA;AAAA,SAAAW,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAK1C,MAAMU,aAAa,SAASC,gBAAO,CAAC;EAAAC,YAAA;IAAA,SAAA7B,SAAA;IAAAK,eAAA,mBAI9B,aAAa;IAAAA,eAAA,uBAIT,IAAI;IAAAA,eAAA,wBACH,IAAI;IAAAA,eAAA,sBACN,SAAS;IAAAA,eAAA,iBACd,MAAM;IAAAA,eAAA,wBACC,KAAK;IAAAA,eAAA,qBACR,KAAK;IAAAA,eAAA,kBACR,MAAM;IAAAA,eAAA,oBACJ,WAAW;IAAAA,eAAA,uBAER,IAAI;IAAAA,eAAA,yBACF,KAAK;IAAAA,eAAA,wBACN,IAAI;IAAAA,eAAA,oBAER,IAAI;IAAAA,eAAA,qBACH,KAAK;IAAAA,eAAA,uBACH,IAAI;IAAAA,eAAA,6BACE,KAAK;IAAAA,eAAA,4BACN,KAAK;IAAAA,eAAA,mBAEd,IAAIyB,GAAG,EAAU;EAAA;EAE5BC,KAAKA,CAAA,EAAG;IACN,IAAI,CAACC,QAAQ,GAAG,IAAIF,GAAG,EAAU;EACnC;EAEAG,WAAWA,CAACC,YAAoB,EAAE;IAAA,IAAAC,cAAA;IAChC,OAAO,IAAI,CAACC,QAAQ,IAAAC,MAAA,EAAAF,cAAA,GAAI,IAAI,CAACG,QAAQ,cAAAH,cAAA,uBAAbA,cAAA,CAAeI,IAAI,CAACnC,GAAG,OAAAiC,MAAA,CAAIH,YAAY,EAAG;EACpE;EAGAM,UAAUA,CAAA,EAAG;IACX,IAAIC,GAAG,GAAGC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACX,QAAQ,CAAC,CAACY,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAIH,GAAG,EAAE;MACPA,GAAG,IAAI,IAAI;IACb;IACA,OAAOA,GAAG;EACZ;EAGAI,kBAAkBA,CAAA,EAAG;IACnB,IAAMJ,GAAG,GAAG,IAAI,CAACD,UAAU,EAAE;IAC7B,OAAOC,GAAG,sBAAAJ,MAAA,CAAsBI,GAAG,mCAAgC,EAAE;EACvE;EAEAK,eAAeA,CAACC,OAAe,EAAE;IAC/B,0BAAAV,MAAA,CACY,IAAI,CAACG,UAAU,EAAE,iJAAAH,MAAA,CAG5B,IAAI,CAACW,WAAW,EAAE,2EAAAX,MAAA,CAIN,IAAI,CAACY,WAAW,kDAAAZ,MAAA,CACjB,IAAI,CAACa,SAAS,EAAE,CAACN,IAAI,CAAC,IAAI,CAAC,yCAAAP,MAAA,CAE5B,IAAI,CAACY,WAAW,sCAAAZ,MAAA,CACzB,IAAI,CAACY,WAAW,0CAAAZ,MAAA,CAEY,IAAI,CAACc,UAAU,+GAAAd,MAAA,CAGzB,IAAI,CAACY,WAAW;EAQtC;EAEAG,iBAAiBA,CAACL,OAAe,EAAE;IACjC,0BAAAV,MAAA,CACY,IAAI,CAACG,UAAU,EAAE,mKAAAH,MAAA,CAI5B,IAAI,CAACW,WAAW,EAAE,4EAAAX,MAAA,CAKP,IAAI,CAACa,SAAS,EAAE,CAACN,IAAI,CAAC,IAAI,CAAC,6LAAAP,MAAA,CAMf,IAAI,CAACgB,MAAM,uFAAAhB,MAAA,CAGA,IAAI,CAACc,UAAU;EAIpD;EAEAG,kBAAkBA,CAACP,OAAe,EAAE;IAClC,0BAAAV,MAAA,CACY,IAAI,CAACG,UAAU,EAAE,sFAAAH,MAAA,CAE5B,IAAI,CAACW,WAAW,EAAE,+BAAAX,MAAA,CAGP,IAAI,CAACa,SAAS,EAAE,CAACN,IAAI,CAAC,IAAI,CAAC,8CAAAP,MAAA,CAEvB,IAAI,CAACY,WAAW;EAGlC;EAEAM,eAAeA,CAACR,OAAe,EAAU;IACvC,2EAAAV,MAAA,CAEY,IAAI,CAACG,UAAU,EAAE,sIAAAH,MAAA,CAI5B,IAAI,CAACW,WAAW,EAAE,0EAAAX,MAAA,CAIP,IAAI,CAACa,SAAS,EAAE,CAACN,IAAI,CAAC,IAAI,CAAC,yCAAAP,MAAA,CAE5B,IAAI,CAACY,WAAW,mEAAAZ,MAAA,CACG,IAAI,CAACc,UAAU,+GAAAd,MAAA,CAGzB,IAAI,CAACY,WAAW;EAOtC;EAEAO,eAAeA,CAACT,OAAe,EAAE;IAC/B,OAAO,KAAK;EACd;EAEAU,cAAcA,CAACV,OAAe,EAAE;IAC9B,UAAAV,MAAA,CAAU,IAAI,CAACQ,kBAAkB,EAAE,eAAAR,MAAA,CAElC,IAAI,CAACW,WAAW,EAAE;EAIrB;EAEAU,cAAcA,CAACX,OAAe,EAAE;IAC9B,OAAO,EAAE;EACX;EAEAY,aAAaA,CAACC,MAAc,EAAEC,IAAwB,EAAsB;IAAA,IAApBC,UAAU,GAAA9D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAsB,SAAA,GAAAtB,SAAA,MAAG,KAAK;IACxE,IAAI,IAAI,CAAC+D,SAAS,IAAI,CAACF,IAAI,EAAE,OAAO,EAAE;IACtC,IAAMG,aAAa,GACjBH,IAAI,CAACI,QAAQ,CAAC,UAAU,CAAC,IAAIJ,IAAI,CAACI,QAAQ,CAAC,eAAe,CAAC,GAAG,IAAI,GAAG,KAAK;IAC5E,IAAIH,UAAU,KAAK,GAAG,EAAE;MACtB,UAAAzB,MAAA,CAAUuB,MAAM,EAAAvB,MAAA,CAAG2B,aAAa,UAAA3B,MAAA,CAAO,IAAA6B,qBAAY,EACjDL,IAAI,EACJD,MAAM,EACNE,UAAU,CACX,QAAAzB,MAAA,CAAKuB,MAAM;IACd;IACA,UAAAvB,MAAA,CAAUuB,MAAM,EAAAvB,MAAA,CAAG2B,aAAa,QAAA3B,MAAA,CAAK,IAAA6B,qBAAY,EAC/CL,IAAI,EACJD,MAAM,EACNE,UAAU,CACX,QAAAzB,MAAA,CAAKuB,MAAM;EACd;EAEAO,WAAWA,CAACP,MAAc,EAAEQ,WAAmB,EAAU;IACvD,UAAA/B,MAAA,CAAUuB,MAAM,gBAAAvB,MAAA,CAAa+B,WAAW;EAC1C;EAEAC,SAASA,CAACT,MAAc,EAAEQ,WAAmB,EAAU;IACrD,UAAA/B,MAAA,CAAUuB,MAAM,mBAAAvB,MAAA,CAAgB+B,WAAW;EAC7C;EAEAE,eAAeA,CAACV,MAAc,EAAEW,QAAmB,EAAE;IACnD,IAAMC,QAAQ,GAAG,CAACD,QAAQ,CAACE,QAAQ,GAAG,GAAG,GAAG,EAAE;IAC9C,IAAMC,OAAO,GAAGH,QAAQ,CAACI,QAAQ,GAAG,SAAS,GAAG,EAAE;IAClD,IAAIJ,QAAQ,CAACK,IAAI,KAAKC,kBAAO,EAAE;MAE7BN,QAAQ,CAACO,IAAI,CAACC,QAAQ,EAAE;MACxB,OACE,IAAI,CAACpB,aAAa,CAChBC,MAAM,EACNW,QAAQ,CAACH,WAAW,IAClB,qDAAqD,CACxD,MAAA/B,MAAA,CACEuB,MAAM,EAAAvB,MAAA,CAAGkC,QAAQ,CAACK,IAAI,EAAAvC,MAAA,CAAGmC,QAAQ,QAAAnC,MAAA,CAAK,IAAI,CAAC2C,QAAQ,CACpDT,QAAQ,CAACO,IAAI,CACd,EAAAzC,MAAA,CAAGqC,OAAO,CAAE;IAEjB;IACA,IAAMO,MAAM,GAAG,IAAI,CAACC,OAAO,CAACX,QAAQ,CAACO,IAAI,CAAC;IAC1C,OACE,IAAI,CAACnB,aAAa,CAACC,MAAM,EAAE,IAAI,CAACuB,gBAAgB,CAACZ,QAAQ,CAAC,CAAC,MAAAlC,MAAA,CACxDuB,MAAM,EAAAvB,MAAA,CAAG,IAAI,CAAC+C,OAAO,CAACb,QAAQ,CAACK,IAAI,CAAC,EAAAvC,MAAA,CAAGmC,QAAQ,QAAAnC,MAAA,CAChD4C,MAAM,CAACL,IAAI,EAAAvC,MAAA,CACVqC,OAAO,CAAE;EAEhB;EAOAW,SAASA,CAACC,KAAiB,EAAEL,MAAmB,EAAE;IAChD,IAAIK,KAAK,CAACR,IAAI,CAACS,SAAS,IAAID,KAAK,CAACE,QAAQ,KAAKX,kBAAO,EAAE,OAAOI,MAAM,CAACL,IAAI;IAC1E,kBAAAvC,MAAA,CAAkB4C,MAAM,CAACL,IAAI;EAC/B;EAEAa,YAAYA,CAACH,KAAiB,EAAEL,MAAmB,EAAE;IAEnD,IAAIS,IAAI,GAAGJ,KAAK,CAAClB,WAAW,IAAIkB,KAAK,CAACR,IAAI,CAACV,WAAW;IACtD,IAAI,CAACsB,IAAI,EAAE;MACTA,IAAI,GAAG,IAAI,CAACL,SAAS,CAACC,KAAK,EAAEL,MAAM,CAAC;IACtC;IAEA,iBAAA5C,MAAA,CAAiBiD,KAAK,CAACV,IAAI,OAAAvC,MAAA,CAAI,IAAAsD,wBAAa,EAAA9F,aAAA,CAAAA,aAAA,KACvCyF,KAAK,GACL;MAAElB,WAAW,EAAEsB;IAAK,CAAC,EACxB;EACJ;EAEAE,gBAAgBA,CAAChC,MAAc,EAAEiC,MAAe,EAAEP,KAAiB,EAAE;IACnE,IAAMR,IAAI,GACRQ,KAAK,CAACE,QAAQ,KAAKX,kBAAO,GACtB,IAAI,CAACiB,aAAa,CAACR,KAAK,CAACR,IAAI,EAAEe,MAAM,CAAC,IAAIP,KAAK,CAACR,IAAI,GACpDQ,KAAK,CAACR,IAAI;IAChB,IAAMG,MAAM,GAAG,IAAI,CAACC,OAAO,CAACJ,IAAI,CAAC;IACjC,IAAIiB,IAAI,GAAG,EAAE;IACbd,MAAM,CAACL,IAAI,GAAG,IAAI,CAACS,SAAS,CAACC,KAAK,EAAEL,MAAM,CAAC;IAC3C,IAAI,CAACK,KAAK,CAACb,QAAQ,EAAE;MACnBsB,IAAI,GAAGd,MAAM,CAACe,OAAO,GAAG,EAAE,GAAG,GAAG;IAClC;IACA,OACE,GAAA3D,MAAA,CAAGuB,MAAM,EAAAvB,MAAA,CAAG,IAAI,CAAC+C,OAAO,CAACE,KAAK,CAACV,IAAI,CAAC,EAAAvC,MAAA,CAAG0D,IAAI,QAAA1D,MAAA,CAAK4C,MAAM,CAACL,IAAI,KAC1DU,KAAK,CAACb,QAAQ,GAAG,EAAE,GAAGQ,MAAM,CAACe,OAAO,SAAA3D,MAAA,CAAS4C,MAAM,CAACe,OAAO,IAAK,EAAE,CAAC;EAExE;EAEAC,WAAWA,CAACJ,MAAe,EAAEK,MAAiB,EAAU;IACtD,IAAMC,IAAI,GAAG,IAAI,CAACC,YAAY,CAACP,MAAM,EAAEK,MAAM,CAAC;IAC9C,IAAMG,GAAG,2GAAAhE,MAAA,CACiBwD,MAAM,CAACjB,IAAI,UAAAvC,MAAA,CAAO8D,IAAI,GAAG,GAAG,GAAG,EAAE,CAAE;IAC7D,IAAMG,IAAI,+FAAAjE,MAAA,CACoBwD,MAAM,CAACjB,IAAI,MAAG;IAC5C,UAAAvC,MAAA,CAAUgE,GAAG,EAAAhE,MAAA,CAAG8D,IAAI,UAAA9D,MAAA,CAAOiE,IAAI,EAAAjE,MAAA,CAAG8D,IAAI;EACxC;EAEAI,mBAAmBA,CAACV,MAAe,EAAyB;IAAA,IAAAW,mBAAA;IAAA,IAAvBC,MAAgB,GAAAzG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAsB,SAAA,GAAAtB,SAAA,MAAG,EAAE;IACxD,IAAI,IAAI,CAAC+D,SAAS,EAAE,OAAO,EAAE;IAC7B,IAAM2C,KAAe,GAAG,EAAE;IAE1B,IAAMhB,IAAI,IAAAc,mBAAA,GAAGX,MAAM,CAACzB,WAAW,cAAAoC,mBAAA,uBAAlBA,mBAAA,CAAoBG,IAAI,EAAE;IACvC,IAAIjB,IAAI,EAAE;MACRgB,KAAK,CAAC/G,IAAI,CAAC+F,IAAI,CAAC;MAChBgB,KAAK,CAAC/G,IAAI,CAAC,EAAE,CAAC;IAChB;IAEA,IAAMiH,UAAU,GAAG,IAAI,CAAC1B,OAAO,CAACW,MAAM,CAACf,IAAI,CAAC,CAACF,IAAI;IACjD8B,KAAK,CAAC/G,IAAI,IAAA0C,MAAA,CAAIwD,MAAM,CAACgB,UAAU,OAAAxE,MAAA,CAAIwD,MAAM,CAACiB,QAAQ,UAAAzE,MAAA,CAAOuE,UAAU,EAAG;IACtEF,KAAK,CAAC/G,IAAI,CAAC,EAAE,CAAC;IAEd,IAAIkG,MAAM,CAACkB,UAAU,EAAE;MACrBL,KAAK,CAAC/G,IAAI,CAAC,aAAa,CAAC;MACzB+G,KAAK,CAAC/G,IAAI,CAAC,EAAE,CAAC;IAChB;IAEA,IAAIkG,MAAM,CAACmB,cAAc,EAAE,EAAE;MAC3BN,KAAK,CAAC/G,IAAI,CAAC,UAAU,CAAC;MACtB+G,KAAK,CAAC/G,IAAI,CAAC,4DAA4D,CAAC;MACxE+G,KAAK,CAAC/G,IAAI,CAAC,EAAE,CAAC;IAChB,CAAC,MAAM,IAAIkG,MAAM,CAACoB,gBAAgB,EAAE,EAAE;MACpCP,KAAK,CAAC/G,IAAI,CAAC,UAAU,CAAC;MACtB+G,KAAK,CAAC/G,IAAI,CAAC,wDAAwD,CAAC;MACpE+G,KAAK,CAAC/G,IAAI,CAAC,EAAE,CAAC;IAChB;IAEA8G,MAAM,CAACtG,OAAO,CAAE+G,CAAC,IAAKR,KAAK,CAAC/G,IAAI,WAAA0C,MAAA,CAAW6E,CAAC,EAAG,CAAC;IAEhD,IAAMf,IAAI,GAAGN,MAAM,CAACsB,SAAS;IAC7B,IAAIhB,IAAI,CAAClG,MAAM,EAAE;MACf,IAAImH,WAAW,GAAG,IAAI,CAACC,eAAe,CAACxB,MAAM,CAAC;MAE9C,IAAIuB,WAAW,EAAE;QACfA,WAAW,GACTvB,MAAM,CAACgB,UAAU,KAAK,OAAO,eAAAxE,MAAA,CACb+E,WAAW,aAAA/E,MAAA,CACnB+E,WAAW,CAAE;QACvBV,KAAK,CAAC/G,IAAI,wCAAA0C,MAAA,CAC8B+E,WAAW,sCAClD;MACH,CAAC,MAAM;QACLjB,IAAI,CAAChG,OAAO,CAAE+G,CAAC,IACbR,KAAK,CAAC/G,IAAI,CAAC,IAAI,CAAC8F,YAAY,CAACyB,CAAC,EAAE,IAAI,CAACI,eAAe,CAACJ,CAAC,EAAErB,MAAM,CAAC,CAAC,CAAC,CAClE;MACH;IACF;IACAa,KAAK,CAAC/G,IAAI,CAAC,4CAA4C,CAAC;IACxD+G,KAAK,CAAC/G,IAAI,CAAC,EAAE,CAAC;IAEd,OAAO+G,KAAK,CAAC9D,IAAI,CAAC,IAAI,CAAC;EACzB;EAEA2E,uBAAuBA,CACrB3D,MAAc,EACdiC,MAAe,EAGf;IAAA,IAFA2B,QAAQ,GAAAxH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAsB,SAAA,GAAAtB,SAAA,MAAG,KAAK;IAAA,IAChByG,MAAgB,GAAAzG,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAsB,SAAA,GAAAtB,SAAA,MAAG,EAAE;IAErB,IAAMiF,MAAM,GAAG,IAAI,CAACC,OAAO,CAACW,MAAM,CAACf,IAAI,CAAC;IACxC,IAAI2C,QAAgB;IACpB,IAAML,WAAW,GAAG,IAAI,CAACC,eAAe,CAACxB,MAAM,CAAC;IAChD,IAAM6B,IAAI,GAAG,IAAI,CAACC,MAAM,CAAC/D,MAAM,CAAC;IAChC,IAAMgE,WAAW,GAAGJ,QAAQ,GACxB,IAAI,CAACjB,mBAAmB,CAACV,MAAM,EAAE,CAAC,oCAAoC,CAAC,CAAC,GACxE,IAAI,CAACU,mBAAmB,CAACV,MAAM,EAAEY,MAAM,CAAC;IAC5C,IAAIW,WAAW,EAAE;MAIfK,QAAQ,GACN5B,MAAM,CAACgB,UAAU,KAAK,OAAO,wBAAAxE,MAAA,CACJ+E,WAAW,sBAAA/E,MAAA,CACnB+E,WAAW,CAAE;MAChCX,MAAM,CAAC9G,IAAI,CAAC8H,QAAQ,CAAC;MACrBA,QAAQ,GAAGhB,MAAM,CAAC7D,IAAI,CAAC,IAAI,CAAC;IAC9B,CAAC,MAAM;MACL,IAAMuD,IAAI,GAAGN,MAAM,CAACsB,SAAS;MAC7B,IAAIhB,IAAI,IAAIA,IAAI,CAAClG,MAAM,GAAG,CAAC,EACzBkG,IAAI,CAAChG,OAAO,CAAE+G,CAAC,IAAKT,MAAM,CAAC9G,IAAI,CAAC,IAAI,CAACiG,gBAAgB,CAAC8B,IAAI,EAAE7B,MAAM,EAAEqB,CAAC,CAAC,CAAC,CAAC;MAC1EO,QAAQ,GACNhB,MAAM,CAACxG,MAAM,GAAG,CAAC,QAAAoC,MAAA,CAAQoE,MAAM,CAAC7D,IAAI,CAAC,IAAI,CAACiF,cAAc,CAAC,IAAK,EAAE;IACpE;IACA,IAAMC,QAAQ,gDAAAzF,MAAA,CAAgD4C,MAAM,CAACL,IAAI,OAAI;IAC7E,IAAMmD,MAAM,GACV,IAAI,CAACpE,aAAa,CAACC,MAAM,EAAEgE,WAAW,CAAC,MAAAvF,MAAA,CACpCuB,MAAM,YAAAvB,MAAA,CAASwD,MAAM,CAACjB,IAAI,MAAG,IAC/B4C,QAAQ,QAAAnF,MAAA,CAAQqF,IAAI,EAAArF,MAAA,CAAGyF,QAAQ,IAAK,EAAE,CAAC;IAC1C,IAAME,OAAO,GAAGR,QAAQ,GAAG,EAAE,QAAAnF,MAAA,CAAQ,IAAI,CAAC4F,UAAU,CAACrE,MAAM,EAAEiC,MAAM,CAAC,CAAE;IAEtE,OACEkC,MAAM,GACNN,QAAQ,IACPA,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC,4CAAApF,MAAA,CACmB2F,OAAO,SAAM;EAE1D;EAEAE,eAAeA,CAACtE,MAAc,EAAEiC,MAAe,EAAE;IAC/C,OAAO,IAAI,CAAC0B,uBAAuB,CAAC3D,MAAM,EAAEiC,MAAM,EAAE,KAAK,CAAC;EAC5D;EAEAsC,gBAAgBA,CAACvE,MAAc,EAAEiC,MAAe,EAAE;IAChD,IAAM6B,IAAI,GAAG9D,MAAM,GAAG,IAAI,CAACwE,SAAS;IACpC,IAAIC,SAAS,GAAG,EAAE;IAClB,IAAIxC,MAAM,CAACyC,UAAU,CAACrI,MAAM,GAAG,CAAC,EAAE;MAChC,IAAMsI,MAAM,GAAG,IAAI,CAACC,UAAU,CAAC3C,MAAM,CAAC,GAAG,SAAS,GAAG,EAAE;MACvD,KAAK,IAAMP,KAAK,IAAIO,MAAM,CAACyC,UAAU,EAAE;QACrC,IAAIhD,KAAK,CAACmD,QAAQ,EAAE,EAAE;UACpB,IAAM7D,IAAI,GAAG,IAAI,CAAC8D,QAAQ,CAACpD,KAAK,CAACV,IAAI,EAAE2D,MAAM,CAAC;UAC9CF,SAAS,OAAAhG,MAAA,CAAOqF,IAAI,EAAArF,MAAA,CAAGuC,IAAI,qBAAAvC,MAAA,CAAkBuC,IAAI,QAAK;QACxD;MACF;IACF;IACA,OAAOyD,SAAS;EAClB;EAEAM,aAAaA,CAAC/E,MAAc,EAAEiC,MAAe,EAAE;IAC7C,IAAM6B,IAAI,GAAG,IAAI,CAACC,MAAM,CAAC/D,MAAM,CAAC;IAChC,OACE,IAAI,CAACsE,eAAe,CAACtE,MAAM,EAAEiC,MAAM,CAAC,GACpC,IAAI,CAACsC,gBAAgB,CAACvE,MAAM,EAAEiC,MAAM,CAAC,GACrC,IAAI,CAAC+C,QAAQ,CAAClB,IAAI,EAAE7B,MAAM,CAAC,QAAAxD,MAAA,CACtBuB,MAAM,MAAG;EAElB;EAOAqE,UAAUA,CAACrE,MAAc,EAAEiC,MAAe,EAAU;IAClD,IAAMZ,MAAM,GAAG,IAAI,CAACC,OAAO,CAACW,MAAM,CAACf,IAAI,CAAC;IACxC,IAAM+D,MAAM,GAAG,IAAI,CAACC,cAAc,CAAClF,MAAM,EAAEiC,MAAM,CAAC;IAClD,8BAAAxD,MAAA,CAA8B4C,MAAM,CAACL,IAAI,QAAAvC,MAAA,CAAKwG,MAAM;EACtD;EAEAE,iBAAiBA,CAACnF,MAAc,EAAEiC,MAAe,EAAU;IACzD,IAAI4B,QAAgB;IACpB,IAAML,WAAW,GAAG,IAAI,CAACC,eAAe,CAACxB,MAAM,CAAC;IAChD,IAAM6B,IAAI,GAAG,IAAI,CAACC,MAAM,CAAC/D,MAAM,CAAC;IAChC,IAAM6C,MAAM,GAAG,CAAC,kBAAkB,CAAC;IAEnC,IAAMmB,WAAW,GAAG,IAAI,CAACrB,mBAAmB,CAACV,MAAM,EAAE,CACnD,gCAAgC,CACjC,CAAC;IACF,IAAIuB,WAAW,EAAE;MAIfK,QAAQ,GACN5B,MAAM,CAACgB,UAAU,KAAK,OAAO,wBAAAxE,MAAA,CACJ+E,WAAW,sBAAA/E,MAAA,CACnB+E,WAAW,CAAE;MAChCX,MAAM,CAAC9G,IAAI,CAAC8H,QAAQ,CAAC;MACrBA,QAAQ,GAAGhB,MAAM,CAAC7D,IAAI,CAAC,IAAI,CAAC;IAC9B,CAAC,MAAM;MACL,IAAMuD,IAAI,GAAGN,MAAM,CAACsB,SAAS;MAC7B,IAAIhB,IAAI,IAAIA,IAAI,CAAClG,MAAM,GAAG,CAAC,EACzBkG,IAAI,CAAChG,OAAO,CAAE+G,CAAC,IAAKT,MAAM,CAAC9G,IAAI,CAAC,IAAI,CAACiG,gBAAgB,CAAC8B,IAAI,EAAE7B,MAAM,EAAEqB,CAAC,CAAC,CAAC,CAAC;MAC1EO,QAAQ,GACNhB,MAAM,CAACxG,MAAM,GAAG,CAAC,QAAAoC,MAAA,CAAQoE,MAAM,CAAC7D,IAAI,CAAC,IAAI,CAACiF,cAAc,CAAC,IAAK,EAAE;IACpE;IACA,IAAME,MAAM,GACV,IAAI,CAACpE,aAAa,CAACC,MAAM,EAAEgE,WAAW,CAAC,MAAAvF,MAAA,CACpCuB,MAAM,mBAAAvB,MAAA,CAAgBwD,MAAM,CAACjB,IAAI,eAAY;IAClD,IAAMoD,OAAO,GAAG,IAAI,CAACC,UAAU,CAACrE,MAAM,EAAEiC,MAAM,CAAC;IAE/C,OACEkC,MAAM,GACNN,QAAQ,IACPA,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC,8CAAApF,MAAA,CACqB2F,OAAO,YAAS;EAE/D;EAEAgB,eAAeA,CAACpF,MAAc,EAAEiC,MAAe,EAAU;IACvD,IAAM6B,IAAI,GAAG,IAAI,CAACC,MAAM,CAAC/D,MAAM,CAAC;IAEhC,IAAI,CAACqF,MAAM,GAAG,KAAK;IACnB,IAAMC,MAAM,GACV,IAAI,CAACH,iBAAiB,CAACnF,MAAM,EAAEiC,MAAM,CAAC,GACtC,IAAI,CAACsC,gBAAgB,CAACvE,MAAM,EAAEiC,MAAM,CAAC,GACrC,IAAI,CAAC+C,QAAQ,CAAClB,IAAI,EAAE7B,MAAM,CAAC,QAAAxD,MAAA,CACtBuB,MAAM,MAAG;IAChB,IAAI,CAACqF,MAAM,GAAG,MAAM;IACpB,OAAOC,MAAM;EACf;EAEAC,gBAAgBA,CAACvF,MAAc,EAAEiC,MAAe,EAAU;IACxD,IAAIuD,GAAG,GAAG,IAAI,CAAClB,eAAe,CAACtE,MAAM,EAAEiC,MAAM,CAAC,CAACwD,SAAS,EAAE;IAC1DD,GAAG,GAAGA,GAAG,CAACE,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;IACrCF,GAAG,GAAGA,GAAG,CAACG,MAAM,CAAC,CAAC,EAAEH,GAAG,CAACnJ,MAAM,GAAG,CAAC,CAAC;IACnC,UAAAoC,MAAA,CAAU+G,GAAG;EACf;EAEAI,iBAAiBA,CAAC5F,MAAc,EAAEiC,MAAe,EAAE;IACjD,OAAO,IAAI,CAAC0B,uBAAuB,CAAC3D,MAAM,EAAEiC,MAAM,EAAE,IAAI,CAAC;EAC3D;EAEA4D,eAAeA,CAAC7F,MAAc,EAAEiC,MAAe,EAAE;IAC/C,IAAM6B,IAAI,GAAG,IAAI,CAACC,MAAM,CAAC/D,MAAM,CAAC;IAChC,OACE,IAAI,CAAC4F,iBAAiB,CAAC5F,MAAM,EAAEiC,MAAM,CAAC,GACtC,IAAI,CAACsC,gBAAgB,CAACT,IAAI,EAAE7B,MAAM,CAAC,GACnC,IAAI,CAAC6D,UAAU,CAAChC,IAAI,EAAE7B,MAAM,CAAC,QAAAxD,MAAA,CACxBuB,MAAM,MAAG;EAElB;EAEAwB,OAAOA,CAACR,IAAY,EAAU;IAC5B,IAAI,CAAC,IAAA+E,wBAAa,EAAC/E,IAAI,CAAC,EAAE,OAAOA,IAAI;IACrC,WAAAvC,MAAA,CAAWuC,IAAI;EACjB;EAUQI,QAAQA,CAACF,IAAW,EAAE;IAC5BA,IAAI,CAACC,QAAQ,EAAE;IACf,IAAID,IAAI,CAAC8E,UAAU,IAAI,EAAE9E,IAAI,YAAY+E,mBAAQ,CAAC,EAAE;MAClD,OAAO,IAAI,CAACzE,OAAO,KAAA/C,MAAA,CAAKyC,IAAI,CAACF,IAAI,EAAG;IACtC;IACA,OAAO,IAAI,CAACQ,OAAO,CAACN,IAAI,CAACF,IAAI,CAAC;EAChC;EAEAkF,aAAaA,CAAClG,MAAc,EAAEkB,IAAW,EAAE;IACzC,IAAMiF,IAAI,GAAGjF,IAAI,YAAY+E,mBAAQ,GAAG,MAAM,GAAG,WAAW;IAC5D,OACE,IAAI,CAAClG,aAAa,CAACC,MAAM,EAAEkB,IAAI,CAACV,WAAW,CAAC,MAAA/B,MAAA,CACzCuB,MAAM,aAAAvB,MAAA,CAAU0H,IAAI,OAAA1H,MAAA,CAAI,IAAI,CAAC2C,QAAQ,CAACF,IAAI,CAAC,OAAAzC,MAAA,CAAI,IAAI,CAAC2H,QAAQ,OAAI;EAEvE;EAEAlB,cAAcA,CAAC/F,OAAe,EAAE8C,MAAe,EAAE;IAC/C,IAAMoE,OAAiB,GAAGpE,MAAM,CAACiD,cAAc,CAACoB,GAAG,CAChDC,CAAC,OAAA9H,MAAA,CAAQ,IAAI,CAAC2C,QAAQ,CAACmF,CAAC,CAACrF,IAAI,CAAC,CAAE,CAClC;IACD,OAAOmF,OAAO,CAACrH,IAAI,CAAC,KAAK,CAAC;EAC5B;EAEAwH,QAAQA,CAACC,IAAY,EAAE9B,MAAe,EAAE;IACtCA,MAAM,GAAGA,MAAM,IAAI,EAAE;IACrB,IAAI8B,IAAI,CAACC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EACxB,WAAAjI,MAAA,CAAYgI,IAAI,CAACf,OAAO,CAAC,KAAK,EAAE,IAAI,GAAGf,MAAM,CAAC;IAChD,WAAAlG,MAAA,CAAWgI,IAAI;EACjB;EAEAE,QAAQA,CAACxH,OAAe,EAAEoD,IAAW,EAAEoC,MAAe,EAAE;IACtD,IAAI,CAACpC,IAAI,IAAIA,IAAI,CAAClG,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,CAACuK,OAAO;IACnD,IAAMC,IAAc,GAAG,EAAE;IACzB,KAAK,IAAM3J,GAAG,IAAIqF,IAAI,EAAE;MACtB,IAAMuE,QAAQ,GAAG,IAAI,CAACtF,OAAO,CAACtE,GAAG,CAAC;MAClC,IAAIyH,MAAM,EAAE;QACVkC,IAAI,CAAC9K,IAAI,IAAA0C,MAAA,CAAIqI,QAAQ,QAAArI,MAAA,CAAK,IAAI,CAACqG,QAAQ,CAAC5H,GAAG,EAAEyH,MAAM,CAAC,EAAG;MACzD,CAAC,MAAM;QACLkC,IAAI,CAAC9K,IAAI,CAAC+K,QAAQ,CAAC;MACrB;IACF;IACA,WAAArI,MAAA,CAAWoI,IAAI,CAAC7H,IAAI,CAAC,IAAI,CAAC+H,YAAY,CAAC;EACzC;EAeAjC,QAAQA,CAAC9D,IAAY,EAAE2D,MAAe,EAAE;IACtC,IAAMmC,QAAQ,GAAG,IAAI,CAACtF,OAAO,CAACR,IAAI,CAAC;IACnC,IAAI,CAAC2D,MAAM,EAAE,OAAOmC,QAAQ;IAC5B,IAAIA,QAAQ,KAAK9F,IAAI,EAAE,UAAAvC,MAAA,CAAUkG,MAAM,OAAAlG,MAAA,CAAIuC,IAAI;IAC/C,UAAAvC,MAAA,CAAUkG,MAAM,OAAAlG,MAAA,CAAIqI,QAAQ;EAC9B;EAEAE,OAAOA,CAAChH,MAAc,EAAEuC,IAAW,EAAEoC,MAAe,EAAE;IACpDA,MAAM,GAAGA,MAAM,IAAI,EAAE;IACrB,IAAMsC,IAAI,GAAG1E,IAAI,CAAC+D,GAAG,CAAEY,CAAC,IAAK,IAAI,CAACpC,QAAQ,CAACoC,CAAC,EAAEvC,MAAM,CAAC,CAAC;IAEtD,OAAOpC,IAAI,IAAIA,IAAI,CAAClG,MAAM,KAAK,CAAC,QAAAoC,MAAA,CACvBuB,MAAM,EAAAvB,MAAA,CAAGwI,IAAI,CAACjI,IAAI,CAAC,IAAI,CAAC+H,YAAY,CAAC,IAC1C,IAAI,CAACH,OAAO;EAClB;EAGAO,OAAOA,CAACC,OAAe,EAAE7E,IAAY,EAAE;IACrC,IAAI,CAAC6E,OAAO,IAAI7E,IAAI,CAACQ,IAAI,EAAE,KAAK,IAAI,CAAC6D,OAAO,EAAE;MAE5C,OAAO,EAAE;IACX;IACA,UAAAnI,MAAA,CAAU8D,IAAI,EAAA9D,MAAA,CAAG2I,OAAO,GAAG,IAAI,CAACL,YAAY,GAAG,EAAE,EAAAtI,MAAA,CAAG2I,OAAO;EAC7D;EAUAC,QAAQA,CAACrH,MAAc,EAAEiC,MAAe,EAAE;IACxC,IAAMqF,OAAO,GAAG,IAAI,CAAC1C,UAAU,CAAC3C,MAAM,CAAC,GAAG,SAAS,GAAG,EAAE;IAIxD,IAAIqD,MAAM,GAAG,IAAI,CAAC6B,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC;IAGxC7B,MAAM,GAAG,IAAI,CAAC6B,OAAO,CACnB7B,MAAM,EACNrD,MAAM,CAACsF,OAAO,GAAG,IAAI,CAACzC,QAAQ,CAAC7C,MAAM,CAACsF,OAAO,EAAED,OAAO,CAAC,GAAG,IAAI,CAACV,OAAO,CACvE;IACDtB,MAAM,GAAG,IAAI,CAAC6B,OAAO,CACnB7B,MAAM,EACN,IAAI,CAACqB,QAAQ,CAAC3G,MAAM,EAAEiC,MAAM,CAACuF,SAAS,EAAEF,OAAO,CAAC,CACjD;IACD,OAAOhC,MAAM;EACf;EAEAN,QAAQA,CAAChF,MAAc,EAAEiC,MAAe,EAAE;IACxC,IAAMqF,OAAO,GAAG,IAAI,CAAC1C,UAAU,CAAC3C,MAAM,CAAC,GAAG,UAAU,GAAG,EAAE;IACzD,IAAMZ,MAAM,GAAG,IAAI,CAACC,OAAO,CAACW,MAAM,CAACf,IAAI,CAAC;IACxC,IAAM4C,IAAI,GAAG,IAAI,CAACC,MAAM,CAAC/D,MAAM,CAAC;IAChC,IAAMuC,IAAI,GAAG,IAAI,CAAC8E,QAAQ,CAACvD,IAAI,EAAE7B,MAAM,CAAC;IACxC,IAAMgD,MAAM,GAAG,IAAI,CAACC,cAAc,CAAClF,MAAM,EAAEiC,MAAM,CAAC;IAClD,OACE,GAAAxD,MAAA,CAAGuB,MAAM,aAAAvB,MAAA,CAAU,IAAI,CAACgJ,EAAE,CAACxF,MAAM,CAACgB,UAAU,CAACyE,WAAW,EAAE,CAAC,QAAAjJ,MAAA,CACvD4C,MAAM,CAACL,IAAI,QAAAvC,MAAA,CAAKwG,MAAM,OAAI,GAC9B,IAAI,CAACuB,QAAQ,CAACvE,MAAM,CAACiB,QAAQ,EAAEoE,OAAO,CAAC,MAAA7I,MAAA,CACpC8D,IAAI,GAAG,IAAI,GAAGA,IAAI,GAAG,EAAE,MAAG;EAEjC;EAEAuD,UAAUA,CAAC9F,MAAc,EAAEiC,MAAe,EAAE;IAC1C,IAAMqF,OAAO,GAAG,IAAI,CAAC1C,UAAU,CAAC3C,MAAM,CAAC,GAAG,UAAU,GAAG,EAAE;IACzD,IAAMZ,MAAM,GAAG,IAAI,CAACC,OAAO,CAACW,MAAM,CAACf,IAAI,CAAC;IACxC,IAAM4C,IAAI,GAAG9D,MAAM,GAAG,IAAI,CAACwE,SAAS;IACpC,IAAMjC,IAAI,GAAG,IAAI,CAAC8E,QAAQ,CAACvD,IAAI,EAAE7B,MAAM,CAAC;IAExC,UAAAxD,MAAA,CAAUuB,MAAM,aAAAvB,MAAA,CAAU,IAAI,CAACgJ,EAAE,CAAC,YAAY,CAAC,OAAAhJ,MAAA,CAC7C4C,MAAM,CAACL,IAAI,mBAAAvC,MAAA,CACGwD,MAAM,CAACgB,UAAU,CAAC0E,WAAW,EAAE,SAAAlJ,MAAA,CAAM,IAAI,CAAC+H,QAAQ,CAChEvE,MAAM,CAACiB,QAAQ,EACfoE,OAAO,CACR,EAAA7I,MAAA,CAAG8D,IAAI,GAAG,IAAI,GAAGA,IAAI,GAAG,EAAE;EAC7B;EAEAqF,OAAOA,CAAC5H,MAAc,EAAEC,IAAwB,EAAE;IAChD,OAAO,IAAI,CAACF,aAAa,CAACC,MAAM,EAAEC,IAAI,CAAC;EACzC;EAGAX,SAASA,CAAA,EAAG;IACV,IAAMuI,KAAe,GAAG,EAAE;IAC1B,IAAI,CAAC,IAAI,CAACC,GAAG,EAAE,OAAOD,KAAK;IAC3B,IAAME,KAAK,GAAG,IAAI,CAACD,GAAG,CAACC,KAAK;IAC5BvM,MAAM,CAACwM,MAAM,CAACD,KAAK,CAAC,CACjBpM,MAAM,CAAEuF,IAAI,IAAKA,IAAI,CAACC,QAAQ,GAAG,CAAC,IAAI,CAACD,IAAI,CAACS,SAAS,CAAC,CACtDpF,OAAO,CAAE2E,IAAI,IAAK2G,KAAK,CAAC9L,IAAI,CAAC,IAAI,CAACqF,QAAQ,CAACF,IAAI,CAAC,CAAC,CAAC;IACrD,OAAO2G,KAAK;EACd;EAEAvG,OAAOA,CAACJ,IAAW,EAAe;IAChC,KAAK,CAACI,OAAO,CAACJ,IAAI,CAAC;IACnB,IAAM+G,EAAE,GAAG,EAAE;IAEb,IAAMC,QAAwB,GAAGA,CAACC,CAAC,EAAEC,CAAC,SAAA3J,MAAA,CAAS2J,CAAC,MAAG;IACnD,IAAMC,OAAoC,GAAG;MAC3CC,GAAG,EAAE;QAAElG,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE;MAAM,CAAC;MACjCuH,OAAO,EAAE;QAAEnG,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE;MAAU,CAAC;MAEzCwH,IAAI,EAAE;QAAEpG,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE;MAAS,CAAC;MACrCyH,IAAI,EAAE;QAAErG,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE;MAAO,CAAC;MACnC0H,QAAQ,EAAE;QAAEtG,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE;MAAO,CAAC;MACvC2H,MAAM,EAAE;QAAEvG,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE;MAAS,CAAC;MACvC4H,KAAK,EAAE;QAAExG,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE;MAAS,CAAC;MACtC6H,KAAK,EAAE;QAAEzG,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE;MAAS,CAAC;MACtC8H,KAAK,EAAE;QAAE1G,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE;MAAS,CAAC;MACtC+H,OAAO,EAAE;QAAE3G,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE;MAAS,CAAC;MACxCgI,MAAM,EAAE;QAAE5G,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE;MAAS,CAAC;MACvC3F,MAAM,EAAE;QAAE+G,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE;MAAM,CAAC;MACpCiI,QAAQ,EAAE;QAAE7G,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE,UAAU;QAAEkI,KAAK,EAAEhB;MAAS,CAAC;MAC5DiB,MAAM,EAAE;QAAE/G,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE,QAAQ;QAAEkI,KAAK,EAAEhB;MAAS,CAAC;MACxDkB,GAAG,EAAE;QAAEhH,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE,KAAK;QAAEkI,KAAK,EAAEhB;MAAS,CAAC;MAClDmB,GAAG,EAAE;QAAEjH,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE,KAAK;QAAEkI,KAAK,EAAEhB;MAAS,CAAC;MAClDoB,IAAI,EAAE;QAAElH,OAAO,EAAE6F,EAAE;QAAEjH,IAAI,EAAE,MAAM;QAAEkI,KAAK,EAAEA,CAACK,EAAE,EAAEC,EAAO,KAAK;MAAG;IAChE,CAAC;IAED,IAAItI,IAAI,CAACuI,WAAW,EAAE;MAEpB,IAAMnD,GAAG,GAAG,IAAI,CAAChF,OAAO,CAACJ,IAAI,CAACuI,WAAW,CAAC;MAC1C,QAAQvI,IAAI,CAACwI,SAAS;QACpB,KAAK,WAAW;UACd,OAAO;YACLtH,OAAO,EAAE,IAAI;YACbpB,IAAI,KAAAvC,MAAA,CAAK6H,GAAG,CAACtF,IAAI;UACnB,CAAC;QACH,KAAK,UAAU;UACb,IAAI,CAAC5C,QAAQ,CAACuL,GAAG,CAAC,aAAa,CAAC;UAChC,OAAO;YACLvH,OAAO,EAAE,EAAE;YACXpB,IAAI,iBAAAvC,MAAA,CAAiB6H,GAAG,CAACtF,IAAI;UAC/B,CAAC;QACH,KAAK,gBAAgB;UACnB,IAAI,CAAC5C,QAAQ,CAACuL,GAAG,CAAC,YAAY,CAAC;UAC/B,OAAO;YACLvH,OAAO,EAAE,EAAE;YACXpB,IAAI,gBAAAvC,MAAA,CAAgB6H,GAAG,CAACtF,IAAI,MAAG;YAC/BkI,KAAK,EAAEA,CAACf,CAAC,EAAEC,CAAC,uBAAA3J,MAAA,CAAuB6H,GAAG,CAACtF,IAAI,SAAAvC,MAAA,CAAM2J,CAAC;UACpD,CAAC;QACH,KAAK,UAAU;UACb,OAAO;YACLhG,OAAO,EAAE,EAAE;YACXpB,IAAI,EAAE,IAAI,CAACI,QAAQ,CAACF,IAAI,CAAC;YACzBgI,KAAK,EAAEA,CAACf,CAAC,EAAEC,CAAC,QAAA3J,MAAA,CAAQyC,IAAI,CAACF,IAAI,OAAAvC,MAAA,CAAI2J,CAAC;UACpC,CAAC;MAAA;MAEL,MAAM,IAAIwB,KAAK,8BAAAnL,MAAA,CAA8BoL,IAAI,CAACC,SAAS,CAAC5I,IAAI,CAAC,EAAG;IACtE;IAEA,IAAIA,IAAI,CAACF,IAAI,EAAE;MACb,IAAMK,MAAM,GAAGgH,OAAO,CAACnH,IAAI,CAACF,IAAI,CAAC;MACjC,IAAIK,MAAM,IAAIA,MAAM,CAACL,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC5C,QAAQ,CAACuL,GAAG,CAACtI,MAAM,CAACL,IAAI,CAAC;MACnE,OAAOK,MAAM,IAAI;QAAEe,OAAO,EAAE,EAAE;QAAEpB,IAAI,EAAE,IAAI,CAACI,QAAQ,CAACF,IAAI;MAAE,CAAC;IAC7D,CAAC,MAAM;MACL,MAAM,IAAI0I,KAAK,CAAC,gCAAgC,CAAC;IACnD;EACF;AACF;AAACG,OAAA,CAAAhM,aAAA,GAAAA,aAAA"}
1
+ {"version":3,"file":"typescript.gen.js","names":["EnumType","describeParam","isSpecialName","strBody","CodeGen","commentBlock","TypescriptGen","constructor","arguments","_defineProperty","Set","reset","rtlNeeds","sdkFileName","baseFileName","_this$versions","fileName","concat","versions","spec","key","rtlImports","rtl","Array","from","join","rtlImportStatement","methodsPrologue","_indent","warnEditing","packageName","typeNames","apiVersion","functionsPrologue","apiRef","interfacesPrologue","streamsPrologue","methodsEpilogue","modelsPrologue","modelsEpilogue","commentHeader","indent","text","commentStr","length","undefined","noComment","commentPrefix","includes","beginRegion","description","endRegion","declareProperty","property","optional","required","nullify","nullable","name","type","refCount","typeName","mapped","typeMap","describeProperty","reserve","impartial","param","intrinsic","location","paramComment","desc","_objectSpread","declareParameter","method","writeableType","pOpt","default","makeTheCall","inputs","args","assignParams","fun","mono","methodHeaderComment","_method$description","params","lines","trim","push","resultType","httpMethod","endpoint","deprecated","responseIsBoth","responseIsBinary","forEach","p","allParams","requestType","requestTypeName","paramMappedType","methodHeaderDeclaration","streamer","fragment","bump","bumper","headComment","paramDelimiter","callback","header","returns","returnType","methodSignature","encodePathParams","indentStr","encodings","pathParams","prefix","useRequest","doEncode","accessor","declareMethod","httpCall","errors","errorResponses","functionSignature","declareFunction","itself","result","declareInterface","sig","trimRight","replace","substr","streamerSignature","declareStreamer","streamCall","customType","typeSignature","meta","typeOpen","results","map","r","httpPath","path","indexOf","argGroup","nullStr","hash","arg","reserved","argDelimiter","argList","bits","a","argFill","current","httpArgs","request","bodyArg","queryArgs","it","toLowerCase","toUpperCase","summary","names","api","types","Object","values","filter","mt","asString","_","v","tsTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","asVal","string","uri","url","void","_i","_v","elementType","className","add","Error","JSON","stringify"],"sources":["../../src/typescript.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 {\n Arg,\n ArgValues,\n IMethod,\n IParameter,\n IProperty,\n IType,\n} from './sdkModels';\nimport { EnumType, describeParam, isSpecialName, strBody } from './sdkModels';\nimport type { CodeAssignment, IMappedType } from './codeGen';\nimport { CodeGen, commentBlock } from './codeGen';\n\n/**\n * TypeScript code generator\n */\nexport class TypescriptGen extends CodeGen {\n /**\n * special case for TypeScript output path due to mono repository\n */\n codePath = './packages/';\n /**\n * special case for TypeScript output path due to mono repository\n */\n useFunctions = true;\n useInterfaces = true;\n packagePath = 'sdk/src';\n itself = 'this';\n fileExtension = '.ts';\n commentStr = '// ';\n nullStr = 'null';\n transport = 'transport';\n\n argDelimiter = ', ';\n paramDelimiter = ',\\n';\n propDelimiter = '\\n';\n\n indentStr = ' ';\n endTypeStr = '\\n}';\n willItStream = true;\n useNamedParameters = false;\n useNamedArguments = false;\n /** Track special imports of sdk-rtl */\n rtlNeeds = new Set<string>();\n\n reset() {\n this.rtlNeeds = new Set<string>();\n }\n\n sdkFileName(baseFileName: string) {\n return this.fileName(`${this.versions?.spec.key}/${baseFileName}`);\n }\n\n /** lists all special sdk-rtl import types encountered */\n rtlImports() {\n let rtl = Array.from(this.rtlNeeds).join(', ');\n if (rtl) {\n rtl += ', ';\n }\n return rtl;\n }\n\n /** creates a full @looker/sdk-rtl import statement if one is required */\n rtlImportStatement() {\n const rtl = this.rtlImports();\n return rtl ? `\\nimport type { ${rtl} } from '@looker/sdk-rtl'\\n` : '';\n }\n\n methodsPrologue(_indent: string) {\n return `\nimport type { ${this.rtlImports()}IAuthSession, ITransportSettings, SDKResponse } from '@looker/sdk-rtl'\nimport { APIMethods, encodeParam } from '@looker/sdk-rtl'\n/**\n * ${this.warnEditing()}\n *\n */\nimport { sdkVersion } from '../constants'\nimport type { I${this.packageName} } from './methodsInterface'\nimport type { ${this.typeNames().join(', ')} } from './models'\n\nexport class ${this.packageName} extends APIMethods implements I${\n this.packageName\n } {\n static readonly ApiVersion = '${this.apiVersion}'\n constructor(authSession: IAuthSession) {\n super(authSession, sdkVersion)\n this.apiVersion = ${this.packageName}.ApiVersion\n this.apiPath =\n authSession.settings.base_url === ''\n ? ''\n : authSession.settings.base_url + '/api/' + this.apiVersion\n }\n\n`;\n }\n\n functionsPrologue(_indent: string) {\n return `\nimport type { ${this.rtlImports()}IAPIMethods, IAuthSession, ITransportSettings, SDKResponse } from '@looker/sdk-rtl'\nimport { encodeParam, functionalSdk } from '@looker/sdk-rtl'\n\n/**\n * ${this.warnEditing()}\n *\n */\n\nimport { sdkVersion } from '../constants'\nimport type { ${this.typeNames().join(', ')} } from './models'\n\n/**\n * Creates a \"functional sdk\" that knows the API and Looker release version\n * @param authSession authentication session\n */\nexport const functionalSdk${this.apiRef} = (\n authSession: IAuthSession,\n) => {\n return functionalSdk(authSession, '${this.apiVersion}', sdkVersion)\n}\n\n`;\n }\n\n interfacesPrologue(_indent: string) {\n return `\nimport type { ${this.rtlImports()} IAPIMethods, ITransportSettings, SDKResponse } from '@looker/sdk-rtl'\n/**\n * ${this.warnEditing()}\n *\n */\nimport type { ${this.typeNames().join(', ')} } from './models'\n\nexport interface I${this.packageName} extends IAPIMethods {\n\n`;\n }\n\n streamsPrologue(_indent: string): string {\n return `\nimport type { Readable } from 'readable-stream'\nimport type { ${this.rtlImports()}IAuthSession, ITransportSettings } from '@looker/sdk-rtl'\nimport { APIMethods, encodeParam } from '@looker/sdk-rtl'\n\n/**\n * ${this.warnEditing()}\n *\n */\nimport { sdkVersion } from '../constants'\nimport type { ${this.typeNames().join(', ')} } from './models'\n\nexport class ${this.packageName}Stream extends APIMethods {\n static readonly ApiVersion = '${this.apiVersion}'\n constructor(authSession: IAuthSession) {\n super(authSession, sdkVersion)\n this.apiVersion = ${this.packageName}Stream.ApiVersion\n this.apiPath =\n authSession.settings.base_url === ''\n ? ''\n : authSession.settings.base_url + '/api/' + this.apiVersion\n }\n`;\n }\n\n methodsEpilogue(_indent: string) {\n return '\\n}';\n }\n\n modelsPrologue(_indent: string) {\n return `${this.rtlImportStatement()}\n/*\n * ${this.warnEditing()}\n */\n\n`;\n }\n\n modelsEpilogue(_indent: string) {\n return '';\n }\n\n commentHeader(indent: string, text: string | undefined, commentStr = ' * ') {\n if (this.noComment || !text) return '';\n const commentPrefix =\n text.includes(' License') && text.includes('Copyright (c)')\n ? '/*'\n : '/**';\n if (commentStr === ' ') {\n return `${indent}${commentPrefix}\\n\\n${commentBlock(\n text,\n indent,\n commentStr\n )}\\n${indent} */\\n`;\n }\n return `${indent}${commentPrefix}\\n${commentBlock(\n text,\n indent,\n commentStr\n )}\\n${indent} */\\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 declareProperty(indent: string, property: IProperty) {\n const optional = !property.required ? '?' : '';\n const nullify = property.nullable ? ' | null' : '';\n if (property.name === strBody) {\n // TODO refactor this hack to track context when the body parameter is created for the request type\n property.type.refCount++;\n return (\n this.commentHeader(\n indent,\n property.description ||\n 'body parameter for dynamically created request type'\n ) +\n `${indent}${property.name}${optional}: ${this.typeName(\n property.type\n )}${nullify}`\n );\n }\n const mapped = this.typeMap(property.type);\n return (\n this.commentHeader(indent, this.describeProperty(property)) +\n `${indent}${this.reserve(property.name)}${optional}: ${\n mapped.name\n }${nullify}`\n );\n }\n\n /**\n * Detect need for Partial<T> vs T for a parameter type\n * @param param to cast (or not)\n * @param mapped type to cast\n */\n impartial(param: IParameter, mapped: IMappedType) {\n if (param.type.intrinsic || param.location !== strBody) return mapped.name;\n return `Partial<${mapped.name}>`;\n }\n\n paramComment(param: IParameter, mapped: IMappedType) {\n // Don't include mapped type name for Typescript param comments in headers\n let desc = param.description || param.type.description;\n if (!desc) {\n desc = this.impartial(param, mapped);\n }\n\n return `@param ${param.name} ${describeParam({\n ...param,\n ...{ description: desc },\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 mapped.name = this.impartial(param, mapped);\n if (!param.required) {\n pOpt = mapped.default ? '' : '?';\n }\n return (\n `${indent}${this.reserve(param.name)}${pOpt}: ${mapped.name}` +\n (param.required ? '' : mapped.default ? ` = ${mapped.default}` : '')\n );\n }\n\n makeTheCall(method: IMethod, inputs: ArgValues): string {\n const args = this.assignParams(method, inputs);\n const fun = `// functional SDK syntax is recommended for minimizing browser payloads\nlet response = await sdk.ok(${method.name}(sdk${args ? ',' : ''}`;\n const mono = `// monolithic SDK syntax can also be used for Node apps\nlet response = await sdk.ok(sdk.${method.name}(`;\n return `${fun}${args}))\\n${mono}${args}))`;\n }\n\n methodHeaderComment(method: IMethod, params: string[] = []) {\n if (this.noComment) return '';\n const lines: string[] = [];\n\n const desc = method.description?.trim();\n if (desc) {\n lines.push(desc);\n lines.push('');\n }\n\n const resultType = this.typeMap(method.type).name;\n lines.push(`${method.httpMethod} ${method.endpoint} -> ${resultType}`);\n lines.push('');\n\n if (method.deprecated) {\n lines.push('@deprecated');\n lines.push('');\n }\n\n if (method.responseIsBoth()) {\n lines.push('@remarks');\n lines.push('**NOTE**: Binary content may be returned by this function.');\n lines.push('');\n } else if (method.responseIsBinary()) {\n lines.push('@remarks');\n lines.push('**NOTE**: Binary content is returned by this function.');\n lines.push('');\n }\n\n params.forEach((p) => lines.push(`@param ${p}`));\n\n const args = method.allParams;\n if (args.length) {\n let requestType = this.requestTypeName(method);\n\n if (requestType) {\n requestType =\n method.httpMethod === 'PATCH'\n ? `Partial<I${requestType}>`\n : `I${requestType}`;\n lines.push(\n `@param request composed interface \"${requestType}\" for complex method parameters`\n );\n } else {\n args.forEach((p) =>\n lines.push(this.paramComment(p, this.paramMappedType(p, method)))\n );\n }\n }\n lines.push('@param options one-time API call overrides');\n lines.push('');\n\n return lines.join('\\n');\n }\n\n methodHeaderDeclaration(\n indent: string,\n method: IMethod,\n streamer = false,\n params: string[] = []\n ) {\n const mapped = this.typeMap(method.type);\n let fragment: string;\n const requestType = this.requestTypeName(method);\n const bump = this.bumper(indent);\n const headComment = streamer\n ? this.methodHeaderComment(method, ['callback streaming output function'])\n : this.methodHeaderComment(method, params);\n if (requestType) {\n // use the request type that will be generated in models.ts\n // No longer using Partial<T> by default here because required and optional are supposed to be accurate\n // However, for update methods (iow, patch) Partial<T> is still necessary since only the delta gets set\n fragment =\n method.httpMethod === 'PATCH'\n ? `request: Partial<I${requestType}>`\n : `request: I${requestType}`;\n params.push(fragment);\n fragment = params.join(', ');\n } else {\n const args = method.allParams; // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) =>\n params.push(this.declareParameter(bump, method, p))\n );\n fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : '';\n }\n const callback = `callback: (readable: Readable) => Promise<${mapped.name}>,`;\n const header =\n this.commentHeader(indent, headComment) +\n `${indent}async ${method.name}(` +\n (streamer ? `\\n${bump}${callback}` : '');\n const returns = streamer ? '' : `: ${this.returnType(indent, method)}`;\n\n return (\n header +\n fragment +\n (fragment ? ', ' : '') +\n `options?: Partial<ITransportSettings>)${returns} {\\n`\n );\n }\n\n methodSignature(indent: string, method: IMethod) {\n return this.methodHeaderDeclaration(indent, method, false);\n }\n\n encodePathParams(indent: string, method: IMethod) {\n const bump = indent + this.indentStr;\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 encodings += `${bump}${name} = encodeParam(${name})\\n`;\n }\n }\n }\n return encodings;\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent);\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(indent, method) +\n this.httpCall(bump, method) +\n `\\n${indent}}`\n );\n }\n\n /**\n * Return type declaration for the method\n * @param indent\n * @param method\n */\n returnType(indent: string, method: IMethod): string {\n const mapped = this.typeMap(method.type);\n const errors = this.errorResponses(indent, method);\n return `Promise<SDKResponse<${mapped.name}, ${errors}>>`;\n }\n\n functionSignature(indent: string, method: IMethod): string {\n let fragment: string;\n const requestType = this.requestTypeName(method);\n const bump = this.bumper(indent);\n const params = ['sdk: IAPIMethods'];\n\n const headComment = this.methodHeaderComment(method, [\n 'sdk IAPIMethods implementation',\n ]);\n if (requestType) {\n // use the request type that will be generated in models.ts\n // No longer using Partial<T> by default here because required and optional are supposed to be accurate\n // However, for update methods (iow, patch) Partial<T> is still necessary since only the delta gets set\n fragment =\n method.httpMethod === 'PATCH'\n ? `request: Partial<I${requestType}>`\n : `request: I${requestType}`;\n params.push(fragment);\n fragment = params.join(', ');\n } else {\n const args = method.allParams; // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) =>\n params.push(this.declareParameter(bump, method, p))\n );\n fragment =\n params.length > 0 ? `\\n${params.join(this.paramDelimiter)}` : '';\n }\n const header =\n this.commentHeader(indent, headComment) +\n `${indent}export const ${method.name} = async (`;\n const returns = this.returnType(indent, method);\n\n return (\n header +\n fragment +\n (fragment ? ', ' : '') +\n `options?: Partial<ITransportSettings>): ${returns} => {\\n`\n );\n }\n\n declareFunction(indent: string, method: IMethod): string {\n const bump = this.bumper(indent);\n // horribly hacky tweak to httpCall\n this.itself = 'sdk';\n const result =\n this.functionSignature(indent, method) +\n this.encodePathParams(indent, method) +\n this.httpCall(bump, method) +\n `\\n${indent}}`;\n this.itself = 'this';\n return result;\n }\n\n declareInterface(indent: string, method: IMethod): string {\n let sig = this.methodSignature(indent, method).trimRight();\n sig = sig.replace(/^\\s*async /gm, '');\n sig = sig.substr(0, sig.length - 2);\n return `${sig}\\n`;\n }\n\n streamerSignature(indent: string, method: IMethod) {\n return this.methodHeaderDeclaration(indent, method, true);\n }\n\n declareStreamer(indent: string, method: IMethod) {\n const bump = this.bumper(indent);\n return (\n this.streamerSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.streamCall(bump, method) +\n `\\n${indent}}`\n );\n }\n\n reserve(name: string): string {\n if (!isSpecialName(name)) return name;\n return `'${name}'`;\n }\n\n /**\n * Get the language's type name for generation\n *\n * Also refcounts the type\n *\n * @param type to name\n * @private\n */\n private typeName(type: IType) {\n type.refCount++;\n if (type.customType && !(type instanceof EnumType)) {\n return this.reserve(`I${type.name}`);\n }\n return this.reserve(type.name);\n }\n\n typeSignature(indent: string, type: IType) {\n const meta = type instanceof EnumType ? 'enum' : 'interface';\n return (\n this.commentHeader(indent, type.description) +\n `${indent}export ${meta} ${this.typeName(type)} ${this.typeOpen}\\n`\n );\n }\n\n errorResponses(_indent: string, method: IMethod) {\n const results: string[] = method.errorResponses.map(\n (r) => `${this.typeName(r.type)}`\n );\n return results.join(' | ');\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || '';\n if (path.indexOf('{') >= 0)\n return `\\`${path.replace(/{/gi, '${' + prefix)}\\``;\n return `'${path}'`;\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);\n }\n }\n return `{${hash.join(this.argDelimiter)}}`;\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(name);\n if (!prefix) return reserved;\n if (reserved === name) return `${prefix}.${name}`;\n return `${prefix}[${reserved}]`;\n }\n\n argList(indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || '';\n const bits = args.map((a) => this.accessor(a, prefix));\n\n return args && args.length !== 0\n ? `\\n${indent}${bits.join(this.argDelimiter)}`\n : this.nullStr;\n }\n\n // this is a builder function to produce arguments with optional null place holders but no extra required optional arguments\n argFill(current: string, args: string) {\n if (!current && args.trim() === this.nullStr) {\n // Don't append trailing optional arguments if none have been set yet\n return '';\n }\n return `${args}${current ? this.argDelimiter : ''}${current}`;\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 httpCall(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request.' : '';\n const mapped = this.typeMap(method.type);\n const bump = this.bumper(indent);\n const args = this.httpArgs(bump, method);\n const errors = this.errorResponses(indent, method);\n return (\n `${indent}return ${this.it(method.httpMethod.toLowerCase())}` +\n `<${mapped.name}, ${errors}>(` +\n this.httpPath(method.endpoint, request) +\n `${args ? ', ' + args : ''})`\n );\n }\n\n streamCall(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 return `${indent}return ${this.it('authStream')}<${\n mapped.name\n }>(callback, '${method.httpMethod.toUpperCase()}', ${this.httpPath(\n method.endpoint,\n request\n )}${args ? ', ' + args : ''})`;\n }\n\n summary(indent: string, text: string | undefined) {\n return this.commentHeader(indent, text);\n }\n\n // TODO avoid duplicate code\n typeNames() {\n const names: string[] = [];\n if (!this.api) return names;\n const types = this.api.types;\n Object.values(types)\n .filter((type) => type.refCount > 0 && !type.intrinsic)\n .forEach((type) => names.push(this.typeName(type)));\n return names;\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type);\n const mt = '';\n\n const asString: CodeAssignment = (_, v) => `'${v}'`;\n const tsTypes: Record<string, IMappedType> = {\n any: { default: mt, name: 'any' },\n boolean: { default: mt, name: 'boolean' },\n // TODO can we use blob for binary somehow? https://developer.mozilla.org/en-US/docs/Web/API/Blob\n byte: { default: mt, name: 'binary' },\n date: { default: mt, name: 'Date' },\n datetime: { default: mt, name: 'Date' },\n double: { default: mt, name: 'number' },\n float: { default: mt, name: 'number' },\n int32: { default: mt, name: 'number' },\n int64: { default: mt, name: 'number' },\n integer: { default: mt, name: 'number' },\n number: { default: mt, name: 'number' },\n object: { default: mt, name: 'any' },\n password: { default: mt, name: 'Password', asVal: asString },\n string: { default: mt, name: 'string', asVal: asString },\n uri: { default: mt, name: 'Url', asVal: asString },\n url: { default: mt, name: 'Url', asVal: asString },\n void: { default: mt, name: 'void', asVal: (_i, _v: any) => '' },\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 {\n default: '[]',\n name: `${map.name}[]`,\n };\n case 'HashType':\n this.rtlNeeds.add('IDictionary');\n return {\n default: '',\n name: `IDictionary<${map.name}>`,\n };\n case 'DelimArrayType':\n this.rtlNeeds.add('DelimArray');\n return {\n default: '',\n name: `DelimArray<${map.name}>`,\n asVal: (_, v) => `new DelimArray<${map.name}>([${v}])`,\n };\n case 'EnumType':\n return {\n default: '',\n name: this.typeName(type),\n asVal: (_, v) => `${type.name}.${v}`,\n };\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`);\n }\n\n if (type.name) {\n const mapped = tsTypes[type.name];\n if (mapped && mapped.name === 'Url') this.rtlNeeds.add(mapped.name);\n return mapped || { default: '', name: this.typeName(type) }; // No null default for complex types\n } else {\n throw new Error('Cannot output a nameless type.');\n }\n }\n}\n"],"mappings":"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"}
@@ -11,24 +11,24 @@ export interface IExampleLink {
11
11
  tooltip: string;
12
12
  lineNumber: string;
13
13
  }
14
- export declare type SDKCalls = ISDKCall[];
14
+ export type SDKCalls = ISDKCall[];
15
15
  export interface ISummary {
16
16
  sourceFile: string;
17
17
  summary: string;
18
18
  }
19
- export declare type Summaries = KeyedCollection<ISummary>;
19
+ export type Summaries = KeyedCollection<ISummary>;
20
20
  export interface IFileCall {
21
21
  sourceFile: string;
22
22
  line: number;
23
23
  column?: number;
24
24
  }
25
- export declare type FileCalls = IFileCall[];
26
- export declare type LanguageCalls = KeyedCollection<FileCalls>;
25
+ export type FileCalls = IFileCall[];
26
+ export type LanguageCalls = KeyedCollection<FileCalls>;
27
27
  export interface INugget {
28
28
  operationId: string;
29
29
  calls: LanguageCalls;
30
30
  }
31
- export declare type Nuggets = KeyedCollection<INugget>;
31
+ export type Nuggets = KeyedCollection<INugget>;
32
32
  export interface IMine {
33
33
  commitHash: string;
34
34
  remoteOrigin: string;
@@ -37,7 +37,7 @@ export interface IExampleMine extends IMine {
37
37
  summaries: Summaries;
38
38
  nuggets: Nuggets;
39
39
  }
40
- export declare type SourceLink = (remote: string, hash: string, fileName: string, line: number) => string;
40
+ export type SourceLink = (remote: string, hash: string, fileName: string, line: number) => string;
41
41
  export declare const permaLink: SourceLink;
42
42
  export declare const codeSearchLink: SourceLink;
43
43
  export declare const ideLink: (parentPath: string, fileName: string, line: number) => string;
@@ -30,7 +30,7 @@ var exampleLink = (lode, call) => {
30
30
  };
31
31
  };
32
32
  exports.exampleLink = exampleLink;
33
- var extensionToLanguage = {
33
+ var extensionToLanguage = exports.extensionToLanguage = {
34
34
  '.py': 'Python',
35
35
  '.ts': 'TypeScript',
36
36
  '.tsx': 'TypeScript',
@@ -43,7 +43,6 @@ var extensionToLanguage = {
43
43
  '.md': 'Markdown',
44
44
  '.java': 'Java'
45
45
  };
46
- exports.extensionToLanguage = extensionToLanguage;
47
46
  var getLanguageExtensions = language => {
48
47
  switch (language.toLowerCase()) {
49
48
  case 'ts':
@@ -1 +1 @@
1
- {"version":3,"file":"exampleInfo.js","names":["permaLink","remote","hash","fileName","line","concat","exports","codeSearchLink","ideLink","parentPath","vscode","summarize","lode","call","sourceFile","summaries","summary","exampleLink","link","remoteOrigin","commitHash","permalink","description","tooltip","lineNumber","toString","extensionToLanguage","getLanguageExtensions","language","toLowerCase","findExampleLanguages","methodName","all","nuggets","result","Set","keys","Object","forEach","key","calls","add","Array","from","findExamples","operationId","exts","links","length","ext","push","sort","a","b","localeCompare"],"sources":["../src/exampleInfo.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 { KeyedCollection } from './sdkModels'\n\nexport interface ISDKCall {\n /** SDK variable name for the call found */\n sdk: string\n\n /** Name of the method/operationId */\n operationId: string\n\n /** Source code line number */\n line: number\n\n /** Source code column number where method name was found */\n column: number\n}\n\nexport interface IExampleLink {\n /** Either summary from .md documentation or the name of the source file */\n description: string\n /** permalink to file and line number */\n permalink: string\n /** text to show on hover */\n tooltip: string\n /** line number text */\n lineNumber: string\n}\n\nexport type SDKCalls = ISDKCall[]\n\nexport interface ISummary {\n /** relative file name */\n sourceFile: string\n /** summary extracted from md, rst, or other doc file */\n summary: string\n}\n\nexport type Summaries = KeyedCollection<ISummary>\n\nexport interface IFileCall {\n /** relative file name */\n sourceFile: string\n /** line number for source code call */\n line: number\n /** Optional column number for source code call. Maybe we don't need this datum */\n column?: number\n}\n\n/**\n { \"me\": {\n \".ts\": {\n [\n {\n \"hash\": \"TODO\",\n \"sourceFile\": \"foo.ts\",\n \"line\": 1,\n \"column\": 5,\n }\n ]\n }\n }\n}\n */\n\nexport type FileCalls = IFileCall[]\n\nexport type LanguageCalls = KeyedCollection<FileCalls>\n\nexport interface INugget {\n operationId: string\n calls: LanguageCalls\n}\n\nexport type Nuggets = KeyedCollection<INugget>\n\nexport interface IMine {\n commitHash: string\n remoteOrigin: string\n}\n\n/** All mined example data */\nexport interface IExampleMine extends IMine {\n summaries: Summaries\n nuggets: Nuggets\n}\n\n/** function type for formatting source code links */\nexport type SourceLink = (\n remote: string,\n hash: string,\n fileName: string,\n line: number\n) => string\n\n/**\n * Create a permalink for a github file with line number\n * @param remote https url for repository\n * @param hash commit hash\n * @param fileName name of file\n * @param line line number in file\n */\nexport const permaLink: SourceLink = (\n // https://github.com/looker-open-source/sdk-codegen/blob/bfca52d2c8ba85018f76548158fd1dd90aa1f64a/examples/typescript/customConfigReader.ts#L53\n remote: string,\n hash: string,\n fileName: string,\n line: number\n) => `${remote}/blob/${hash}/${fileName}#L${line}`\n\n/**\n * Create a permalink for a code search with commit hash and line number\n * @param remote https url for repository\n * @param hash commit hash\n * @param fileName name of file\n * @param line line number in file\n */\nexport const codeSearchLink: SourceLink = (\n remote: string,\n hash: string,\n fileName: string,\n line: number\n) => `${remote}/${fileName}?l=${line}&rcl=${hash}`\n\n/**\n * Create an IDE file link with line number\n * @param parentPath to fully qualify the source file\n * @param fileName full name of file\n * @param line line number in file\n */\nexport const ideLink = (\n // https://plugins.jetbrains.com/plugin/6027-remote-call\n // https://github.com/microsoft/vscode/issues/4883#issuecomment-270141535\n // pattern:\n parentPath: string,\n fileName: string,\n line: number\n) => {\n // const idea = 'http//localhost:8091'\n const vscode = 'vscode://'\n\n return `${vscode}${parentPath}/${fileName}:L:${line}`\n}\n\n/**\n * Gets the summary for an example file, or defaults to the file and line number\n * @param lode all mined example data\n * @param call specific call to summarize\n */\nexport const summarize = (lode: IExampleMine, call: IFileCall): string => {\n if (call.sourceFile in lode.summaries) {\n return lode.summaries[call.sourceFile].summary\n }\n // Default to file name if no summary is found\n return call.sourceFile\n}\n\n/**\n * Provides permalink and description for an example file call\n * @param lode all mined example data\n * @param call specific all to link\n */\nexport const exampleLink = (\n lode: IExampleMine,\n call: IFileCall\n): IExampleLink => {\n const link = permaLink(\n lode.remoteOrigin,\n lode.commitHash,\n call.sourceFile,\n call.line\n )\n\n return {\n permalink: link,\n description: summarize(lode, call),\n tooltip: `${call.sourceFile} line ${call.line}`,\n lineNumber: call.line.toString(),\n }\n}\n\n// TODO create one data set for extensionToLanguage and getLanguageExtensions\n/** map file extension to language name */\nexport const extensionToLanguage = {\n '.py': 'Python',\n '.ts': 'TypeScript',\n '.tsx': 'TypeScript',\n '.cs': 'C#',\n '.kt': 'Kotlin',\n '.swift': 'Swift',\n '.rb': 'Ruby',\n '.dart': 'Dart',\n '.go': 'Go',\n '.md': 'Markdown',\n '.java': 'Java',\n}\n\n/**\n * Return the recognized file extensions for the requested language\n * @param language\n */\nexport const getLanguageExtensions = (language: string): string[] => {\n switch (language.toLowerCase()) {\n case 'ts':\n case 'typescript':\n return ['.ts', 'tsx']\n case 'csharp':\n case 'c#':\n return ['.cs']\n case 'ruby':\n return ['.rb']\n case 'python':\n return ['.py']\n case 'swift':\n return ['.swift']\n case 'kotlin':\n return ['.kt']\n case 'dart':\n return ['.dart']\n case 'go':\n return ['.go']\n case 'java':\n return ['.java']\n default:\n return []\n }\n}\n\nexport const findExampleLanguages = (\n lode: IExampleMine,\n methodName: string\n) => {\n const all = lode.nuggets[methodName]\n if (!all) return []\n const result = new Set<string>()\n const keys = Object.keys(extensionToLanguage)\n keys.forEach((key) => {\n if (all.calls[key]) result.add(extensionToLanguage[key])\n })\n return Array.from(result)\n}\n\n/**\n * Searches for examples containing operationId usages in the given language\n * @param lode All example data\n * @param language Language example should be in\n * @param operationId Method's operationId to search for\n */\nexport const findExamples = (\n lode: IExampleMine,\n language: string,\n operationId: string\n): IExampleLink[] => {\n const all = lode.nuggets[operationId]\n const exts = getLanguageExtensions(language)\n const links: IExampleLink[] = []\n\n if (all && exts.length > 0) {\n exts.forEach((ext) => {\n const calls = all.calls[ext]\n if (calls) {\n calls.forEach((call: IFileCall) => {\n const link = exampleLink(lode, call)\n if (link) {\n links.push(exampleLink(lode, call))\n }\n })\n }\n })\n }\n return links.sort((a, b) => a.permalink.localeCompare(b.permalink))\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"exampleInfo.js","names":["permaLink","remote","hash","fileName","line","concat","exports","codeSearchLink","ideLink","parentPath","vscode","summarize","lode","call","sourceFile","summaries","summary","exampleLink","link","remoteOrigin","commitHash","permalink","description","tooltip","lineNumber","toString","extensionToLanguage","getLanguageExtensions","language","toLowerCase","findExampleLanguages","methodName","all","nuggets","result","Set","keys","Object","forEach","key","calls","add","Array","from","findExamples","operationId","exts","links","length","ext","push","sort","a","b","localeCompare"],"sources":["../src/exampleInfo.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 { KeyedCollection } from './sdkModels';\n\nexport interface ISDKCall {\n /** SDK variable name for the call found */\n sdk: string;\n\n /** Name of the method/operationId */\n operationId: string;\n\n /** Source code line number */\n line: number;\n\n /** Source code column number where method name was found */\n column: number;\n}\n\nexport interface IExampleLink {\n /** Either summary from .md documentation or the name of the source file */\n description: string;\n /** permalink to file and line number */\n permalink: string;\n /** text to show on hover */\n tooltip: string;\n /** line number text */\n lineNumber: string;\n}\n\nexport type SDKCalls = ISDKCall[];\n\nexport interface ISummary {\n /** relative file name */\n sourceFile: string;\n /** summary extracted from md, rst, or other doc file */\n summary: string;\n}\n\nexport type Summaries = KeyedCollection<ISummary>;\n\nexport interface IFileCall {\n /** relative file name */\n sourceFile: string;\n /** line number for source code call */\n line: number;\n /** Optional column number for source code call. Maybe we don't need this datum */\n column?: number;\n}\n\n/**\n { \"me\": {\n \".ts\": {\n [\n {\n \"hash\": \"TODO\",\n \"sourceFile\": \"foo.ts\",\n \"line\": 1,\n \"column\": 5,\n }\n ]\n }\n }\n}\n */\n\nexport type FileCalls = IFileCall[];\n\nexport type LanguageCalls = KeyedCollection<FileCalls>;\n\nexport interface INugget {\n operationId: string;\n calls: LanguageCalls;\n}\n\nexport type Nuggets = KeyedCollection<INugget>;\n\nexport interface IMine {\n commitHash: string;\n remoteOrigin: string;\n}\n\n/** All mined example data */\nexport interface IExampleMine extends IMine {\n summaries: Summaries;\n nuggets: Nuggets;\n}\n\n/** function type for formatting source code links */\nexport type SourceLink = (\n remote: string,\n hash: string,\n fileName: string,\n line: number\n) => string;\n\n/**\n * Create a permalink for a github file with line number\n * @param remote https url for repository\n * @param hash commit hash\n * @param fileName name of file\n * @param line line number in file\n */\nexport const permaLink: SourceLink = (\n // https://github.com/looker-open-source/sdk-codegen/blob/bfca52d2c8ba85018f76548158fd1dd90aa1f64a/examples/typescript/customConfigReader.ts#L53\n remote: string,\n hash: string,\n fileName: string,\n line: number\n) => `${remote}/blob/${hash}/${fileName}#L${line}`;\n\n/**\n * Create a permalink for a code search with commit hash and line number\n * @param remote https url for repository\n * @param hash commit hash\n * @param fileName name of file\n * @param line line number in file\n */\nexport const codeSearchLink: SourceLink = (\n remote: string,\n hash: string,\n fileName: string,\n line: number\n) => `${remote}/${fileName}?l=${line}&rcl=${hash}`;\n\n/**\n * Create an IDE file link with line number\n * @param parentPath to fully qualify the source file\n * @param fileName full name of file\n * @param line line number in file\n */\nexport const ideLink = (\n // https://plugins.jetbrains.com/plugin/6027-remote-call\n // https://github.com/microsoft/vscode/issues/4883#issuecomment-270141535\n // pattern:\n parentPath: string,\n fileName: string,\n line: number\n) => {\n // const idea = 'http//localhost:8091'\n const vscode = 'vscode://';\n\n return `${vscode}${parentPath}/${fileName}:L:${line}`;\n};\n\n/**\n * Gets the summary for an example file, or defaults to the file and line number\n * @param lode all mined example data\n * @param call specific call to summarize\n */\nexport const summarize = (lode: IExampleMine, call: IFileCall): string => {\n if (call.sourceFile in lode.summaries) {\n return lode.summaries[call.sourceFile].summary;\n }\n // Default to file name if no summary is found\n return call.sourceFile;\n};\n\n/**\n * Provides permalink and description for an example file call\n * @param lode all mined example data\n * @param call specific all to link\n */\nexport const exampleLink = (\n lode: IExampleMine,\n call: IFileCall\n): IExampleLink => {\n const link = permaLink(\n lode.remoteOrigin,\n lode.commitHash,\n call.sourceFile,\n call.line\n );\n\n return {\n permalink: link,\n description: summarize(lode, call),\n tooltip: `${call.sourceFile} line ${call.line}`,\n lineNumber: call.line.toString(),\n };\n};\n\n// TODO create one data set for extensionToLanguage and getLanguageExtensions\n/** map file extension to language name */\nexport const extensionToLanguage = {\n '.py': 'Python',\n '.ts': 'TypeScript',\n '.tsx': 'TypeScript',\n '.cs': 'C#',\n '.kt': 'Kotlin',\n '.swift': 'Swift',\n '.rb': 'Ruby',\n '.dart': 'Dart',\n '.go': 'Go',\n '.md': 'Markdown',\n '.java': 'Java',\n};\n\n/**\n * Return the recognized file extensions for the requested language\n * @param language\n */\nexport const getLanguageExtensions = (language: string): string[] => {\n switch (language.toLowerCase()) {\n case 'ts':\n case 'typescript':\n return ['.ts', 'tsx'];\n case 'csharp':\n case 'c#':\n return ['.cs'];\n case 'ruby':\n return ['.rb'];\n case 'python':\n return ['.py'];\n case 'swift':\n return ['.swift'];\n case 'kotlin':\n return ['.kt'];\n case 'dart':\n return ['.dart'];\n case 'go':\n return ['.go'];\n case 'java':\n return ['.java'];\n default:\n return [];\n }\n};\n\nexport const findExampleLanguages = (\n lode: IExampleMine,\n methodName: string\n) => {\n const all = lode.nuggets[methodName];\n if (!all) return [];\n const result = new Set<string>();\n const keys = Object.keys(extensionToLanguage);\n keys.forEach((key) => {\n if (all.calls[key]) result.add((extensionToLanguage as any)[key]);\n });\n return Array.from(result);\n};\n\n/**\n * Searches for examples containing operationId usages in the given language\n * @param lode All example data\n * @param language Language example should be in\n * @param operationId Method's operationId to search for\n */\nexport const findExamples = (\n lode: IExampleMine,\n language: string,\n operationId: string\n): IExampleLink[] => {\n const all = lode.nuggets[operationId];\n const exts = getLanguageExtensions(language);\n const links: IExampleLink[] = [];\n\n if (all && exts.length > 0) {\n exts.forEach((ext) => {\n const calls = all.calls[ext];\n if (calls) {\n calls.forEach((call: IFileCall) => {\n const link = exampleLink(lode, call);\n if (link) {\n links.push(exampleLink(lode, call));\n }\n });\n }\n });\n }\n return links.sort((a, b) => a.permalink.localeCompare(b.permalink));\n};\n"],"mappings":"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"}