@ohos-ports/microsoft-kiota 0.0.0-stage → 1.34.1-beta.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 (110) hide show
  1. package/dist/cjs/config.js +15 -0
  2. package/dist/cjs/config.js.map +1 -0
  3. package/dist/cjs/connect.js +74 -0
  4. package/dist/cjs/connect.js.map +1 -0
  5. package/dist/cjs/index.js +30 -0
  6. package/dist/cjs/index.js.map +1 -0
  7. package/dist/cjs/install.js +268 -0
  8. package/dist/cjs/install.js.map +1 -0
  9. package/dist/cjs/lib/generateClient.js +106 -0
  10. package/dist/cjs/lib/generateClient.js.map +1 -0
  11. package/dist/cjs/lib/generatePlugin.js +108 -0
  12. package/dist/cjs/lib/generatePlugin.js.map +1 -0
  13. package/dist/cjs/lib/getKiotaTree.js +72 -0
  14. package/dist/cjs/lib/getKiotaTree.js.map +1 -0
  15. package/dist/cjs/lib/getKiotaVersion.js +65 -0
  16. package/dist/cjs/lib/getKiotaVersion.js.map +1 -0
  17. package/dist/cjs/lib/getManifestDetails.js +67 -0
  18. package/dist/cjs/lib/getManifestDetails.js.map +1 -0
  19. package/dist/cjs/lib/getPluginManifest.js +65 -0
  20. package/dist/cjs/lib/getPluginManifest.js.map +1 -0
  21. package/dist/cjs/lib/languageInformation.js +86 -0
  22. package/dist/cjs/lib/languageInformation.js.map +1 -0
  23. package/dist/cjs/lib/migrateFromLockFile.js +64 -0
  24. package/dist/cjs/lib/migrateFromLockFile.js.map +1 -0
  25. package/dist/cjs/lib/removeItem.js +97 -0
  26. package/dist/cjs/lib/removeItem.js.map +1 -0
  27. package/dist/cjs/lib/searchDescription.js +65 -0
  28. package/dist/cjs/lib/searchDescription.js.map +1 -0
  29. package/dist/cjs/lib/updateClients.js +65 -0
  30. package/dist/cjs/lib/updateClients.js.map +1 -0
  31. package/dist/cjs/ohos.js +368 -0
  32. package/dist/cjs/runtime.json +33 -0
  33. package/dist/cjs/types/config.d.ts +6 -0
  34. package/dist/cjs/types/connect.d.ts +2 -0
  35. package/dist/cjs/types/index.d.ts +13 -0
  36. package/dist/cjs/types/install.d.ts +9 -0
  37. package/dist/cjs/types/lib/generateClient.d.ts +50 -0
  38. package/dist/cjs/types/lib/generatePlugin.d.ts +42 -0
  39. package/dist/cjs/types/lib/getKiotaTree.d.ts +21 -0
  40. package/dist/cjs/types/lib/getKiotaVersion.d.ts +7 -0
  41. package/dist/cjs/types/lib/getManifestDetails.d.ts +17 -0
  42. package/dist/cjs/types/lib/getPluginManifest.d.ts +13 -0
  43. package/dist/cjs/types/lib/languageInformation.d.ts +28 -0
  44. package/dist/cjs/types/lib/migrateFromLockFile.d.ts +13 -0
  45. package/dist/cjs/types/lib/removeItem.d.ts +33 -0
  46. package/dist/cjs/types/lib/searchDescription.d.ts +15 -0
  47. package/dist/cjs/types/lib/updateClients.d.ts +19 -0
  48. package/dist/cjs/types/types.d.ts +284 -0
  49. package/dist/cjs/types/utils.d.ts +5 -0
  50. package/dist/cjs/types.js +132 -0
  51. package/dist/cjs/types.js.map +1 -0
  52. package/dist/cjs/utils.js +51 -0
  53. package/dist/cjs/utils.js.map +1 -0
  54. package/dist/esm/config.js +11 -0
  55. package/dist/esm/config.js.map +1 -0
  56. package/dist/esm/connect.js +38 -0
  57. package/dist/esm/connect.js.map +1 -0
  58. package/dist/esm/index.js +14 -0
  59. package/dist/esm/index.js.map +1 -0
  60. package/dist/esm/install.js +224 -0
  61. package/dist/esm/install.js.map +1 -0
  62. package/dist/esm/lib/generateClient.js +67 -0
  63. package/dist/esm/lib/generateClient.js.map +1 -0
  64. package/dist/esm/lib/generatePlugin.js +69 -0
  65. package/dist/esm/lib/generatePlugin.js.map +1 -0
  66. package/dist/esm/lib/getKiotaTree.js +33 -0
  67. package/dist/esm/lib/getKiotaTree.js.map +1 -0
  68. package/dist/esm/lib/getKiotaVersion.js +26 -0
  69. package/dist/esm/lib/getKiotaVersion.js.map +1 -0
  70. package/dist/esm/lib/getManifestDetails.js +28 -0
  71. package/dist/esm/lib/getManifestDetails.js.map +1 -0
  72. package/dist/esm/lib/getPluginManifest.js +26 -0
  73. package/dist/esm/lib/getPluginManifest.js.map +1 -0
  74. package/dist/esm/lib/languageInformation.js +46 -0
  75. package/dist/esm/lib/languageInformation.js.map +1 -0
  76. package/dist/esm/lib/migrateFromLockFile.js +25 -0
  77. package/dist/esm/lib/migrateFromLockFile.js.map +1 -0
  78. package/dist/esm/lib/removeItem.js +57 -0
  79. package/dist/esm/lib/removeItem.js.map +1 -0
  80. package/dist/esm/lib/searchDescription.js +26 -0
  81. package/dist/esm/lib/searchDescription.js.map +1 -0
  82. package/dist/esm/lib/updateClients.js +26 -0
  83. package/dist/esm/lib/updateClients.js.map +1 -0
  84. package/dist/esm/ohos.js +366 -0
  85. package/dist/esm/runtime.json +33 -0
  86. package/dist/esm/types/config.d.ts +6 -0
  87. package/dist/esm/types/connect.d.ts +2 -0
  88. package/dist/esm/types/index.d.ts +13 -0
  89. package/dist/esm/types/install.d.ts +9 -0
  90. package/dist/esm/types/lib/generateClient.d.ts +50 -0
  91. package/dist/esm/types/lib/generatePlugin.d.ts +42 -0
  92. package/dist/esm/types/lib/getKiotaTree.d.ts +21 -0
  93. package/dist/esm/types/lib/getKiotaVersion.d.ts +7 -0
  94. package/dist/esm/types/lib/getManifestDetails.d.ts +17 -0
  95. package/dist/esm/types/lib/getPluginManifest.d.ts +13 -0
  96. package/dist/esm/types/lib/languageInformation.d.ts +28 -0
  97. package/dist/esm/types/lib/migrateFromLockFile.d.ts +13 -0
  98. package/dist/esm/types/lib/removeItem.d.ts +33 -0
  99. package/dist/esm/types/lib/searchDescription.d.ts +15 -0
  100. package/dist/esm/types/lib/updateClients.d.ts +19 -0
  101. package/dist/esm/types/types.d.ts +284 -0
  102. package/dist/esm/types/utils.d.ts +5 -0
  103. package/dist/esm/types.js +128 -0
  104. package/dist/esm/types.js.map +1 -0
  105. package/dist/esm/utils.js +45 -0
  106. package/dist/esm/utils.js.map +1 -0
  107. package/package.json +76 -4
  108. package/readme.md +265 -0
  109. package/runtime.json +33 -0
  110. package/README.md +0 -3
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setKiotaConfig = setKiotaConfig;
4
+ exports.getKiotaConfig = getKiotaConfig;
5
+ let config = {
6
+ binaryLocation: "",
7
+ binaryVersion: ""
8
+ };
9
+ function setKiotaConfig(newConfig) {
10
+ config = { ...config, ...newConfig };
11
+ }
12
+ function getKiotaConfig() {
13
+ return config;
14
+ }
15
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../config.ts"],"names":[],"mappings":";;AAUA,wCAEC;AAED,wCAEC;AAXD,IAAI,MAAM,GAAW;IACnB,cAAc,EAAE,EAAE;IAClB,aAAa,EAAE,EAAE;CAClB,CAAC;AAEF,SAAgB,cAAc,CAAC,SAA0B;IACvD,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;AACvC,CAAC;AAED,SAAgB,cAAc;IAC5B,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.default = connectToKiota;
37
+ const cp = __importStar(require("child_process"));
38
+ const rpc = __importStar(require("vscode-jsonrpc/node"));
39
+ const install_1 = require("./install");
40
+ async function connectToKiota(callback, workingDirectory = process.cwd()) {
41
+ const kiotaPath = (0, install_1.getKiotaPath)();
42
+ await (0, install_1.ensureKiotaIsPresent)();
43
+ const execution = await (0, install_1.getKiotaExecutionInfo)();
44
+ const childProcess = cp.spawn(execution.command, [...execution.args, "rpc"], {
45
+ cwd: workingDirectory,
46
+ env: {
47
+ ...process.env,
48
+ ...execution.env,
49
+ // eslint-disable-next-line @typescript-eslint/naming-convention
50
+ KIOTA_CONFIG_PREVIEW: "true",
51
+ }
52
+ });
53
+ const inputReader = new rpc.StreamMessageReader(childProcess.stdout);
54
+ const outputWriter = new rpc.StreamMessageWriter(childProcess.stdin);
55
+ const connection = rpc.createMessageConnection(inputReader, outputWriter);
56
+ connection.listen();
57
+ try {
58
+ return await callback(connection);
59
+ }
60
+ catch (error) {
61
+ console.warn(error);
62
+ const errorMessage = error?.data?.message
63
+ || 'An unknown error occurred';
64
+ return new Error(errorMessage);
65
+ }
66
+ finally {
67
+ inputReader.dispose();
68
+ outputWriter.dispose();
69
+ connection.dispose();
70
+ childProcess.stdin?.end();
71
+ childProcess.kill();
72
+ }
73
+ }
74
+ //# sourceMappingURL=connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../connect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,iCA8BC;AAnCD,kDAAoC;AACpC,yDAA2C;AAC3C,uCAA+D;AAGhD,KAAK,UAAU,cAAc,CAAI,QAAuE,EAAE,mBAA2B,OAAO,CAAC,GAAG,EAAE;IAC/J,MAAM,SAAS,GAAG,IAAA,sBAAY,GAAE,CAAC;IACjC,MAAM,IAAA,8BAAoB,GAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE;QAChD,GAAG,EAAE,gBAAgB;QACrB,GAAG,EAAE;YACH,GAAG,OAAO,CAAC,GAAG;YACd,gEAAgE;YAChE,oBAAoB,EAAE,MAAM;SAC7B;KACF,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,GAAG,CAAC,uBAAuB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC1E,UAAU,CAAC,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC;QACD,OAAO,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,YAAY,GAAI,KAAwC,EAAE,IAAI,EAAE,OAAO;eACtE,2BAA2B,CAAC;QACnC,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;YAAS,CAAC;QACT,WAAW,CAAC,OAAO,EAAE,CAAC;QACtB,YAAY,CAAC,OAAO,EAAE,CAAC;QACvB,UAAU,CAAC,OAAO,EAAE,CAAC;QAErB,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;QAC1B,YAAY,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./config"), exports);
18
+ __exportStar(require("./lib/generateClient"), exports);
19
+ __exportStar(require("./lib/generatePlugin"), exports);
20
+ __exportStar(require("./lib/getKiotaTree"), exports);
21
+ __exportStar(require("./lib/getKiotaVersion"), exports);
22
+ __exportStar(require("./lib/getManifestDetails"), exports);
23
+ __exportStar(require("./lib/languageInformation"), exports);
24
+ __exportStar(require("./lib/migrateFromLockFile"), exports);
25
+ __exportStar(require("./lib/removeItem"), exports);
26
+ __exportStar(require("./lib/searchDescription"), exports);
27
+ __exportStar(require("./lib/updateClients"), exports);
28
+ __exportStar(require("./types"), exports);
29
+ __exportStar(require("./utils"), exports);
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,uDAAqC;AACrC,uDAAqC;AACrC,qDAAmC;AACnC,wDAAsC;AACtC,2DAAyC;AACzC,4DAA0C;AAC1C,4DAA0C;AAC1C,mDAAiC;AACjC,0DAAwC;AACxC,sDAAoC;AACpC,0CAAwB;AACxB,0CAAwB"}
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.ensureKiotaIsPresent = ensureKiotaIsPresent;
40
+ exports.ensureKiotaIsPresentInPath = ensureKiotaIsPresentInPath;
41
+ exports.getKiotaPath = getKiotaPath;
42
+ exports.getKiotaExecutionInfo = getKiotaExecutionInfo;
43
+ exports.getRuntimeDependenciesPackages = getRuntimeDependenciesPackages;
44
+ exports.getCurrentPlatform = getCurrentPlatform;
45
+ const adm_zip_1 = __importDefault(require("adm-zip"));
46
+ const crypto_1 = require("crypto");
47
+ const https = __importStar(require("https"));
48
+ const fs = __importStar(require("fs"));
49
+ const path = __importStar(require("path"));
50
+ const config_1 = require("./config");
51
+ const ohos_1 = require("./ohos");
52
+ const runtime_json_1 = __importDefault(require("./runtime.json"));
53
+ const kiotaInstallStatusKey = "kiotaInstallStatus";
54
+ const installDelayInMs = 30000; // 30 seconds
55
+ const state = {};
56
+ let kiotaPath;
57
+ const binariesRootDirectory = '.kiotabin';
58
+ const baseDownloadUrl = "https://github.com/microsoft/kiota/releases/download";
59
+ const windowsPlatform = 'win';
60
+ const osxPlatform = 'osx';
61
+ const linuxPlatform = 'linux';
62
+ /**
63
+ * Checks if a file or directory exists asynchronously
64
+ * @param filePath Path to check
65
+ * @returns Promise<boolean> true if exists, false otherwise
66
+ */
67
+ async function checkFileExists(filePath) {
68
+ try {
69
+ await fs.promises.access(filePath);
70
+ return true;
71
+ }
72
+ catch {
73
+ return false;
74
+ }
75
+ }
76
+ /**
77
+ * Checks if a directory is empty asynchronously
78
+ * @param dirPath Directory path to check
79
+ * @returns Promise<boolean> true if directory is empty or doesn't exist, false otherwise
80
+ */
81
+ async function isDirectoryEmpty(dirPath) {
82
+ try {
83
+ const files = await fs.promises.readdir(dirPath);
84
+ return files.length === 0;
85
+ }
86
+ catch {
87
+ // If directory doesn't exist, consider it as "empty" for our use case
88
+ return true;
89
+ }
90
+ }
91
+ async function runIfNotLocked(action) {
92
+ const installStartTimeStamp = state[kiotaInstallStatusKey];
93
+ const currentTimeStamp = new Date().getTime();
94
+ if (!installStartTimeStamp || (currentTimeStamp - installStartTimeStamp) > installDelayInMs) {
95
+ //locking the context to prevent multiple downloads across multiple instances
96
+ //overriding after 30 seconds to prevent stale locks
97
+ state[kiotaInstallStatusKey] = currentTimeStamp;
98
+ try {
99
+ await action();
100
+ }
101
+ finally {
102
+ state[kiotaInstallStatusKey] = undefined;
103
+ }
104
+ }
105
+ }
106
+ async function ensureKiotaIsPresent() {
107
+ const installPath = getKiotaPathInternal(false);
108
+ if (installPath) {
109
+ const runtimeDependencies = getRuntimeDependenciesPackages();
110
+ const currentPlatform = getCurrentPlatform();
111
+ await ensureKiotaIsPresentInPath(installPath, runtimeDependencies, currentPlatform);
112
+ }
113
+ }
114
+ async function ensureKiotaIsPresentInPath(installPath, runtimeDependencies, currentPlatform) {
115
+ if (installPath) {
116
+ if (!await checkFileExists(installPath) || await isDirectoryEmpty(installPath)) {
117
+ await runIfNotLocked(async () => {
118
+ try {
119
+ const packageToInstall = runtimeDependencies.find((p) => p.platformId === currentPlatform);
120
+ if (!packageToInstall) {
121
+ throw new Error("Could not find package to install");
122
+ }
123
+ fs.mkdirSync(installPath, { recursive: true });
124
+ const zipFilePath = `${installPath}.zip`;
125
+ // If env variable that points to kiota binary zip exists, use it to copy the file instead of downloading it
126
+ const kiotaBinaryZip = process.env.KIOTA_SIDELOADING_BINARY_ZIP_PATH;
127
+ if (kiotaBinaryZip && await checkFileExists(kiotaBinaryZip)) {
128
+ fs.copyFileSync(kiotaBinaryZip, zipFilePath);
129
+ }
130
+ else {
131
+ const downloadUrl = getDownloadUrl(currentPlatform);
132
+ await downloadFileFromUrl(downloadUrl, zipFilePath);
133
+ if (!await doesFileHashMatch(zipFilePath, packageToInstall.sha256)) {
134
+ throw new Error("Hash validation of the downloaded file mismatch");
135
+ }
136
+ }
137
+ unzipFile(zipFilePath, installPath);
138
+ if ((currentPlatform.startsWith(linuxPlatform) || currentPlatform.startsWith(osxPlatform)) && installPath) {
139
+ const fileName = getKiotaFileName();
140
+ const kiotaFilePath = path.join(installPath, fileName);
141
+ makeExecutable(kiotaFilePath);
142
+ }
143
+ }
144
+ catch (error) {
145
+ fs.rmSync(installPath, { recursive: true, force: true });
146
+ throw new Error("Kiota download failed. Check the logs for more information.");
147
+ }
148
+ });
149
+ }
150
+ }
151
+ }
152
+ /**
153
+ * Returns how the kiota engine must be spawned on the current platform.
154
+ * On regular platforms the engine executable is spawned directly; on
155
+ * OpenHarmony the managed kiota.dll runs through the musl .NET runtime.
156
+ */
157
+ async function getKiotaExecutionInfo() {
158
+ if ((0, ohos_1.isOhosPlatform)()) {
159
+ const installPath = getKiotaPathInternal(false);
160
+ if (!installPath) {
161
+ throw new Error("Could not find kiota");
162
+ }
163
+ // The linux-arm64 engine binary cannot be executed on OpenHarmony
164
+ // (glibc + unsigned ELF). Provision the musl .NET runtime based
165
+ // execution environment instead (idempotent).
166
+ await runIfNotLocked(async () => {
167
+ await (0, ohos_1.ensureOhosExecutionEnvironment)(getBaseDir(), installPath);
168
+ });
169
+ return (0, ohos_1.getOhosExecution)(getBaseDir(), installPath);
170
+ }
171
+ return { command: getKiotaPath(), args: [], env: {} };
172
+ }
173
+ function getKiotaPath() {
174
+ if (!kiotaPath) {
175
+ kiotaPath = getKiotaPathInternal();
176
+ if (!kiotaPath) {
177
+ throw new Error("Could not find kiota");
178
+ }
179
+ }
180
+ return kiotaPath;
181
+ }
182
+ function makeExecutable(path) {
183
+ fs.chmodSync(path, 0o755);
184
+ }
185
+ function getBaseDir() {
186
+ return (0, config_1.getKiotaConfig)().binaryLocation || path.resolve(__dirname);
187
+ }
188
+ function getRuntimeVersion() {
189
+ return (0, config_1.getKiotaConfig)().binaryVersion || runtime_json_1.default.kiotaVersion;
190
+ }
191
+ function getKiotaFileName() {
192
+ return process.platform === 'win32' ? 'kiota.exe' : 'kiota';
193
+ }
194
+ function getKiotaPathInternal(withFileName = true) {
195
+ const fileName = getKiotaFileName();
196
+ const runtimeDependencies = getRuntimeDependenciesPackages();
197
+ const currentPlatform = getCurrentPlatform();
198
+ const packageToInstall = runtimeDependencies.find((p) => p.platformId === currentPlatform);
199
+ const baseDir = getBaseDir();
200
+ const runtimeVersion = getRuntimeVersion();
201
+ if (packageToInstall) {
202
+ const installPath = path.join(baseDir, binariesRootDirectory);
203
+ const directoryPath = path.join(installPath, runtimeVersion, currentPlatform);
204
+ if (withFileName) {
205
+ return path.join(directoryPath, fileName);
206
+ }
207
+ return directoryPath;
208
+ }
209
+ return undefined;
210
+ }
211
+ function unzipFile(zipFilePath, destinationPath) {
212
+ const zip = new adm_zip_1.default(zipFilePath);
213
+ zip.extractAllTo(destinationPath, true);
214
+ }
215
+ async function doesFileHashMatch(destinationPath, hashValue) {
216
+ const hash = (0, crypto_1.createHash)('sha256');
217
+ return new Promise((resolve, reject) => {
218
+ fs.createReadStream(destinationPath).pipe(hash).on('finish', () => {
219
+ const computedValue = hash.digest('hex');
220
+ hash.destroy();
221
+ resolve(computedValue.toUpperCase() === hashValue.toUpperCase());
222
+ });
223
+ });
224
+ }
225
+ function downloadFileFromUrl(url, destinationPath) {
226
+ return new Promise((resolve) => {
227
+ https.get(url, (response) => {
228
+ if (response.statusCode && response.statusCode >= 300 && response.statusCode < 400 && response.headers.location) {
229
+ resolve(downloadFileFromUrl(applyDownloadBaseUrlOverride(response.headers.location), destinationPath));
230
+ }
231
+ else {
232
+ const filePath = fs.createWriteStream(destinationPath);
233
+ response.pipe(filePath);
234
+ filePath.on('finish', () => {
235
+ filePath.close();
236
+ resolve(undefined);
237
+ });
238
+ }
239
+ });
240
+ });
241
+ }
242
+ /**
243
+ * Optionally rewrites official GitHub download URLs through a mirror prefix
244
+ * (e.g. https://gh-proxy.com/) when KIOTA_DOWNLOAD_BASE_URL is set, following
245
+ * the gh-proxy URL concatenation convention (${KIOTA_DOWNLOAD_BASE_URL}/https://github.com/...).
246
+ * Default behavior (environment variable unset) is unchanged: official URLs are used as-is.
247
+ */
248
+ function applyDownloadBaseUrlOverride(url) {
249
+ const baseUrlOverride = process.env.KIOTA_DOWNLOAD_BASE_URL;
250
+ if (baseUrlOverride && url.startsWith("https://github.com/")) {
251
+ return `${baseUrlOverride.replace(/\/+$/, "")}/${url}`;
252
+ }
253
+ return url;
254
+ }
255
+ function getDownloadUrl(platform) {
256
+ return applyDownloadBaseUrlOverride(`${baseDownloadUrl}/v${getRuntimeVersion()}/${platform}.zip`);
257
+ }
258
+ function getRuntimeDependenciesPackages() {
259
+ if (runtime_json_1.default.runtimeDependencies) {
260
+ return JSON.parse(JSON.stringify(runtime_json_1.default.runtimeDependencies));
261
+ }
262
+ throw new Error("No runtime dependencies found");
263
+ }
264
+ function getCurrentPlatform() {
265
+ const binPathSegmentOS = process.platform === 'win32' ? windowsPlatform : process.platform === 'darwin' ? osxPlatform : linuxPlatform;
266
+ return `${binPathSegmentOS}-${process.arch}`;
267
+ }
268
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.generateClient = generateClient;
40
+ const rpc = __importStar(require("vscode-jsonrpc/node"));
41
+ const connect_1 = __importDefault(require("../connect"));
42
+ const utils_1 = require("../utils");
43
+ /**
44
+ * Generates a client based on the provided client generation options.
45
+ *
46
+ * @param {ClientGenerationOptions} clientGenerationOptions - The options for generating the client.
47
+ * * Options for generating a client.
48
+ *
49
+ * @param {string} clientGenerationOptions.openAPIFilePath - The file path to the OpenAPI specification.
50
+ * @param {string} clientGenerationOptions.clientClassName - The name of the client class to generate.
51
+ * @param {string} clientGenerationOptions.clientNamespaceName - The namespace name for the generated client.
52
+ * @param {KiotaGenerationLanguage} clientGenerationOptions.language - The programming language for the generated client.
53
+ * @param {string} clientGenerationOptions.outputPath - The output path for the generated client.
54
+ * @param {ConsumerOperation} clientGenerationOptions.operation - The consumer operation to perform.
55
+ * @param {string} clientGenerationOptions.workingDirectory - The working directory for the generation process.
56
+ * @param {boolean} [clientGenerationOptions.clearCache] - Whether to clear the cache before generating the client.
57
+ * @param {boolean} [clientGenerationOptions.cleanOutput] - Whether to clean the output directory before generating the client.
58
+ * @param {string[]} [clientGenerationOptions.deserializers] - The list of deserializers to use.
59
+ * @param {string[]} [clientGenerationOptions.disabledValidationRules] - The list of validation rules to disable.
60
+ * @param {boolean} [clientGenerationOptions.excludeBackwardCompatible] - Whether to exclude backward-compatible changes.
61
+ * @param {string[]} [clientGenerationOptions.excludePatterns] - The list of patterns to exclude from generation.
62
+ * @param {boolean} [clientGenerationOptions.includeAdditionalData] - Whether to include additional data in the generated client.
63
+ * @param {string[]} [clientGenerationOptions.includePatterns] - The list of patterns to include in generation.
64
+ * @param {string[]} [clientGenerationOptions.serializers] - The list of serializers to use.
65
+ * @param {string[]} [clientGenerationOptions.structuredMimeTypes] - The list of structured MIME types to support.
66
+ * @param {boolean} [clientGenerationOptions.usesBackingStore] - Whether the generated client uses a backing store.
67
+
68
+ * @returns {Promise<KiotaResult | undefined>} A promise that resolves to a KiotaResult if successful, or undefined if not.
69
+ * @throws {Error} If an error occurs during the client generation process.
70
+ */
71
+ async function generateClient(clientGenerationOptions) {
72
+ const result = await (0, connect_1.default)(async (connection) => {
73
+ const request = new rpc.RequestType1("Generate");
74
+ return await connection.sendRequest(request, {
75
+ openAPIFilePath: clientGenerationOptions.openAPIFilePath,
76
+ clientClassName: clientGenerationOptions.clientClassName,
77
+ clientNamespaceName: clientGenerationOptions.clientNamespaceName,
78
+ language: clientGenerationOptions.language,
79
+ outputPath: clientGenerationOptions.outputPath,
80
+ operation: clientGenerationOptions.operation,
81
+ deserializers: clientGenerationOptions.deserializers ?? [],
82
+ disabledValidationRules: clientGenerationOptions.disabledValidationRules ?? [],
83
+ excludeBackwardCompatible: clientGenerationOptions.excludeBackwardCompatible ?? false,
84
+ excludePatterns: clientGenerationOptions.excludePatterns ?? [],
85
+ includeAdditionalData: clientGenerationOptions.includeAdditionalData ?? false,
86
+ cleanOutput: clientGenerationOptions.cleanOutput ?? false,
87
+ clearCache: clientGenerationOptions.clearCache ?? false,
88
+ includePatterns: clientGenerationOptions.includePatterns ?? [],
89
+ serializers: clientGenerationOptions.serializers ?? [],
90
+ structuredMimeTypes: clientGenerationOptions.structuredMimeTypes ?? [],
91
+ usesBackingStore: clientGenerationOptions.usesBackingStore ?? false,
92
+ });
93
+ }, clientGenerationOptions.workingDirectory);
94
+ if (result instanceof Error) {
95
+ throw result;
96
+ }
97
+ if (result) {
98
+ return {
99
+ isSuccess: (0, utils_1.checkForSuccess)(result),
100
+ logs: result
101
+ };
102
+ }
103
+ return undefined;
104
+ }
105
+ ;
106
+ //# sourceMappingURL=generateClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateClient.js","sourceRoot":"","sources":["../../../lib/generateClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,wCA2CC;AAnGD,yDAA2C;AAE3C,yDAAwC;AACxC,oCAA2C;AAyB3C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACI,KAAK,UAAU,cAAc,CAAC,uBAAgD;IACnF,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAc,EAAkB,KAAK,EAAE,UAAU,EAAE,EAAE;QACxE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,CAClC,UAAU,CACX,CAAC;QAEF,OAAO,MAAM,UAAU,CAAC,WAAW,CACjC,OAAO,EACP;YACE,eAAe,EAAE,uBAAuB,CAAC,eAAe;YACxD,eAAe,EAAE,uBAAuB,CAAC,eAAe;YACxD,mBAAmB,EAAE,uBAAuB,CAAC,mBAAmB;YAChE,QAAQ,EAAE,uBAAuB,CAAC,QAAQ;YAC1C,UAAU,EAAE,uBAAuB,CAAC,UAAU;YAC9C,SAAS,EAAE,uBAAuB,CAAC,SAAS;YAE5C,aAAa,EAAE,uBAAuB,CAAC,aAAa,IAAI,EAAE;YAC1D,uBAAuB,EAAE,uBAAuB,CAAC,uBAAuB,IAAI,EAAE;YAC9E,yBAAyB,EAAE,uBAAuB,CAAC,yBAAyB,IAAI,KAAK;YACrF,eAAe,EAAE,uBAAuB,CAAC,eAAe,IAAI,EAAE;YAC9D,qBAAqB,EAAE,uBAAuB,CAAC,qBAAqB,IAAI,KAAK;YAC7E,WAAW,EAAE,uBAAuB,CAAC,WAAW,IAAI,KAAK;YACzD,UAAU,EAAE,uBAAuB,CAAC,UAAU,IAAI,KAAK;YACvD,eAAe,EAAE,uBAAuB,CAAC,eAAe,IAAI,EAAE;YAC9D,WAAW,EAAE,uBAAuB,CAAC,WAAW,IAAI,EAAE;YACtD,mBAAmB,EAAE,uBAAuB,CAAC,mBAAmB,IAAI,EAAE;YACtE,gBAAgB,EAAE,uBAAuB,CAAC,gBAAgB,IAAI,KAAK;SACzC,CAC7B,CAAC;IACJ,CAAC,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAE7C,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC;IACf,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,SAAS,EAAE,IAAA,uBAAe,EAAC,MAAyB,CAAC;YACrD,IAAI,EAAE,MAAM;SACb,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAAA,CAAC"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.generatePlugin = generatePlugin;
40
+ const rpc = __importStar(require("vscode-jsonrpc/node"));
41
+ const connect_1 = __importDefault(require("../connect"));
42
+ const types_1 = require("../types");
43
+ const path = __importStar(require("path"));
44
+ const utils_1 = require("../utils");
45
+ /**
46
+ * Generates a plugin based on the provided options.
47
+ *
48
+ * @param {PluginGenerationOptions} pluginGenerationOptions - The options for generating the plugin.
49
+ * @param {string} pluginGenerationOptions.openAPIFilePath - The file path to the OpenAPI specification.
50
+ * @param {string} pluginGenerationOptions.pluginName - The name of the plugin to generate.
51
+ * @param {string} pluginGenerationOptions.outputPath - The output path where the generated plugin will be saved.
52
+ * @param {ConsumerOperation} pluginGenerationOptions.operation - The operation to perform during generation.
53
+ * @param {string} pluginGenerationOptions.workingDirectory - The working directory for the generation process.
54
+ * @param {KiotaPluginType} [pluginGenerationOptions.pluginType] - The type of the plugin to generate.
55
+ * @param {string[]} [pluginGenerationOptions.includePatterns] - The patterns to include in the generation process.
56
+ * @param {string[]} [pluginGenerationOptions.excludePatterns] - The patterns to exclude from the generation process.
57
+ * @param {boolean} [pluginGenerationOptions.clearCache] - Whether to clear the cache before generation.
58
+ * @param {boolean} [pluginGenerationOptions.cleanOutput] - Whether to clean the output directory before generation.
59
+ * @param {string[]} [pluginGenerationOptions.disabledValidationRules] - The validation rules to disable during generation.
60
+ * @param {boolean} [pluginGenerationOptions.noWorkspace] - Whether to generate without a workspace.
61
+ * @param {PluginAuthType | null} [pluginGenerationOptions.pluginAuthType] - The authentication type for the plugin, if any.
62
+ * @param {string} [pluginGenerationOptions.pluginAuthRefid] - The reference ID for the plugin authentication, if any.
63
+ * @returns {Promise<KiotaResult | undefined>} A promise that resolves to a KiotaResult if successful, or undefined if not.
64
+ * @throws {Error} If an error occurs during the generation process.
65
+ *
66
+ * The function connects to Kiota and sends a request to generate a plugin using the provided options.
67
+ * It handles the response and checks for success, returning the result or throwing an error if one occurs.
68
+ */
69
+ async function generatePlugin(pluginGenerationOptions) {
70
+ const pluginType = pluginGenerationOptions.pluginType ?? types_1.KiotaPluginType.ApiPlugin;
71
+ const result = await (0, connect_1.default)(async (connection) => {
72
+ const request = new rpc.RequestType1("GeneratePlugin");
73
+ return await connection.sendRequest(request, {
74
+ openAPIFilePath: pluginGenerationOptions.descriptionPath,
75
+ outputPath: pluginGenerationOptions.outputPath,
76
+ operation: pluginGenerationOptions.operation,
77
+ clientClassName: pluginGenerationOptions.pluginName,
78
+ pluginTypes: [pluginType],
79
+ cleanOutput: pluginGenerationOptions.cleanOutput ?? false,
80
+ clearCache: pluginGenerationOptions.clearCache ?? false,
81
+ disabledValidationRules: pluginGenerationOptions.disabledValidationRules ?? [],
82
+ excludePatterns: pluginGenerationOptions.excludePatterns ?? [],
83
+ includePatterns: pluginGenerationOptions.includePatterns ?? [],
84
+ noWorkspace: pluginGenerationOptions.noWorkspace ?? null,
85
+ pluginAuthType: pluginGenerationOptions.pluginAuthType ?? null,
86
+ pluginAuthRefid: pluginGenerationOptions.pluginAuthRefid ?? '',
87
+ });
88
+ }, pluginGenerationOptions.workingDirectory);
89
+ if (result instanceof Error) {
90
+ throw result;
91
+ }
92
+ if (result) {
93
+ const outputPath = pluginGenerationOptions.outputPath;
94
+ const pluginName = pluginGenerationOptions.pluginName;
95
+ const pathOfSpec = path.join(outputPath, `${pluginName.toLowerCase()}-openapi.yml`);
96
+ const plugingTypeName = types_1.KiotaPluginType[pluginType];
97
+ const pathPluginManifest = path.join(outputPath, `${pluginName.toLowerCase()}-${plugingTypeName.toLowerCase()}.json`);
98
+ return {
99
+ aiPlugin: pathPluginManifest,
100
+ openAPISpec: pathOfSpec,
101
+ isSuccess: (0, utils_1.checkForSuccess)(result),
102
+ logs: result
103
+ };
104
+ }
105
+ return undefined;
106
+ }
107
+ ;
108
+ //# sourceMappingURL=generatePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatePlugin.js","sourceRoot":"","sources":["../../../lib/generatePlugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,wCAgDC;AAjGD,yDAA2C;AAE3C,yDAAwC;AACxC,oCAA4I;AAC5I,2CAA6B;AAC7B,oCAA2C;AAoB3C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACI,KAAK,UAAU,cAAc,CAAC,uBAAgD;IAEnF,MAAM,UAAU,GAAG,uBAAuB,CAAC,UAAU,IAAI,uBAAe,CAAC,SAAS,CAAC;IACnF,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAc,EAAkB,KAAK,EAAE,UAAU,EAAE,EAAE;QACxE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,CAClC,gBAAgB,CACjB,CAAC;QACF,OAAO,MAAM,UAAU,CAAC,WAAW,CACjC,OAAO,EACP;YACE,eAAe,EAAE,uBAAuB,CAAC,eAAe;YACxD,UAAU,EAAE,uBAAuB,CAAC,UAAU;YAC9C,SAAS,EAAE,uBAAuB,CAAC,SAAS;YAC5C,eAAe,EAAE,uBAAuB,CAAC,UAAU;YAEnD,WAAW,EAAE,CAAC,UAAU,CAAC;YACzB,WAAW,EAAE,uBAAuB,CAAC,WAAW,IAAI,KAAK;YACzD,UAAU,EAAE,uBAAuB,CAAC,UAAU,IAAI,KAAK;YACvD,uBAAuB,EAAE,uBAAuB,CAAC,uBAAuB,IAAI,EAAE;YAC9E,eAAe,EAAE,uBAAuB,CAAC,eAAe,IAAI,EAAE;YAC9D,eAAe,EAAE,uBAAuB,CAAC,eAAe,IAAI,EAAE;YAC9D,WAAW,EAAE,uBAAuB,CAAC,WAAW,IAAI,IAAI;YACxD,cAAc,EAAE,uBAAuB,CAAC,cAAc,IAAI,IAAI;YAC9D,eAAe,EAAE,uBAAuB,CAAC,eAAe,IAAI,EAAE;SACpC,CAC7B,CAAC;IACJ,CAAC,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAE7C,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC;IACf,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,uBAAuB,CAAC,UAAU,CAAC;QACtD,MAAM,UAAU,GAAG,uBAAuB,CAAC,UAAU,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACpF,MAAM,eAAe,GAAG,uBAAe,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtH,OAAO;YACL,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,IAAA,uBAAe,EAAC,MAAyB,CAAC;YACrD,IAAI,EAAE,MAAM;SACb,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AAEnB,CAAC;AAAA,CAAC"}