From 59b7e35383570267d121d0dc0a0669d804846661 Mon Sep 17 00:00:00 2001 From: "Dmitrii Bobreshev (Akvelon INC)" Date: Wed, 19 Jul 2023 16:28:48 +0200 Subject: [PATCH] [AzureRmWebAppDeploymentV3/V4] Update task to node16 using codegen - replaced packege.json with package-lock.json for node16 task - added agent-base for node16 version - modified make.json to remove it from azure-arm-rest package --- .../FilesOverriddenForConfigGoHereREADME.txt | 1 + .../_buildConfigs/Node16/package-lock.json | 798 ++++++++++++ .../_buildConfigs/Node16/package.json | 27 + Tasks/AzureFunctionOnKubernetesV0/task.json | 232 ++-- .../AzureFunctionOnKubernetesV0/task.loc.json | 4 +- .../FilesOverriddenForConfigGoHereREADME.txt | 1 + .../_buildConfigs/Node16/make.json | 14 + .../_buildConfigs/Node16/package-lock.json | 1150 +++++++++++++++++ .../_buildConfigs/Node16/package.json | 30 + .../src/utils/commandHelper.ts | 6 +- Tasks/AzureFunctionOnKubernetesV1/task.json | 378 +++--- .../AzureFunctionOnKubernetesV1/task.loc.json | 2 +- ...AzureFunctionOnKubernetesV0.versionmap.txt | 2 + .../resources.resjson/de-DE/resources.resjson | 35 + .../resources.resjson/en-US/resources.resjson | 35 + .../resources.resjson/es-ES/resources.resjson | 35 + .../resources.resjson/fr-FR/resources.resjson | 35 + .../resources.resjson/it-IT/resources.resjson | 35 + .../resources.resjson/ja-JP/resources.resjson | 35 + .../resources.resjson/ko-KR/resources.resjson | 35 + .../resources.resjson/ru-RU/resources.resjson | 35 + .../resources.resjson/zh-CN/resources.resjson | 35 + .../resources.resjson/zh-TW/resources.resjson | 35 + .../AzureFunctionOnKubernetesV0/Tests/L0.ts | 16 + .../Tests/package-lock.json | 14 + .../Tests/package.json | 22 + .../AzureFunctionOnKubernetesV0/icon.png | Bin 0 -> 1373 bytes .../AzureFunctionOnKubernetesV0/icon.svg | 12 + .../AzureFunctionOnKubernetesV0/make.json | 12 + .../package-lock.json | 737 +++++++++++ .../AzureFunctionOnKubernetesV0/package.json | 27 + .../AzureFunctionOnKubernetesV0/src/deploy.ts | 121 ++ .../src/dockerConnection.ts | 40 + .../AzureFunctionOnKubernetesV0/src/run.ts | 38 + .../src/utils/commandHelper.ts | 65 + .../src/utils/fileHelper.ts | 42 + .../src/utils/utilities.ts | 9 + .../AzureFunctionOnKubernetesV0/task.json | 125 ++ .../AzureFunctionOnKubernetesV0/task.loc.json | 125 ++ .../AzureFunctionOnKubernetesV0/tsconfig.json | 9 + .../resources.resjson/de-DE/resources.resjson | 35 + .../resources.resjson/en-US/resources.resjson | 35 + .../resources.resjson/es-ES/resources.resjson | 35 + .../resources.resjson/fr-FR/resources.resjson | 35 + .../resources.resjson/it-IT/resources.resjson | 35 + .../resources.resjson/ja-JP/resources.resjson | 35 + .../resources.resjson/ko-KR/resources.resjson | 35 + .../resources.resjson/ru-RU/resources.resjson | 35 + .../resources.resjson/zh-CN/resources.resjson | 35 + .../resources.resjson/zh-TW/resources.resjson | 35 + .../Tests/L0.ts | 16 + .../Tests/package-lock.json | 14 + .../Tests/package.json | 22 + .../icon.png | Bin 0 -> 1373 bytes .../icon.svg | 12 + .../make.json | 12 + .../package-lock.json | 798 ++++++++++++ .../package.json | 27 + .../src/deploy.ts | 121 ++ .../src/dockerConnection.ts | 40 + .../src/run.ts | 38 + .../src/utils/commandHelper.ts | 65 + .../src/utils/fileHelper.ts | 42 + .../src/utils/utilities.ts | 9 + .../task.json | 129 ++ .../task.loc.json | 129 ++ .../tsconfig.json | 9 + ...AzureFunctionOnKubernetesV1.versionmap.txt | 2 + .../resources.resjson/de-DE/resources.resjson | 44 + .../resources.resjson/en-US/resources.resjson | 45 + .../resources.resjson/es-ES/resources.resjson | 44 + .../resources.resjson/fr-FR/resources.resjson | 44 + .../resources.resjson/it-IT/resources.resjson | 44 + .../resources.resjson/ja-JP/resources.resjson | 44 + .../resources.resjson/ko-KR/resources.resjson | 44 + .../resources.resjson/ru-RU/resources.resjson | 44 + .../resources.resjson/zh-CN/resources.resjson | 44 + .../resources.resjson/zh-TW/resources.resjson | 44 + .../AzureFunctionOnKubernetesV1/Tests/L0.ts | 16 + .../Tests/package-lock.json | 14 + .../Tests/package.json | 22 + .../AzureFunctionOnKubernetesV1/icon.png | Bin 0 -> 1373 bytes .../AzureFunctionOnKubernetesV1/icon.svg | 12 + .../AzureFunctionOnKubernetesV1/make.json | 13 + .../package-lock.json | 1074 +++++++++++++++ .../AzureFunctionOnKubernetesV1/package.json | 29 + .../src/clusterconnection.ts | 138 ++ .../src/clusters/armkubernetescluster.ts | 26 + .../src/clusters/generickubernetescluster.ts | 17 + .../AzureFunctionOnKubernetesV1/src/deploy.ts | 122 ++ .../src/dockerConnection.ts | 42 + .../AzureFunctionOnKubernetesV1/src/run.ts | 46 + .../src/utils/commandHelper.ts | 66 + .../src/utils/fileHelper.ts | 42 + .../src/utils/utilities.ts | 93 ++ .../AzureFunctionOnKubernetesV1/task.json | 198 +++ .../AzureFunctionOnKubernetesV1/task.loc.json | 198 +++ .../AzureFunctionOnKubernetesV1/tsconfig.json | 9 + .../resources.resjson/de-DE/resources.resjson | 44 + .../resources.resjson/en-US/resources.resjson | 45 + .../resources.resjson/es-ES/resources.resjson | 44 + .../resources.resjson/fr-FR/resources.resjson | 44 + .../resources.resjson/it-IT/resources.resjson | 44 + .../resources.resjson/ja-JP/resources.resjson | 44 + .../resources.resjson/ko-KR/resources.resjson | 44 + .../resources.resjson/ru-RU/resources.resjson | 44 + .../resources.resjson/zh-CN/resources.resjson | 44 + .../resources.resjson/zh-TW/resources.resjson | 44 + .../Tests/L0.ts | 16 + .../Tests/package-lock.json | 14 + .../Tests/package.json | 22 + .../icon.png | Bin 0 -> 1373 bytes .../icon.svg | 12 + .../make.json | 14 + .../package-lock.json | 1150 +++++++++++++++++ .../package.json | 30 + .../src/clusterconnection.ts | 138 ++ .../src/clusters/armkubernetescluster.ts | 26 + .../src/clusters/generickubernetescluster.ts | 17 + .../src/deploy.ts | 122 ++ .../src/dockerConnection.ts | 42 + .../src/run.ts | 46 + .../src/utils/commandHelper.ts | 67 + .../src/utils/fileHelper.ts | 42 + .../src/utils/utilities.ts | 93 ++ .../task.json | 202 +++ .../task.loc.json | 202 +++ .../tsconfig.json | 9 + make-options.json | 4 + 129 files changed, 11262 insertions(+), 309 deletions(-) create mode 100644 Tasks/AzureFunctionOnKubernetesV0/_buildConfigs/Node16/FilesOverriddenForConfigGoHereREADME.txt create mode 100644 Tasks/AzureFunctionOnKubernetesV0/_buildConfigs/Node16/package-lock.json create mode 100644 Tasks/AzureFunctionOnKubernetesV0/_buildConfigs/Node16/package.json create mode 100644 Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/FilesOverriddenForConfigGoHereREADME.txt create mode 100644 Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/make.json create mode 100644 Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/package-lock.json create mode 100644 Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/package.json create mode 100644 _generated/AzureFunctionOnKubernetesV0.versionmap.txt create mode 100644 _generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/de-DE/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/en-US/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/es-ES/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/fr-FR/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/it-IT/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/ja-JP/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/ko-KR/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/ru-RU/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/zh-CN/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/zh-TW/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0/Tests/L0.ts create mode 100644 _generated/AzureFunctionOnKubernetesV0/Tests/package-lock.json create mode 100644 _generated/AzureFunctionOnKubernetesV0/Tests/package.json create mode 100644 _generated/AzureFunctionOnKubernetesV0/icon.png create mode 100644 _generated/AzureFunctionOnKubernetesV0/icon.svg create mode 100644 _generated/AzureFunctionOnKubernetesV0/make.json create mode 100644 _generated/AzureFunctionOnKubernetesV0/package-lock.json create mode 100644 _generated/AzureFunctionOnKubernetesV0/package.json create mode 100644 _generated/AzureFunctionOnKubernetesV0/src/deploy.ts create mode 100644 _generated/AzureFunctionOnKubernetesV0/src/dockerConnection.ts create mode 100644 _generated/AzureFunctionOnKubernetesV0/src/run.ts create mode 100644 _generated/AzureFunctionOnKubernetesV0/src/utils/commandHelper.ts create mode 100644 _generated/AzureFunctionOnKubernetesV0/src/utils/fileHelper.ts create mode 100644 _generated/AzureFunctionOnKubernetesV0/src/utils/utilities.ts create mode 100644 _generated/AzureFunctionOnKubernetesV0/task.json create mode 100644 _generated/AzureFunctionOnKubernetesV0/task.loc.json create mode 100644 _generated/AzureFunctionOnKubernetesV0/tsconfig.json create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/de-DE/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/en-US/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/es-ES/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/fr-FR/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/it-IT/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/ja-JP/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/ko-KR/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/ru-RU/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/zh-CN/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/zh-TW/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/Tests/L0.ts create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/Tests/package-lock.json create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/Tests/package.json create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/icon.png create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/icon.svg create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/make.json create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/package-lock.json create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/package.json create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/src/deploy.ts create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/src/dockerConnection.ts create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/src/run.ts create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/src/utils/commandHelper.ts create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/src/utils/fileHelper.ts create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/src/utils/utilities.ts create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/task.json create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/task.loc.json create mode 100644 _generated/AzureFunctionOnKubernetesV0_Node16/tsconfig.json create mode 100644 _generated/AzureFunctionOnKubernetesV1.versionmap.txt create mode 100644 _generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/de-DE/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/en-US/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/es-ES/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/fr-FR/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/it-IT/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/ja-JP/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/ko-KR/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/ru-RU/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/zh-CN/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/zh-TW/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1/Tests/L0.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1/Tests/package-lock.json create mode 100644 _generated/AzureFunctionOnKubernetesV1/Tests/package.json create mode 100644 _generated/AzureFunctionOnKubernetesV1/icon.png create mode 100644 _generated/AzureFunctionOnKubernetesV1/icon.svg create mode 100644 _generated/AzureFunctionOnKubernetesV1/make.json create mode 100644 _generated/AzureFunctionOnKubernetesV1/package-lock.json create mode 100644 _generated/AzureFunctionOnKubernetesV1/package.json create mode 100644 _generated/AzureFunctionOnKubernetesV1/src/clusterconnection.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1/src/clusters/armkubernetescluster.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1/src/clusters/generickubernetescluster.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1/src/deploy.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1/src/dockerConnection.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1/src/run.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1/src/utils/commandHelper.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1/src/utils/fileHelper.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1/src/utils/utilities.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1/task.json create mode 100644 _generated/AzureFunctionOnKubernetesV1/task.loc.json create mode 100644 _generated/AzureFunctionOnKubernetesV1/tsconfig.json create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/de-DE/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/en-US/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/es-ES/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/fr-FR/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/it-IT/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/ja-JP/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/ko-KR/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/ru-RU/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/zh-CN/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/zh-TW/resources.resjson create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/Tests/L0.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/Tests/package-lock.json create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/Tests/package.json create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/icon.png create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/icon.svg create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/make.json create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/package-lock.json create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/package.json create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/src/clusterconnection.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/src/clusters/armkubernetescluster.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/src/clusters/generickubernetescluster.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/src/deploy.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/src/dockerConnection.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/src/run.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/src/utils/commandHelper.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/src/utils/fileHelper.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/src/utils/utilities.ts create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/task.json create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/task.loc.json create mode 100644 _generated/AzureFunctionOnKubernetesV1_Node16/tsconfig.json diff --git a/Tasks/AzureFunctionOnKubernetesV0/_buildConfigs/Node16/FilesOverriddenForConfigGoHereREADME.txt b/Tasks/AzureFunctionOnKubernetesV0/_buildConfigs/Node16/FilesOverriddenForConfigGoHereREADME.txt new file mode 100644 index 000000000000..b338e624afcd --- /dev/null +++ b/Tasks/AzureFunctionOnKubernetesV0/_buildConfigs/Node16/FilesOverriddenForConfigGoHereREADME.txt @@ -0,0 +1 @@ +Place files overridden for this config in this directory \ No newline at end of file diff --git a/Tasks/AzureFunctionOnKubernetesV0/_buildConfigs/Node16/package-lock.json b/Tasks/AzureFunctionOnKubernetesV0/_buildConfigs/Node16/package-lock.json new file mode 100644 index 000000000000..64389bddfd32 --- /dev/null +++ b/Tasks/AzureFunctionOnKubernetesV0/_buildConfigs/Node16/package-lock.json @@ -0,0 +1,798 @@ +{ + "name": "azurefunctiononkubernetes", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "requires": { + "@types/node": "*" + } + }, + "@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "requires": { + "@types/node": "*" + } + }, + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" + }, + "@types/node": { + "version": "16.18.38", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.38.tgz", + "integrity": "sha512-6sfo1qTulpVbkxECP+AVrHV9OoJqhzCsfTNp5NIG+enM4HyM3HvZCO798WShIXBN0+QtDIcutJCjsVYnQP5rIQ==" + }, + "@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==" + }, + "@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "azure-pipelines-task-lib": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.4.0.tgz", + "integrity": "sha512-JgtxfjxjRA+KWY0Q5UC1fo48nkbVxFHgKEuasKdJMSNxHydOyNlB5MNw4UTiTXp9b0nnqKeOQOBn5RN3go3aPg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "azure-pipelines-tasks-docker-common": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-docker-common/-/azure-pipelines-tasks-docker-common-2.0.6.tgz", + "integrity": "sha512-Zm8cTQecdvcgFbMTP8ZqKoU9XvM1Ck3CF59BkeaS5C7G0gNZWA4MkJTiC1qESMn8ptK5I33cqcMl7Ja4JtwaJA==", + "requires": { + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.5.4", + "@types/uuid": "^8.3.0", + "azure-pipelines-task-lib": "^3.1.0", + "del": "2.2.0", + "q": "1.4.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + }, + "dependencies": { + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + } + } + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==" + } + } + }, + "azure-pipelines-tasks-kubernetes-common": { + "version": "2.220.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-kubernetes-common/-/azure-pipelines-tasks-kubernetes-common-2.220.0.tgz", + "integrity": "sha512-20BEQl8Pu9MZQSSQ/7ITLRGW7tR3UoK5yx252iffBJpf8tjC63kRWhFHWGehvPFLZU+bSENDKsYBigvKRFSobA==", + "requires": { + "@types/mocha": "5.2.7", + "@types/node": "10.17.0", + "@types/uuid": "8.3.0", + "azure-pipelines-task-lib": "^3.1.0", + "azure-pipelines-tool-lib": "^1.0.2", + "js-yaml": "3.13.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.0.tgz", + "integrity": "sha512-wuJwN2KV4tIRz1bu9vq5kSPasJ8IsEjZaP1ZR7KlmdUZvGF/rXy8DmXOVwUD0kAtvtJ7aqMKPqUXC0NUTDbrDg==" + }, + "@types/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==" + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + } + } + }, + "azure-pipelines-tool-lib": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/azure-pipelines-tool-lib/-/azure-pipelines-tool-lib-1.3.2.tgz", + "integrity": "sha512-PtYcd3E2ouwZhLuaOpWA00FYoLjRuJs1V8mNu3u6lBnqeYd4jh/8VL/of6nchm8f2NM6Div+EEnbOcmWvcptPg==", + "requires": { + "@types/semver": "^5.3.0", + "@types/uuid": "^3.4.5", + "azure-pipelines-task-lib": "^3.1.10", + "semver": "^5.7.0", + "semver-compare": "^1.0.0", + "typed-rest-client": "^1.8.6", + "uuid": "^3.3.2" + }, + "dependencies": { + "@types/uuid": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.10.tgz", + "integrity": "sha512-BgeaZuElf7DEYZhWYDTc/XcLZXdVgFkVSTa13BqKvbnmUrxr3TJFKofUxCtDO9UQOdhnV+HPOESdHiHKZOJV1A==" + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + } + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "del": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.0.tgz", + "integrity": "sha512-AZDiRb78EEGYCsAZTG3v+CM5q8J0BIs+wI7QeUtyosm+zIMm4XSmp6aI/K7cU9l+YaKpDKN9dYP1xTrNjLQ+LA==", + "requires": { + "globby": "^4.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==" + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "globby": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", + "integrity": "sha512-JPDtMSr0bt25W64q792rvlrSwIaZwqUAhqdYKSr57Wh/xBcQ5JDWLM85ndn+Q1WdBQXLb9YGCl0QN/T0HpqU0A==", + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^6.0.1", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "requires": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + } + }, + "http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "requires": { + "@types/node": "^10.0.3" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + } + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "requires": { + "has": "^1.0.3" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==" + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mockery": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "requires": { + "pinkie": "^2.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "requires": { + "asap": "~2.0.6" + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + }, + "qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "requires": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + } + }, + "sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "requires": { + "get-port": "^3.1.0" + } + }, + "then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "requires": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "dependencies": { + "@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + } + } + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "typed-rest-client": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.9.tgz", + "integrity": "sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true + }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + } + } +} diff --git a/Tasks/AzureFunctionOnKubernetesV0/_buildConfigs/Node16/package.json b/Tasks/AzureFunctionOnKubernetesV0/_buildConfigs/Node16/package.json new file mode 100644 index 000000000000..f96322f2d242 --- /dev/null +++ b/Tasks/AzureFunctionOnKubernetesV0/_buildConfigs/Node16/package.json @@ -0,0 +1,27 @@ +{ + "name": "azurefunctiononkubernetes", + "version": "1.0.0", + "description": "Deploy Azure Function on Kubernetes", + "main": "src//run.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" + }, + "bugs": { + "url": "https://github.com/microsoft/azure-pipelines-tasks/issues" + }, + "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", + "devDependencies": { + "typescript": "4.0.2" + }, + "dependencies": { + "@types/mocha": "^5.2.7", + "@types/node": "^16.11.39", + "@types/q": "^1.5.0", + "@types/uuid": "^8.3.0", + "azure-pipelines-task-lib": "^4.4.0", + "azure-pipelines-tasks-docker-common": "2.0.6", + "azure-pipelines-tasks-kubernetes-common": "^2.212.0", + "js-yaml": "3.13.1" + } +} diff --git a/Tasks/AzureFunctionOnKubernetesV0/task.json b/Tasks/AzureFunctionOnKubernetesV0/task.json index 7644d20e47c7..8463ccd64349 100644 --- a/Tasks/AzureFunctionOnKubernetesV0/task.json +++ b/Tasks/AzureFunctionOnKubernetesV0/task.json @@ -1,121 +1,121 @@ { - "id": "FD1AA5B9-400C-4F4B-9C0B-069BA74E53C6", - "name": "AzureFunctionOnKubernetes", - "friendlyName": "Azure Function on Kubernetes", - "description": "Deploy Azure function to Kubernetes cluster.", - "helpUrl": "https://aka.ms/func-k8s", - "helpMarkDown": "[Learn more about this task](https://aka.ms/func-k8s) or [see Azure Functions on Kubernetes with KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) or [check out sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", - "category": "Deploy", - "preview": true, - "visibility": [ - "Build", - "Release" - ], - "author": "Microsoft Corporation", - "version": { - "Major": 0, - "Minor": 224, - "Patch": 2 + "id": "FD1AA5B9-400C-4F4B-9C0B-069BA74E53C6", + "name": "AzureFunctionOnKubernetes", + "friendlyName": "Azure Function on Kubernetes", + "description": "Deploy Azure function to Kubernetes cluster.", + "helpUrl": "https://aka.ms/func-k8s", + "helpMarkDown": "[Learn more about this task](https://aka.ms/func-k8s) or [see Azure Functions on Kubernetes with KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) or [check out sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "category": "Deploy", + "preview": true, + "visibility": [ + "Build", + "Release" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 0, + "Minor": 226, + "Patch": 1 + }, + "demands": [], + "groups": [ + { + "name": "serviceConnections", + "displayName": "Service Connections", + "isExpanded": true }, - "demands": [], - "groups": [ - { - "name": "serviceConnections", - "displayName": "Service Connections", - "isExpanded": true - }, - { - "name": "commands", - "displayName": "Commands", - "isExpanded": true - } - ], - "inputs": [ - { - "name": "dockerRegistryServiceConnection", - "type": "connectedService:dockerregistry", - "label": "Docker registry service connection", - "required": true, - "groupName": "serviceConnections", - "helpMarkDown": "Select a Docker registry service connection." - }, - { - "name": "kubernetesServiceConnection", - "type": "connectedService:kubernetes", - "label": "Kubernetes service connection", - "required": true, - "groupName": "serviceConnections", - "helpMarkDown": "Select a Kubernetes service connection." - }, - { - "name": "namespace", - "type": "string", - "label": "Kubernetes namespace", - "groupName": "commands", - "helpMarkDown": "Kubernetes namespace" - }, - { - "name": "secretName", - "type": "string", - "label": "Secret Name", - "groupName": "commands", - "helpMarkDown": "Kubernetes secret containing function config data (for ex. AzureWebJobsStorage: )" - }, - { - "name": "dockerHubNamespace", - "type": "string", - "label": "Docker Hub namespace", - "groupName": "commands", - "helpMarkDown": "Docker Hub namespace. Required for private Docker Hub repository." - }, - { - "name": "appName", - "type": "string", - "required": true, - "label": "Application Name", - "groupName": "commands", - "helpMarkDown": "Application Name. The Kubernetes objects created use this name. This should follow Kubernetes naming conventions for resource names." - }, - { - "name": "functionRootDirectory", - "type": "filePath", - "label": "Function root directory", - "required": false, - "groupName": "commands", - "helpMarkDown": "Function root directory. Should contain host.json. Docker build and push is performed from this directory." - }, - { - "name": "waitForStability", - "type": "boolean", - "label": "Wait for stability", - "groupName": "commands", - "defaultValue": "true", - "helpMarkDown": "Wait for the Kubernetes objects to reach the desired state." - }, - { - "name": "arguments", - "type": "string", - "label": "Arguments", - "groupName": "commands", - "helpMarkDown": "Pass arguments to command. Ex:
--no-docker --service-type NodePort" - } - ], - "dataSourceBindings": [], - "instanceNameFormat": "Func on K8s - deploy", - "execution": { - "Node10": { - "target": "src//run.js" - } + { + "name": "commands", + "displayName": "Commands", + "isExpanded": true + } + ], + "inputs": [ + { + "name": "dockerRegistryServiceConnection", + "type": "connectedService:dockerregistry", + "label": "Docker registry service connection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Docker registry service connection." + }, + { + "name": "kubernetesServiceConnection", + "type": "connectedService:kubernetes", + "label": "Kubernetes service connection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Kubernetes service connection." + }, + { + "name": "namespace", + "type": "string", + "label": "Kubernetes namespace", + "groupName": "commands", + "helpMarkDown": "Kubernetes namespace" + }, + { + "name": "secretName", + "type": "string", + "label": "Secret Name", + "groupName": "commands", + "helpMarkDown": "Kubernetes secret containing function config data (for ex. AzureWebJobsStorage: )" + }, + { + "name": "dockerHubNamespace", + "type": "string", + "label": "Docker Hub namespace", + "groupName": "commands", + "helpMarkDown": "Docker Hub namespace. Required for private Docker Hub repository." }, - "messages": { - "AllContainersNotInReadyState": "All the containers are not in a ready state.", - "CouldNotDeterminePodStatus": "Could not determine the pod's status due to the error: %s", - "CouldNotDetermineServiceStatus": "Could not determine the service %s status due to the error: %s", - "FileContentSynced": "Synced the file content to the disk. The content is %s.", - "KubectlClientVersion": "Kubectl Client Version", - "KubectlServerVersion": "Kubectl Server Version", - "NoDataWrittenOnFile": "No data was written into the file %s", - "ServiceExternalIP": "service %s external IP is %s", - "WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s" + { + "name": "appName", + "type": "string", + "required": true, + "label": "Application Name", + "groupName": "commands", + "helpMarkDown": "Application Name. The Kubernetes objects created use this name. This should follow Kubernetes naming conventions for resource names." + }, + { + "name": "functionRootDirectory", + "type": "filePath", + "label": "Function root directory", + "required": false, + "groupName": "commands", + "helpMarkDown": "Function root directory. Should contain host.json. Docker build and push is performed from this directory." + }, + { + "name": "waitForStability", + "type": "boolean", + "label": "Wait for stability", + "groupName": "commands", + "defaultValue": "true", + "helpMarkDown": "Wait for the Kubernetes objects to reach the desired state." + }, + { + "name": "arguments", + "type": "string", + "label": "Arguments", + "groupName": "commands", + "helpMarkDown": "Pass arguments to command. Ex:
--no-docker --service-type NodePort" + } + ], + "dataSourceBindings": [], + "instanceNameFormat": "Func on K8s - deploy", + "execution": { + "Node10": { + "target": "src//run.js" } + }, + "messages": { + "AllContainersNotInReadyState": "All the containers are not in a ready state.", + "CouldNotDeterminePodStatus": "Could not determine the pod's status due to the error: %s", + "CouldNotDetermineServiceStatus": "Could not determine the service %s status due to the error: %s", + "FileContentSynced": "Synced the file content to the disk. The content is %s.", + "KubectlClientVersion": "Kubectl Client Version", + "KubectlServerVersion": "Kubectl Server Version", + "NoDataWrittenOnFile": "No data was written into the file %s", + "ServiceExternalIP": "service %s external IP is %s", + "WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s" + } } \ No newline at end of file diff --git a/Tasks/AzureFunctionOnKubernetesV0/task.loc.json b/Tasks/AzureFunctionOnKubernetesV0/task.loc.json index d5ee1ebb8f08..94c2e92363cb 100644 --- a/Tasks/AzureFunctionOnKubernetesV0/task.loc.json +++ b/Tasks/AzureFunctionOnKubernetesV0/task.loc.json @@ -14,8 +14,8 @@ "author": "Microsoft Corporation", "version": { "Major": 0, - "Minor": 224, - "Patch": 2 + "Minor": 226, + "Patch": 1 }, "demands": [], "groups": [ diff --git a/Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/FilesOverriddenForConfigGoHereREADME.txt b/Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/FilesOverriddenForConfigGoHereREADME.txt new file mode 100644 index 000000000000..b338e624afcd --- /dev/null +++ b/Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/FilesOverriddenForConfigGoHereREADME.txt @@ -0,0 +1 @@ +Place files overridden for this config in this directory \ No newline at end of file diff --git a/Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/make.json b/Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/make.json new file mode 100644 index 000000000000..eb1d638ba9f7 --- /dev/null +++ b/Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/make.json @@ -0,0 +1,14 @@ +{ + "rm": [ + { + "items": [ + "node_modules/azure-pipelines-tasks-docker-common/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tasks-kubernetes-common/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tasks-azure-arm-rest/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tool-lib/node_modules/azure-pipelines-task-lib", + "node_modules/https-proxy-agent/node_modules/agent-base" + ], + "options": "-Rf" + } + ] +} \ No newline at end of file diff --git a/Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/package-lock.json b/Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/package-lock.json new file mode 100644 index 000000000000..58b49d5903e5 --- /dev/null +++ b/Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/package-lock.json @@ -0,0 +1,1150 @@ +{ + "name": "azurefunctiononkubernetes", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@azure/msal-common": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-9.1.1.tgz", + "integrity": "sha512-we9xR8lvu47fF0h+J8KyXoRy9+G/fPzm3QEa2TrdR3jaVS3LKAyE2qyMuUkNdbVkvzl8Zr9f7l+IUSP22HeqXw==" + }, + "@azure/msal-node": { + "version": "1.14.5", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.14.5.tgz", + "integrity": "sha512-NcVdMfn8Z3ogN+9RjOSF7uwf2Gki5DEJl0BdDSL83KUAgVAobtkZi5W8EqxbJLrTO/ET0jv5DregrcR5qg2pEA==", + "requires": { + "@azure/msal-common": "^9.0.1", + "jsonwebtoken": "^8.5.1", + "uuid": "^8.3.0" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + } + }, + "@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "requires": { + "@types/node": "*" + } + }, + "@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "requires": { + "@types/node": "*" + } + }, + "@types/jsonwebtoken": { + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", + "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", + "requires": { + "@types/node": "*" + } + }, + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" + }, + "@types/node": { + "version": "16.18.38", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.38.tgz", + "integrity": "sha512-6sfo1qTulpVbkxECP+AVrHV9OoJqhzCsfTNp5NIG+enM4HyM3HvZCO798WShIXBN0+QtDIcutJCjsVYnQP5rIQ==" + }, + "@types/node-forge": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.2.tgz", + "integrity": "sha512-TzX3ahoi9xbmaoT58smrBu7oa6dQXb/+PTNCslZyD/55tlJ/osofIMClzZsoo6buDFrg7e4DvVGkZqVgv6OLxw==", + "requires": { + "@types/node": "*" + } + }, + "@types/q": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", + "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==" + }, + "@types/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q==" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "async-mutex": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", + "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", + "requires": { + "tslib": "^2.4.0" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "azure-devops-node-api": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-12.0.0.tgz", + "integrity": "sha512-S6Il++7dQeMlZDokBDWw7YVoPeb90tWF10pYxnoauRMnkuL91jq9M7SOYRVhtO3FUC5URPkB/qzGa7jTLft0Xw==", + "requires": { + "tunnel": "0.0.6", + "typed-rest-client": "^1.8.4" + } + }, + "azure-pipelines-task-lib": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.4.0.tgz", + "integrity": "sha512-JgtxfjxjRA+KWY0Q5UC1fo48nkbVxFHgKEuasKdJMSNxHydOyNlB5MNw4UTiTXp9b0nnqKeOQOBn5RN3go3aPg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "azure-pipelines-tasks-azure-arm-rest": { + "version": "3.223.4", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-azure-arm-rest/-/azure-pipelines-tasks-azure-arm-rest-3.223.4.tgz", + "integrity": "sha512-3RPwQfTk38HYGOCTmG2+UVM2JClaUV76YVqYrR/AhShMMFkg1wQIbpQZ7PLUh0YPbyWqFhmdaZla0JTRL9MWkg==", + "requires": { + "@azure/msal-node": "1.14.5", + "@types/jsonwebtoken": "^8.5.8", + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.5.4", + "async-mutex": "^0.4.0", + "azure-devops-node-api": "^12.0.0", + "azure-pipelines-task-lib": "^3.4.0", + "https-proxy-agent": "^4.0.0", + "jsonwebtoken": "^8.5.1", + "node-fetch": "^2.6.7", + "q": "1.5.1", + "typed-rest-client": "1.8.4", + "xml2js": "0.4.13" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + } + } + }, + "azure-pipelines-tasks-docker-common": { + "version": "2.211.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-docker-common/-/azure-pipelines-tasks-docker-common-2.211.0.tgz", + "integrity": "sha512-5FMFZjgTt4eKmcDYvQRx1kYd622Bgb36B9QLgvwYibaKfHLAYYshdO3Q/iOHxiO1ApazQbIhN4Wqzy3YtQxzVw==", + "requires": { + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.5.4", + "@types/uuid": "^8.3.0", + "azure-pipelines-task-lib": "^3.1.0", + "azure-pipelines-tasks-azure-arm-rest-v2": "^2.210.0", + "del": "2.2.0", + "q": "1.4.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + }, + "dependencies": { + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + } + } + }, + "azure-pipelines-tasks-azure-arm-rest-v2": { + "version": "2.210.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-azure-arm-rest-v2/-/azure-pipelines-tasks-azure-arm-rest-v2-2.210.0.tgz", + "integrity": "sha512-zKkFPah6ng4oGRej5Ax5eNEEd6FQ48y+1/MIXvh/VTDAFnLfLJ9M8lUh1UlmZOetX6zTcoidSKmmZWmq/KamOw==", + "requires": { + "@types/jsonwebtoken": "^8.5.8", + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.5.4", + "azure-pipelines-task-lib": "^3.1.0", + "jsonwebtoken": "^8.5.1", + "q": "1.5.1", + "typed-rest-client": "1.8.4" + }, + "dependencies": { + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + } + } + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==" + } + } + }, + "azure-pipelines-tasks-kubernetes-common": { + "version": "2.224.1", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-kubernetes-common/-/azure-pipelines-tasks-kubernetes-common-2.224.1.tgz", + "integrity": "sha512-UwVeSD1hZcPW9Z4CwAuNp6wmczdBCoWOa0saVv0DNejGVbOi0Nu7xBl+J3/N8xhcLnkD5G00LDY29G69yZFXUA==", + "requires": { + "@types/mocha": "5.2.7", + "@types/node": "10.17.0", + "@types/node-forge": "^1.3.2", + "@types/uuid": "8.3.0", + "azure-devops-node-api": "^12.0.0", + "azure-pipelines-task-lib": "^3.1.0", + "azure-pipelines-tool-lib": "^1.0.2", + "js-yaml": "3.13.1", + "node-forge": "^1.3.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.0.tgz", + "integrity": "sha512-wuJwN2KV4tIRz1bu9vq5kSPasJ8IsEjZaP1ZR7KlmdUZvGF/rXy8DmXOVwUD0kAtvtJ7aqMKPqUXC0NUTDbrDg==" + }, + "@types/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==" + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "azure-pipelines-tool-lib": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/azure-pipelines-tool-lib/-/azure-pipelines-tool-lib-1.3.2.tgz", + "integrity": "sha512-PtYcd3E2ouwZhLuaOpWA00FYoLjRuJs1V8mNu3u6lBnqeYd4jh/8VL/of6nchm8f2NM6Div+EEnbOcmWvcptPg==", + "requires": { + "@types/semver": "^5.3.0", + "@types/uuid": "^3.4.5", + "azure-pipelines-task-lib": "^3.1.10", + "semver": "^5.7.0", + "semver-compare": "^1.0.0", + "typed-rest-client": "^1.8.6", + "uuid": "^3.3.2" + }, + "dependencies": { + "@types/uuid": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.10.tgz", + "integrity": "sha512-BgeaZuElf7DEYZhWYDTc/XcLZXdVgFkVSTa13BqKvbnmUrxr3TJFKofUxCtDO9UQOdhnV+HPOESdHiHKZOJV1A==" + } + } + }, + "typed-rest-client": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.9.tgz", + "integrity": "sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + } + } + }, + "azure-pipelines-tool-lib": { + "version": "2.0.0-preview", + "resolved": "https://registry.npmjs.org/azure-pipelines-tool-lib/-/azure-pipelines-tool-lib-2.0.0-preview.tgz", + "integrity": "sha512-OeivwKLpLMsvGpZ2H+2UPxFwwqNkV8TzfKByqjYAllzGDAw4BvciAdjCMwkpGdTOnzfPbRpr33sy48kn7RqfKA==", + "requires": { + "@types/semver": "^5.3.0", + "@types/uuid": "^3.4.5", + "azure-pipelines-task-lib": "^4.0.0-preview", + "semver": "^5.7.0", + "semver-compare": "^1.0.0", + "typed-rest-client": "^1.8.6", + "uuid": "^3.3.2" + }, + "dependencies": { + "@types/uuid": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.10.tgz", + "integrity": "sha512-BgeaZuElf7DEYZhWYDTc/XcLZXdVgFkVSTa13BqKvbnmUrxr3TJFKofUxCtDO9UQOdhnV+HPOESdHiHKZOJV1A==" + }, + "azure-pipelines-task-lib": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.1.0.tgz", + "integrity": "sha512-8CNC9PcP+4eS76QcIDmPmBfrrao9xpy/M0Uts4TWk3chfr3uOXFGf0DYHVTJGF9180g51kyVXYTObicouq0KZQ==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "typed-rest-client": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.9.tgz", + "integrity": "sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + } + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "del": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.0.tgz", + "integrity": "sha512-AZDiRb78EEGYCsAZTG3v+CM5q8J0BIs+wI7QeUtyosm+zIMm4XSmp6aI/K7cU9l+YaKpDKN9dYP1xTrNjLQ+LA==", + "requires": { + "globby": "^4.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==" + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "globby": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", + "integrity": "sha512-JPDtMSr0bt25W64q792rvlrSwIaZwqUAhqdYKSr57Wh/xBcQ5JDWLM85ndn+Q1WdBQXLb9YGCl0QN/T0HpqU0A==", + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^6.0.1", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "requires": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + } + }, + "http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "requires": { + "@types/node": "^10.0.3" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + } + } + }, + "https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "requires": { + "agent-base": "5", + "debug": "4" + }, + "dependencies": { + "agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==" + } + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==" + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mockery": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "requires": { + "pinkie": "^2.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "requires": { + "asap": "~2.0.6" + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "requires": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + } + }, + "sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "requires": { + "get-port": "^3.1.0" + } + }, + "then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "requires": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "dependencies": { + "@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + } + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "tslib": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", + "integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "typed-rest-client": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.4.tgz", + "integrity": "sha512-MyfKKYzk3I6/QQp6e1T50py4qg+c+9BzOEl2rBmQIpStwNUoqQ73An+Tkfy9YuV7O+o2mpVVJpe+fH//POZkbg==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true + }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "xml2js": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.13.tgz", + "integrity": "sha512-BoxD65qWA2p4znzbaati/Td19uFEc0X6ydj0bFphJO62RrNaGqOyW6ljLWPo3GKDbvW/6dnxAoRX01BsgEWsMA==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": ">=2.4.6" + } + }, + "xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" + } + } +} diff --git a/Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/package.json b/Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/package.json new file mode 100644 index 000000000000..7cad3c76a887 --- /dev/null +++ b/Tasks/AzureFunctionOnKubernetesV1/_buildConfigs/Node16/package.json @@ -0,0 +1,30 @@ +{ + "name": "azurefunctiononkubernetes", + "version": "1.0.0", + "description": "Deploy Azure Function on Kubernetes", + "main": "src//run.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" + }, + "bugs": { + "url": "https://github.com/microsoft/azure-pipelines-tasks/issues" + }, + "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", + "devDependencies": { + "typescript": "4.0.2" + }, + "dependencies": { + "@types/mocha": "^5.2.7", + "@types/node": "^16.11.39", + "@types/q": "^1.5.0", + "@types/uuid": "^9.0.0", + "azure-pipelines-task-lib": "^4.4.0", + "agent-base": "^6.0.2", + "azure-pipelines-tasks-azure-arm-rest": "3.223.4", + "azure-pipelines-tasks-docker-common": "^2.211.0", + "azure-pipelines-tasks-kubernetes-common": "^2.224.1", + "azure-pipelines-tool-lib": "^2.0.0-preview", + "js-yaml": "3.13.1" + } +} diff --git a/Tasks/AzureFunctionOnKubernetesV1/src/utils/commandHelper.ts b/Tasks/AzureFunctionOnKubernetesV1/src/utils/commandHelper.ts index c7739a0f6aeb..fe60149578b8 100644 --- a/Tasks/AzureFunctionOnKubernetesV1/src/utils/commandHelper.ts +++ b/Tasks/AzureFunctionOnKubernetesV1/src/utils/commandHelper.ts @@ -30,8 +30,12 @@ export class CommandHelper { if (!registry) { tl.debug('Neither dockerHubNamespace is provided nor found registry info from Docker login. The deployment will fail.'); } - +#if NODE16 + // dirty hack for node 16 because kubernetes-common usu task-lib version 3 and node16 version of the task uses task-lib v4 now so types are incompatible + return FuncKubernetesUtility.getFuncDeployCommand(this.funcPath, secretName, appName, namespace, null, registry, pullSecretName, args) as unknown as tr.ToolRunner; +#else return FuncKubernetesUtility.getFuncDeployCommand(this.funcPath, secretName, appName, namespace, null, registry, pullSecretName, args); +#endif } public getCreateDockerRegistrySecretCommand(secretName: string, namespace: string): tr.ToolRunner { diff --git a/Tasks/AzureFunctionOnKubernetesV1/task.json b/Tasks/AzureFunctionOnKubernetesV1/task.json index 6068c028ea47..67f0e8939067 100644 --- a/Tasks/AzureFunctionOnKubernetesV1/task.json +++ b/Tasks/AzureFunctionOnKubernetesV1/task.json @@ -1,194 +1,194 @@ { - "id": "FD1AA5B9-400C-4F4B-9C0B-069BA74E53C6", - "name": "AzureFunctionOnKubernetes", - "friendlyName": "Azure Function on Kubernetes", - "description": "Deploy Azure function to Kubernetes cluster.", - "helpUrl": "https://aka.ms/func-k8s", - "helpMarkDown": "[Learn more about this task](https://aka.ms/func-k8s) or [see Azure Functions on Kubernetes with KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) or [check out sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", - "category": "Deploy", - "preview": true, - "visibility": [ - "Build", - "Release" - ], - "author": "Microsoft Corporation", - "version": { - "Major": 1, - "Minor": 225, - "Patch": 1 + "id": "FD1AA5B9-400C-4F4B-9C0B-069BA74E53C6", + "name": "AzureFunctionOnKubernetes", + "friendlyName": "Azure Function on Kubernetes", + "description": "Deploy Azure function to Kubernetes cluster.", + "helpUrl": "https://aka.ms/func-k8s", + "helpMarkDown": "[Learn more about this task](https://aka.ms/func-k8s) or [see Azure Functions on Kubernetes with KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) or [check out sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "category": "Deploy", + "preview": true, + "visibility": [ + "Build", + "Release" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 1, + "Minor": 226, + "Patch": 1 + }, + "demands": [], + "groups": [ + { + "name": "serviceConnections", + "displayName": "Service Connections", + "isExpanded": true }, - "demands": [], - "groups": [ - { - "name": "serviceConnections", - "displayName": "Service Connections", - "isExpanded": true - }, - { - "name": "commands", - "displayName": "Commands", - "isExpanded": true - } - ], - "inputs": [ - { - "name": "connectionType", - "type": "pickList", - "label": "Service connection type", - "defaultValue": "Kubernetes Service Connection", - "required": true, - "options": { - "Azure Resource Manager": "Azure Resource Manager", - "Kubernetes Service Connection": "Kubernetes Service Connection" - }, - "groupName": "serviceConnections", - "helpMarkDown": "Select a Kubernetes service connection type." - }, - { - "name": "dockerRegistryServiceConnection", - "type": "connectedService:dockerregistry", - "label": "Docker registry service connection", - "required": true, - "groupName": "serviceConnections", - "helpMarkDown": "Select a Docker registry service connection." - }, - { - "name": "kubernetesServiceEndpoint", - "aliases": [ - "kubernetesServiceConnection" - ], - "type": "connectedService:kubernetes", - "label": "Kubernetes service connection", - "visibleRule": "connectionType = Kubernetes Service Connection", - "required": true, - "groupName": "serviceConnections", - "helpMarkDown": "Select a Kubernetes service connection." - }, - { - "name": "azureSubscriptionEndpoint", - "aliases": [ - "azureSubscriptionConnection" - ], - "type": "connectedService:AzureRM", - "label": "Azure subscription", - "helpMarkDown": "Select the Azure Resource Manager subscription, which contains Azure Container Registry.Note: To configure new service connection, select the Azure subscription from the list and click 'Authorize'. If your subscription is not listed or if you want to use an existing Service Principal, you can setup an Azure service connection using 'Add' or 'Manage' button.", - "visibleRule": "connectionType = Azure Resource Manager", - "defaultValue": "", - "groupName": "serviceConnections", - "required": true - }, - { - "name": "azureResourceGroup", - "label": "Resource group", - "type": "pickList", - "helpMarkDown": "Select an Azure resource group.", - "visibleRule": "connectionType = Azure Resource Manager", - "defaultValue": "", - "required": true, - "groupName": "serviceConnections", - "properties": { - "EditableOptions": "True" - } - }, - { - "name": "kubernetesCluster", - "label": "Kubernetes cluster", - "type": "pickList", - "helpMarkDown": "Select an Azure managed cluster.", - "visibleRule": "connectionType = Azure Resource Manager", - "defaultValue": "", - "required": true, - "groupName": "serviceConnections", - "properties": { - "EditableOptions": "True" - } - }, - { - "name": "namespace", - "type": "string", - "label": "Kubernetes namespace", - "groupName": "commands", - "helpMarkDown": "Kubernetes namespace" - }, - { - "name": "secretName", - "type": "string", - "label": "Secret Name", - "groupName": "commands", - "helpMarkDown": "Kubernetes secret containing function config data (for ex. AzureWebJobsStorage: )" - }, - { - "name": "dockerHubNamespace", - "type": "string", - "label": "Docker Hub namespace", - "groupName": "commands", - "helpMarkDown": "Docker Hub namespace. Required for private Docker Hub repository." - }, - { - "name": "appName", - "type": "string", - "required": true, - "label": "Application Name", - "groupName": "commands", - "helpMarkDown": "Application Name. The Kubernetes objects created use this name. This should follow Kubernetes naming conventions for resource names." - }, - { - "name": "functionRootDirectory", - "type": "filePath", - "label": "Function root directory", - "required": false, - "groupName": "commands", - "helpMarkDown": "Function root directory. Should contain host.json. Docker build and push is performed from this directory." - }, - { - "name": "waitForStability", - "type": "boolean", - "label": "Wait for stability", - "groupName": "commands", - "defaultValue": "true", - "helpMarkDown": "Wait for the Kubernetes objects to reach the desired state." - }, - { - "name": "arguments", - "type": "string", - "label": "Arguments", - "groupName": "commands", - "helpMarkDown": "Pass arguments to command. Ex:
--no-docker --service-type NodePort" - } - ], - "dataSourceBindings": [ - { - "target": "kubernetesCluster", - "endpointId": "$(azureSubscriptionEndpoint)", - "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/resourceGroups/$(azureResourceGroup)/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31", - "resultSelector": "jsonpath:$.value[*]", - "resultTemplate": "{{{name}}}" - }, - { - "target": "azureResourceGroup", - "endpointId": "$(azureSubscriptionEndpoint)", - "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31", - "resultSelector": "jsonpath:$.value[*]", - "resultTemplate": "{{{ #extractResource id resourcegroups}}}" - } - ], - "instanceNameFormat": "Func on K8s - deploy", - "execution": { - "Node10": { - "target": "src//run.js" - } + { + "name": "commands", + "displayName": "Commands", + "isExpanded": true + } + ], + "inputs": [ + { + "name": "connectionType", + "type": "pickList", + "label": "Service connection type", + "defaultValue": "Kubernetes Service Connection", + "required": true, + "options": { + "Azure Resource Manager": "Azure Resource Manager", + "Kubernetes Service Connection": "Kubernetes Service Connection" + }, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Kubernetes service connection type." + }, + { + "name": "dockerRegistryServiceConnection", + "type": "connectedService:dockerregistry", + "label": "Docker registry service connection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Docker registry service connection." + }, + { + "name": "kubernetesServiceEndpoint", + "aliases": [ + "kubernetesServiceConnection" + ], + "type": "connectedService:kubernetes", + "label": "Kubernetes service connection", + "visibleRule": "connectionType = Kubernetes Service Connection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Kubernetes service connection." + }, + { + "name": "azureSubscriptionEndpoint", + "aliases": [ + "azureSubscriptionConnection" + ], + "type": "connectedService:AzureRM", + "label": "Azure subscription", + "helpMarkDown": "Select the Azure Resource Manager subscription, which contains Azure Container Registry.Note: To configure new service connection, select the Azure subscription from the list and click 'Authorize'. If your subscription is not listed or if you want to use an existing Service Principal, you can setup an Azure service connection using 'Add' or 'Manage' button.", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "groupName": "serviceConnections", + "required": true + }, + { + "name": "azureResourceGroup", + "label": "Resource group", + "type": "pickList", + "helpMarkDown": "Select an Azure resource group.", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "required": true, + "groupName": "serviceConnections", + "properties": { + "EditableOptions": "True" + } + }, + { + "name": "kubernetesCluster", + "label": "Kubernetes cluster", + "type": "pickList", + "helpMarkDown": "Select an Azure managed cluster.", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "required": true, + "groupName": "serviceConnections", + "properties": { + "EditableOptions": "True" + } + }, + { + "name": "namespace", + "type": "string", + "label": "Kubernetes namespace", + "groupName": "commands", + "helpMarkDown": "Kubernetes namespace" + }, + { + "name": "secretName", + "type": "string", + "label": "Secret Name", + "groupName": "commands", + "helpMarkDown": "Kubernetes secret containing function config data (for ex. AzureWebJobsStorage: )" }, - "messages": { - "AllContainersNotInReadyState": "All the containers are not in a ready state.", - "CouldNotDeterminePodStatus": "Could not determine the pod's status due to the error: %s", - "CouldNotDetermineServiceStatus": "Could not determine the service %s status due to the error: %s", - "FileContentSynced": "Synced the file content to the disk. The content is %s.", - "KubectlClientVersion": "Kubectl Client Version", - "KubectlServerVersion": "Kubectl Server Version", - "KubernetesClusterResourceGroup": "Kubernetes cluster %s, resource group %s.", - "NoDataWrittenOnFile": "No data was written into the file %s", - "ServiceExternalIP": "service %s external IP is %s", - "WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s", - "KubeloginFailed": "Kubelogin authentication failed. Exception: %s" + { + "name": "dockerHubNamespace", + "type": "string", + "label": "Docker Hub namespace", + "groupName": "commands", + "helpMarkDown": "Docker Hub namespace. Required for private Docker Hub repository." + }, + { + "name": "appName", + "type": "string", + "required": true, + "label": "Application Name", + "groupName": "commands", + "helpMarkDown": "Application Name. The Kubernetes objects created use this name. This should follow Kubernetes naming conventions for resource names." + }, + { + "name": "functionRootDirectory", + "type": "filePath", + "label": "Function root directory", + "required": false, + "groupName": "commands", + "helpMarkDown": "Function root directory. Should contain host.json. Docker build and push is performed from this directory." + }, + { + "name": "waitForStability", + "type": "boolean", + "label": "Wait for stability", + "groupName": "commands", + "defaultValue": "true", + "helpMarkDown": "Wait for the Kubernetes objects to reach the desired state." + }, + { + "name": "arguments", + "type": "string", + "label": "Arguments", + "groupName": "commands", + "helpMarkDown": "Pass arguments to command. Ex:
--no-docker --service-type NodePort" + } + ], + "dataSourceBindings": [ + { + "target": "kubernetesCluster", + "endpointId": "$(azureSubscriptionEndpoint)", + "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/resourceGroups/$(azureResourceGroup)/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31", + "resultSelector": "jsonpath:$.value[*]", + "resultTemplate": "{{{name}}}" + }, + { + "target": "azureResourceGroup", + "endpointId": "$(azureSubscriptionEndpoint)", + "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31", + "resultSelector": "jsonpath:$.value[*]", + "resultTemplate": "{{{ #extractResource id resourcegroups}}}" + } + ], + "instanceNameFormat": "Func on K8s - deploy", + "execution": { + "Node10": { + "target": "src//run.js" } + }, + "messages": { + "AllContainersNotInReadyState": "All the containers are not in a ready state.", + "CouldNotDeterminePodStatus": "Could not determine the pod's status due to the error: %s", + "CouldNotDetermineServiceStatus": "Could not determine the service %s status due to the error: %s", + "FileContentSynced": "Synced the file content to the disk. The content is %s.", + "KubectlClientVersion": "Kubectl Client Version", + "KubectlServerVersion": "Kubectl Server Version", + "KubernetesClusterResourceGroup": "Kubernetes cluster %s, resource group %s.", + "NoDataWrittenOnFile": "No data was written into the file %s", + "ServiceExternalIP": "service %s external IP is %s", + "WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s", + "KubeloginFailed": "Kubelogin authentication failed. Exception: %s" + } } \ No newline at end of file diff --git a/Tasks/AzureFunctionOnKubernetesV1/task.loc.json b/Tasks/AzureFunctionOnKubernetesV1/task.loc.json index 72c355a37b9c..e564eaf784cf 100644 --- a/Tasks/AzureFunctionOnKubernetesV1/task.loc.json +++ b/Tasks/AzureFunctionOnKubernetesV1/task.loc.json @@ -14,7 +14,7 @@ "author": "Microsoft Corporation", "version": { "Major": 1, - "Minor": 225, + "Minor": 226, "Patch": 1 }, "demands": [], diff --git a/_generated/AzureFunctionOnKubernetesV0.versionmap.txt b/_generated/AzureFunctionOnKubernetesV0.versionmap.txt new file mode 100644 index 000000000000..c351518ddfe4 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0.versionmap.txt @@ -0,0 +1,2 @@ +Default|0.226.1 +Node16-225|0.226.0 diff --git a/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/de-DE/resources.resjson b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/de-DE/resources.resjson new file mode 100644 index 000000000000..eae68440ff61 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/de-DE/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Azure Functions in Kubernetes", + "loc.helpMarkDown": "[Weitere Informationen zu dieser Aufgabe](https://aka.ms/func-k8s) oder [Azure Functions in Kubernetes mit KEDA](https://docs.microsoft.com/de-de/azure/azure-functions/functions-kubernetes-keda) oder [\"sample-hello-world-azure-functions\" anzeigen](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Stellen Sie eine Azure-Funktion im Kubernetes-Cluster bereit.", + "loc.instanceNameFormat": "Functions in Kubernetes – bereitstellen", + "loc.group.displayName.serviceConnections": "Dienstverbindungen", + "loc.group.displayName.commands": "Befehle", + "loc.input.label.dockerRegistryServiceConnection": "Dienstverbindung für Docker-Registrierung", + "loc.input.help.dockerRegistryServiceConnection": "Wählen Sie eine Dienstverbindung für die Docker-Registrierung aus.", + "loc.input.label.kubernetesServiceConnection": "Kubernetes-Dienstverbindung", + "loc.input.help.kubernetesServiceConnection": "Wählen Sie eine Kubernetes-Dienstverbindung aus.", + "loc.input.label.namespace": "Kubernetes-Namespace", + "loc.input.help.namespace": "Kubernetes-Namespace", + "loc.input.label.secretName": "Name des Geheimnisses", + "loc.input.help.secretName": "Kubernetes-Geheimnis mit Konfigurationsdaten für die Funktion (Beispiel: AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub-Namespace", + "loc.input.help.dockerHubNamespace": "Docker Hub-Namespace. Erforderlich für ein privates Docker Hub-Repository.", + "loc.input.label.appName": "Anwendungsname", + "loc.input.help.appName": "Anwendungsname. Die erstellten Kubernetes-Objekte verwenden diesen Namen. Der Name sollte den Kubernetes-Namenskonventionen für Ressourcen folgen.", + "loc.input.label.functionRootDirectory": "Stammverzeichnis der Funktion", + "loc.input.help.functionRootDirectory": "Stammverzeichnis für Funktionen. Sollte \"host.json\" enthalten. Docker-Build- und -Pushvorgänge werden von diesem Verzeichnis aus ausgeführt.", + "loc.input.label.waitForStability": "Auf stabilen Zustand warten", + "loc.input.help.waitForStability": "Warten Sie, bis die Kubernetes-Objekte den gewünschten Zustand erreicht haben.", + "loc.input.label.arguments": "Argumente", + "loc.input.help.arguments": "Übergeben Sie Argumente an den Befehl. Beispiel:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Keiner der Container befindet sich im Zustand \"Bereit\".", + "loc.messages.CouldNotDeterminePodStatus": "Der Podstatus konnte aufgrund des folgenden Fehlers nicht bestimmt werden: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Der Status des Diensts \"%s\" konnte aufgrund des folgenden Fehlers nicht bestimmt werden: %s", + "loc.messages.FileContentSynced": "Der Inhalt der Datei wurde auf dem Datenträger synchronisiert. Der Inhalt ist \"%s\".", + "loc.messages.KubectlClientVersion": "Kubectl-Clientversion", + "loc.messages.KubectlServerVersion": "Kubectl-Serverversion", + "loc.messages.NoDataWrittenOnFile": "In die Datei \"%s\" wurden keine Daten geschrieben. ", + "loc.messages.ServiceExternalIP": "Die externe IP-Adresse für den Dienst \"%s\" lautet %s.", + "loc.messages.WritingDockerConfigToTempFile": "Die Docker-Konfiguration wird in eine temporäre Datei geschrieben. Dateipfad: %s, Docker-Konfiguration: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/en-US/resources.resjson b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/en-US/resources.resjson new file mode 100644 index 000000000000..82357b719a35 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/en-US/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Azure Function on Kubernetes", + "loc.helpMarkDown": "[Learn more about this task](https://aka.ms/func-k8s) or [see Azure Functions on Kubernetes with KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) or [check out sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Deploy Azure function to Kubernetes cluster.", + "loc.instanceNameFormat": "Func on K8s - deploy", + "loc.group.displayName.serviceConnections": "Service Connections", + "loc.group.displayName.commands": "Commands", + "loc.input.label.dockerRegistryServiceConnection": "Docker registry service connection", + "loc.input.help.dockerRegistryServiceConnection": "Select a Docker registry service connection.", + "loc.input.label.kubernetesServiceConnection": "Kubernetes service connection", + "loc.input.help.kubernetesServiceConnection": "Select a Kubernetes service connection.", + "loc.input.label.namespace": "Kubernetes namespace", + "loc.input.help.namespace": "Kubernetes namespace", + "loc.input.label.secretName": "Secret Name", + "loc.input.help.secretName": "Kubernetes secret containing function config data (for ex. AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub namespace", + "loc.input.help.dockerHubNamespace": "Docker Hub namespace. Required for private Docker Hub repository.", + "loc.input.label.appName": "Application Name", + "loc.input.help.appName": "Application Name. The Kubernetes objects created use this name. This should follow Kubernetes naming conventions for resource names.", + "loc.input.label.functionRootDirectory": "Function root directory", + "loc.input.help.functionRootDirectory": "Function root directory. Should contain host.json. Docker build and push is performed from this directory.", + "loc.input.label.waitForStability": "Wait for stability", + "loc.input.help.waitForStability": "Wait for the Kubernetes objects to reach the desired state.", + "loc.input.label.arguments": "Arguments", + "loc.input.help.arguments": "Pass arguments to command. Ex:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "All the containers are not in a ready state.", + "loc.messages.CouldNotDeterminePodStatus": "Could not determine the pod's status due to the error: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Could not determine the service %s status due to the error: %s", + "loc.messages.FileContentSynced": "Synced the file content to the disk. The content is %s.", + "loc.messages.KubectlClientVersion": "Kubectl Client Version", + "loc.messages.KubectlServerVersion": "Kubectl Server Version", + "loc.messages.NoDataWrittenOnFile": "No data was written into the file %s", + "loc.messages.ServiceExternalIP": "service %s external IP is %s", + "loc.messages.WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/es-ES/resources.resjson b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/es-ES/resources.resjson new file mode 100644 index 000000000000..9462cfc4cc93 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/es-ES/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Función de Azure en Kubernetes", + "loc.helpMarkDown": "[Obtener más información acerca de esta tarea](https://aka.ms/func-k8s), [consultar Azure Functions en Kubernetes con KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) o [consultar sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Implementa la función de Azure en el clúster de Kubernetes.", + "loc.instanceNameFormat": "Función en Kubernetes: implementar", + "loc.group.displayName.serviceConnections": "Conexiones de servicio", + "loc.group.displayName.commands": "Comandos", + "loc.input.label.dockerRegistryServiceConnection": "Conexión de servicio del registro de Docker", + "loc.input.help.dockerRegistryServiceConnection": "Seleccione una conexión del servicio de registro de Docker.", + "loc.input.label.kubernetesServiceConnection": "Conexión de servicio de Kubernetes", + "loc.input.help.kubernetesServiceConnection": "Seleccione una conexión del servicio de Kubernetes.", + "loc.input.label.namespace": "Espacio de nombres de Kubernetes", + "loc.input.help.namespace": "Espacio de nombres de Kubernetes", + "loc.input.label.secretName": "Nombre del secreto", + "loc.input.help.secretName": "Secreto de Kubernetes que contiene los datos de configuración de la función (por ejemplo, AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Espacio de nombres de Docker Hub", + "loc.input.help.dockerHubNamespace": "Espacio de nombres de Docker Hub. Se requiere para el repositorio privado de Docker Hub.", + "loc.input.label.appName": "Nombre de la aplicación", + "loc.input.help.appName": "Nombre de la aplicación. Los objetos de Kubernetes creados usan este nombre, que debe seguir las convenciones de nomenclatura de Kubernetes para los nombres de recurso.", + "loc.input.label.functionRootDirectory": "Directorio raíz de la función", + "loc.input.help.functionRootDirectory": "Directorio raíz de la función; debe contener host.json. La compilación e inserción de Docker se realizan desde este directorio.", + "loc.input.label.waitForStability": "Esperar estabilidad", + "loc.input.help.waitForStability": "Espere a que los objetos de Kubernetes alcancen el estado deseado.", + "loc.input.label.arguments": "Argumentos", + "loc.input.help.arguments": "Pase argumentos al comando. Ejemplo:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Ninguno de los contenedores está listo.", + "loc.messages.CouldNotDeterminePodStatus": "No se pudo determinar el estado del pod debido al error siguiente: %s", + "loc.messages.CouldNotDetermineServiceStatus": "No se pudo determinar el estado del servicio %s debido al error siguiente: %s", + "loc.messages.FileContentSynced": "Se sincronizó el contenido del archivo con el disco. El contenido es %s.", + "loc.messages.KubectlClientVersion": "Versión del cliente de Kubectl", + "loc.messages.KubectlServerVersion": "Versión del servidor de Kubectl", + "loc.messages.NoDataWrittenOnFile": "No se escribieron datos en el archivo %s", + "loc.messages.ServiceExternalIP": "La dirección IP externa del servicio %s es %s", + "loc.messages.WritingDockerConfigToTempFile": "Escribiendo la configuración de Docker en el archivo temporal. Ruta de acceso del archivo: %s. Configuración de Docker: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/fr-FR/resources.resjson b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/fr-FR/resources.resjson new file mode 100644 index 000000000000..066cf8ca8f88 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/fr-FR/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Azure Functions sur Kubernetes", + "loc.helpMarkDown": "[En savoir plus sur cette tâche](https://aka.ms/func-k8s) ou [consulter Azure Functions sur Kubernetes avec KEDA](https://docs.microsoft.com/fr-fr/azure/azure-functions/functions-kubernetes-keda) ou [consulter sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Déployez Azure Functions sur un cluster Kubernetes.", + "loc.instanceNameFormat": "Fonction sur Kubernetes - Déployer", + "loc.group.displayName.serviceConnections": "Connexions de service", + "loc.group.displayName.commands": "Commandes", + "loc.input.label.dockerRegistryServiceConnection": "Connexion de service de registre Docker", + "loc.input.help.dockerRegistryServiceConnection": "Sélectionnez une connexion de service de registre Docker.", + "loc.input.label.kubernetesServiceConnection": "Connexion de service Kubernetes", + "loc.input.help.kubernetesServiceConnection": "Sélectionnez une connexion de service Kubernetes.", + "loc.input.label.namespace": "Espace de noms Kubernetes", + "loc.input.help.namespace": "Espace de noms Kubernetes", + "loc.input.label.secretName": "Nom du secret", + "loc.input.help.secretName": "Secret Kubernetes contenant les données de configuration de fonction (par exemple AzureWebJobsStorage : )", + "loc.input.label.dockerHubNamespace": "Espace de noms Docker Hub", + "loc.input.help.dockerHubNamespace": "Espace de noms Docker Hub. Obligatoire pour le dépôt Docker Hub privé.", + "loc.input.label.appName": "Nom d'application", + "loc.input.help.appName": "Nom d'application. Les objets Kubernetes créés utilisent ce nom. Il doit respecter les conventions de nommage Kubernetes pour les noms de ressources.", + "loc.input.label.functionRootDirectory": "Répertoire racine de la fonction", + "loc.input.help.functionRootDirectory": "Répertoire racine de la fonction. Doit contenir host.json. La build Docker et son envoi (push) sont effectués à partir de ce répertoire.", + "loc.input.label.waitForStability": "Attendre la stabilisation", + "loc.input.help.waitForStability": "Attendez que les objets Kubernetes atteignent l'état souhaité.", + "loc.input.label.arguments": "Arguments", + "loc.input.help.arguments": "Passez les arguments à la commande. Exemple :
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Tous les conteneurs ne sont pas prêts.", + "loc.messages.CouldNotDeterminePodStatus": "Impossible de déterminer l'état du pod en raison de l'erreur %s", + "loc.messages.CouldNotDetermineServiceStatus": "Impossible de déterminer l'état du service %s en raison de l'erreur %s", + "loc.messages.FileContentSynced": "Synchronisation effectuée du contenu du fichier sur le disque. Le contenu est %s.", + "loc.messages.KubectlClientVersion": "Version du client kubectl", + "loc.messages.KubectlServerVersion": "Version du serveur kubectl", + "loc.messages.NoDataWrittenOnFile": "Aucune donnée n'a été écrite dans le fichier %s", + "loc.messages.ServiceExternalIP": "l'adresse IP externe du service %s est %s", + "loc.messages.WritingDockerConfigToTempFile": "Écriture de la configuration Docker dans le fichier temporaire. Chemin de fichier : %s. Configuration Docker : %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/it-IT/resources.resjson b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/it-IT/resources.resjson new file mode 100644 index 000000000000..63c9b9a8ecb3 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/it-IT/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Funzione di Azure in Kubernetes", + "loc.helpMarkDown": "[Altre informazioni su questa attività](https://aka.ms/func-k8s). In alternativa, [vedere Funzioni di Azure in Kubernetes con KEDA](https://docs.microsoft.com/it-it/azure/azure-functions/functions-kubernetes-keda) oppure [sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Distribuisce la funzione di Azure nel cluster Kubernetes.", + "loc.instanceNameFormat": "Funzione in Kubernetes - Distribuisci", + "loc.group.displayName.serviceConnections": "Connessioni al servizio", + "loc.group.displayName.commands": "Comandi", + "loc.input.label.dockerRegistryServiceConnection": "Connessione al servizio Registro Docker", + "loc.input.help.dockerRegistryServiceConnection": "Selezionare una connessione al servizio Registro Docker.", + "loc.input.label.kubernetesServiceConnection": "Connessione al servizio Kubernetes", + "loc.input.help.kubernetesServiceConnection": "Selezionare una connessione al servizio Kubernetes.", + "loc.input.label.namespace": "Spazio dei nomi Kubernetes", + "loc.input.help.namespace": "Spazio dei nomi Kubernetes", + "loc.input.label.secretName": "Nome del segreto", + "loc.input.help.secretName": "Segreto di Kubernetes contenente i dati di configurazione della funzione, ad esempio AzureWebJobsStorage: ", + "loc.input.label.dockerHubNamespace": "Spazio dei nomi di Docker Hub", + "loc.input.help.dockerHubNamespace": "Spazio dei nomi di Docker Hub. È obbligatorio per il repository Docker Hub privato.", + "loc.input.label.appName": "Nome dell'applicazione", + "loc.input.help.appName": "Nome dell'applicazione usato dagli oggetti Kubernetes creati. Deve essere conforme alle convenzioni di denominazione Kubernetes per i nomi di risorsa.", + "loc.input.label.functionRootDirectory": "Directory radice della funzione", + "loc.input.help.functionRootDirectory": "Directory radice della funzione. Deve contenere host.json. I comandi build e push di Docker vengono eseguiti da questa directory.", + "loc.input.label.waitForStability": "Attendi stabilità", + "loc.input.help.waitForStability": "Attende che gli oggetti Kubernetes raggiungano lo stato desiderato.", + "loc.input.label.arguments": "Argomenti", + "loc.input.help.arguments": "Passa gli argomenti al comando. Esempio:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Tutti i contenitori non si trovano in uno stato pronto.", + "loc.messages.CouldNotDeterminePodStatus": "Non è stato possibile determinare lo stato del pod a causa dell'errore: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Non è stato possibile determinare lo stato del servizio %s a causa dell'errore: %s", + "loc.messages.FileContentSynced": "Il contenuto del file è stato sincronizzato con il disco. Il contenuto è %s.", + "loc.messages.KubectlClientVersion": "Versione del client kubectl", + "loc.messages.KubectlServerVersion": "Versione del server kubectl", + "loc.messages.NoDataWrittenOnFile": "Non sono stati scritti dati nel file %s", + "loc.messages.ServiceExternalIP": "l'IP esterno del servizio %s è %s", + "loc.messages.WritingDockerConfigToTempFile": "Scrittura della configurazione di Docker nel file temporaneo. Percorso del file: %s. Configurazione di Docker: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/ja-JP/resources.resjson b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/ja-JP/resources.resjson new file mode 100644 index 000000000000..202e95a58311 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/ja-JP/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Kubernetes 上の Azure 関数", + "loc.helpMarkDown": "[このタスクの詳細を表示](https://aka.ms/func-k8s)、[「KEDA を使用した Kubernetes での Azure Functions」を参照](https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-kubernetes-keda)、または [sample-hello-world-azure-functions を確認](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Azure 関数を Kubernetes クラスターにデプロイします。", + "loc.instanceNameFormat": "K8s の関数 - デプロイ", + "loc.group.displayName.serviceConnections": "サービス接続", + "loc.group.displayName.commands": "コマンド", + "loc.input.label.dockerRegistryServiceConnection": "Docker レジストリ サービス接続", + "loc.input.help.dockerRegistryServiceConnection": "Docker レジストリ サービス接続を選択します。", + "loc.input.label.kubernetesServiceConnection": "Kubernetes サービス接続", + "loc.input.help.kubernetesServiceConnection": "Kubernetes サービス接続を選択します。", + "loc.input.label.namespace": "Kubernetes 名前空間", + "loc.input.help.namespace": "Kubernetes 名前空間", + "loc.input.label.secretName": "シークレット名", + "loc.input.help.secretName": "関数の構成データを含む Kubernetes の Secret (例: AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub の名前空間", + "loc.input.help.dockerHubNamespace": "Docker Hub の名前空間。Docker Hub のプライベート リポジトリでは必須です。", + "loc.input.label.appName": "アプリケーション名", + "loc.input.help.appName": "アプリケーション名。作成された Kubernetes オブジェクトにこの名前が使用されます。これは、リソース名に対する Kubernetes の名前付け規則に従う必要があります。", + "loc.input.label.functionRootDirectory": "関数のルート ディレクトリ", + "loc.input.help.functionRootDirectory": "関数のルート ディレクトリ。host.json が含まれている必要があります。Docker のビルドとプッシュはこのディレクトリから実行されます。", + "loc.input.label.waitForStability": "安定するまで待機する", + "loc.input.help.waitForStability": "Kubernetes オブジェクトが目的の状態になるのを待機します。", + "loc.input.label.arguments": "引数", + "loc.input.help.arguments": "コマンドに引数を渡します。例:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "一部のコンテナーが準備完了の状態ではありません。", + "loc.messages.CouldNotDeterminePodStatus": "ポッドの状態を特定できませんでした。原因のエラー: %s", + "loc.messages.CouldNotDetermineServiceStatus": "サービス %s の状態を特定できませんでした。原因のエラー: %s", + "loc.messages.FileContentSynced": "ファイルの内容がディスクに同期されました。内容は %s です。", + "loc.messages.KubectlClientVersion": "kubectl クライアント バージョン", + "loc.messages.KubectlServerVersion": "kubectl サーバー バージョン", + "loc.messages.NoDataWrittenOnFile": "ファイル %s にデータが書き込まれませんでした", + "loc.messages.ServiceExternalIP": "サービス %s の外部 IP は %s です", + "loc.messages.WritingDockerConfigToTempFile": "Docker 構成を一時ファイルに書き込んでいます。ファイル パス: %s、Docker 構成: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/ko-KR/resources.resjson b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/ko-KR/resources.resjson new file mode 100644 index 000000000000..1e1b247be5ad --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/ko-KR/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Kubernetes의 Azure 함수", + "loc.helpMarkDown": "[이 작업에 대한 자세한 정보](https://aka.ms/func-k8s) 또는 [KEDA가 있는 Kubernetes의 Azure Functions 참조](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) 또는 [sample-hello-world-azure-functions 확인](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Azure 함수를 Kubernetes 클러스터에 배포합니다.", + "loc.instanceNameFormat": "K8s의 함수 - 배포", + "loc.group.displayName.serviceConnections": "서비스 연결", + "loc.group.displayName.commands": "명령", + "loc.input.label.dockerRegistryServiceConnection": "Docker 레지스트리 서비스 연결", + "loc.input.help.dockerRegistryServiceConnection": "Docker 레지스트리 서비스 연결을 선택합니다.", + "loc.input.label.kubernetesServiceConnection": "Kubernetes 서비스 연결", + "loc.input.help.kubernetesServiceConnection": "Kubernetes 서비스 연결을 선택합니다.", + "loc.input.label.namespace": "Kubernetes 네임스페이스", + "loc.input.help.namespace": "Kubernetes 네임스페이스", + "loc.input.label.secretName": "비밀 이름", + "loc.input.help.secretName": "함수 구성 데이터가 포함된 Kubernetes 비밀입니다(예: AzureWebJobsStorage: ).", + "loc.input.label.dockerHubNamespace": "Docker Hub 네임스페이스", + "loc.input.help.dockerHubNamespace": "Docker Hub 네임스페이스입니다. 프라이빗 Docker Hub 리포지토리에 필요합니다.", + "loc.input.label.appName": "애플리케이션 이름", + "loc.input.help.appName": "애플리케이션 이름입니다. 만들어진 Kubernetes 개체가 이 이름을 사용합니다. 이 이름은 리소스 이름에 대한 Kubernetes 명명 규칙을 따라야 합니다.", + "loc.input.label.functionRootDirectory": "함수 루트 디렉터리", + "loc.input.help.functionRootDirectory": "함수 루트 디렉터리입니다. host.json이 포함되어야 합니다. Docker 빌드 및 푸시는 이 디렉터리에서 수행됩니다.", + "loc.input.label.waitForStability": "안정성 대기", + "loc.input.help.waitForStability": "Kubernetes 개체가 원하는 상태에 도달할 때까지 기다립니다.", + "loc.input.label.arguments": "인수", + "loc.input.help.arguments": "명령에 인수를 전달합니다. 예:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "일부 컨테이너만 준비 상태입니다.", + "loc.messages.CouldNotDeterminePodStatus": "오류로 인해 Pod의 상태를 확인할 수 없음: %s", + "loc.messages.CouldNotDetermineServiceStatus": "오류로 인해 서비스 %s 상태를 확인할 수 없음: %s", + "loc.messages.FileContentSynced": "파일 콘텐츠를 디스크에 동기화했습니다. 콘텐츠는 %s입니다.", + "loc.messages.KubectlClientVersion": "Kubectl 클라이언트 버전", + "loc.messages.KubectlServerVersion": "Kubectl 서버 버전", + "loc.messages.NoDataWrittenOnFile": "데이터를 %s 파일에 쓰지 않았습니다.", + "loc.messages.ServiceExternalIP": "서비스 %s 외부 IP가 %s입니다.", + "loc.messages.WritingDockerConfigToTempFile": "임시 파일에 Docker 구성을 쓰는 중입니다. 파일 경로: %s, Docker 구성: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/ru-RU/resources.resjson b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/ru-RU/resources.resjson new file mode 100644 index 000000000000..893ec56b56d7 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/ru-RU/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Функции Azure в Kubernetes", + "loc.helpMarkDown": "[См. дополнительные сведения об этой задаче](https://aka.ms/func-k8s), [сведения об использовании Функций Azure в Kubernetes с KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) или [ознакомьтесь с sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Развертывание функции Azure в кластере Kubernetes.", + "loc.instanceNameFormat": "Функции в Kubernetes — развертывание", + "loc.group.displayName.serviceConnections": "Соединения служб", + "loc.group.displayName.commands": "Команды", + "loc.input.label.dockerRegistryServiceConnection": "Подключение к службе реестра Docker", + "loc.input.help.dockerRegistryServiceConnection": "Выберите подключение к службе реестра Docker.", + "loc.input.label.kubernetesServiceConnection": "Подключение к службе Kubernetes", + "loc.input.help.kubernetesServiceConnection": "Выберите подключение службы Kubernetes.", + "loc.input.label.namespace": "Пространство имен Kubernetes", + "loc.input.help.namespace": "Пространство имен Kubernetes", + "loc.input.label.secretName": "Имя секрета", + "loc.input.help.secretName": "Секрет Kubernetes, содержащий данные конфигурации функции (например, AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Пространство имен Docker Hub", + "loc.input.help.dockerHubNamespace": "Пространство имен Docker Hub. Требуется для частного репозитория Docker Hub.", + "loc.input.label.appName": "Имя приложения", + "loc.input.help.appName": "Имя приложения. Созданные объекты Kubernetes используют это имя. Оно должно соответствовать соглашениям об именовании Kubernetes для имен ресурсов.", + "loc.input.label.functionRootDirectory": "Корневой каталог функции", + "loc.input.help.functionRootDirectory": "Корневой каталог функции. Должен содержать host.json. Сборка и отправка Docker выполняется из этого каталога.", + "loc.input.label.waitForStability": "Дождитесь обеспечения стабильности", + "loc.input.help.waitForStability": "Дождитесь, когда объекты Kubernetes достигнут желаемого состояния.", + "loc.input.label.arguments": "Аргументы", + "loc.input.help.arguments": "Передача аргументов в команду. Пример
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Все контейнеры находятся в состоянии готовности.", + "loc.messages.CouldNotDeterminePodStatus": "Не удалось определить состояние объекта pod из-за ошибки: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Не удалось определить состояние службы %s из-за ошибки: %s", + "loc.messages.FileContentSynced": "Содержимое файла синхронизировано с диском. Содержимое: %s.", + "loc.messages.KubectlClientVersion": "Версия клиента Kubectl", + "loc.messages.KubectlServerVersion": "Версия сервера Kubectl", + "loc.messages.NoDataWrittenOnFile": "Данные не были записаны в файл %s", + "loc.messages.ServiceExternalIP": "служба %s имеет внешний IP-адрес %s", + "loc.messages.WritingDockerConfigToTempFile": "Запись конфигурации Docker во временный файл. Путь к файлу: %s, конфигурация Docker: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/zh-CN/resources.resjson b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/zh-CN/resources.resjson new file mode 100644 index 000000000000..ee06a573ee6b --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/zh-CN/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Kubernetes 上的 Azure 函数", + "loc.helpMarkDown": "[详细了解此任务](https://aka.ms/func-k8s)或[参阅有 KEDA 功能的 Kubernetes 上的 Azure Functions](https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-kubernetes-keda)或[查看 sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "将 Azure 函数部署到 Kubernetes 群集。", + "loc.instanceNameFormat": "K8s 上的 Func - 部署", + "loc.group.displayName.serviceConnections": "服务连接", + "loc.group.displayName.commands": "命令", + "loc.input.label.dockerRegistryServiceConnection": "Docker 注册表服务连接", + "loc.input.help.dockerRegistryServiceConnection": "选择 Docker 注册表服务连接。", + "loc.input.label.kubernetesServiceConnection": "Kubernetes 服务连接", + "loc.input.help.kubernetesServiceConnection": "选择 Kubernetes 服务连接。", + "loc.input.label.namespace": "Kubernetes 命名空间", + "loc.input.help.namespace": "Kubernetes 命名空间", + "loc.input.label.secretName": "机密名称", + "loc.input.help.secretName": "包含函数配置数据的 Kubernetes 机密(例如 AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub 命名空间", + "loc.input.help.dockerHubNamespace": "Docker Hub 命名空间。对于专用 Docker Hub 存储库是必需的。", + "loc.input.label.appName": "应用程序名称", + "loc.input.help.appName": "应用程序名称。创建的 Kubernetes 对象使用此名称。这应遵循 Kubernetes 资源名称命名约定。", + "loc.input.label.functionRootDirectory": "函数根目录", + "loc.input.help.functionRootDirectory": "函数根目录。应包含 host.json。从该目录执行 Docker 生成和推送。", + "loc.input.label.waitForStability": "等待稳定", + "loc.input.help.waitForStability": "等待 Kubernetes 对象达到所需状态。", + "loc.input.label.arguments": "参数", + "loc.input.help.arguments": "将参数传递给命令。例如:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "所有容器均未处于就绪状态。", + "loc.messages.CouldNotDeterminePodStatus": "由于错误 %s,无法确定 Pod 的状态", + "loc.messages.CouldNotDetermineServiceStatus": "由于错误 %s,无法确定服务 %s 状态", + "loc.messages.FileContentSynced": "文件内容已同步到磁盘。内容为 %s。", + "loc.messages.KubectlClientVersion": "Kubectl 客户端版本", + "loc.messages.KubectlServerVersion": "Kubectl 服务器版本", + "loc.messages.NoDataWrittenOnFile": "没有任何数据写入到文件 %s", + "loc.messages.ServiceExternalIP": "服务 %s 外部 IP 为 %s", + "loc.messages.WritingDockerConfigToTempFile": "正在将 Docker 配置写入临时文件。文件路径: %s,Docker 配置: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/zh-TW/resources.resjson b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/zh-TW/resources.resjson new file mode 100644 index 000000000000..89f6e6e36815 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/Strings/resources.resjson/zh-TW/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Kubernetes 上的 Azure 函式", + "loc.helpMarkDown": "[深入了解此工作](https://aka.ms/func-k8s)、[參閱 Kubernetes 上的 Azure Functions 與 KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) 或[查看 sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "將 Azure 函式部署至 Kubernetes 叢集。", + "loc.instanceNameFormat": "K8s 上的函式 - 部署", + "loc.group.displayName.serviceConnections": "服務連線", + "loc.group.displayName.commands": "命令", + "loc.input.label.dockerRegistryServiceConnection": "Docker 登錄服務連線", + "loc.input.help.dockerRegistryServiceConnection": "選取 Docker 登錄服務連線。", + "loc.input.label.kubernetesServiceConnection": "Kubernetes 服務連線", + "loc.input.help.kubernetesServiceConnection": "請選取 Kubernetes 服務連線。", + "loc.input.label.namespace": "Kubernetes 命名空間", + "loc.input.help.namespace": "Kubernetes 命名空間", + "loc.input.label.secretName": "祕密名稱", + "loc.input.help.secretName": "包含函式組態資料的 Kubernetes 祕密 (例如 AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub 命名空間", + "loc.input.help.dockerHubNamespace": "Docker Hub 命名空間。私人 Docker Hub 存放庫的必要項。", + "loc.input.label.appName": "應用程式名稱", + "loc.input.help.appName": "應用程式名稱,用於建立 Kubernetes 物件。此名稱應該遵循 Kubernetes 的資源名稱命名慣例。", + "loc.input.label.functionRootDirectory": "函式根目錄", + "loc.input.help.functionRootDirectory": "函式根目錄,應包含 host.json,用於執行 Docker 建置和推送。", + "loc.input.label.waitForStability": "等候達到穩定", + "loc.input.help.waitForStability": "等候 Kubernetes 物件達到預期的狀態。", + "loc.input.label.arguments": "引數", + "loc.input.help.arguments": "將引數傳遞給命令,例如:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "所有容器皆未處於就緒狀態。", + "loc.messages.CouldNotDeterminePodStatus": "因為發生錯誤,所以無法判斷 Pod 的狀態: %s", + "loc.messages.CouldNotDetermineServiceStatus": "因為發生錯誤,所以無法判斷服務 %s 狀態: %s", + "loc.messages.FileContentSynced": "檔案內容已同步到磁碟。內容為 %s。", + "loc.messages.KubectlClientVersion": "Kubectl 用戶端版本", + "loc.messages.KubectlServerVersion": "Kubectl 伺服器版本", + "loc.messages.NoDataWrittenOnFile": "沒有任何資料寫入檔案 %s", + "loc.messages.ServiceExternalIP": "服務 %s 的外部 IP 是 %s", + "loc.messages.WritingDockerConfigToTempFile": "正在將 Docker 設定寫入暫存檔案。檔案路徑: %s,Docker 設定: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/Tests/L0.ts b/_generated/AzureFunctionOnKubernetesV0/Tests/L0.ts new file mode 100644 index 000000000000..33f06fb20602 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/Tests/L0.ts @@ -0,0 +1,16 @@ +import fs = require('fs'); +import assert = require('assert'); +import path = require('path'); + +describe('AzureFunctionOnKubernetesV1 Suite', function () { + before(() => { + }); + + after(() => { + }); + + it('Does a basic hello world test', function(done: Mocha.Done) { + // TODO - add real tests + done(); + }); +}); diff --git a/_generated/AzureFunctionOnKubernetesV0/Tests/package-lock.json b/_generated/AzureFunctionOnKubernetesV0/Tests/package-lock.json new file mode 100644 index 000000000000..fbc19a0daacc --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/Tests/package-lock.json @@ -0,0 +1,14 @@ +{ + "name": "azure-function-on-kubernetes-tests", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", + "dev": true + } + } +} diff --git a/_generated/AzureFunctionOnKubernetesV0/Tests/package.json b/_generated/AzureFunctionOnKubernetesV0/Tests/package.json new file mode 100644 index 000000000000..acaf22eafcd6 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/Tests/package.json @@ -0,0 +1,22 @@ +{ + "name": "azure-function-on-kubernetes-tests", + "version": "1.0.0", + "description": "Azure Pipelines Azure Function on Kubernetes V0 Task Tests", + "main": "L0.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" + }, + "author": "Microsoft Corporation", + "license": "MIT", + "bugs": { + "url": "https://github.com/Microsoft/azure-pipelines-tasks/issues" + }, + "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", + "devDependencies": { + "@types/mocha": "^5.2.0" + } +} diff --git a/_generated/AzureFunctionOnKubernetesV0/icon.png b/_generated/AzureFunctionOnKubernetesV0/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..76a581b1090d318bb7481195ae1e7b301664cdcf GIT binary patch literal 1373 zcmV-j1)}Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf1oBBlK~z{r#g<)6 zn`IQo|Fn!j!EG?emTYF(U>I2>lrbtWHpR`2883FBPA`mZQDf8_HF}{&FZ@XKO2?cq zolb8IFytloj&4guB;{3prygKrL)_Va%c$ebJ4SPg7@-jtVNbq-8k1g_r)B->2cLZeO( zjRs5y6rZ!ySFe1uML*-iSwrLL+)W2$&8`Iksiw{q{|E5&)8HCY_AniiW94JT?*+D;F!e!f&$OZa zsdBhHeiZOb?<}JfM#vzV_Rqo2uurn88-tAtgRcU^?=c1IOt(k8=HO9`LdGth#MDTQ z%oE^XN-tn!>X`~JN^4uO)@nibGZn~4;k%jz2gFM$nkhQb_;_ikaiM2^>~gahmdPg* zP*M<(TF}NtmLp{}S4)SO#w4O8r(0mX7 z41O9&=K*PyQ@Ly$N;cL;DyLu)ry|e6p05|*CpqaUy!~D&SEIPaA;B`io9|((iPPUl zGA@j8^jh@f6H=|fIyw-%GTE9^XtSJzn~%`q{rcrao%rT4bwY&0+ z@DICvMs8xld1|pPT>SB2+YIbvn?~W#xlVKpOyJ80?KqO3W9UNWz`MUyOvF1y{}?z2Cs zEE;e6eN=0f67_^{uRGO7I&o)hP$X_%R;ruZE^&=76Comwi}B0-%NrL$Y9O40dD%Gs zaIw*|3yjwCTZ_*vj{+OYOkD&fIOQ%pQjE%N99B_?|7UqO=fW6geii#Z0Yr_!65I`p z0H5W3rknuci@>k@_?=J% + + + + + + + + + + + diff --git a/_generated/AzureFunctionOnKubernetesV0/make.json b/_generated/AzureFunctionOnKubernetesV0/make.json new file mode 100644 index 000000000000..db36c49a1f92 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/make.json @@ -0,0 +1,12 @@ +{ + "rm": [ + { + "items": [ + "node_modules/azure-pipelines-tasks-docker-common/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tasks-kubernetes-common/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tool-lib/node_modules/azure-pipelines-task-lib" + ], + "options": "-Rf" + } + ] +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/package-lock.json b/_generated/AzureFunctionOnKubernetesV0/package-lock.json new file mode 100644 index 000000000000..74c383448b48 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/package-lock.json @@ -0,0 +1,737 @@ +{ + "name": "azurefunctiononkubernetes", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "requires": { + "@types/node": "*" + } + }, + "@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "requires": { + "@types/node": "*" + } + }, + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" + }, + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==" + }, + "@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "azure-pipelines-tasks-docker-common": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-docker-common/-/azure-pipelines-tasks-docker-common-2.0.6.tgz", + "integrity": "sha512-Zm8cTQecdvcgFbMTP8ZqKoU9XvM1Ck3CF59BkeaS5C7G0gNZWA4MkJTiC1qESMn8ptK5I33cqcMl7Ja4JtwaJA==", + "requires": { + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.5.4", + "@types/uuid": "^8.3.0", + "azure-pipelines-task-lib": "^3.1.0", + "del": "2.2.0", + "q": "1.4.1" + }, + "dependencies": { + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==" + } + } + }, + "azure-pipelines-tasks-kubernetes-common": { + "version": "2.220.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-kubernetes-common/-/azure-pipelines-tasks-kubernetes-common-2.220.0.tgz", + "integrity": "sha512-20BEQl8Pu9MZQSSQ/7ITLRGW7tR3UoK5yx252iffBJpf8tjC63kRWhFHWGehvPFLZU+bSENDKsYBigvKRFSobA==", + "requires": { + "@types/mocha": "5.2.7", + "@types/node": "10.17.0", + "@types/uuid": "8.3.0", + "azure-pipelines-task-lib": "^3.1.0", + "azure-pipelines-tool-lib": "^1.0.2", + "js-yaml": "3.13.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.0.tgz", + "integrity": "sha512-wuJwN2KV4tIRz1bu9vq5kSPasJ8IsEjZaP1ZR7KlmdUZvGF/rXy8DmXOVwUD0kAtvtJ7aqMKPqUXC0NUTDbrDg==" + }, + "@types/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==" + } + } + }, + "azure-pipelines-tool-lib": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/azure-pipelines-tool-lib/-/azure-pipelines-tool-lib-1.3.2.tgz", + "integrity": "sha512-PtYcd3E2ouwZhLuaOpWA00FYoLjRuJs1V8mNu3u6lBnqeYd4jh/8VL/of6nchm8f2NM6Div+EEnbOcmWvcptPg==", + "requires": { + "@types/semver": "^5.3.0", + "@types/uuid": "^3.4.5", + "azure-pipelines-task-lib": "^3.1.10", + "semver": "^5.7.0", + "semver-compare": "^1.0.0", + "typed-rest-client": "^1.8.6", + "uuid": "^3.3.2" + }, + "dependencies": { + "@types/uuid": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.10.tgz", + "integrity": "sha512-BgeaZuElf7DEYZhWYDTc/XcLZXdVgFkVSTa13BqKvbnmUrxr3TJFKofUxCtDO9UQOdhnV+HPOESdHiHKZOJV1A==" + } + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "del": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.0.tgz", + "integrity": "sha512-AZDiRb78EEGYCsAZTG3v+CM5q8J0BIs+wI7QeUtyosm+zIMm4XSmp6aI/K7cU9l+YaKpDKN9dYP1xTrNjLQ+LA==", + "requires": { + "globby": "^4.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==" + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "globby": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", + "integrity": "sha512-JPDtMSr0bt25W64q792rvlrSwIaZwqUAhqdYKSr57Wh/xBcQ5JDWLM85ndn+Q1WdBQXLb9YGCl0QN/T0HpqU0A==", + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^6.0.1", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "requires": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + } + }, + "http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "requires": { + "@types/node": "^10.0.3" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "requires": { + "has": "^1.0.3" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==" + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mockery": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "requires": { + "pinkie": "^2.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "requires": { + "asap": "~2.0.6" + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + }, + "qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "requires": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + } + }, + "sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "requires": { + "get-port": "^3.1.0" + } + }, + "then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "requires": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "dependencies": { + "@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + } + } + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "typed-rest-client": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.9.tgz", + "integrity": "sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true + }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + } + } +} diff --git a/_generated/AzureFunctionOnKubernetesV0/package.json b/_generated/AzureFunctionOnKubernetesV0/package.json new file mode 100644 index 000000000000..c93967aa6714 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/package.json @@ -0,0 +1,27 @@ +{ + "name": "azurefunctiononkubernetes", + "version": "1.0.0", + "description": "Deploy Azure Function on Kubernetes", + "main": "src//run.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" + }, + "bugs": { + "url": "https://github.com/microsoft/azure-pipelines-tasks/issues" + }, + "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", + "devDependencies": { + "typescript": "4.0.2" + }, + "dependencies": { + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "^1.5.0", + "@types/uuid": "^8.3.0", + "azure-pipelines-task-lib": "^3.3.1", + "azure-pipelines-tasks-docker-common": "2.0.6", + "azure-pipelines-tasks-kubernetes-common": "^2.212.0", + "js-yaml": "3.13.1" + } +} diff --git a/_generated/AzureFunctionOnKubernetesV0/src/deploy.ts b/_generated/AzureFunctionOnKubernetesV0/src/deploy.ts new file mode 100644 index 000000000000..29a5175ae62a --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/src/deploy.ts @@ -0,0 +1,121 @@ +'use strict'; + +import * as yaml from 'js-yaml'; +import * as tl from 'azure-pipelines-task-lib/task'; +import * as tr from "azure-pipelines-task-lib/toolrunner"; +import { CommandHelper } from './utils/commandHelper'; +import { DockerConnection } from './dockerConnection'; +import { Kubectl, Resource } from 'azure-pipelines-tasks-kubernetes-common/kubectl-object-model'; +import * as FileHelper from './utils/fileHelper'; +import * as KubernetesConstants from 'azure-pipelines-tasks-kubernetes-common/kubernetesconstants'; +import * as KubernetesManifestUtility from 'azure-pipelines-tasks-kubernetes-common/kubernetesmanifestutility'; +import * as CommonUtils from 'azure-pipelines-tasks-kubernetes-common/utility'; + +const secretName = tl.getInput('secretName'); +const appName = tl.getInput('appName', true); +const namespace = getKubernetesNamespace(); +const dockerHubNamespace = tl.getInput('dockerHubNamespace'); +const args = tl.getInput('arguments'); +const funcRootDir = tl.getInput('functionRootDirectory', true); +const waitForStability = tl.getBoolInput('waitForStability'); +const isDryRun = (args && args.includes('--dry-run')) ? true : false; + +export async function deploy(commandHelper: CommandHelper, dockerConnection: DockerConnection) { + let pullSecretName: string = ''; + if (!isDryRun) { + // create pull secret if it is not dry-run + pullSecretName = createImagePullSecret(commandHelper); + } + + // invoke func kubernetes deploy + funcDeploy(commandHelper, dockerConnection, pullSecretName); + + if (!isDryRun) { + // get Kubernetes resources (as YAML) created by deployment + const kubernetesResourcesYaml = getKubernetesResourcesYaml(commandHelper, dockerConnection, pullSecretName); + + // annotate the resources + annotateKubernetesResources(commandHelper, kubernetesResourcesYaml); + + if (waitForStability) { + // wait for deployment to get stable + const kubernetesResources = getResourcesFromYaml(kubernetesResourcesYaml, KubernetesConstants.deploymentTypes); + await checkManifestStability(commandHelper, kubernetesResources); + } + } +} + +function createImagePullSecret(commandHelper: CommandHelper): string { + let pullSecretName = `${appName}-imagepullsecret`; + const createPullSecretCommand = commandHelper.getCreateDockerRegistrySecretCommand(pullSecretName, namespace); + if (createPullSecretCommand) { + const deleteSecretCommand = commandHelper.getDeleteSecretCommand(pullSecretName, namespace); + // while deleting, error is thrown if the secret is not present. Ignore the error. + commandHelper.execCommand(deleteSecretCommand, { failOnStdErr: false, ignoreReturnCode: true} as tr.IExecOptions, true); + commandHelper.execCommand(createPullSecretCommand); + const kubectl = new Kubectl(commandHelper.kubectlPath, namespace); + kubectl.annotate('secret', pullSecretName, KubernetesConstants.pipelineAnnotations); + } + else { + // no secret created if no Docker login is found. Case when user wants to use a public image. + pullSecretName = ''; + } + + return pullSecretName; +} + +function funcDeploy(commandHelper: CommandHelper, dockerConnection: DockerConnection, pullSecretName: string) { + const funcDeployCommand = commandHelper.getFuncDeployCommand(dockerConnection, secretName, appName, namespace, dockerHubNamespace, pullSecretName, args); + commandHelper.execCommand(funcDeployCommand, { cwd: funcRootDir } as tr.IExecOptions); +} + +function annotateKubernetesResources(commandHelper: CommandHelper, resourcesYaml: string) { + const funcKubernetesTemplatesPath = FileHelper.getFuncKubernetesYamlPath(); + FileHelper.writeContentToFile(funcKubernetesTemplatesPath, resourcesYaml); + const kubectl = new Kubectl(commandHelper.kubectlPath, namespace); + const annotateResults = kubectl.annotateFiles(funcKubernetesTemplatesPath, KubernetesConstants.pipelineAnnotations, true); + CommonUtils.checkForErrors([annotateResults]); +} + +async function checkManifestStability(commandHelper: CommandHelper, resources: Resource[]) { + const kubectl = new Kubectl(commandHelper.kubectlPath, namespace); + await KubernetesManifestUtility.checkManifestStability(kubectl, resources); +} + +function getKubernetesResourcesYaml(commandHelper: CommandHelper, dockerConnection, pullSecretName: string): string { + let resourcesYaml = null; + const argsWithDryRun = args ? args.concat(' --dry-run') : '--dry-run'; + const funcDeployDryRunCommand = commandHelper.getFuncDeployCommand(dockerConnection, secretName, appName, namespace, dockerHubNamespace, pullSecretName, argsWithDryRun); + const result: tr.IExecSyncResult = commandHelper.execCommand(funcDeployDryRunCommand, { cwd: funcRootDir } as tr.IExecOptions); + resourcesYaml = result.stdout; + + return resourcesYaml; +} + +function getResourcesFromYaml(yamlContent: string, filterResourceTypes: string[]): Resource[] { + const resources: Resource[] = []; + yaml.safeLoadAll(yamlContent, function (inputObject) { + const inputObjectKind: string = inputObject ? inputObject.kind : ''; + if (inputObjectKind && filterResourceTypes.filter(type => inputObjectKind.toLowerCase() === type.toLowerCase()).length > 0) { + const resource = { + type: inputObject.kind, + name: inputObject.metadata.name + }; + resources.push(resource); + } + }); + + return resources; +} + +function getKubernetesNamespace(): string { + let namespace = tl.getInput('namespace'); + if (!namespace) { + const kubeConnection = tl.getInput('kubernetesServiceConnection', false); + if (kubeConnection) { + namespace = tl.getEndpointDataParameter(kubeConnection, 'namespace', true); + } + } + + return namespace; +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/src/dockerConnection.ts b/_generated/AzureFunctionOnKubernetesV0/src/dockerConnection.ts new file mode 100644 index 000000000000..2cad6ef33a70 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/src/dockerConnection.ts @@ -0,0 +1,40 @@ +import * as url from "url"; +import * as tl from 'azure-pipelines-task-lib/task'; +import * as ImageUtils from "azure-pipelines-tasks-docker-common/containerimageutils"; +import ContainerConnection from "azure-pipelines-tasks-docker-common/containerconnection"; +import RegistryAuthenticationToken from "azure-pipelines-tasks-docker-common/registryauthenticationprovider/registryauthenticationtoken"; +import { getDockerRegistryEndpointAuthenticationToken } from "azure-pipelines-tasks-docker-common/registryauthenticationprovider/registryauthenticationtoken"; + +export class DockerConnection { + private connection: ContainerConnection; + private registryAuthenticationToken: RegistryAuthenticationToken; + + public open() { + const endpointId = tl.getInput("dockerRegistryServiceConnection", true); + this.registryAuthenticationToken = getDockerRegistryEndpointAuthenticationToken(endpointId); + this.connection = new ContainerConnection(); + this.connection.open(null, this.registryAuthenticationToken); + } + + public getRegistry() { + let registry = ''; + if (this.registryAuthenticationToken) { + const registryUrl = this.registryAuthenticationToken.getLoginServerUrl(); + registry = this.getHostName(registryUrl); + } + + return registry; + } + + public close() { + if (this.connection) { + this.connection.close(); + } + } + + private getHostName(registryUrl: string) { + const uri = url.parse(registryUrl); + const host = !uri.slashes ? uri.href : uri.host; + return host; + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/src/run.ts b/_generated/AzureFunctionOnKubernetesV0/src/run.ts new file mode 100644 index 000000000000..b7bdcc89de5b --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/src/run.ts @@ -0,0 +1,38 @@ +"use strict"; + +import * as path from 'path'; +import * as tl from 'azure-pipelines-task-lib/task'; +import * as utils from './utils/utilities'; +import { deploy } from './deploy'; +import { DockerConnection } from './dockerConnection'; +import { CommandHelper } from './utils/commandHelper'; + +tl.setResourcePath(path.join(__dirname, "..", 'task.json')); + +let telemetry = { + jobId: tl.getVariable('SYSTEM_JOBID') +}; + +console.log("##vso[telemetry.publish area=%s;feature=%s]%s", + "TaskEndpointId", + "AzureFunctionOnKubernetesV0", + JSON.stringify(telemetry)); + +async function run() { + const commandHelper = new CommandHelper(); + const dockerConnection = new DockerConnection(); + const kubernetesConnection = utils.getKubernetesConnection(); + dockerConnection.open(); + kubernetesConnection.open(); + + try { + await deploy(commandHelper, dockerConnection); + } + finally { + kubernetesConnection.close(); + dockerConnection.close(); + } +} + +run() + .catch((error) => tl.setResult(tl.TaskResult.Failed, !!error.message ? error.message : error)); \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/src/utils/commandHelper.ts b/_generated/AzureFunctionOnKubernetesV0/src/utils/commandHelper.ts new file mode 100644 index 000000000000..c1bf100a3b44 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/src/utils/commandHelper.ts @@ -0,0 +1,65 @@ +import * as path from "path"; +import * as tl from "azure-pipelines-task-lib/task"; +import * as tr from "azure-pipelines-task-lib/toolrunner"; +import * as FuncKubernetesUtility from 'azure-pipelines-tasks-kubernetes-common/funckubernetesutility'; +import * as CommonUtils from 'azure-pipelines-tasks-kubernetes-common/utility'; +import { DockerConnection } from "../dockerConnection"; + +export class CommandHelper { + private funcPath: string; + public kubectlPath: string; + + constructor() { + // Find the path of func and kubectl. This will throw if any of them is not present + // and hence the task will fail. + this.funcPath = tl.which('func', true); + this.kubectlPath = tl.which('kubectl', true); + } + + public execCommand(command: any, options?: tr.IExecOptions, warnIfError?: boolean) { + const result: tr.IExecSyncResult = command.execSync(options); + CommonUtils.checkForErrors([result], warnIfError); + return result; + } + + public getFuncDeployCommand(dockerConnection: DockerConnection, secretName: string, appName: string, namespace: string, dockerHubNamespace: string, pullSecretName: string, args: string) { + const registry = dockerHubNamespace ? dockerHubNamespace : dockerConnection.getRegistry(); + + if (!registry) { + tl.debug('Neither dockerHubNamespace is provided nor found registry info from Docker login. The deployment will fail.'); + } + + return FuncKubernetesUtility.getFuncDeployCommand(this.funcPath, secretName, appName, namespace, null, registry, pullSecretName, args); + } + + public getCreateDockerRegistrySecretCommand(secretName: string, namespace: string): tr.ToolRunner { + const dockerConfigDir = tl.getVariable('DOCKER_CONFIG'); + if (dockerConfigDir) { + const command = tl.tool(this.kubectlPath); + const dockerConfigPath = path.join(dockerConfigDir, 'config.json'); + command.arg(['create', 'secret', 'generic']); + command.arg(secretName); + command.arg(`--from-file=.dockerconfigjson=${dockerConfigPath}`); + command.arg('--type=kubernetes.io/dockerconfigjson'); + if (namespace) { + command.arg(['--namespace', namespace]); + } + + return command; + } + else { + tl.debug('Not creating any pull-secret as no Docker login found.'); + return null; + } + } + + public getDeleteSecretCommand(secretName: string, namespace: string): tr.ToolRunner { + const command = tl.tool(this.kubectlPath); + command.arg(['delete', 'secret', secretName]); + if (namespace) { + command.arg(['--namespace', namespace]); + } + + return command; + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/src/utils/fileHelper.ts b/_generated/AzureFunctionOnKubernetesV0/src/utils/fileHelper.ts new file mode 100644 index 000000000000..8d3f7f55468d --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/src/utils/fileHelper.ts @@ -0,0 +1,42 @@ +'use strict'; + +import * as fs from 'fs'; +import * as path from 'path'; +import * as tl from 'azure-pipelines-task-lib/task'; +import * as os from 'os'; + +export function getTempDirectory(): string { + return tl.getVariable('agent.tempDirectory') || os.tmpdir(); +} + +export function ensureDirExists(dirPath: string): void { + if (!fs.existsSync(dirPath)) { + fs.mkdirSync(dirPath); + } +} + +export function getTaskTempDir(): string { + const tempDirectory = getTempDirectory(); + const funcSuffix = 'funckubetask_' + getCurrentTime().toString(); + const userDir = path.join(tempDirectory, funcSuffix); + ensureDirExists(userDir); + + return userDir; +} + +export function writeContentToFile(filePath: string, content: string) { + try { + fs.writeFileSync(filePath, content); + } catch (ex) { + tl.debug('Exception occurred while wrting content to file : ' + content + ' . Exception: ' + ex); + } +} + +export function getFuncKubernetesYamlPath(): string { + const tasktempDir = getTaskTempDir(); + return path.join(tasktempDir, 'resource_templates.yaml'); +} + +function getCurrentTime(): number { + return new Date().getTime(); +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/src/utils/utilities.ts b/_generated/AzureFunctionOnKubernetesV0/src/utils/utilities.ts new file mode 100644 index 000000000000..6251954a2cbe --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/src/utils/utilities.ts @@ -0,0 +1,9 @@ +import * as tl from 'azure-pipelines-task-lib/task'; +import { KubernetesConnection } from 'azure-pipelines-tasks-kubernetes-common/kubernetesconnection'; +import * as FileHelper from './fileHelper'; + +export function getKubernetesConnection(): KubernetesConnection { + const kubernetesServiceConnection = tl.getInput('kubernetesServiceConnection', true); + const connection = new KubernetesConnection(kubernetesServiceConnection, FileHelper.getTaskTempDir()); + return connection; +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/task.json b/_generated/AzureFunctionOnKubernetesV0/task.json new file mode 100644 index 000000000000..8fcc995e375e --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/task.json @@ -0,0 +1,125 @@ +{ + "id": "FD1AA5B9-400C-4F4B-9C0B-069BA74E53C6", + "name": "AzureFunctionOnKubernetes", + "friendlyName": "Azure Function on Kubernetes", + "description": "Deploy Azure function to Kubernetes cluster.", + "helpUrl": "https://aka.ms/func-k8s", + "helpMarkDown": "[Learn more about this task](https://aka.ms/func-k8s) or [see Azure Functions on Kubernetes with KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) or [check out sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "category": "Deploy", + "preview": true, + "visibility": [ + "Build", + "Release" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 0, + "Minor": 226, + "Patch": 1 + }, + "demands": [], + "groups": [ + { + "name": "serviceConnections", + "displayName": "Service Connections", + "isExpanded": true + }, + { + "name": "commands", + "displayName": "Commands", + "isExpanded": true + } + ], + "inputs": [ + { + "name": "dockerRegistryServiceConnection", + "type": "connectedService:dockerregistry", + "label": "Docker registry service connection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Docker registry service connection." + }, + { + "name": "kubernetesServiceConnection", + "type": "connectedService:kubernetes", + "label": "Kubernetes service connection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Kubernetes service connection." + }, + { + "name": "namespace", + "type": "string", + "label": "Kubernetes namespace", + "groupName": "commands", + "helpMarkDown": "Kubernetes namespace" + }, + { + "name": "secretName", + "type": "string", + "label": "Secret Name", + "groupName": "commands", + "helpMarkDown": "Kubernetes secret containing function config data (for ex. AzureWebJobsStorage: )" + }, + { + "name": "dockerHubNamespace", + "type": "string", + "label": "Docker Hub namespace", + "groupName": "commands", + "helpMarkDown": "Docker Hub namespace. Required for private Docker Hub repository." + }, + { + "name": "appName", + "type": "string", + "required": true, + "label": "Application Name", + "groupName": "commands", + "helpMarkDown": "Application Name. The Kubernetes objects created use this name. This should follow Kubernetes naming conventions for resource names." + }, + { + "name": "functionRootDirectory", + "type": "filePath", + "label": "Function root directory", + "required": false, + "groupName": "commands", + "helpMarkDown": "Function root directory. Should contain host.json. Docker build and push is performed from this directory." + }, + { + "name": "waitForStability", + "type": "boolean", + "label": "Wait for stability", + "groupName": "commands", + "defaultValue": "true", + "helpMarkDown": "Wait for the Kubernetes objects to reach the desired state." + }, + { + "name": "arguments", + "type": "string", + "label": "Arguments", + "groupName": "commands", + "helpMarkDown": "Pass arguments to command. Ex:
--no-docker --service-type NodePort" + } + ], + "dataSourceBindings": [], + "instanceNameFormat": "Func on K8s - deploy", + "execution": { + "Node10": { + "target": "src//run.js" + } + }, + "messages": { + "AllContainersNotInReadyState": "All the containers are not in a ready state.", + "CouldNotDeterminePodStatus": "Could not determine the pod's status due to the error: %s", + "CouldNotDetermineServiceStatus": "Could not determine the service %s status due to the error: %s", + "FileContentSynced": "Synced the file content to the disk. The content is %s.", + "KubectlClientVersion": "Kubectl Client Version", + "KubectlServerVersion": "Kubectl Server Version", + "NoDataWrittenOnFile": "No data was written into the file %s", + "ServiceExternalIP": "service %s external IP is %s", + "WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s" + }, + "_buildConfigMapping": { + "Default": "0.226.1", + "Node16-225": "0.226.0" + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/task.loc.json b/_generated/AzureFunctionOnKubernetesV0/task.loc.json new file mode 100644 index 000000000000..86aaf06c2af5 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/task.loc.json @@ -0,0 +1,125 @@ +{ + "id": "FD1AA5B9-400C-4F4B-9C0B-069BA74E53C6", + "name": "AzureFunctionOnKubernetes", + "friendlyName": "ms-resource:loc.friendlyName", + "description": "ms-resource:loc.description", + "helpUrl": "https://aka.ms/func-k8s", + "helpMarkDown": "ms-resource:loc.helpMarkDown", + "category": "Deploy", + "preview": true, + "visibility": [ + "Build", + "Release" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 0, + "Minor": 226, + "Patch": 1 + }, + "demands": [], + "groups": [ + { + "name": "serviceConnections", + "displayName": "ms-resource:loc.group.displayName.serviceConnections", + "isExpanded": true + }, + { + "name": "commands", + "displayName": "ms-resource:loc.group.displayName.commands", + "isExpanded": true + } + ], + "inputs": [ + { + "name": "dockerRegistryServiceConnection", + "type": "connectedService:dockerregistry", + "label": "ms-resource:loc.input.label.dockerRegistryServiceConnection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "ms-resource:loc.input.help.dockerRegistryServiceConnection" + }, + { + "name": "kubernetesServiceConnection", + "type": "connectedService:kubernetes", + "label": "ms-resource:loc.input.label.kubernetesServiceConnection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "ms-resource:loc.input.help.kubernetesServiceConnection" + }, + { + "name": "namespace", + "type": "string", + "label": "ms-resource:loc.input.label.namespace", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.namespace" + }, + { + "name": "secretName", + "type": "string", + "label": "ms-resource:loc.input.label.secretName", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.secretName" + }, + { + "name": "dockerHubNamespace", + "type": "string", + "label": "ms-resource:loc.input.label.dockerHubNamespace", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.dockerHubNamespace" + }, + { + "name": "appName", + "type": "string", + "required": true, + "label": "ms-resource:loc.input.label.appName", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.appName" + }, + { + "name": "functionRootDirectory", + "type": "filePath", + "label": "ms-resource:loc.input.label.functionRootDirectory", + "required": false, + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.functionRootDirectory" + }, + { + "name": "waitForStability", + "type": "boolean", + "label": "ms-resource:loc.input.label.waitForStability", + "groupName": "commands", + "defaultValue": "true", + "helpMarkDown": "ms-resource:loc.input.help.waitForStability" + }, + { + "name": "arguments", + "type": "string", + "label": "ms-resource:loc.input.label.arguments", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.arguments" + } + ], + "dataSourceBindings": [], + "instanceNameFormat": "ms-resource:loc.instanceNameFormat", + "execution": { + "Node10": { + "target": "src//run.js" + } + }, + "messages": { + "AllContainersNotInReadyState": "ms-resource:loc.messages.AllContainersNotInReadyState", + "CouldNotDeterminePodStatus": "ms-resource:loc.messages.CouldNotDeterminePodStatus", + "CouldNotDetermineServiceStatus": "ms-resource:loc.messages.CouldNotDetermineServiceStatus", + "FileContentSynced": "ms-resource:loc.messages.FileContentSynced", + "KubectlClientVersion": "ms-resource:loc.messages.KubectlClientVersion", + "KubectlServerVersion": "ms-resource:loc.messages.KubectlServerVersion", + "NoDataWrittenOnFile": "ms-resource:loc.messages.NoDataWrittenOnFile", + "ServiceExternalIP": "ms-resource:loc.messages.ServiceExternalIP", + "WritingDockerConfigToTempFile": "ms-resource:loc.messages.WritingDockerConfigToTempFile" + }, + "_buildConfigMapping": { + "Default": "0.226.1", + "Node16-225": "0.226.0" + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0/tsconfig.json b/_generated/AzureFunctionOnKubernetesV0/tsconfig.json new file mode 100644 index 000000000000..79a868c8d1e3 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "commonjs" + }, + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/de-DE/resources.resjson b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/de-DE/resources.resjson new file mode 100644 index 000000000000..eae68440ff61 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/de-DE/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Azure Functions in Kubernetes", + "loc.helpMarkDown": "[Weitere Informationen zu dieser Aufgabe](https://aka.ms/func-k8s) oder [Azure Functions in Kubernetes mit KEDA](https://docs.microsoft.com/de-de/azure/azure-functions/functions-kubernetes-keda) oder [\"sample-hello-world-azure-functions\" anzeigen](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Stellen Sie eine Azure-Funktion im Kubernetes-Cluster bereit.", + "loc.instanceNameFormat": "Functions in Kubernetes – bereitstellen", + "loc.group.displayName.serviceConnections": "Dienstverbindungen", + "loc.group.displayName.commands": "Befehle", + "loc.input.label.dockerRegistryServiceConnection": "Dienstverbindung für Docker-Registrierung", + "loc.input.help.dockerRegistryServiceConnection": "Wählen Sie eine Dienstverbindung für die Docker-Registrierung aus.", + "loc.input.label.kubernetesServiceConnection": "Kubernetes-Dienstverbindung", + "loc.input.help.kubernetesServiceConnection": "Wählen Sie eine Kubernetes-Dienstverbindung aus.", + "loc.input.label.namespace": "Kubernetes-Namespace", + "loc.input.help.namespace": "Kubernetes-Namespace", + "loc.input.label.secretName": "Name des Geheimnisses", + "loc.input.help.secretName": "Kubernetes-Geheimnis mit Konfigurationsdaten für die Funktion (Beispiel: AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub-Namespace", + "loc.input.help.dockerHubNamespace": "Docker Hub-Namespace. Erforderlich für ein privates Docker Hub-Repository.", + "loc.input.label.appName": "Anwendungsname", + "loc.input.help.appName": "Anwendungsname. Die erstellten Kubernetes-Objekte verwenden diesen Namen. Der Name sollte den Kubernetes-Namenskonventionen für Ressourcen folgen.", + "loc.input.label.functionRootDirectory": "Stammverzeichnis der Funktion", + "loc.input.help.functionRootDirectory": "Stammverzeichnis für Funktionen. Sollte \"host.json\" enthalten. Docker-Build- und -Pushvorgänge werden von diesem Verzeichnis aus ausgeführt.", + "loc.input.label.waitForStability": "Auf stabilen Zustand warten", + "loc.input.help.waitForStability": "Warten Sie, bis die Kubernetes-Objekte den gewünschten Zustand erreicht haben.", + "loc.input.label.arguments": "Argumente", + "loc.input.help.arguments": "Übergeben Sie Argumente an den Befehl. Beispiel:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Keiner der Container befindet sich im Zustand \"Bereit\".", + "loc.messages.CouldNotDeterminePodStatus": "Der Podstatus konnte aufgrund des folgenden Fehlers nicht bestimmt werden: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Der Status des Diensts \"%s\" konnte aufgrund des folgenden Fehlers nicht bestimmt werden: %s", + "loc.messages.FileContentSynced": "Der Inhalt der Datei wurde auf dem Datenträger synchronisiert. Der Inhalt ist \"%s\".", + "loc.messages.KubectlClientVersion": "Kubectl-Clientversion", + "loc.messages.KubectlServerVersion": "Kubectl-Serverversion", + "loc.messages.NoDataWrittenOnFile": "In die Datei \"%s\" wurden keine Daten geschrieben. ", + "loc.messages.ServiceExternalIP": "Die externe IP-Adresse für den Dienst \"%s\" lautet %s.", + "loc.messages.WritingDockerConfigToTempFile": "Die Docker-Konfiguration wird in eine temporäre Datei geschrieben. Dateipfad: %s, Docker-Konfiguration: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/en-US/resources.resjson b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/en-US/resources.resjson new file mode 100644 index 000000000000..82357b719a35 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/en-US/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Azure Function on Kubernetes", + "loc.helpMarkDown": "[Learn more about this task](https://aka.ms/func-k8s) or [see Azure Functions on Kubernetes with KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) or [check out sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Deploy Azure function to Kubernetes cluster.", + "loc.instanceNameFormat": "Func on K8s - deploy", + "loc.group.displayName.serviceConnections": "Service Connections", + "loc.group.displayName.commands": "Commands", + "loc.input.label.dockerRegistryServiceConnection": "Docker registry service connection", + "loc.input.help.dockerRegistryServiceConnection": "Select a Docker registry service connection.", + "loc.input.label.kubernetesServiceConnection": "Kubernetes service connection", + "loc.input.help.kubernetesServiceConnection": "Select a Kubernetes service connection.", + "loc.input.label.namespace": "Kubernetes namespace", + "loc.input.help.namespace": "Kubernetes namespace", + "loc.input.label.secretName": "Secret Name", + "loc.input.help.secretName": "Kubernetes secret containing function config data (for ex. AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub namespace", + "loc.input.help.dockerHubNamespace": "Docker Hub namespace. Required for private Docker Hub repository.", + "loc.input.label.appName": "Application Name", + "loc.input.help.appName": "Application Name. The Kubernetes objects created use this name. This should follow Kubernetes naming conventions for resource names.", + "loc.input.label.functionRootDirectory": "Function root directory", + "loc.input.help.functionRootDirectory": "Function root directory. Should contain host.json. Docker build and push is performed from this directory.", + "loc.input.label.waitForStability": "Wait for stability", + "loc.input.help.waitForStability": "Wait for the Kubernetes objects to reach the desired state.", + "loc.input.label.arguments": "Arguments", + "loc.input.help.arguments": "Pass arguments to command. Ex:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "All the containers are not in a ready state.", + "loc.messages.CouldNotDeterminePodStatus": "Could not determine the pod's status due to the error: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Could not determine the service %s status due to the error: %s", + "loc.messages.FileContentSynced": "Synced the file content to the disk. The content is %s.", + "loc.messages.KubectlClientVersion": "Kubectl Client Version", + "loc.messages.KubectlServerVersion": "Kubectl Server Version", + "loc.messages.NoDataWrittenOnFile": "No data was written into the file %s", + "loc.messages.ServiceExternalIP": "service %s external IP is %s", + "loc.messages.WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/es-ES/resources.resjson b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/es-ES/resources.resjson new file mode 100644 index 000000000000..9462cfc4cc93 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/es-ES/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Función de Azure en Kubernetes", + "loc.helpMarkDown": "[Obtener más información acerca de esta tarea](https://aka.ms/func-k8s), [consultar Azure Functions en Kubernetes con KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) o [consultar sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Implementa la función de Azure en el clúster de Kubernetes.", + "loc.instanceNameFormat": "Función en Kubernetes: implementar", + "loc.group.displayName.serviceConnections": "Conexiones de servicio", + "loc.group.displayName.commands": "Comandos", + "loc.input.label.dockerRegistryServiceConnection": "Conexión de servicio del registro de Docker", + "loc.input.help.dockerRegistryServiceConnection": "Seleccione una conexión del servicio de registro de Docker.", + "loc.input.label.kubernetesServiceConnection": "Conexión de servicio de Kubernetes", + "loc.input.help.kubernetesServiceConnection": "Seleccione una conexión del servicio de Kubernetes.", + "loc.input.label.namespace": "Espacio de nombres de Kubernetes", + "loc.input.help.namespace": "Espacio de nombres de Kubernetes", + "loc.input.label.secretName": "Nombre del secreto", + "loc.input.help.secretName": "Secreto de Kubernetes que contiene los datos de configuración de la función (por ejemplo, AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Espacio de nombres de Docker Hub", + "loc.input.help.dockerHubNamespace": "Espacio de nombres de Docker Hub. Se requiere para el repositorio privado de Docker Hub.", + "loc.input.label.appName": "Nombre de la aplicación", + "loc.input.help.appName": "Nombre de la aplicación. Los objetos de Kubernetes creados usan este nombre, que debe seguir las convenciones de nomenclatura de Kubernetes para los nombres de recurso.", + "loc.input.label.functionRootDirectory": "Directorio raíz de la función", + "loc.input.help.functionRootDirectory": "Directorio raíz de la función; debe contener host.json. La compilación e inserción de Docker se realizan desde este directorio.", + "loc.input.label.waitForStability": "Esperar estabilidad", + "loc.input.help.waitForStability": "Espere a que los objetos de Kubernetes alcancen el estado deseado.", + "loc.input.label.arguments": "Argumentos", + "loc.input.help.arguments": "Pase argumentos al comando. Ejemplo:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Ninguno de los contenedores está listo.", + "loc.messages.CouldNotDeterminePodStatus": "No se pudo determinar el estado del pod debido al error siguiente: %s", + "loc.messages.CouldNotDetermineServiceStatus": "No se pudo determinar el estado del servicio %s debido al error siguiente: %s", + "loc.messages.FileContentSynced": "Se sincronizó el contenido del archivo con el disco. El contenido es %s.", + "loc.messages.KubectlClientVersion": "Versión del cliente de Kubectl", + "loc.messages.KubectlServerVersion": "Versión del servidor de Kubectl", + "loc.messages.NoDataWrittenOnFile": "No se escribieron datos en el archivo %s", + "loc.messages.ServiceExternalIP": "La dirección IP externa del servicio %s es %s", + "loc.messages.WritingDockerConfigToTempFile": "Escribiendo la configuración de Docker en el archivo temporal. Ruta de acceso del archivo: %s. Configuración de Docker: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/fr-FR/resources.resjson b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/fr-FR/resources.resjson new file mode 100644 index 000000000000..066cf8ca8f88 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/fr-FR/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Azure Functions sur Kubernetes", + "loc.helpMarkDown": "[En savoir plus sur cette tâche](https://aka.ms/func-k8s) ou [consulter Azure Functions sur Kubernetes avec KEDA](https://docs.microsoft.com/fr-fr/azure/azure-functions/functions-kubernetes-keda) ou [consulter sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Déployez Azure Functions sur un cluster Kubernetes.", + "loc.instanceNameFormat": "Fonction sur Kubernetes - Déployer", + "loc.group.displayName.serviceConnections": "Connexions de service", + "loc.group.displayName.commands": "Commandes", + "loc.input.label.dockerRegistryServiceConnection": "Connexion de service de registre Docker", + "loc.input.help.dockerRegistryServiceConnection": "Sélectionnez une connexion de service de registre Docker.", + "loc.input.label.kubernetesServiceConnection": "Connexion de service Kubernetes", + "loc.input.help.kubernetesServiceConnection": "Sélectionnez une connexion de service Kubernetes.", + "loc.input.label.namespace": "Espace de noms Kubernetes", + "loc.input.help.namespace": "Espace de noms Kubernetes", + "loc.input.label.secretName": "Nom du secret", + "loc.input.help.secretName": "Secret Kubernetes contenant les données de configuration de fonction (par exemple AzureWebJobsStorage : )", + "loc.input.label.dockerHubNamespace": "Espace de noms Docker Hub", + "loc.input.help.dockerHubNamespace": "Espace de noms Docker Hub. Obligatoire pour le dépôt Docker Hub privé.", + "loc.input.label.appName": "Nom d'application", + "loc.input.help.appName": "Nom d'application. Les objets Kubernetes créés utilisent ce nom. Il doit respecter les conventions de nommage Kubernetes pour les noms de ressources.", + "loc.input.label.functionRootDirectory": "Répertoire racine de la fonction", + "loc.input.help.functionRootDirectory": "Répertoire racine de la fonction. Doit contenir host.json. La build Docker et son envoi (push) sont effectués à partir de ce répertoire.", + "loc.input.label.waitForStability": "Attendre la stabilisation", + "loc.input.help.waitForStability": "Attendez que les objets Kubernetes atteignent l'état souhaité.", + "loc.input.label.arguments": "Arguments", + "loc.input.help.arguments": "Passez les arguments à la commande. Exemple :
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Tous les conteneurs ne sont pas prêts.", + "loc.messages.CouldNotDeterminePodStatus": "Impossible de déterminer l'état du pod en raison de l'erreur %s", + "loc.messages.CouldNotDetermineServiceStatus": "Impossible de déterminer l'état du service %s en raison de l'erreur %s", + "loc.messages.FileContentSynced": "Synchronisation effectuée du contenu du fichier sur le disque. Le contenu est %s.", + "loc.messages.KubectlClientVersion": "Version du client kubectl", + "loc.messages.KubectlServerVersion": "Version du serveur kubectl", + "loc.messages.NoDataWrittenOnFile": "Aucune donnée n'a été écrite dans le fichier %s", + "loc.messages.ServiceExternalIP": "l'adresse IP externe du service %s est %s", + "loc.messages.WritingDockerConfigToTempFile": "Écriture de la configuration Docker dans le fichier temporaire. Chemin de fichier : %s. Configuration Docker : %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/it-IT/resources.resjson b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/it-IT/resources.resjson new file mode 100644 index 000000000000..63c9b9a8ecb3 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/it-IT/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Funzione di Azure in Kubernetes", + "loc.helpMarkDown": "[Altre informazioni su questa attività](https://aka.ms/func-k8s). In alternativa, [vedere Funzioni di Azure in Kubernetes con KEDA](https://docs.microsoft.com/it-it/azure/azure-functions/functions-kubernetes-keda) oppure [sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Distribuisce la funzione di Azure nel cluster Kubernetes.", + "loc.instanceNameFormat": "Funzione in Kubernetes - Distribuisci", + "loc.group.displayName.serviceConnections": "Connessioni al servizio", + "loc.group.displayName.commands": "Comandi", + "loc.input.label.dockerRegistryServiceConnection": "Connessione al servizio Registro Docker", + "loc.input.help.dockerRegistryServiceConnection": "Selezionare una connessione al servizio Registro Docker.", + "loc.input.label.kubernetesServiceConnection": "Connessione al servizio Kubernetes", + "loc.input.help.kubernetesServiceConnection": "Selezionare una connessione al servizio Kubernetes.", + "loc.input.label.namespace": "Spazio dei nomi Kubernetes", + "loc.input.help.namespace": "Spazio dei nomi Kubernetes", + "loc.input.label.secretName": "Nome del segreto", + "loc.input.help.secretName": "Segreto di Kubernetes contenente i dati di configurazione della funzione, ad esempio AzureWebJobsStorage: ", + "loc.input.label.dockerHubNamespace": "Spazio dei nomi di Docker Hub", + "loc.input.help.dockerHubNamespace": "Spazio dei nomi di Docker Hub. È obbligatorio per il repository Docker Hub privato.", + "loc.input.label.appName": "Nome dell'applicazione", + "loc.input.help.appName": "Nome dell'applicazione usato dagli oggetti Kubernetes creati. Deve essere conforme alle convenzioni di denominazione Kubernetes per i nomi di risorsa.", + "loc.input.label.functionRootDirectory": "Directory radice della funzione", + "loc.input.help.functionRootDirectory": "Directory radice della funzione. Deve contenere host.json. I comandi build e push di Docker vengono eseguiti da questa directory.", + "loc.input.label.waitForStability": "Attendi stabilità", + "loc.input.help.waitForStability": "Attende che gli oggetti Kubernetes raggiungano lo stato desiderato.", + "loc.input.label.arguments": "Argomenti", + "loc.input.help.arguments": "Passa gli argomenti al comando. Esempio:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Tutti i contenitori non si trovano in uno stato pronto.", + "loc.messages.CouldNotDeterminePodStatus": "Non è stato possibile determinare lo stato del pod a causa dell'errore: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Non è stato possibile determinare lo stato del servizio %s a causa dell'errore: %s", + "loc.messages.FileContentSynced": "Il contenuto del file è stato sincronizzato con il disco. Il contenuto è %s.", + "loc.messages.KubectlClientVersion": "Versione del client kubectl", + "loc.messages.KubectlServerVersion": "Versione del server kubectl", + "loc.messages.NoDataWrittenOnFile": "Non sono stati scritti dati nel file %s", + "loc.messages.ServiceExternalIP": "l'IP esterno del servizio %s è %s", + "loc.messages.WritingDockerConfigToTempFile": "Scrittura della configurazione di Docker nel file temporaneo. Percorso del file: %s. Configurazione di Docker: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/ja-JP/resources.resjson b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/ja-JP/resources.resjson new file mode 100644 index 000000000000..202e95a58311 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/ja-JP/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Kubernetes 上の Azure 関数", + "loc.helpMarkDown": "[このタスクの詳細を表示](https://aka.ms/func-k8s)、[「KEDA を使用した Kubernetes での Azure Functions」を参照](https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-kubernetes-keda)、または [sample-hello-world-azure-functions を確認](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Azure 関数を Kubernetes クラスターにデプロイします。", + "loc.instanceNameFormat": "K8s の関数 - デプロイ", + "loc.group.displayName.serviceConnections": "サービス接続", + "loc.group.displayName.commands": "コマンド", + "loc.input.label.dockerRegistryServiceConnection": "Docker レジストリ サービス接続", + "loc.input.help.dockerRegistryServiceConnection": "Docker レジストリ サービス接続を選択します。", + "loc.input.label.kubernetesServiceConnection": "Kubernetes サービス接続", + "loc.input.help.kubernetesServiceConnection": "Kubernetes サービス接続を選択します。", + "loc.input.label.namespace": "Kubernetes 名前空間", + "loc.input.help.namespace": "Kubernetes 名前空間", + "loc.input.label.secretName": "シークレット名", + "loc.input.help.secretName": "関数の構成データを含む Kubernetes の Secret (例: AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub の名前空間", + "loc.input.help.dockerHubNamespace": "Docker Hub の名前空間。Docker Hub のプライベート リポジトリでは必須です。", + "loc.input.label.appName": "アプリケーション名", + "loc.input.help.appName": "アプリケーション名。作成された Kubernetes オブジェクトにこの名前が使用されます。これは、リソース名に対する Kubernetes の名前付け規則に従う必要があります。", + "loc.input.label.functionRootDirectory": "関数のルート ディレクトリ", + "loc.input.help.functionRootDirectory": "関数のルート ディレクトリ。host.json が含まれている必要があります。Docker のビルドとプッシュはこのディレクトリから実行されます。", + "loc.input.label.waitForStability": "安定するまで待機する", + "loc.input.help.waitForStability": "Kubernetes オブジェクトが目的の状態になるのを待機します。", + "loc.input.label.arguments": "引数", + "loc.input.help.arguments": "コマンドに引数を渡します。例:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "一部のコンテナーが準備完了の状態ではありません。", + "loc.messages.CouldNotDeterminePodStatus": "ポッドの状態を特定できませんでした。原因のエラー: %s", + "loc.messages.CouldNotDetermineServiceStatus": "サービス %s の状態を特定できませんでした。原因のエラー: %s", + "loc.messages.FileContentSynced": "ファイルの内容がディスクに同期されました。内容は %s です。", + "loc.messages.KubectlClientVersion": "kubectl クライアント バージョン", + "loc.messages.KubectlServerVersion": "kubectl サーバー バージョン", + "loc.messages.NoDataWrittenOnFile": "ファイル %s にデータが書き込まれませんでした", + "loc.messages.ServiceExternalIP": "サービス %s の外部 IP は %s です", + "loc.messages.WritingDockerConfigToTempFile": "Docker 構成を一時ファイルに書き込んでいます。ファイル パス: %s、Docker 構成: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/ko-KR/resources.resjson b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/ko-KR/resources.resjson new file mode 100644 index 000000000000..1e1b247be5ad --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/ko-KR/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Kubernetes의 Azure 함수", + "loc.helpMarkDown": "[이 작업에 대한 자세한 정보](https://aka.ms/func-k8s) 또는 [KEDA가 있는 Kubernetes의 Azure Functions 참조](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) 또는 [sample-hello-world-azure-functions 확인](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Azure 함수를 Kubernetes 클러스터에 배포합니다.", + "loc.instanceNameFormat": "K8s의 함수 - 배포", + "loc.group.displayName.serviceConnections": "서비스 연결", + "loc.group.displayName.commands": "명령", + "loc.input.label.dockerRegistryServiceConnection": "Docker 레지스트리 서비스 연결", + "loc.input.help.dockerRegistryServiceConnection": "Docker 레지스트리 서비스 연결을 선택합니다.", + "loc.input.label.kubernetesServiceConnection": "Kubernetes 서비스 연결", + "loc.input.help.kubernetesServiceConnection": "Kubernetes 서비스 연결을 선택합니다.", + "loc.input.label.namespace": "Kubernetes 네임스페이스", + "loc.input.help.namespace": "Kubernetes 네임스페이스", + "loc.input.label.secretName": "비밀 이름", + "loc.input.help.secretName": "함수 구성 데이터가 포함된 Kubernetes 비밀입니다(예: AzureWebJobsStorage: ).", + "loc.input.label.dockerHubNamespace": "Docker Hub 네임스페이스", + "loc.input.help.dockerHubNamespace": "Docker Hub 네임스페이스입니다. 프라이빗 Docker Hub 리포지토리에 필요합니다.", + "loc.input.label.appName": "애플리케이션 이름", + "loc.input.help.appName": "애플리케이션 이름입니다. 만들어진 Kubernetes 개체가 이 이름을 사용합니다. 이 이름은 리소스 이름에 대한 Kubernetes 명명 규칙을 따라야 합니다.", + "loc.input.label.functionRootDirectory": "함수 루트 디렉터리", + "loc.input.help.functionRootDirectory": "함수 루트 디렉터리입니다. host.json이 포함되어야 합니다. Docker 빌드 및 푸시는 이 디렉터리에서 수행됩니다.", + "loc.input.label.waitForStability": "안정성 대기", + "loc.input.help.waitForStability": "Kubernetes 개체가 원하는 상태에 도달할 때까지 기다립니다.", + "loc.input.label.arguments": "인수", + "loc.input.help.arguments": "명령에 인수를 전달합니다. 예:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "일부 컨테이너만 준비 상태입니다.", + "loc.messages.CouldNotDeterminePodStatus": "오류로 인해 Pod의 상태를 확인할 수 없음: %s", + "loc.messages.CouldNotDetermineServiceStatus": "오류로 인해 서비스 %s 상태를 확인할 수 없음: %s", + "loc.messages.FileContentSynced": "파일 콘텐츠를 디스크에 동기화했습니다. 콘텐츠는 %s입니다.", + "loc.messages.KubectlClientVersion": "Kubectl 클라이언트 버전", + "loc.messages.KubectlServerVersion": "Kubectl 서버 버전", + "loc.messages.NoDataWrittenOnFile": "데이터를 %s 파일에 쓰지 않았습니다.", + "loc.messages.ServiceExternalIP": "서비스 %s 외부 IP가 %s입니다.", + "loc.messages.WritingDockerConfigToTempFile": "임시 파일에 Docker 구성을 쓰는 중입니다. 파일 경로: %s, Docker 구성: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/ru-RU/resources.resjson b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/ru-RU/resources.resjson new file mode 100644 index 000000000000..893ec56b56d7 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/ru-RU/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Функции Azure в Kubernetes", + "loc.helpMarkDown": "[См. дополнительные сведения об этой задаче](https://aka.ms/func-k8s), [сведения об использовании Функций Azure в Kubernetes с KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) или [ознакомьтесь с sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Развертывание функции Azure в кластере Kubernetes.", + "loc.instanceNameFormat": "Функции в Kubernetes — развертывание", + "loc.group.displayName.serviceConnections": "Соединения служб", + "loc.group.displayName.commands": "Команды", + "loc.input.label.dockerRegistryServiceConnection": "Подключение к службе реестра Docker", + "loc.input.help.dockerRegistryServiceConnection": "Выберите подключение к службе реестра Docker.", + "loc.input.label.kubernetesServiceConnection": "Подключение к службе Kubernetes", + "loc.input.help.kubernetesServiceConnection": "Выберите подключение службы Kubernetes.", + "loc.input.label.namespace": "Пространство имен Kubernetes", + "loc.input.help.namespace": "Пространство имен Kubernetes", + "loc.input.label.secretName": "Имя секрета", + "loc.input.help.secretName": "Секрет Kubernetes, содержащий данные конфигурации функции (например, AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Пространство имен Docker Hub", + "loc.input.help.dockerHubNamespace": "Пространство имен Docker Hub. Требуется для частного репозитория Docker Hub.", + "loc.input.label.appName": "Имя приложения", + "loc.input.help.appName": "Имя приложения. Созданные объекты Kubernetes используют это имя. Оно должно соответствовать соглашениям об именовании Kubernetes для имен ресурсов.", + "loc.input.label.functionRootDirectory": "Корневой каталог функции", + "loc.input.help.functionRootDirectory": "Корневой каталог функции. Должен содержать host.json. Сборка и отправка Docker выполняется из этого каталога.", + "loc.input.label.waitForStability": "Дождитесь обеспечения стабильности", + "loc.input.help.waitForStability": "Дождитесь, когда объекты Kubernetes достигнут желаемого состояния.", + "loc.input.label.arguments": "Аргументы", + "loc.input.help.arguments": "Передача аргументов в команду. Пример
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Все контейнеры находятся в состоянии готовности.", + "loc.messages.CouldNotDeterminePodStatus": "Не удалось определить состояние объекта pod из-за ошибки: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Не удалось определить состояние службы %s из-за ошибки: %s", + "loc.messages.FileContentSynced": "Содержимое файла синхронизировано с диском. Содержимое: %s.", + "loc.messages.KubectlClientVersion": "Версия клиента Kubectl", + "loc.messages.KubectlServerVersion": "Версия сервера Kubectl", + "loc.messages.NoDataWrittenOnFile": "Данные не были записаны в файл %s", + "loc.messages.ServiceExternalIP": "служба %s имеет внешний IP-адрес %s", + "loc.messages.WritingDockerConfigToTempFile": "Запись конфигурации Docker во временный файл. Путь к файлу: %s, конфигурация Docker: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/zh-CN/resources.resjson b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/zh-CN/resources.resjson new file mode 100644 index 000000000000..ee06a573ee6b --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/zh-CN/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Kubernetes 上的 Azure 函数", + "loc.helpMarkDown": "[详细了解此任务](https://aka.ms/func-k8s)或[参阅有 KEDA 功能的 Kubernetes 上的 Azure Functions](https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-kubernetes-keda)或[查看 sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "将 Azure 函数部署到 Kubernetes 群集。", + "loc.instanceNameFormat": "K8s 上的 Func - 部署", + "loc.group.displayName.serviceConnections": "服务连接", + "loc.group.displayName.commands": "命令", + "loc.input.label.dockerRegistryServiceConnection": "Docker 注册表服务连接", + "loc.input.help.dockerRegistryServiceConnection": "选择 Docker 注册表服务连接。", + "loc.input.label.kubernetesServiceConnection": "Kubernetes 服务连接", + "loc.input.help.kubernetesServiceConnection": "选择 Kubernetes 服务连接。", + "loc.input.label.namespace": "Kubernetes 命名空间", + "loc.input.help.namespace": "Kubernetes 命名空间", + "loc.input.label.secretName": "机密名称", + "loc.input.help.secretName": "包含函数配置数据的 Kubernetes 机密(例如 AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub 命名空间", + "loc.input.help.dockerHubNamespace": "Docker Hub 命名空间。对于专用 Docker Hub 存储库是必需的。", + "loc.input.label.appName": "应用程序名称", + "loc.input.help.appName": "应用程序名称。创建的 Kubernetes 对象使用此名称。这应遵循 Kubernetes 资源名称命名约定。", + "loc.input.label.functionRootDirectory": "函数根目录", + "loc.input.help.functionRootDirectory": "函数根目录。应包含 host.json。从该目录执行 Docker 生成和推送。", + "loc.input.label.waitForStability": "等待稳定", + "loc.input.help.waitForStability": "等待 Kubernetes 对象达到所需状态。", + "loc.input.label.arguments": "参数", + "loc.input.help.arguments": "将参数传递给命令。例如:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "所有容器均未处于就绪状态。", + "loc.messages.CouldNotDeterminePodStatus": "由于错误 %s,无法确定 Pod 的状态", + "loc.messages.CouldNotDetermineServiceStatus": "由于错误 %s,无法确定服务 %s 状态", + "loc.messages.FileContentSynced": "文件内容已同步到磁盘。内容为 %s。", + "loc.messages.KubectlClientVersion": "Kubectl 客户端版本", + "loc.messages.KubectlServerVersion": "Kubectl 服务器版本", + "loc.messages.NoDataWrittenOnFile": "没有任何数据写入到文件 %s", + "loc.messages.ServiceExternalIP": "服务 %s 外部 IP 为 %s", + "loc.messages.WritingDockerConfigToTempFile": "正在将 Docker 配置写入临时文件。文件路径: %s,Docker 配置: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/zh-TW/resources.resjson b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/zh-TW/resources.resjson new file mode 100644 index 000000000000..89f6e6e36815 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/Strings/resources.resjson/zh-TW/resources.resjson @@ -0,0 +1,35 @@ +{ + "loc.friendlyName": "Kubernetes 上的 Azure 函式", + "loc.helpMarkDown": "[深入了解此工作](https://aka.ms/func-k8s)、[參閱 Kubernetes 上的 Azure Functions 與 KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) 或[查看 sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "將 Azure 函式部署至 Kubernetes 叢集。", + "loc.instanceNameFormat": "K8s 上的函式 - 部署", + "loc.group.displayName.serviceConnections": "服務連線", + "loc.group.displayName.commands": "命令", + "loc.input.label.dockerRegistryServiceConnection": "Docker 登錄服務連線", + "loc.input.help.dockerRegistryServiceConnection": "選取 Docker 登錄服務連線。", + "loc.input.label.kubernetesServiceConnection": "Kubernetes 服務連線", + "loc.input.help.kubernetesServiceConnection": "請選取 Kubernetes 服務連線。", + "loc.input.label.namespace": "Kubernetes 命名空間", + "loc.input.help.namespace": "Kubernetes 命名空間", + "loc.input.label.secretName": "祕密名稱", + "loc.input.help.secretName": "包含函式組態資料的 Kubernetes 祕密 (例如 AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub 命名空間", + "loc.input.help.dockerHubNamespace": "Docker Hub 命名空間。私人 Docker Hub 存放庫的必要項。", + "loc.input.label.appName": "應用程式名稱", + "loc.input.help.appName": "應用程式名稱,用於建立 Kubernetes 物件。此名稱應該遵循 Kubernetes 的資源名稱命名慣例。", + "loc.input.label.functionRootDirectory": "函式根目錄", + "loc.input.help.functionRootDirectory": "函式根目錄,應包含 host.json,用於執行 Docker 建置和推送。", + "loc.input.label.waitForStability": "等候達到穩定", + "loc.input.help.waitForStability": "等候 Kubernetes 物件達到預期的狀態。", + "loc.input.label.arguments": "引數", + "loc.input.help.arguments": "將引數傳遞給命令,例如:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "所有容器皆未處於就緒狀態。", + "loc.messages.CouldNotDeterminePodStatus": "因為發生錯誤,所以無法判斷 Pod 的狀態: %s", + "loc.messages.CouldNotDetermineServiceStatus": "因為發生錯誤,所以無法判斷服務 %s 狀態: %s", + "loc.messages.FileContentSynced": "檔案內容已同步到磁碟。內容為 %s。", + "loc.messages.KubectlClientVersion": "Kubectl 用戶端版本", + "loc.messages.KubectlServerVersion": "Kubectl 伺服器版本", + "loc.messages.NoDataWrittenOnFile": "沒有任何資料寫入檔案 %s", + "loc.messages.ServiceExternalIP": "服務 %s 的外部 IP 是 %s", + "loc.messages.WritingDockerConfigToTempFile": "正在將 Docker 設定寫入暫存檔案。檔案路徑: %s,Docker 設定: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/Tests/L0.ts b/_generated/AzureFunctionOnKubernetesV0_Node16/Tests/L0.ts new file mode 100644 index 000000000000..33f06fb20602 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/Tests/L0.ts @@ -0,0 +1,16 @@ +import fs = require('fs'); +import assert = require('assert'); +import path = require('path'); + +describe('AzureFunctionOnKubernetesV1 Suite', function () { + before(() => { + }); + + after(() => { + }); + + it('Does a basic hello world test', function(done: Mocha.Done) { + // TODO - add real tests + done(); + }); +}); diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/Tests/package-lock.json b/_generated/AzureFunctionOnKubernetesV0_Node16/Tests/package-lock.json new file mode 100644 index 000000000000..fbc19a0daacc --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/Tests/package-lock.json @@ -0,0 +1,14 @@ +{ + "name": "azure-function-on-kubernetes-tests", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", + "dev": true + } + } +} diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/Tests/package.json b/_generated/AzureFunctionOnKubernetesV0_Node16/Tests/package.json new file mode 100644 index 000000000000..acaf22eafcd6 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/Tests/package.json @@ -0,0 +1,22 @@ +{ + "name": "azure-function-on-kubernetes-tests", + "version": "1.0.0", + "description": "Azure Pipelines Azure Function on Kubernetes V0 Task Tests", + "main": "L0.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" + }, + "author": "Microsoft Corporation", + "license": "MIT", + "bugs": { + "url": "https://github.com/Microsoft/azure-pipelines-tasks/issues" + }, + "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", + "devDependencies": { + "@types/mocha": "^5.2.0" + } +} diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/icon.png b/_generated/AzureFunctionOnKubernetesV0_Node16/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..76a581b1090d318bb7481195ae1e7b301664cdcf GIT binary patch literal 1373 zcmV-j1)}Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf1oBBlK~z{r#g<)6 zn`IQo|Fn!j!EG?emTYF(U>I2>lrbtWHpR`2883FBPA`mZQDf8_HF}{&FZ@XKO2?cq zolb8IFytloj&4guB;{3prygKrL)_Va%c$ebJ4SPg7@-jtVNbq-8k1g_r)B->2cLZeO( zjRs5y6rZ!ySFe1uML*-iSwrLL+)W2$&8`Iksiw{q{|E5&)8HCY_AniiW94JT?*+D;F!e!f&$OZa zsdBhHeiZOb?<}JfM#vzV_Rqo2uurn88-tAtgRcU^?=c1IOt(k8=HO9`LdGth#MDTQ z%oE^XN-tn!>X`~JN^4uO)@nibGZn~4;k%jz2gFM$nkhQb_;_ikaiM2^>~gahmdPg* zP*M<(TF}NtmLp{}S4)SO#w4O8r(0mX7 z41O9&=K*PyQ@Ly$N;cL;DyLu)ry|e6p05|*CpqaUy!~D&SEIPaA;B`io9|((iPPUl zGA@j8^jh@f6H=|fIyw-%GTE9^XtSJzn~%`q{rcrao%rT4bwY&0+ z@DICvMs8xld1|pPT>SB2+YIbvn?~W#xlVKpOyJ80?KqO3W9UNWz`MUyOvF1y{}?z2Cs zEE;e6eN=0f67_^{uRGO7I&o)hP$X_%R;ruZE^&=76Comwi}B0-%NrL$Y9O40dD%Gs zaIw*|3yjwCTZ_*vj{+OYOkD&fIOQ%pQjE%N99B_?|7UqO=fW6geii#Z0Yr_!65I`p z0H5W3rknuci@>k@_?=J% + + + + + + + + + + + diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/make.json b/_generated/AzureFunctionOnKubernetesV0_Node16/make.json new file mode 100644 index 000000000000..db36c49a1f92 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/make.json @@ -0,0 +1,12 @@ +{ + "rm": [ + { + "items": [ + "node_modules/azure-pipelines-tasks-docker-common/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tasks-kubernetes-common/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tool-lib/node_modules/azure-pipelines-task-lib" + ], + "options": "-Rf" + } + ] +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/package-lock.json b/_generated/AzureFunctionOnKubernetesV0_Node16/package-lock.json new file mode 100644 index 000000000000..64389bddfd32 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/package-lock.json @@ -0,0 +1,798 @@ +{ + "name": "azurefunctiononkubernetes", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "requires": { + "@types/node": "*" + } + }, + "@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "requires": { + "@types/node": "*" + } + }, + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" + }, + "@types/node": { + "version": "16.18.38", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.38.tgz", + "integrity": "sha512-6sfo1qTulpVbkxECP+AVrHV9OoJqhzCsfTNp5NIG+enM4HyM3HvZCO798WShIXBN0+QtDIcutJCjsVYnQP5rIQ==" + }, + "@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==" + }, + "@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "azure-pipelines-task-lib": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.4.0.tgz", + "integrity": "sha512-JgtxfjxjRA+KWY0Q5UC1fo48nkbVxFHgKEuasKdJMSNxHydOyNlB5MNw4UTiTXp9b0nnqKeOQOBn5RN3go3aPg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "azure-pipelines-tasks-docker-common": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-docker-common/-/azure-pipelines-tasks-docker-common-2.0.6.tgz", + "integrity": "sha512-Zm8cTQecdvcgFbMTP8ZqKoU9XvM1Ck3CF59BkeaS5C7G0gNZWA4MkJTiC1qESMn8ptK5I33cqcMl7Ja4JtwaJA==", + "requires": { + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.5.4", + "@types/uuid": "^8.3.0", + "azure-pipelines-task-lib": "^3.1.0", + "del": "2.2.0", + "q": "1.4.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + }, + "dependencies": { + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + } + } + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==" + } + } + }, + "azure-pipelines-tasks-kubernetes-common": { + "version": "2.220.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-kubernetes-common/-/azure-pipelines-tasks-kubernetes-common-2.220.0.tgz", + "integrity": "sha512-20BEQl8Pu9MZQSSQ/7ITLRGW7tR3UoK5yx252iffBJpf8tjC63kRWhFHWGehvPFLZU+bSENDKsYBigvKRFSobA==", + "requires": { + "@types/mocha": "5.2.7", + "@types/node": "10.17.0", + "@types/uuid": "8.3.0", + "azure-pipelines-task-lib": "^3.1.0", + "azure-pipelines-tool-lib": "^1.0.2", + "js-yaml": "3.13.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.0.tgz", + "integrity": "sha512-wuJwN2KV4tIRz1bu9vq5kSPasJ8IsEjZaP1ZR7KlmdUZvGF/rXy8DmXOVwUD0kAtvtJ7aqMKPqUXC0NUTDbrDg==" + }, + "@types/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==" + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + } + } + }, + "azure-pipelines-tool-lib": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/azure-pipelines-tool-lib/-/azure-pipelines-tool-lib-1.3.2.tgz", + "integrity": "sha512-PtYcd3E2ouwZhLuaOpWA00FYoLjRuJs1V8mNu3u6lBnqeYd4jh/8VL/of6nchm8f2NM6Div+EEnbOcmWvcptPg==", + "requires": { + "@types/semver": "^5.3.0", + "@types/uuid": "^3.4.5", + "azure-pipelines-task-lib": "^3.1.10", + "semver": "^5.7.0", + "semver-compare": "^1.0.0", + "typed-rest-client": "^1.8.6", + "uuid": "^3.3.2" + }, + "dependencies": { + "@types/uuid": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.10.tgz", + "integrity": "sha512-BgeaZuElf7DEYZhWYDTc/XcLZXdVgFkVSTa13BqKvbnmUrxr3TJFKofUxCtDO9UQOdhnV+HPOESdHiHKZOJV1A==" + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + } + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "del": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.0.tgz", + "integrity": "sha512-AZDiRb78EEGYCsAZTG3v+CM5q8J0BIs+wI7QeUtyosm+zIMm4XSmp6aI/K7cU9l+YaKpDKN9dYP1xTrNjLQ+LA==", + "requires": { + "globby": "^4.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==" + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "globby": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", + "integrity": "sha512-JPDtMSr0bt25W64q792rvlrSwIaZwqUAhqdYKSr57Wh/xBcQ5JDWLM85ndn+Q1WdBQXLb9YGCl0QN/T0HpqU0A==", + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^6.0.1", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "requires": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + } + }, + "http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "requires": { + "@types/node": "^10.0.3" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + } + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "requires": { + "has": "^1.0.3" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==" + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mockery": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "requires": { + "pinkie": "^2.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "requires": { + "asap": "~2.0.6" + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + }, + "qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "requires": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + } + }, + "sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "requires": { + "get-port": "^3.1.0" + } + }, + "then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "requires": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "dependencies": { + "@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + } + } + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "typed-rest-client": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.9.tgz", + "integrity": "sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true + }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + } + } +} diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/package.json b/_generated/AzureFunctionOnKubernetesV0_Node16/package.json new file mode 100644 index 000000000000..f96322f2d242 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/package.json @@ -0,0 +1,27 @@ +{ + "name": "azurefunctiononkubernetes", + "version": "1.0.0", + "description": "Deploy Azure Function on Kubernetes", + "main": "src//run.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" + }, + "bugs": { + "url": "https://github.com/microsoft/azure-pipelines-tasks/issues" + }, + "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", + "devDependencies": { + "typescript": "4.0.2" + }, + "dependencies": { + "@types/mocha": "^5.2.7", + "@types/node": "^16.11.39", + "@types/q": "^1.5.0", + "@types/uuid": "^8.3.0", + "azure-pipelines-task-lib": "^4.4.0", + "azure-pipelines-tasks-docker-common": "2.0.6", + "azure-pipelines-tasks-kubernetes-common": "^2.212.0", + "js-yaml": "3.13.1" + } +} diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/src/deploy.ts b/_generated/AzureFunctionOnKubernetesV0_Node16/src/deploy.ts new file mode 100644 index 000000000000..29a5175ae62a --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/src/deploy.ts @@ -0,0 +1,121 @@ +'use strict'; + +import * as yaml from 'js-yaml'; +import * as tl from 'azure-pipelines-task-lib/task'; +import * as tr from "azure-pipelines-task-lib/toolrunner"; +import { CommandHelper } from './utils/commandHelper'; +import { DockerConnection } from './dockerConnection'; +import { Kubectl, Resource } from 'azure-pipelines-tasks-kubernetes-common/kubectl-object-model'; +import * as FileHelper from './utils/fileHelper'; +import * as KubernetesConstants from 'azure-pipelines-tasks-kubernetes-common/kubernetesconstants'; +import * as KubernetesManifestUtility from 'azure-pipelines-tasks-kubernetes-common/kubernetesmanifestutility'; +import * as CommonUtils from 'azure-pipelines-tasks-kubernetes-common/utility'; + +const secretName = tl.getInput('secretName'); +const appName = tl.getInput('appName', true); +const namespace = getKubernetesNamespace(); +const dockerHubNamespace = tl.getInput('dockerHubNamespace'); +const args = tl.getInput('arguments'); +const funcRootDir = tl.getInput('functionRootDirectory', true); +const waitForStability = tl.getBoolInput('waitForStability'); +const isDryRun = (args && args.includes('--dry-run')) ? true : false; + +export async function deploy(commandHelper: CommandHelper, dockerConnection: DockerConnection) { + let pullSecretName: string = ''; + if (!isDryRun) { + // create pull secret if it is not dry-run + pullSecretName = createImagePullSecret(commandHelper); + } + + // invoke func kubernetes deploy + funcDeploy(commandHelper, dockerConnection, pullSecretName); + + if (!isDryRun) { + // get Kubernetes resources (as YAML) created by deployment + const kubernetesResourcesYaml = getKubernetesResourcesYaml(commandHelper, dockerConnection, pullSecretName); + + // annotate the resources + annotateKubernetesResources(commandHelper, kubernetesResourcesYaml); + + if (waitForStability) { + // wait for deployment to get stable + const kubernetesResources = getResourcesFromYaml(kubernetesResourcesYaml, KubernetesConstants.deploymentTypes); + await checkManifestStability(commandHelper, kubernetesResources); + } + } +} + +function createImagePullSecret(commandHelper: CommandHelper): string { + let pullSecretName = `${appName}-imagepullsecret`; + const createPullSecretCommand = commandHelper.getCreateDockerRegistrySecretCommand(pullSecretName, namespace); + if (createPullSecretCommand) { + const deleteSecretCommand = commandHelper.getDeleteSecretCommand(pullSecretName, namespace); + // while deleting, error is thrown if the secret is not present. Ignore the error. + commandHelper.execCommand(deleteSecretCommand, { failOnStdErr: false, ignoreReturnCode: true} as tr.IExecOptions, true); + commandHelper.execCommand(createPullSecretCommand); + const kubectl = new Kubectl(commandHelper.kubectlPath, namespace); + kubectl.annotate('secret', pullSecretName, KubernetesConstants.pipelineAnnotations); + } + else { + // no secret created if no Docker login is found. Case when user wants to use a public image. + pullSecretName = ''; + } + + return pullSecretName; +} + +function funcDeploy(commandHelper: CommandHelper, dockerConnection: DockerConnection, pullSecretName: string) { + const funcDeployCommand = commandHelper.getFuncDeployCommand(dockerConnection, secretName, appName, namespace, dockerHubNamespace, pullSecretName, args); + commandHelper.execCommand(funcDeployCommand, { cwd: funcRootDir } as tr.IExecOptions); +} + +function annotateKubernetesResources(commandHelper: CommandHelper, resourcesYaml: string) { + const funcKubernetesTemplatesPath = FileHelper.getFuncKubernetesYamlPath(); + FileHelper.writeContentToFile(funcKubernetesTemplatesPath, resourcesYaml); + const kubectl = new Kubectl(commandHelper.kubectlPath, namespace); + const annotateResults = kubectl.annotateFiles(funcKubernetesTemplatesPath, KubernetesConstants.pipelineAnnotations, true); + CommonUtils.checkForErrors([annotateResults]); +} + +async function checkManifestStability(commandHelper: CommandHelper, resources: Resource[]) { + const kubectl = new Kubectl(commandHelper.kubectlPath, namespace); + await KubernetesManifestUtility.checkManifestStability(kubectl, resources); +} + +function getKubernetesResourcesYaml(commandHelper: CommandHelper, dockerConnection, pullSecretName: string): string { + let resourcesYaml = null; + const argsWithDryRun = args ? args.concat(' --dry-run') : '--dry-run'; + const funcDeployDryRunCommand = commandHelper.getFuncDeployCommand(dockerConnection, secretName, appName, namespace, dockerHubNamespace, pullSecretName, argsWithDryRun); + const result: tr.IExecSyncResult = commandHelper.execCommand(funcDeployDryRunCommand, { cwd: funcRootDir } as tr.IExecOptions); + resourcesYaml = result.stdout; + + return resourcesYaml; +} + +function getResourcesFromYaml(yamlContent: string, filterResourceTypes: string[]): Resource[] { + const resources: Resource[] = []; + yaml.safeLoadAll(yamlContent, function (inputObject) { + const inputObjectKind: string = inputObject ? inputObject.kind : ''; + if (inputObjectKind && filterResourceTypes.filter(type => inputObjectKind.toLowerCase() === type.toLowerCase()).length > 0) { + const resource = { + type: inputObject.kind, + name: inputObject.metadata.name + }; + resources.push(resource); + } + }); + + return resources; +} + +function getKubernetesNamespace(): string { + let namespace = tl.getInput('namespace'); + if (!namespace) { + const kubeConnection = tl.getInput('kubernetesServiceConnection', false); + if (kubeConnection) { + namespace = tl.getEndpointDataParameter(kubeConnection, 'namespace', true); + } + } + + return namespace; +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/src/dockerConnection.ts b/_generated/AzureFunctionOnKubernetesV0_Node16/src/dockerConnection.ts new file mode 100644 index 000000000000..2cad6ef33a70 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/src/dockerConnection.ts @@ -0,0 +1,40 @@ +import * as url from "url"; +import * as tl from 'azure-pipelines-task-lib/task'; +import * as ImageUtils from "azure-pipelines-tasks-docker-common/containerimageutils"; +import ContainerConnection from "azure-pipelines-tasks-docker-common/containerconnection"; +import RegistryAuthenticationToken from "azure-pipelines-tasks-docker-common/registryauthenticationprovider/registryauthenticationtoken"; +import { getDockerRegistryEndpointAuthenticationToken } from "azure-pipelines-tasks-docker-common/registryauthenticationprovider/registryauthenticationtoken"; + +export class DockerConnection { + private connection: ContainerConnection; + private registryAuthenticationToken: RegistryAuthenticationToken; + + public open() { + const endpointId = tl.getInput("dockerRegistryServiceConnection", true); + this.registryAuthenticationToken = getDockerRegistryEndpointAuthenticationToken(endpointId); + this.connection = new ContainerConnection(); + this.connection.open(null, this.registryAuthenticationToken); + } + + public getRegistry() { + let registry = ''; + if (this.registryAuthenticationToken) { + const registryUrl = this.registryAuthenticationToken.getLoginServerUrl(); + registry = this.getHostName(registryUrl); + } + + return registry; + } + + public close() { + if (this.connection) { + this.connection.close(); + } + } + + private getHostName(registryUrl: string) { + const uri = url.parse(registryUrl); + const host = !uri.slashes ? uri.href : uri.host; + return host; + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/src/run.ts b/_generated/AzureFunctionOnKubernetesV0_Node16/src/run.ts new file mode 100644 index 000000000000..b7bdcc89de5b --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/src/run.ts @@ -0,0 +1,38 @@ +"use strict"; + +import * as path from 'path'; +import * as tl from 'azure-pipelines-task-lib/task'; +import * as utils from './utils/utilities'; +import { deploy } from './deploy'; +import { DockerConnection } from './dockerConnection'; +import { CommandHelper } from './utils/commandHelper'; + +tl.setResourcePath(path.join(__dirname, "..", 'task.json')); + +let telemetry = { + jobId: tl.getVariable('SYSTEM_JOBID') +}; + +console.log("##vso[telemetry.publish area=%s;feature=%s]%s", + "TaskEndpointId", + "AzureFunctionOnKubernetesV0", + JSON.stringify(telemetry)); + +async function run() { + const commandHelper = new CommandHelper(); + const dockerConnection = new DockerConnection(); + const kubernetesConnection = utils.getKubernetesConnection(); + dockerConnection.open(); + kubernetesConnection.open(); + + try { + await deploy(commandHelper, dockerConnection); + } + finally { + kubernetesConnection.close(); + dockerConnection.close(); + } +} + +run() + .catch((error) => tl.setResult(tl.TaskResult.Failed, !!error.message ? error.message : error)); \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/src/utils/commandHelper.ts b/_generated/AzureFunctionOnKubernetesV0_Node16/src/utils/commandHelper.ts new file mode 100644 index 000000000000..c1bf100a3b44 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/src/utils/commandHelper.ts @@ -0,0 +1,65 @@ +import * as path from "path"; +import * as tl from "azure-pipelines-task-lib/task"; +import * as tr from "azure-pipelines-task-lib/toolrunner"; +import * as FuncKubernetesUtility from 'azure-pipelines-tasks-kubernetes-common/funckubernetesutility'; +import * as CommonUtils from 'azure-pipelines-tasks-kubernetes-common/utility'; +import { DockerConnection } from "../dockerConnection"; + +export class CommandHelper { + private funcPath: string; + public kubectlPath: string; + + constructor() { + // Find the path of func and kubectl. This will throw if any of them is not present + // and hence the task will fail. + this.funcPath = tl.which('func', true); + this.kubectlPath = tl.which('kubectl', true); + } + + public execCommand(command: any, options?: tr.IExecOptions, warnIfError?: boolean) { + const result: tr.IExecSyncResult = command.execSync(options); + CommonUtils.checkForErrors([result], warnIfError); + return result; + } + + public getFuncDeployCommand(dockerConnection: DockerConnection, secretName: string, appName: string, namespace: string, dockerHubNamespace: string, pullSecretName: string, args: string) { + const registry = dockerHubNamespace ? dockerHubNamespace : dockerConnection.getRegistry(); + + if (!registry) { + tl.debug('Neither dockerHubNamespace is provided nor found registry info from Docker login. The deployment will fail.'); + } + + return FuncKubernetesUtility.getFuncDeployCommand(this.funcPath, secretName, appName, namespace, null, registry, pullSecretName, args); + } + + public getCreateDockerRegistrySecretCommand(secretName: string, namespace: string): tr.ToolRunner { + const dockerConfigDir = tl.getVariable('DOCKER_CONFIG'); + if (dockerConfigDir) { + const command = tl.tool(this.kubectlPath); + const dockerConfigPath = path.join(dockerConfigDir, 'config.json'); + command.arg(['create', 'secret', 'generic']); + command.arg(secretName); + command.arg(`--from-file=.dockerconfigjson=${dockerConfigPath}`); + command.arg('--type=kubernetes.io/dockerconfigjson'); + if (namespace) { + command.arg(['--namespace', namespace]); + } + + return command; + } + else { + tl.debug('Not creating any pull-secret as no Docker login found.'); + return null; + } + } + + public getDeleteSecretCommand(secretName: string, namespace: string): tr.ToolRunner { + const command = tl.tool(this.kubectlPath); + command.arg(['delete', 'secret', secretName]); + if (namespace) { + command.arg(['--namespace', namespace]); + } + + return command; + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/src/utils/fileHelper.ts b/_generated/AzureFunctionOnKubernetesV0_Node16/src/utils/fileHelper.ts new file mode 100644 index 000000000000..8d3f7f55468d --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/src/utils/fileHelper.ts @@ -0,0 +1,42 @@ +'use strict'; + +import * as fs from 'fs'; +import * as path from 'path'; +import * as tl from 'azure-pipelines-task-lib/task'; +import * as os from 'os'; + +export function getTempDirectory(): string { + return tl.getVariable('agent.tempDirectory') || os.tmpdir(); +} + +export function ensureDirExists(dirPath: string): void { + if (!fs.existsSync(dirPath)) { + fs.mkdirSync(dirPath); + } +} + +export function getTaskTempDir(): string { + const tempDirectory = getTempDirectory(); + const funcSuffix = 'funckubetask_' + getCurrentTime().toString(); + const userDir = path.join(tempDirectory, funcSuffix); + ensureDirExists(userDir); + + return userDir; +} + +export function writeContentToFile(filePath: string, content: string) { + try { + fs.writeFileSync(filePath, content); + } catch (ex) { + tl.debug('Exception occurred while wrting content to file : ' + content + ' . Exception: ' + ex); + } +} + +export function getFuncKubernetesYamlPath(): string { + const tasktempDir = getTaskTempDir(); + return path.join(tasktempDir, 'resource_templates.yaml'); +} + +function getCurrentTime(): number { + return new Date().getTime(); +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/src/utils/utilities.ts b/_generated/AzureFunctionOnKubernetesV0_Node16/src/utils/utilities.ts new file mode 100644 index 000000000000..6251954a2cbe --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/src/utils/utilities.ts @@ -0,0 +1,9 @@ +import * as tl from 'azure-pipelines-task-lib/task'; +import { KubernetesConnection } from 'azure-pipelines-tasks-kubernetes-common/kubernetesconnection'; +import * as FileHelper from './fileHelper'; + +export function getKubernetesConnection(): KubernetesConnection { + const kubernetesServiceConnection = tl.getInput('kubernetesServiceConnection', true); + const connection = new KubernetesConnection(kubernetesServiceConnection, FileHelper.getTaskTempDir()); + return connection; +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/task.json b/_generated/AzureFunctionOnKubernetesV0_Node16/task.json new file mode 100644 index 000000000000..5092c192bb6a --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/task.json @@ -0,0 +1,129 @@ +{ + "id": "FD1AA5B9-400C-4F4B-9C0B-069BA74E53C6", + "name": "AzureFunctionOnKubernetes", + "friendlyName": "Azure Function on Kubernetes", + "description": "Deploy Azure function to Kubernetes cluster.", + "helpUrl": "https://aka.ms/func-k8s", + "helpMarkDown": "[Learn more about this task](https://aka.ms/func-k8s) or [see Azure Functions on Kubernetes with KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) or [check out sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "category": "Deploy", + "preview": true, + "visibility": [ + "Build", + "Release" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 0, + "Minor": 226, + "Patch": 0 + }, + "demands": [], + "groups": [ + { + "name": "serviceConnections", + "displayName": "Service Connections", + "isExpanded": true + }, + { + "name": "commands", + "displayName": "Commands", + "isExpanded": true + } + ], + "inputs": [ + { + "name": "dockerRegistryServiceConnection", + "type": "connectedService:dockerregistry", + "label": "Docker registry service connection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Docker registry service connection." + }, + { + "name": "kubernetesServiceConnection", + "type": "connectedService:kubernetes", + "label": "Kubernetes service connection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Kubernetes service connection." + }, + { + "name": "namespace", + "type": "string", + "label": "Kubernetes namespace", + "groupName": "commands", + "helpMarkDown": "Kubernetes namespace" + }, + { + "name": "secretName", + "type": "string", + "label": "Secret Name", + "groupName": "commands", + "helpMarkDown": "Kubernetes secret containing function config data (for ex. AzureWebJobsStorage: )" + }, + { + "name": "dockerHubNamespace", + "type": "string", + "label": "Docker Hub namespace", + "groupName": "commands", + "helpMarkDown": "Docker Hub namespace. Required for private Docker Hub repository." + }, + { + "name": "appName", + "type": "string", + "required": true, + "label": "Application Name", + "groupName": "commands", + "helpMarkDown": "Application Name. The Kubernetes objects created use this name. This should follow Kubernetes naming conventions for resource names." + }, + { + "name": "functionRootDirectory", + "type": "filePath", + "label": "Function root directory", + "required": false, + "groupName": "commands", + "helpMarkDown": "Function root directory. Should contain host.json. Docker build and push is performed from this directory." + }, + { + "name": "waitForStability", + "type": "boolean", + "label": "Wait for stability", + "groupName": "commands", + "defaultValue": "true", + "helpMarkDown": "Wait for the Kubernetes objects to reach the desired state." + }, + { + "name": "arguments", + "type": "string", + "label": "Arguments", + "groupName": "commands", + "helpMarkDown": "Pass arguments to command. Ex:
--no-docker --service-type NodePort" + } + ], + "dataSourceBindings": [], + "instanceNameFormat": "Func on K8s - deploy", + "execution": { + "Node10": { + "target": "src//run.js" + }, + "Node16": { + "target": "src//run.js", + "argumentFormat": "" + } + }, + "messages": { + "AllContainersNotInReadyState": "All the containers are not in a ready state.", + "CouldNotDeterminePodStatus": "Could not determine the pod's status due to the error: %s", + "CouldNotDetermineServiceStatus": "Could not determine the service %s status due to the error: %s", + "FileContentSynced": "Synced the file content to the disk. The content is %s.", + "KubectlClientVersion": "Kubectl Client Version", + "KubectlServerVersion": "Kubectl Server Version", + "NoDataWrittenOnFile": "No data was written into the file %s", + "ServiceExternalIP": "service %s external IP is %s", + "WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s" + }, + "_buildConfigMapping": { + "Default": "0.226.1", + "Node16-225": "0.226.0" + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/task.loc.json b/_generated/AzureFunctionOnKubernetesV0_Node16/task.loc.json new file mode 100644 index 000000000000..b975f9072cba --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/task.loc.json @@ -0,0 +1,129 @@ +{ + "id": "FD1AA5B9-400C-4F4B-9C0B-069BA74E53C6", + "name": "AzureFunctionOnKubernetes", + "friendlyName": "ms-resource:loc.friendlyName", + "description": "ms-resource:loc.description", + "helpUrl": "https://aka.ms/func-k8s", + "helpMarkDown": "ms-resource:loc.helpMarkDown", + "category": "Deploy", + "preview": true, + "visibility": [ + "Build", + "Release" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 0, + "Minor": 226, + "Patch": 0 + }, + "demands": [], + "groups": [ + { + "name": "serviceConnections", + "displayName": "ms-resource:loc.group.displayName.serviceConnections", + "isExpanded": true + }, + { + "name": "commands", + "displayName": "ms-resource:loc.group.displayName.commands", + "isExpanded": true + } + ], + "inputs": [ + { + "name": "dockerRegistryServiceConnection", + "type": "connectedService:dockerregistry", + "label": "ms-resource:loc.input.label.dockerRegistryServiceConnection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "ms-resource:loc.input.help.dockerRegistryServiceConnection" + }, + { + "name": "kubernetesServiceConnection", + "type": "connectedService:kubernetes", + "label": "ms-resource:loc.input.label.kubernetesServiceConnection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "ms-resource:loc.input.help.kubernetesServiceConnection" + }, + { + "name": "namespace", + "type": "string", + "label": "ms-resource:loc.input.label.namespace", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.namespace" + }, + { + "name": "secretName", + "type": "string", + "label": "ms-resource:loc.input.label.secretName", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.secretName" + }, + { + "name": "dockerHubNamespace", + "type": "string", + "label": "ms-resource:loc.input.label.dockerHubNamespace", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.dockerHubNamespace" + }, + { + "name": "appName", + "type": "string", + "required": true, + "label": "ms-resource:loc.input.label.appName", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.appName" + }, + { + "name": "functionRootDirectory", + "type": "filePath", + "label": "ms-resource:loc.input.label.functionRootDirectory", + "required": false, + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.functionRootDirectory" + }, + { + "name": "waitForStability", + "type": "boolean", + "label": "ms-resource:loc.input.label.waitForStability", + "groupName": "commands", + "defaultValue": "true", + "helpMarkDown": "ms-resource:loc.input.help.waitForStability" + }, + { + "name": "arguments", + "type": "string", + "label": "ms-resource:loc.input.label.arguments", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.arguments" + } + ], + "dataSourceBindings": [], + "instanceNameFormat": "ms-resource:loc.instanceNameFormat", + "execution": { + "Node10": { + "target": "src//run.js" + }, + "Node16": { + "target": "src//run.js", + "argumentFormat": "" + } + }, + "messages": { + "AllContainersNotInReadyState": "ms-resource:loc.messages.AllContainersNotInReadyState", + "CouldNotDeterminePodStatus": "ms-resource:loc.messages.CouldNotDeterminePodStatus", + "CouldNotDetermineServiceStatus": "ms-resource:loc.messages.CouldNotDetermineServiceStatus", + "FileContentSynced": "ms-resource:loc.messages.FileContentSynced", + "KubectlClientVersion": "ms-resource:loc.messages.KubectlClientVersion", + "KubectlServerVersion": "ms-resource:loc.messages.KubectlServerVersion", + "NoDataWrittenOnFile": "ms-resource:loc.messages.NoDataWrittenOnFile", + "ServiceExternalIP": "ms-resource:loc.messages.ServiceExternalIP", + "WritingDockerConfigToTempFile": "ms-resource:loc.messages.WritingDockerConfigToTempFile" + }, + "_buildConfigMapping": { + "Default": "0.226.1", + "Node16-225": "0.226.0" + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV0_Node16/tsconfig.json b/_generated/AzureFunctionOnKubernetesV0_Node16/tsconfig.json new file mode 100644 index 000000000000..79a868c8d1e3 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV0_Node16/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "commonjs" + }, + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1.versionmap.txt b/_generated/AzureFunctionOnKubernetesV1.versionmap.txt new file mode 100644 index 000000000000..5b23f81e932d --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1.versionmap.txt @@ -0,0 +1,2 @@ +Default|1.226.1 +Node16-225|1.226.0 diff --git a/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/de-DE/resources.resjson b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/de-DE/resources.resjson new file mode 100644 index 000000000000..43cda11a081a --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/de-DE/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Azure Functions in Kubernetes", + "loc.helpMarkDown": "[Weitere Informationen zu dieser Aufgabe](https://aka.ms/func-k8s) oder [Azure Functions in Kubernetes mit KEDA](https://docs.microsoft.com/de-de/azure/azure-functions/functions-kubernetes-keda) oder [\"sample-hello-world-azure-functions\" anzeigen](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Stellen Sie eine Azure-Funktion im Kubernetes-Cluster bereit.", + "loc.instanceNameFormat": "Functions in Kubernetes – bereitstellen", + "loc.group.displayName.serviceConnections": "Dienstverbindungen", + "loc.group.displayName.commands": "Befehle", + "loc.input.label.connectionType": "Dienstverbindungstyp", + "loc.input.help.connectionType": "Wählen Sie einen Kubernetes-Dienstverbindungstyp aus.", + "loc.input.label.dockerRegistryServiceConnection": "Dienstverbindung für Docker-Registrierung", + "loc.input.help.dockerRegistryServiceConnection": "Wählen Sie eine Dienstverbindung für die Docker-Registrierung aus.", + "loc.input.label.kubernetesServiceEndpoint": "Kubernetes-Dienstverbindung", + "loc.input.help.kubernetesServiceEndpoint": "Wählen Sie eine Kubernetes-Dienstverbindung aus.", + "loc.input.label.azureSubscriptionEndpoint": "Azure-Abonnement", + "loc.input.help.azureSubscriptionEndpoint": "Wählen Sie das Azure Resource Manager-Abonnement aus, das Azure Container Registry enthält. Hinweis: Wählen Sie zum Konfigurieren einer neuen Dienstverbindung das Azure-Abonnement aus der Liste aus, und klicken Sie auf „Autorisieren“. Wenn Ihr Abonnement nicht aufgeführt ist oder Sie einen vorhandenen Dienstprinzipal verwenden möchten, können Sie über die Schaltfläche „Hinzufügen“ oder „Verwalten“ eine Azure-Dienstverbindung einrichten.", + "loc.input.label.azureResourceGroup": "Ressourcengruppe", + "loc.input.help.azureResourceGroup": "Wählen Sie eine Azure-Ressourcengruppe aus.", + "loc.input.label.kubernetesCluster": "Kubernetes-Cluster", + "loc.input.help.kubernetesCluster": "Wählen Sie einen verwalteten Azure-Cluster aus.", + "loc.input.label.namespace": "Kubernetes-Namespace", + "loc.input.help.namespace": "Kubernetes-Namespace", + "loc.input.label.secretName": "Der Name des Geheimnisses.", + "loc.input.help.secretName": "Kubernetes-Geheimnis mit Konfigurationsdaten für die Funktion (Beispiel: AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub-Namespace", + "loc.input.help.dockerHubNamespace": "Docker Hub-Namespace. Erforderlich für ein privates Docker Hub-Repository.", + "loc.input.label.appName": "Anwendungsname", + "loc.input.help.appName": "Anwendungsname. Die erstellten Kubernetes-Objekte verwenden diesen Namen. Der Name sollte den Kubernetes-Namenskonventionen für Ressourcen folgen.", + "loc.input.label.functionRootDirectory": "Stammverzeichnis der Funktion", + "loc.input.help.functionRootDirectory": "Stammverzeichnis für Funktionen. Sollte „host.json“ enthalten. Docker-Build- und -Pushvorgänge werden von diesem Verzeichnis aus ausgeführt.", + "loc.input.label.waitForStability": "Auf stabilen Zustand warten", + "loc.input.help.waitForStability": "Warten Sie, bis die Kubernetes-Objekte den gewünschten Zustand erreicht haben.", + "loc.input.label.arguments": "Argumente", + "loc.input.help.arguments": "Übergeben Sie Argumente an den Befehl. Beispiel:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Keiner der Container befindet sich im Zustand \"Bereit\".", + "loc.messages.CouldNotDeterminePodStatus": "Der Podstatus konnte aufgrund des folgenden Fehlers nicht bestimmt werden: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Der Status des Diensts \"%s\" konnte aufgrund des folgenden Fehlers nicht bestimmt werden: %s", + "loc.messages.FileContentSynced": "Der Inhalt der Datei wurde auf dem Datenträger synchronisiert. Der Inhalt ist \"%s\".", + "loc.messages.KubectlClientVersion": "Kubectl-Clientversion", + "loc.messages.KubectlServerVersion": "Kubectl-Serverversion", + "loc.messages.KubernetesClusterResourceGroup": "Kubernetes-Cluster „%s“, Ressourcengruppe „%s“.", + "loc.messages.NoDataWrittenOnFile": "In die Datei \"%s\" wurden keine Daten geschrieben.", + "loc.messages.ServiceExternalIP": "Die externe IP-Adresse für den Dienst \"%s\" lautet %s.", + "loc.messages.WritingDockerConfigToTempFile": "Die Docker-Konfiguration wird in die temporäre Datei geschrieben. Dateipfad: %s, Docker-Konfiguration: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/en-US/resources.resjson b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/en-US/resources.resjson new file mode 100644 index 000000000000..f8b2a2c850c6 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/en-US/resources.resjson @@ -0,0 +1,45 @@ +{ + "loc.friendlyName": "Azure Function on Kubernetes", + "loc.helpMarkDown": "[Learn more about this task](https://aka.ms/func-k8s) or [see Azure Functions on Kubernetes with KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) or [check out sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Deploy Azure function to Kubernetes cluster.", + "loc.instanceNameFormat": "Func on K8s - deploy", + "loc.group.displayName.serviceConnections": "Service Connections", + "loc.group.displayName.commands": "Commands", + "loc.input.label.connectionType": "Service connection type", + "loc.input.help.connectionType": "Select a Kubernetes service connection type.", + "loc.input.label.dockerRegistryServiceConnection": "Docker registry service connection", + "loc.input.help.dockerRegistryServiceConnection": "Select a Docker registry service connection.", + "loc.input.label.kubernetesServiceEndpoint": "Kubernetes service connection", + "loc.input.help.kubernetesServiceEndpoint": "Select a Kubernetes service connection.", + "loc.input.label.azureSubscriptionEndpoint": "Azure subscription", + "loc.input.help.azureSubscriptionEndpoint": "Select the Azure Resource Manager subscription, which contains Azure Container Registry.Note: To configure new service connection, select the Azure subscription from the list and click 'Authorize'. If your subscription is not listed or if you want to use an existing Service Principal, you can setup an Azure service connection using 'Add' or 'Manage' button.", + "loc.input.label.azureResourceGroup": "Resource group", + "loc.input.help.azureResourceGroup": "Select an Azure resource group.", + "loc.input.label.kubernetesCluster": "Kubernetes cluster", + "loc.input.help.kubernetesCluster": "Select an Azure managed cluster.", + "loc.input.label.namespace": "Kubernetes namespace", + "loc.input.help.namespace": "Kubernetes namespace", + "loc.input.label.secretName": "Secret Name", + "loc.input.help.secretName": "Kubernetes secret containing function config data (for ex. AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub namespace", + "loc.input.help.dockerHubNamespace": "Docker Hub namespace. Required for private Docker Hub repository.", + "loc.input.label.appName": "Application Name", + "loc.input.help.appName": "Application Name. The Kubernetes objects created use this name. This should follow Kubernetes naming conventions for resource names.", + "loc.input.label.functionRootDirectory": "Function root directory", + "loc.input.help.functionRootDirectory": "Function root directory. Should contain host.json. Docker build and push is performed from this directory.", + "loc.input.label.waitForStability": "Wait for stability", + "loc.input.help.waitForStability": "Wait for the Kubernetes objects to reach the desired state.", + "loc.input.label.arguments": "Arguments", + "loc.input.help.arguments": "Pass arguments to command. Ex:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "All the containers are not in a ready state.", + "loc.messages.CouldNotDeterminePodStatus": "Could not determine the pod's status due to the error: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Could not determine the service %s status due to the error: %s", + "loc.messages.FileContentSynced": "Synced the file content to the disk. The content is %s.", + "loc.messages.KubectlClientVersion": "Kubectl Client Version", + "loc.messages.KubectlServerVersion": "Kubectl Server Version", + "loc.messages.KubernetesClusterResourceGroup": "Kubernetes cluster %s, resource group %s.", + "loc.messages.NoDataWrittenOnFile": "No data was written into the file %s", + "loc.messages.ServiceExternalIP": "service %s external IP is %s", + "loc.messages.WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s", + "loc.messages.KubeloginFailed": "Kubelogin authentication failed. Exception: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/es-ES/resources.resjson b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/es-ES/resources.resjson new file mode 100644 index 000000000000..43978ef6433c --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/es-ES/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Función de Azure en Kubernetes", + "loc.helpMarkDown": "[Obtener más información acerca de esta tarea](https://aka.ms/func-k8s), [consultar Azure Functions en Kubernetes con KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) o [consultar sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Implementa la función de Azure en el clúster de Kubernetes.", + "loc.instanceNameFormat": "Función en K8s: implementar", + "loc.group.displayName.serviceConnections": "Conexiones de servicio", + "loc.group.displayName.commands": "Comandos", + "loc.input.label.connectionType": "Tipo de conexión de servicio", + "loc.input.help.connectionType": "Seleccione un tipo de conexión de servicio de Kubernetes.", + "loc.input.label.dockerRegistryServiceConnection": "Conexión de servicio del registro de Docker", + "loc.input.help.dockerRegistryServiceConnection": "Seleccione una conexión del servicio de registro de Docker.", + "loc.input.label.kubernetesServiceEndpoint": "Conexión de servicio de Kubernetes", + "loc.input.help.kubernetesServiceEndpoint": "Seleccione una conexión del servicio de Kubernetes.", + "loc.input.label.azureSubscriptionEndpoint": "Suscripción a Azure", + "loc.input.help.azureSubscriptionEndpoint": "Seleccione la suscripción de Azure Resource Manager, que contiene Azure Container Registry. Nota: Para configurar una nueva conexión de servicio, seleccione la suscripción de Azure de la lista y haga clic en \"Autorizar\". Si la suscripción no aparece en la lista o quiere usar una entidad de servicio existente, puede configurar la conexión de servicio de Azure con el botón \"Agregar\" o \"Administrar\".", + "loc.input.label.azureResourceGroup": "Grupo de recursos", + "loc.input.help.azureResourceGroup": "Seleccione un grupo de recursos de Azure.", + "loc.input.label.kubernetesCluster": "Clúster de Kubernetes", + "loc.input.help.kubernetesCluster": "Seleccione un clúster de Azure administrado.", + "loc.input.label.namespace": "Espacio de nombres de Kubernetes", + "loc.input.help.namespace": "Espacio de nombres de Kubernetes", + "loc.input.label.secretName": "Nombre del secreto", + "loc.input.help.secretName": "Secreto de Kubernetes que contiene los datos de configuración de la función (por ejemplo, AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Espacio de nombres de Docker Hub", + "loc.input.help.dockerHubNamespace": "Espacio de nombres de Docker Hub. Se requiere para el repositorio privado de Docker Hub.", + "loc.input.label.appName": "Nombre de aplicación", + "loc.input.help.appName": "Nombre de la aplicación. Los objetos de Kubernetes creados usan este nombre, que debe seguir las convenciones de nomenclatura de Kubernetes para los nombres de recurso.", + "loc.input.label.functionRootDirectory": "Directorio raíz de la función", + "loc.input.help.functionRootDirectory": "Directorio raíz de la función; debe contener host.json. La compilación e inserción de Docker se realizan desde este directorio.", + "loc.input.label.waitForStability": "Esperar estabilidad", + "loc.input.help.waitForStability": "Espere a que los objetos de Kubernetes alcancen el estado deseado.", + "loc.input.label.arguments": "Argumentos", + "loc.input.help.arguments": "Pase argumentos al comando. Ejemplo:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Ninguno de los contenedores está listo.", + "loc.messages.CouldNotDeterminePodStatus": "No se pudo determinar el estado del pod debido al error siguiente: %s", + "loc.messages.CouldNotDetermineServiceStatus": "No se pudo determinar el estado del servicio %s debido al error siguiente: %s", + "loc.messages.FileContentSynced": "Se ha sincronizado el contenido del archivo con el disco. El contenido es %s.", + "loc.messages.KubectlClientVersion": "Versión del cliente de Kubectl", + "loc.messages.KubectlServerVersion": "Versión del servidor de Kubectl", + "loc.messages.KubernetesClusterResourceGroup": "Clúster de Kubernetes %s, grupo de recursos %s.", + "loc.messages.NoDataWrittenOnFile": "No se escribieron datos en el archivo %s", + "loc.messages.ServiceExternalIP": "La dirección IP externa del servicio %s es %s", + "loc.messages.WritingDockerConfigToTempFile": "Escribiendo la configuración de Docker en el archivo temporal. Ruta de acceso del archivo: %s. Configuración de Docker: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/fr-FR/resources.resjson b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/fr-FR/resources.resjson new file mode 100644 index 000000000000..707336381a66 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/fr-FR/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Azure Functions sur Kubernetes", + "loc.helpMarkDown": "[En savoir plus sur cette tâche](https://aka.ms/func-k8s) ou [consulter Azure Functions sur Kubernetes avec KEDA](https://docs.microsoft.com/fr-fr/azure/azure-functions/functions-kubernetes-keda) ou [consulter sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Permet de déployer Azure Functions sur un cluster Kubernetes.", + "loc.instanceNameFormat": "Fonction sur Kubernetes – Déployer", + "loc.group.displayName.serviceConnections": "Connexions de service", + "loc.group.displayName.commands": "Commandes", + "loc.input.label.connectionType": "Type de connexion de service", + "loc.input.help.connectionType": "Sélectionnez un type de connexion de service Kubernetes.", + "loc.input.label.dockerRegistryServiceConnection": "Connexion de service de registre Docker", + "loc.input.help.dockerRegistryServiceConnection": "Sélectionnez une connexion de service de registre Docker.", + "loc.input.label.kubernetesServiceEndpoint": "Connexion de service Kubernetes", + "loc.input.help.kubernetesServiceEndpoint": "Sélectionnez une connexion de service Kubernetes.", + "loc.input.label.azureSubscriptionEndpoint": "Abonnement Azure", + "loc.input.help.azureSubscriptionEndpoint": "Sélectionnez l’abonnement Azure Resource Manager, qui contient Azure Container Registry. Note : Pour configurer une nouvelle connexion de service, sélectionnez l’abonnement Azure dans la liste, puis cliquez sur Autoriser. Remarque : Si votre abonnement n’est pas listé, ou si vous souhaitez utiliser un principal du service existant, vous pouvez configurer une connexion au service Azure à l’aide du bouton 'Ajouter' ou 'Gérer'.", + "loc.input.label.azureResourceGroup": "Groupe de ressources", + "loc.input.help.azureResourceGroup": "Sélectionnez un groupe de ressources Azure.", + "loc.input.label.kubernetesCluster": "Cluster Kubernetes", + "loc.input.help.kubernetesCluster": "Sélectionnez un cluster managé Azure.", + "loc.input.label.namespace": "Espace de noms Kubernetes", + "loc.input.help.namespace": "Espace de noms Kubernetes", + "loc.input.label.secretName": "Nom du secret", + "loc.input.help.secretName": "Secret Kubernetes contenant les données de configuration de fonction (par exemple AzureWebJobsStorage : )", + "loc.input.label.dockerHubNamespace": "Espace de noms Docker Hub", + "loc.input.help.dockerHubNamespace": "Espace de noms Docker Hub. Obligatoire pour le dépôt Docker Hub privé.", + "loc.input.label.appName": "Nom de l’application", + "loc.input.help.appName": "Nom d’application. Les objets Kubernetes créés utilisent ce nom. Il doit respecter les conventions d’affectation de noms Kubernetes pour les noms de ressources.", + "loc.input.label.functionRootDirectory": "Répertoire racine de la fonction", + "loc.input.help.functionRootDirectory": "Répertoire racine de la fonction. Doit contenir host.json. La build Docker et son envoi (push) sont effectués à partir de ce répertoire.", + "loc.input.label.waitForStability": "Attendre la stabilisation", + "loc.input.help.waitForStability": "Attendez que les objets Kubernetes atteignent l’état souhaité.", + "loc.input.label.arguments": "Arguments", + "loc.input.help.arguments": "Passez les arguments à la commande. Exemple :
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Tous les conteneurs ne sont pas prêts.", + "loc.messages.CouldNotDeterminePodStatus": "Impossible de déterminer l'état du pod en raison de l'erreur %s", + "loc.messages.CouldNotDetermineServiceStatus": "Impossible de déterminer l'état du service %s en raison de l'erreur %s", + "loc.messages.FileContentSynced": "Synchronisation effectuée du contenu du fichier sur le disque. Le contenu est %s.", + "loc.messages.KubectlClientVersion": "Version du client kubectl", + "loc.messages.KubectlServerVersion": "Version du serveur kubectl", + "loc.messages.KubernetesClusterResourceGroup": "Cluster Kubernetes : %s, groupe de ressources : %s.", + "loc.messages.NoDataWrittenOnFile": "Aucune donnée n’a été écrite dans le fichier %s", + "loc.messages.ServiceExternalIP": "l'adresse IP externe du service %s est %s", + "loc.messages.WritingDockerConfigToTempFile": "Écriture de la configuration Docker dans le fichier temporaire. Chemin de fichier : %s. Configuration Docker : %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/it-IT/resources.resjson b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/it-IT/resources.resjson new file mode 100644 index 000000000000..41341deb8b83 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/it-IT/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Funzione di Azure in Kubernetes", + "loc.helpMarkDown": "[Altre informazioni su questa attività](https://aka.ms/func-k8s). In alternativa, [vedere Funzioni di Azure in Kubernetes con KEDA](https://docs.microsoft.com/it-it/azure/azure-functions/functions-kubernetes-keda) oppure [sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Distribuisce la funzione di Azure nel cluster Kubernetes.", + "loc.instanceNameFormat": "Funzione in K8s - Distribuzione", + "loc.group.displayName.serviceConnections": "Connessioni al servizio", + "loc.group.displayName.commands": "Comandi", + "loc.input.label.connectionType": "Tipo di connessione al servizio", + "loc.input.help.connectionType": "Selezionare un tipo di connessione al servizio Kubernetes.", + "loc.input.label.dockerRegistryServiceConnection": "Connessione al servizio Registro Docker", + "loc.input.help.dockerRegistryServiceConnection": "Selezionare una connessione al servizio Registro Docker.", + "loc.input.label.kubernetesServiceEndpoint": "Connessione al servizio Kubernetes", + "loc.input.help.kubernetesServiceEndpoint": "Selezionare una connessione al servizio Kubernetes.", + "loc.input.label.azureSubscriptionEndpoint": "Sottoscrizione di Azure", + "loc.input.help.azureSubscriptionEndpoint": "Consente di selezionare l'abbonamento di Azure Resource Manager che contiene Registro Azure Container. Nota: per configurare la nuova connessione al servizio, selezionare l'abbonamento di Azure dall'elenco e fare clic su 'Autorizza'. Se l'abbonamento non è incluso nell'elenco o si vuole usare un'entità servizio esistente, è possibile configurare una connessione al servizio di Azure usando il pulsante 'Aggiungi' o 'Gestisci'.", + "loc.input.label.azureResourceGroup": "Gruppo di risorse", + "loc.input.help.azureResourceGroup": "Consente di selezionare un gruppo di risorse di Azure.", + "loc.input.label.kubernetesCluster": "Cluster Kubernetes", + "loc.input.help.kubernetesCluster": "Selezionare un cluster gestito di Azure.", + "loc.input.label.namespace": "Spazio dei nomi Kubernetes", + "loc.input.help.namespace": "Spazio dei nomi Kubernetes", + "loc.input.label.secretName": "Nome del segreto", + "loc.input.help.secretName": "Segreto di Kubernetes contenente i dati di configurazione della funzione, ad esempio AzureWebJobsStorage: ", + "loc.input.label.dockerHubNamespace": "Spazio dei nomi di Docker Hub", + "loc.input.help.dockerHubNamespace": "Spazio dei nomi di Docker Hub. È obbligatorio per il repository Docker Hub privato.", + "loc.input.label.appName": "Nome applicazione", + "loc.input.help.appName": "Nome dell'applicazione usato dagli oggetti Kubernetes creati. Deve essere conforme alle convenzioni di denominazione Kubernetes per i nomi di risorsa.", + "loc.input.label.functionRootDirectory": "Directory radice della funzione", + "loc.input.help.functionRootDirectory": "Directory radice della funzione. Deve contenere host.json. I comandi build e push di Docker vengono eseguiti da questa directory.", + "loc.input.label.waitForStability": "Attendi stabilità", + "loc.input.help.waitForStability": "Attende che gli oggetti Kubernetes raggiungano lo stato desiderato.", + "loc.input.label.arguments": "Argomenti", + "loc.input.help.arguments": "Passa gli argomenti al comando. Esempio:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Tutti i contenitori non si trovano in uno stato pronto.", + "loc.messages.CouldNotDeterminePodStatus": "Non è stato possibile determinare lo stato del pod a causa dell'errore: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Non è stato possibile determinare lo stato del servizio %s a causa dell'errore: %s", + "loc.messages.FileContentSynced": "Il contenuto del file è stato sincronizzato con il disco. Il contenuto è %s.", + "loc.messages.KubectlClientVersion": "Versione del client kubectl", + "loc.messages.KubectlServerVersion": "Versione del server kubectl", + "loc.messages.KubernetesClusterResourceGroup": "Cluster Kubernetes %s, gruppo di risorse %s.", + "loc.messages.NoDataWrittenOnFile": "Non sono stati scritti dati nel file %s", + "loc.messages.ServiceExternalIP": "l'IP esterno del servizio %s è %s", + "loc.messages.WritingDockerConfigToTempFile": "Scrittura della configurazione di Docker nel file temporaneo. Percorso del file: %s. Configurazione di Docker: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/ja-JP/resources.resjson b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/ja-JP/resources.resjson new file mode 100644 index 000000000000..3f716d4fd6f6 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/ja-JP/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Kubernetes での Azure 関数", + "loc.helpMarkDown": "[このタスクの詳細を表示](https://aka.ms/func-k8s)、または [「KEDA を使用した Kubernetes での Azure Functions」を参照](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda)、あるいは [sample-hello-world-azure-functions を確認](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Azure 関数を Kubernetes クラスターにデプロイします。", + "loc.instanceNameFormat": "K8s 上の関数 - デプロイ", + "loc.group.displayName.serviceConnections": "サービス接続", + "loc.group.displayName.commands": "コマンド", + "loc.input.label.connectionType": "サービス接続の種類", + "loc.input.help.connectionType": "Kubernetes サービス接続の種類を選択します。", + "loc.input.label.dockerRegistryServiceConnection": "Docker レジストリ サービス接続", + "loc.input.help.dockerRegistryServiceConnection": "Docker レジストリ サービス接続を選択します。", + "loc.input.label.kubernetesServiceEndpoint": "Kubernetes サービス接続", + "loc.input.help.kubernetesServiceEndpoint": "Kubernetes サービス接続を選択します。", + "loc.input.label.azureSubscriptionEndpoint": "Azure サブスクリプション", + "loc.input.help.azureSubscriptionEndpoint": "Azure Container Registry を含む Azure Resource Manager サブスクリプションを選択します。注: 新しいサービス接続を構成するには、リストから Azure サブスクリプションを選択して、[承認] をクリックします。サブスクリプションがリストにない場合、または既存のサービス プリンシパルを使用する場合は、[追加] または [管理] ボタンを使用して Azure サービス接続をセットアップすることができます。", + "loc.input.label.azureResourceGroup": "リソース グループ", + "loc.input.help.azureResourceGroup": "Azure リソース グループを選択します。", + "loc.input.label.kubernetesCluster": "Kubernetes クラスター", + "loc.input.help.kubernetesCluster": "Azure 管理対象クラスターを選択します。", + "loc.input.label.namespace": "Kubernetes 名前空間", + "loc.input.help.namespace": "Kubernetes 名前空間", + "loc.input.label.secretName": "シークレット名", + "loc.input.help.secretName": "関数の構成データを含む Kubernetes シークレット (例: AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub の名前空間", + "loc.input.help.dockerHubNamespace": "Docker Hub の名前空間。Docker Hub のプライベート リポジトリでは必須です。", + "loc.input.label.appName": "アプリケーション名", + "loc.input.help.appName": "アプリケーション名。作成された Kubernetes オブジェクトにこの名前が使用されます。これは、リソース名に対する Kubernetes の名前付け規則に従う必要があります。", + "loc.input.label.functionRootDirectory": "関数のルート ディレクトリ", + "loc.input.help.functionRootDirectory": "関数のルート ディレクトリ。host.json が含まれている必要があります。Docker のビルドとプッシュはこのディレクトリから実行されます。", + "loc.input.label.waitForStability": "安定するまで待機する", + "loc.input.help.waitForStability": "Kubernetes オブジェクトが目的の状態になるまで待機します。", + "loc.input.label.arguments": "引数", + "loc.input.help.arguments": "コマンドに引数を渡します。例:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "一部のコンテナーが準備完了の状態ではありません。", + "loc.messages.CouldNotDeterminePodStatus": "エラー: %s が原因でポッドの状態を特定できませんでした", + "loc.messages.CouldNotDetermineServiceStatus": "エラー: %s が原因でサービスを特定できませんでした", + "loc.messages.FileContentSynced": "ファイルの内容がディスクに同期されました。内容は %s です。", + "loc.messages.KubectlClientVersion": "kubectl クライアント バージョン", + "loc.messages.KubectlServerVersion": "kubectl サーバー バージョン", + "loc.messages.KubernetesClusterResourceGroup": "Kubernetes クラスター %s、リソース グループ %s。", + "loc.messages.NoDataWrittenOnFile": "ファイル %s にデータが書き込まれませんでした", + "loc.messages.ServiceExternalIP": "サービス %s の外部 IP は %s です", + "loc.messages.WritingDockerConfigToTempFile": "Docker 構成を一時ファイルに書き込んでいます。ファイル パス: %s、Docker 構成: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/ko-KR/resources.resjson b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/ko-KR/resources.resjson new file mode 100644 index 000000000000..0610ba1fa17f --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/ko-KR/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Kubernetes의 Azure Function", + "loc.helpMarkDown": "[이 작업에 대한 자세한 정보](https://aka.ms/func-k8s) 또는 [KEDA가 있는 Kubernetes의 Azure Functions 참조](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) 또는 [sample-hello-world-azure-functions 확인](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Azure 함수를 Kubernetes 클러스터에 배포합니다.", + "loc.instanceNameFormat": "K8s의 함수 - 배포", + "loc.group.displayName.serviceConnections": "서비스 연결", + "loc.group.displayName.commands": "명령", + "loc.input.label.connectionType": "서비스 연결 형식", + "loc.input.help.connectionType": "Kubernetes 서비스 연결 유형을 선택합니다.", + "loc.input.label.dockerRegistryServiceConnection": "Docker 레지스트리 서비스 연결", + "loc.input.help.dockerRegistryServiceConnection": "Docker 레지스트리 서비스 연결을 선택합니다.", + "loc.input.label.kubernetesServiceEndpoint": "Kubernetes 서비스 연결", + "loc.input.help.kubernetesServiceEndpoint": "Kubernetes 서비스 연결을 선택합니다.", + "loc.input.label.azureSubscriptionEndpoint": "Azure 구독", + "loc.input.help.azureSubscriptionEndpoint": "Azure Container Registry가 포함된 Azure Resource Manager 구독을 선택합니다. 참고: 새 서비스 연결을 구성하려면 목록에서 Azure 구독을 선택하고 '권한 부여'를 클릭합니다. 구독이 목록에 없거나 기존 서비스 주체를 사용하려는 경우 '추가' 또는 '관리' 단추를 사용하여 Azure 서비스 연결을 설정할 수 있습니다.", + "loc.input.label.azureResourceGroup": "리소스 그룹", + "loc.input.help.azureResourceGroup": "Azure 리소스 그룹을 선택합니다.", + "loc.input.label.kubernetesCluster": "Kubernetes 클러스터", + "loc.input.help.kubernetesCluster": "Azure 관리 클러스터를 선택합니다.", + "loc.input.label.namespace": "Kubernetes 네임스페이스", + "loc.input.help.namespace": "Kubernetes 네임스페이스", + "loc.input.label.secretName": "비밀 이름", + "loc.input.help.secretName": "함수 구성 데이터가 포함된 Kubernetes 비밀입니다(예: AzureWebJobsStorage: ).", + "loc.input.label.dockerHubNamespace": "Docker Hub 네임스페이스", + "loc.input.help.dockerHubNamespace": "Docker Hub 네임스페이스입니다. 프라이빗 Docker Hub 리포지토리에 필요합니다.", + "loc.input.label.appName": "애플리케이션 이름", + "loc.input.help.appName": "애플리케이션 이름입니다. 만들어진 Kubernetes 개체가 이 이름을 사용합니다. 이 이름은 리소스 이름에 대한 Kubernetes 명명 규칙을 따라야 합니다.", + "loc.input.label.functionRootDirectory": "함수 루트 디렉터리", + "loc.input.help.functionRootDirectory": "함수 루트 디렉터리입니다. host.json이 포함되어야 합니다. Docker 빌드 및 푸시는 이 디렉터리에서 수행됩니다.", + "loc.input.label.waitForStability": "안정성 대기", + "loc.input.help.waitForStability": "Kubernetes 개체가 원하는 상태에 도달할 때까지 기다립니다.", + "loc.input.label.arguments": "인수", + "loc.input.help.arguments": "명령에 인수를 전달합니다. 예:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "모든 컨테이너가 준비 상태에 있지 않습니다.", + "loc.messages.CouldNotDeterminePodStatus": "오류로 인해 Pod의 상태를 확인할 수 없습니다. 오류: %s", + "loc.messages.CouldNotDetermineServiceStatus": "오류로 인해 서비스 %s 상태를 확인할 수 없습니다. 오류: %s", + "loc.messages.FileContentSynced": "파일 콘텐츠를 디스크에 동기화했습니다. 콘텐츠는 %s입니다.", + "loc.messages.KubectlClientVersion": "Kubectl 클라이언트 버전", + "loc.messages.KubectlServerVersion": "Kubectl 서버 버전", + "loc.messages.KubernetesClusterResourceGroup": "Kubernetes 클러스터 %s, 리소스 그룹 %s.", + "loc.messages.NoDataWrittenOnFile": "%s 파일에 데이터가 기록되지 않았습니다.", + "loc.messages.ServiceExternalIP": "서비스 %s 외부 IP가 %s입니다.", + "loc.messages.WritingDockerConfigToTempFile": "임시 파일에 Docker 구성을 쓰는 중입니다. 파일 경로: %s, Docker 구성: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/ru-RU/resources.resjson b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/ru-RU/resources.resjson new file mode 100644 index 000000000000..d0d21513e702 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/ru-RU/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Функция Azure в Kubernetes", + "loc.helpMarkDown": "См. [дополнительные сведения об этой задаче](https://aka.ms/func-k8s), [сведения об использовании Функций Azure в Kubernetes с KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) или [пример sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions).", + "loc.description": "Развертывание функции Azure в кластере Kubernetes.", + "loc.instanceNameFormat": "Функция в Kubernetes — развертывание", + "loc.group.displayName.serviceConnections": "Подключения служб", + "loc.group.displayName.commands": "Команды", + "loc.input.label.connectionType": "Тип подключения службы", + "loc.input.help.connectionType": "Выберите тип подключения службы Kubernetes.", + "loc.input.label.dockerRegistryServiceConnection": "Подключение к службе реестра Docker", + "loc.input.help.dockerRegistryServiceConnection": "Выберите подключение службы реестра Docker.", + "loc.input.label.kubernetesServiceEndpoint": "Подключение службы Kubernetes", + "loc.input.help.kubernetesServiceEndpoint": "Выберите подключение службы Kubernetes.", + "loc.input.label.azureSubscriptionEndpoint": "Подписка Azure", + "loc.input.help.azureSubscriptionEndpoint": "Выберите подписку Azure Resource Manager, которая включает Реестр контейнеров Azure. Примечание. Чтобы настроить новое подключение службы, выберите подписку Azure в списке и щелкните \"Авторизовать\". Если вашей подписки нет в списке или вы хотите использовать имеющийся субъект-службу, можно настроить подключение службы Azure с помощью кнопки \"Добавить\" или \"Управление\".", + "loc.input.label.azureResourceGroup": "Группа ресурсов", + "loc.input.help.azureResourceGroup": "Выберите группу ресурсов Azure.", + "loc.input.label.kubernetesCluster": "Кластер Kubernetes", + "loc.input.help.kubernetesCluster": "Выберите управляемый кластер Azure.", + "loc.input.label.namespace": "Пространство имен Kubernetes", + "loc.input.help.namespace": "Пространство имен Kubernetes", + "loc.input.label.secretName": "Имя секрета", + "loc.input.help.secretName": "Секрет Kubernetes, содержащий данные конфигурации функции (например, AzureWebJobsStorage: <строка подключения службы хранилища Azure>)", + "loc.input.label.dockerHubNamespace": "Пространство имен Docker Hub", + "loc.input.help.dockerHubNamespace": "Пространство имен Docker Hub. Требуется для частного репозитория Docker Hub.", + "loc.input.label.appName": "Имя приложения", + "loc.input.help.appName": "Имя приложения. Оно будет использоваться созданными объектами Kubernetes и должно соответствовать соглашениям об именовании Kubernetes для имен ресурсов.", + "loc.input.label.functionRootDirectory": "Корневой каталог функции", + "loc.input.help.functionRootDirectory": "Корневой каталог функции. Должен содержать host.json. Сборка и отправка Docker выполняются из этого каталога.", + "loc.input.label.waitForStability": "Дождитесь стабильности", + "loc.input.help.waitForStability": "Дождитесь, когда объекты Kubernetes достигнут желаемого состояния.", + "loc.input.label.arguments": "Аргументы", + "loc.input.help.arguments": "Передача аргументов команде. Пример:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Все контейнеры не находятся в состоянии готовности.", + "loc.messages.CouldNotDeterminePodStatus": "Не удалось определить состояние объекта pod из-за ошибки: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Не удалось определить состояние службы %s из-за ошибки: %s", + "loc.messages.FileContentSynced": "Содержимое файла синхронизировано с диском. Содержимое: %s.", + "loc.messages.KubectlClientVersion": "Версия клиента kubectl", + "loc.messages.KubectlServerVersion": "Версия сервера kubectl", + "loc.messages.KubernetesClusterResourceGroup": "Кластер Kubernetes %s, группа ресурсов %s.", + "loc.messages.NoDataWrittenOnFile": "Данные не были записаны в файл %s", + "loc.messages.ServiceExternalIP": "Внешний IP-адрес службы %s — %s.", + "loc.messages.WritingDockerConfigToTempFile": "Запись конфигурации Docker во временный файл. Путь к файлу: %s, конфигурация Docker: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/zh-CN/resources.resjson b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/zh-CN/resources.resjson new file mode 100644 index 000000000000..63c2f72971b1 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/zh-CN/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Kubernetes 上的 Azure 功能", + "loc.helpMarkDown": "[详细了解此任务](https://aka.ms/func-k8s)或[参阅有 KEDA 功能的 Kubernetes 上的 Azure Functions](https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-kubernetes-keda)或[查看 sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "将 Azure 功能部署到 Kubernetes 群集。", + "loc.instanceNameFormat": "K8s 上的 Func - 部署", + "loc.group.displayName.serviceConnections": "服务连接", + "loc.group.displayName.commands": "命令", + "loc.input.label.connectionType": "服务连接类型", + "loc.input.help.connectionType": "选择 Kubernetes 服务连接类型。", + "loc.input.label.dockerRegistryServiceConnection": "Docker 注册表服务连接", + "loc.input.help.dockerRegistryServiceConnection": "选择 Docker 注册表服务连接。", + "loc.input.label.kubernetesServiceEndpoint": "Kubernetes 服务连接", + "loc.input.help.kubernetesServiceEndpoint": "选择 Kubernetes 服务连接。", + "loc.input.label.azureSubscriptionEndpoint": "Azure 订阅", + "loc.input.help.azureSubscriptionEndpoint": "选择 Azure 资源管理器订阅,其中包含 Azure 容器注册表。注意: 要配置新的服务连接,请从列表中选择 Azure 订阅并单击“授权”。如果未列出订阅,或若要使用现有服务主体,可使用“添加”或“管理”按钮设置 Azure 服务连接。", + "loc.input.label.azureResourceGroup": "资源组", + "loc.input.help.azureResourceGroup": "选择 Azure 资源组。", + "loc.input.label.kubernetesCluster": "Kubernetes 群集", + "loc.input.help.kubernetesCluster": "选择 Azure 托管的群集。", + "loc.input.label.namespace": "Kubernetes 命名空间", + "loc.input.help.namespace": "Kubernetes 命名空间", + "loc.input.label.secretName": "机密名称", + "loc.input.help.secretName": "包含函数配置数据的 Kubernetes 机密(例如 AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub 命名空间", + "loc.input.help.dockerHubNamespace": "Docker Hub 命名空间。对于专用 Docker Hub 存储库是必需的。", + "loc.input.label.appName": "应用程序名称", + "loc.input.help.appName": "应用程序名称。创建的 Kubernetes 对象使用此名称。这应遵循 Kubernetes 资源名称命名约定。", + "loc.input.label.functionRootDirectory": "函数根目录", + "loc.input.help.functionRootDirectory": "函数根目录。应包含 host.json。从该目录执行 Docker 生成和推送。", + "loc.input.label.waitForStability": "等待稳定", + "loc.input.help.waitForStability": "等待 Kubernetes 对象达到所需状态。", + "loc.input.label.arguments": "参数", + "loc.input.help.arguments": "将参数传递给命令。例如:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "所有容器均未处于就绪状态。", + "loc.messages.CouldNotDeterminePodStatus": "由于错误 %s,无法确定 Pod 的状态", + "loc.messages.CouldNotDetermineServiceStatus": "由于错误 %s,无法确定服务 %s 状态", + "loc.messages.FileContentSynced": "文件内容已同步到磁盘。内容为 %s。", + "loc.messages.KubectlClientVersion": "Kubectl 客户端版本", + "loc.messages.KubectlServerVersion": "Kubectl 服务器版本", + "loc.messages.KubernetesClusterResourceGroup": "Kubernetes 群集 %s,资源组 %s。", + "loc.messages.NoDataWrittenOnFile": "没有任何数据写入到文件 %s", + "loc.messages.ServiceExternalIP": "服务 %s 外部 IP 为 %s", + "loc.messages.WritingDockerConfigToTempFile": "正在将 Docker 配置写入临时文件。文件路径: %s,Docker 配置: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/zh-TW/resources.resjson b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/zh-TW/resources.resjson new file mode 100644 index 000000000000..296747a51c2e --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/Strings/resources.resjson/zh-TW/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Kubernetes 上的 Azure 函式", + "loc.helpMarkDown": "[深入了解此工作](https://aka.ms/func-k8s)、[參閱 Kubernetes 上的 Azure Functions 與 KEDA](https://docs.microsoft.com/zh-tw/azure/azure-functions/functions-kubernetes-keda) 或[查看 sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "將 Azure 函式部署至 Kubernetes 叢集。", + "loc.instanceNameFormat": "K8s 上的函式 - 部署", + "loc.group.displayName.serviceConnections": "服務連線", + "loc.group.displayName.commands": "命令", + "loc.input.label.connectionType": "服務連線類型", + "loc.input.help.connectionType": "選取 Kubernetes 服務類型。", + "loc.input.label.dockerRegistryServiceConnection": "Docker 登錄服務連線", + "loc.input.help.dockerRegistryServiceConnection": "選取 Docker 登錄服務連線。", + "loc.input.label.kubernetesServiceEndpoint": "Kubernetes 服務連線", + "loc.input.help.kubernetesServiceEndpoint": "請選取 Kubernetes 服務連線。", + "loc.input.label.azureSubscriptionEndpoint": "Azure 訂用帳戶", + "loc.input.help.azureSubscriptionEndpoint": "請選取包含 Azure Container Registry 的 Azure Resource Manager 訂用帳戶。注意: 若要設定新的服務連線,請從清單中選取 Azure 訂用帳戶,然後按一下 [授權]。若未列出您的訂用帳戶,或您要使用現有服務主體,可使用 [新增] 或 [管理] 按鈕來設定 Azure 服務連線。", + "loc.input.label.azureResourceGroup": "資源群組", + "loc.input.help.azureResourceGroup": "請選取 Azure 資源群組。", + "loc.input.label.kubernetesCluster": "Kubernetes 叢集", + "loc.input.help.kubernetesCluster": "選取 Azure 受控叢集。", + "loc.input.label.namespace": "Kubernetes 命名空間", + "loc.input.help.namespace": "Kubernetes 命名空間", + "loc.input.label.secretName": "祕密名稱", + "loc.input.help.secretName": "包含函式組態資料的 Kubernetes 祕密 (例如 AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub 命名空間", + "loc.input.help.dockerHubNamespace": "Docker Hub 命名空間。私人 Docker Hub 存放庫的必要項。", + "loc.input.label.appName": "應用程式名稱", + "loc.input.help.appName": "應用程式名稱,用於建立 Kubernetes 物件。此名稱應該遵循 Kubernetes 的資源名稱命名慣例。", + "loc.input.label.functionRootDirectory": "函式根目錄", + "loc.input.help.functionRootDirectory": "函式根目錄,應包含 host.json。從此目錄執行 Docker 建置和推送。", + "loc.input.label.waitForStability": "等候達到穩定", + "loc.input.help.waitForStability": "等候 Kubernetes 物件達到預期的狀態。", + "loc.input.label.arguments": "引數", + "loc.input.help.arguments": "將引數傳遞給命令,例如:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "所有容器皆未處於就緒狀態。", + "loc.messages.CouldNotDeterminePodStatus": "因為發生以下錯誤,所以無法判斷 Pod 的狀態: %s", + "loc.messages.CouldNotDetermineServiceStatus": "因為發生以下錯誤,所以無法判斷服務 %s 狀態: %s", + "loc.messages.FileContentSynced": "檔案內容已同步到磁碟。內容為 %s。", + "loc.messages.KubectlClientVersion": "Kubectl 用戶端版本", + "loc.messages.KubectlServerVersion": "Kubectl 伺服器版本", + "loc.messages.KubernetesClusterResourceGroup": "Kubernetes 叢集 %s,資源群組 %s。", + "loc.messages.NoDataWrittenOnFile": "沒有任何資料寫入檔案 %s", + "loc.messages.ServiceExternalIP": "服務 %s 的外部 IP 是 %s", + "loc.messages.WritingDockerConfigToTempFile": "正在將 Docker 設定寫入暫存檔案。檔案路徑: %s,Docker 設定: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/Tests/L0.ts b/_generated/AzureFunctionOnKubernetesV1/Tests/L0.ts new file mode 100644 index 000000000000..33f06fb20602 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/Tests/L0.ts @@ -0,0 +1,16 @@ +import fs = require('fs'); +import assert = require('assert'); +import path = require('path'); + +describe('AzureFunctionOnKubernetesV1 Suite', function () { + before(() => { + }); + + after(() => { + }); + + it('Does a basic hello world test', function(done: Mocha.Done) { + // TODO - add real tests + done(); + }); +}); diff --git a/_generated/AzureFunctionOnKubernetesV1/Tests/package-lock.json b/_generated/AzureFunctionOnKubernetesV1/Tests/package-lock.json new file mode 100644 index 000000000000..fbc19a0daacc --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/Tests/package-lock.json @@ -0,0 +1,14 @@ +{ + "name": "azure-function-on-kubernetes-tests", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", + "dev": true + } + } +} diff --git a/_generated/AzureFunctionOnKubernetesV1/Tests/package.json b/_generated/AzureFunctionOnKubernetesV1/Tests/package.json new file mode 100644 index 000000000000..acaf22eafcd6 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/Tests/package.json @@ -0,0 +1,22 @@ +{ + "name": "azure-function-on-kubernetes-tests", + "version": "1.0.0", + "description": "Azure Pipelines Azure Function on Kubernetes V0 Task Tests", + "main": "L0.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" + }, + "author": "Microsoft Corporation", + "license": "MIT", + "bugs": { + "url": "https://github.com/Microsoft/azure-pipelines-tasks/issues" + }, + "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", + "devDependencies": { + "@types/mocha": "^5.2.0" + } +} diff --git a/_generated/AzureFunctionOnKubernetesV1/icon.png b/_generated/AzureFunctionOnKubernetesV1/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..76a581b1090d318bb7481195ae1e7b301664cdcf GIT binary patch literal 1373 zcmV-j1)}Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf1oBBlK~z{r#g<)6 zn`IQo|Fn!j!EG?emTYF(U>I2>lrbtWHpR`2883FBPA`mZQDf8_HF}{&FZ@XKO2?cq zolb8IFytloj&4guB;{3prygKrL)_Va%c$ebJ4SPg7@-jtVNbq-8k1g_r)B->2cLZeO( zjRs5y6rZ!ySFe1uML*-iSwrLL+)W2$&8`Iksiw{q{|E5&)8HCY_AniiW94JT?*+D;F!e!f&$OZa zsdBhHeiZOb?<}JfM#vzV_Rqo2uurn88-tAtgRcU^?=c1IOt(k8=HO9`LdGth#MDTQ z%oE^XN-tn!>X`~JN^4uO)@nibGZn~4;k%jz2gFM$nkhQb_;_ikaiM2^>~gahmdPg* zP*M<(TF}NtmLp{}S4)SO#w4O8r(0mX7 z41O9&=K*PyQ@Ly$N;cL;DyLu)ry|e6p05|*CpqaUy!~D&SEIPaA;B`io9|((iPPUl zGA@j8^jh@f6H=|fIyw-%GTE9^XtSJzn~%`q{rcrao%rT4bwY&0+ z@DICvMs8xld1|pPT>SB2+YIbvn?~W#xlVKpOyJ80?KqO3W9UNWz`MUyOvF1y{}?z2Cs zEE;e6eN=0f67_^{uRGO7I&o)hP$X_%R;ruZE^&=76Comwi}B0-%NrL$Y9O40dD%Gs zaIw*|3yjwCTZ_*vj{+OYOkD&fIOQ%pQjE%N99B_?|7UqO=fW6geii#Z0Yr_!65I`p z0H5W3rknuci@>k@_?=J% + + + + + + + + + + + diff --git a/_generated/AzureFunctionOnKubernetesV1/make.json b/_generated/AzureFunctionOnKubernetesV1/make.json new file mode 100644 index 000000000000..5757b3d9c283 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/make.json @@ -0,0 +1,13 @@ +{ + "rm": [ + { + "items": [ + "node_modules/azure-pipelines-tasks-docker-common/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tasks-kubernetes-common/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tasks-azure-arm-rest/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tool-lib/node_modules/azure-pipelines-task-lib" + ], + "options": "-Rf" + } + ] +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/package-lock.json b/_generated/AzureFunctionOnKubernetesV1/package-lock.json new file mode 100644 index 000000000000..5656930a517e --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/package-lock.json @@ -0,0 +1,1074 @@ +{ + "name": "azurefunctiononkubernetes", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@azure/msal-common": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-9.1.1.tgz", + "integrity": "sha512-we9xR8lvu47fF0h+J8KyXoRy9+G/fPzm3QEa2TrdR3jaVS3LKAyE2qyMuUkNdbVkvzl8Zr9f7l+IUSP22HeqXw==" + }, + "@azure/msal-node": { + "version": "1.14.5", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.14.5.tgz", + "integrity": "sha512-NcVdMfn8Z3ogN+9RjOSF7uwf2Gki5DEJl0BdDSL83KUAgVAobtkZi5W8EqxbJLrTO/ET0jv5DregrcR5qg2pEA==", + "requires": { + "@azure/msal-common": "^9.0.1", + "jsonwebtoken": "^8.5.1", + "uuid": "^8.3.0" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + } + }, + "@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "requires": { + "@types/node": "*" + } + }, + "@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "requires": { + "@types/node": "*" + } + }, + "@types/jsonwebtoken": { + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", + "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", + "requires": { + "@types/node": "*" + } + }, + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" + }, + "@types/node": { + "version": "10.17.48", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.48.tgz", + "integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==" + }, + "@types/node-forge": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.2.tgz", + "integrity": "sha512-TzX3ahoi9xbmaoT58smrBu7oa6dQXb/+PTNCslZyD/55tlJ/osofIMClzZsoo6buDFrg7e4DvVGkZqVgv6OLxw==", + "requires": { + "@types/node": "*" + } + }, + "@types/q": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", + "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==" + }, + "@types/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q==" + }, + "agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "async-mutex": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", + "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", + "requires": { + "tslib": "^2.4.0" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "azure-devops-node-api": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-12.0.0.tgz", + "integrity": "sha512-S6Il++7dQeMlZDokBDWw7YVoPeb90tWF10pYxnoauRMnkuL91jq9M7SOYRVhtO3FUC5URPkB/qzGa7jTLft0Xw==", + "requires": { + "tunnel": "0.0.6", + "typed-rest-client": "^1.8.4" + } + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "azure-pipelines-tasks-azure-arm-rest": { + "version": "3.223.4", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-azure-arm-rest/-/azure-pipelines-tasks-azure-arm-rest-3.223.4.tgz", + "integrity": "sha512-3RPwQfTk38HYGOCTmG2+UVM2JClaUV76YVqYrR/AhShMMFkg1wQIbpQZ7PLUh0YPbyWqFhmdaZla0JTRL9MWkg==", + "requires": { + "@azure/msal-node": "1.14.5", + "@types/jsonwebtoken": "^8.5.8", + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.5.4", + "async-mutex": "^0.4.0", + "azure-devops-node-api": "^12.0.0", + "azure-pipelines-task-lib": "^3.4.0", + "https-proxy-agent": "^4.0.0", + "jsonwebtoken": "^8.5.1", + "node-fetch": "^2.6.7", + "q": "1.5.1", + "typed-rest-client": "1.8.4", + "xml2js": "0.4.13" + }, + "dependencies": { + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + } + } + }, + "azure-pipelines-tasks-docker-common": { + "version": "2.211.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-docker-common/-/azure-pipelines-tasks-docker-common-2.211.0.tgz", + "integrity": "sha512-5FMFZjgTt4eKmcDYvQRx1kYd622Bgb36B9QLgvwYibaKfHLAYYshdO3Q/iOHxiO1ApazQbIhN4Wqzy3YtQxzVw==", + "requires": { + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.5.4", + "@types/uuid": "^8.3.0", + "azure-pipelines-task-lib": "^3.1.0", + "azure-pipelines-tasks-azure-arm-rest-v2": "^2.210.0", + "del": "2.2.0", + "q": "1.4.1" + }, + "dependencies": { + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" + }, + "azure-pipelines-tasks-azure-arm-rest-v2": { + "version": "2.210.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-azure-arm-rest-v2/-/azure-pipelines-tasks-azure-arm-rest-v2-2.210.0.tgz", + "integrity": "sha512-zKkFPah6ng4oGRej5Ax5eNEEd6FQ48y+1/MIXvh/VTDAFnLfLJ9M8lUh1UlmZOetX6zTcoidSKmmZWmq/KamOw==", + "requires": { + "@types/jsonwebtoken": "^8.5.8", + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.5.4", + "azure-pipelines-task-lib": "^3.1.0", + "jsonwebtoken": "^8.5.1", + "q": "1.5.1", + "typed-rest-client": "1.8.4" + }, + "dependencies": { + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + } + } + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==" + } + } + }, + "azure-pipelines-tasks-kubernetes-common": { + "version": "2.224.1", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-kubernetes-common/-/azure-pipelines-tasks-kubernetes-common-2.224.1.tgz", + "integrity": "sha512-UwVeSD1hZcPW9Z4CwAuNp6wmczdBCoWOa0saVv0DNejGVbOi0Nu7xBl+J3/N8xhcLnkD5G00LDY29G69yZFXUA==", + "requires": { + "@types/mocha": "5.2.7", + "@types/node": "10.17.0", + "@types/node-forge": "^1.3.2", + "@types/uuid": "8.3.0", + "azure-devops-node-api": "^12.0.0", + "azure-pipelines-task-lib": "^3.1.0", + "azure-pipelines-tool-lib": "^1.0.2", + "js-yaml": "3.13.1", + "node-forge": "^1.3.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.0.tgz", + "integrity": "sha512-wuJwN2KV4tIRz1bu9vq5kSPasJ8IsEjZaP1ZR7KlmdUZvGF/rXy8DmXOVwUD0kAtvtJ7aqMKPqUXC0NUTDbrDg==" + }, + "@types/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==" + }, + "azure-pipelines-tool-lib": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/azure-pipelines-tool-lib/-/azure-pipelines-tool-lib-1.3.2.tgz", + "integrity": "sha512-PtYcd3E2ouwZhLuaOpWA00FYoLjRuJs1V8mNu3u6lBnqeYd4jh/8VL/of6nchm8f2NM6Div+EEnbOcmWvcptPg==", + "requires": { + "@types/semver": "^5.3.0", + "@types/uuid": "^3.4.5", + "azure-pipelines-task-lib": "^3.1.10", + "semver": "^5.7.0", + "semver-compare": "^1.0.0", + "typed-rest-client": "^1.8.6", + "uuid": "^3.3.2" + }, + "dependencies": { + "@types/uuid": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.10.tgz", + "integrity": "sha512-BgeaZuElf7DEYZhWYDTc/XcLZXdVgFkVSTa13BqKvbnmUrxr3TJFKofUxCtDO9UQOdhnV+HPOESdHiHKZOJV1A==" + } + } + }, + "typed-rest-client": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.9.tgz", + "integrity": "sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + } + } + }, + "azure-pipelines-tool-lib": { + "version": "2.0.0-preview", + "resolved": "https://registry.npmjs.org/azure-pipelines-tool-lib/-/azure-pipelines-tool-lib-2.0.0-preview.tgz", + "integrity": "sha512-OeivwKLpLMsvGpZ2H+2UPxFwwqNkV8TzfKByqjYAllzGDAw4BvciAdjCMwkpGdTOnzfPbRpr33sy48kn7RqfKA==", + "requires": { + "@types/semver": "^5.3.0", + "@types/uuid": "^3.4.5", + "azure-pipelines-task-lib": "^4.0.0-preview", + "semver": "^5.7.0", + "semver-compare": "^1.0.0", + "typed-rest-client": "^1.8.6", + "uuid": "^3.3.2" + }, + "dependencies": { + "@types/uuid": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.10.tgz", + "integrity": "sha512-BgeaZuElf7DEYZhWYDTc/XcLZXdVgFkVSTa13BqKvbnmUrxr3TJFKofUxCtDO9UQOdhnV+HPOESdHiHKZOJV1A==" + }, + "azure-pipelines-task-lib": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.1.0.tgz", + "integrity": "sha512-8CNC9PcP+4eS76QcIDmPmBfrrao9xpy/M0Uts4TWk3chfr3uOXFGf0DYHVTJGF9180g51kyVXYTObicouq0KZQ==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "typed-rest-client": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.9.tgz", + "integrity": "sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + } + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "del": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.0.tgz", + "integrity": "sha512-AZDiRb78EEGYCsAZTG3v+CM5q8J0BIs+wI7QeUtyosm+zIMm4XSmp6aI/K7cU9l+YaKpDKN9dYP1xTrNjLQ+LA==", + "requires": { + "globby": "^4.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==" + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "globby": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", + "integrity": "sha512-JPDtMSr0bt25W64q792rvlrSwIaZwqUAhqdYKSr57Wh/xBcQ5JDWLM85ndn+Q1WdBQXLb9YGCl0QN/T0HpqU0A==", + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^6.0.1", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "requires": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + } + }, + "http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "requires": { + "@types/node": "^10.0.3" + } + }, + "https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "requires": { + "agent-base": "5", + "debug": "4" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==" + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mockery": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "requires": { + "pinkie": "^2.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "requires": { + "asap": "~2.0.6" + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "requires": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + } + }, + "sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "requires": { + "get-port": "^3.1.0" + } + }, + "then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "requires": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "dependencies": { + "@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + } + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "tslib": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", + "integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "typed-rest-client": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.4.tgz", + "integrity": "sha512-MyfKKYzk3I6/QQp6e1T50py4qg+c+9BzOEl2rBmQIpStwNUoqQ73An+Tkfy9YuV7O+o2mpVVJpe+fH//POZkbg==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true + }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "xml2js": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.13.tgz", + "integrity": "sha512-BoxD65qWA2p4znzbaati/Td19uFEc0X6ydj0bFphJO62RrNaGqOyW6ljLWPo3GKDbvW/6dnxAoRX01BsgEWsMA==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": ">=2.4.6" + } + }, + "xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" + } + } +} diff --git a/_generated/AzureFunctionOnKubernetesV1/package.json b/_generated/AzureFunctionOnKubernetesV1/package.json new file mode 100644 index 000000000000..c72a2d557b0a --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/package.json @@ -0,0 +1,29 @@ +{ + "name": "azurefunctiononkubernetes", + "version": "1.0.0", + "description": "Deploy Azure Function on Kubernetes", + "main": "src//run.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" + }, + "bugs": { + "url": "https://github.com/microsoft/azure-pipelines-tasks/issues" + }, + "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", + "devDependencies": { + "typescript": "4.0.2" + }, + "dependencies": { + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "^1.5.0", + "@types/uuid": "^9.0.0", + "azure-pipelines-task-lib": "^3.1.0", + "azure-pipelines-tasks-azure-arm-rest": "3.223.4", + "azure-pipelines-tasks-docker-common": "^2.211.0", + "azure-pipelines-tasks-kubernetes-common": "^2.224.1", + "azure-pipelines-tool-lib": "^2.0.0-preview", + "js-yaml": "3.13.1" + } +} diff --git a/_generated/AzureFunctionOnKubernetesV1/src/clusterconnection.ts b/_generated/AzureFunctionOnKubernetesV1/src/clusterconnection.ts new file mode 100644 index 000000000000..dec8c5668fa5 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/src/clusterconnection.ts @@ -0,0 +1,138 @@ +"use strict"; + +import * as fs from "fs"; +import * as path from "path"; +import * as tl from "azure-pipelines-task-lib/task"; +import * as tr from "azure-pipelines-task-lib/toolrunner"; +import * as utils from "./utils/utilities"; +import * as toolLib from 'azure-pipelines-tool-lib/tool'; +import { Kubelogin } from 'azure-pipelines-tasks-kubernetes-common/kubelogin'; + +export default class ClusterConnection { + private kubectlPath: string; + private kubeconfigFile: string; + private userDir: string; + + constructor(existingKubeConfigPath?: string) { + this.kubectlPath = tl.which("kubectl", false); + this.userDir = utils.getNewUserDirPath(); + if (existingKubeConfigPath) { + this.kubeconfigFile = existingKubeConfigPath; + } + } + + private loadClusterType(connectionType: string): any { + if(connectionType === "Azure Resource Manager") { + return require("./clusters/armkubernetescluster"); + } + else { + return require("./clusters/generickubernetescluster"); + } + } + + // get kubeconfig file path + private async getKubeConfig(connectionType): Promise { + return this.loadClusterType(connectionType).getKubeConfig().then((config) => { + return config; + }); + } + + private async initialize(): Promise { + // prepend the tools path. instructs the agent to prepend for future tasks + if(!process.env['PATH'].toLowerCase().startsWith(path.dirname(this.kubectlPath.toLowerCase()))) { + toolLib.prependPath(path.dirname(this.kubectlPath)); + } + } + + public createCommand(): tr.ToolRunner { + var command = tl.tool(this.kubectlPath); + return command; + } + + // open kubernetes connection + public async open() { + var connectionType = tl.getInput("connectionType", true); + console.log("Connection type: " + connectionType); + if (connectionType === "None") { + return this.initialize(); + } + var kubeconfig; + if (!this.kubeconfigFile) { + kubeconfig = await this.getKubeConfig(connectionType); + } + + return this.initialize().then(async () => { + if (kubeconfig) + { + this.kubeconfigFile = path.join(this.userDir, "config"); + fs.writeFileSync(this.kubeconfigFile, kubeconfig); + } + + process.env["KUBECONFIG"] = this.kubeconfigFile; + + const kubelogin = new Kubelogin(this.userDir); + if (kubelogin.isAvailable()) { + tl.debug('Kubelogin is installed. Converting kubeconfig.'); + const serviceConnection: string = tl.getInput('azureSubscriptionEndpoint', false); + try { + await kubelogin.login(serviceConnection); + } catch (err) { + tl.debug(tl.loc('KubeloginFailed', err)); + } + } + }); + } + + // close kubernetes connection + public close(): void { + var connectionType = tl.getInput("connectionType", true); + if (connectionType === "None") { + return; + } + if (this.kubeconfigFile != null && fs.existsSync(this.kubeconfigFile)) + { + delete process.env["KUBECONFIG"]; + fs.unlinkSync(this.kubeconfigFile); + } + } + + public setKubeConfigEnvVariable() { + if (this.kubeconfigFile && fs.existsSync(this.kubeconfigFile)) { + tl.setVariable("KUBECONFIG", this.kubeconfigFile); + } + else { + tl.error(tl.loc('KubernetesServiceConnectionNotFound')); + throw new Error(tl.loc('KubernetesServiceConnectionNotFound')); + } + } + + public unsetKubeConfigEnvVariable() { + var kubeConfigPath = tl.getVariable("KUBECONFIG"); + if (kubeConfigPath) { + tl.setVariable("KUBECONFIG", ""); + } + } + + //excute kubernetes command + public execCommand(command: tr.ToolRunner, options?: tr.IExecOptions) { + var errlines = []; + command.on("errline", line => { + errlines.push(line); + }); + + tl.debug(tl.loc('CallToolRunnerExec')); + + let promise = command.exec(options) + .fail(error => { + tl.debug(tl.loc('ToolRunnerExecCallFailed', error)); + errlines.forEach(line => tl.error(line)); + throw error; + }) + .then(() => { + tl.debug(tl.loc('ToolRunnerExecCallSucceeded')); + }); + + tl.debug(tl.loc('ReturningToolRunnerExecPromise')); + return promise; + } +} diff --git a/_generated/AzureFunctionOnKubernetesV1/src/clusters/armkubernetescluster.ts b/_generated/AzureFunctionOnKubernetesV1/src/clusters/armkubernetescluster.ts new file mode 100644 index 000000000000..f1e14c142993 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/src/clusters/armkubernetescluster.ts @@ -0,0 +1,26 @@ +"use strict"; + +import tl = require('azure-pipelines-task-lib/task'); +import { AzureAksService } from 'azure-pipelines-tasks-azure-arm-rest/azure-arm-aks-service'; +import { AzureRMEndpoint } from 'azure-pipelines-tasks-azure-arm-rest/azure-arm-endpoint'; +import { AzureEndpoint, AKSClusterAccessProfile} from 'azure-pipelines-tasks-azure-arm-rest/azureModels'; + +// get kubeconfig file content +async function getKubeConfigFromAKS(azureSubscriptionEndpoint: string, resourceGroup: string, clusterName: string, useClusterAdmin?: boolean) : Promise { + var azureEndpoint: AzureEndpoint = await (new AzureRMEndpoint(azureSubscriptionEndpoint)).getEndpoint(); + var aks = new AzureAksService(azureEndpoint); + + tl.debug(tl.loc("KubernetesClusterResourceGroup", clusterName, resourceGroup)); + + var clusterInfo : AKSClusterAccessProfile = await aks.getAccessProfile(resourceGroup, clusterName, useClusterAdmin); + var base64Kubeconfig = Buffer.from(clusterInfo.properties.kubeConfig, 'base64'); + return base64Kubeconfig.toString(); +} + +export async function getKubeConfig(): Promise { + var clusterName : string = tl.getInput("kubernetesCluster", true); + var azureSubscriptionEndpoint : string = tl.getInput("azureSubscriptionEndpoint", true); + var resourceGroup : string = tl.getInput("azureResourceGroup", true); + var useClusterAdmin: boolean = tl.getBoolInput('useClusterAdmin'); + return getKubeConfigFromAKS(azureSubscriptionEndpoint, resourceGroup, clusterName, useClusterAdmin); +} diff --git a/_generated/AzureFunctionOnKubernetesV1/src/clusters/generickubernetescluster.ts b/_generated/AzureFunctionOnKubernetesV1/src/clusters/generickubernetescluster.ts new file mode 100644 index 000000000000..c7b68229c6fc --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/src/clusters/generickubernetescluster.ts @@ -0,0 +1,17 @@ +"use strict"; + +import tl = require('azure-pipelines-task-lib/task'); +import kubectlutility = require("azure-pipelines-tasks-kubernetes-common/kubectlutility"); + +export async function getKubeConfig(): Promise { + var kubernetesServiceEndpoint = tl.getInput("kubernetesServiceEndpoint", true); + var authorizationType = tl.getEndpointDataParameter(kubernetesServiceEndpoint, 'authorizationType', true); + if (!authorizationType || authorizationType === "Kubeconfig") + { + return kubectlutility.getKubeconfigForCluster(kubernetesServiceEndpoint); + } + else if (authorizationType === "ServiceAccount" || authorizationType === "AzureSubscription") + { + return kubectlutility.createKubeconfig(kubernetesServiceEndpoint); + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/src/deploy.ts b/_generated/AzureFunctionOnKubernetesV1/src/deploy.ts new file mode 100644 index 000000000000..3c308862579f --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/src/deploy.ts @@ -0,0 +1,122 @@ +'use strict'; + +import * as yaml from 'js-yaml'; +import * as tl from 'azure-pipelines-task-lib/task'; +import * as tr from "azure-pipelines-task-lib/toolrunner"; +import { CommandHelper } from './utils/commandHelper'; +import { DockerConnection } from './dockerConnection'; +import { Kubectl, Resource } from 'azure-pipelines-tasks-kubernetes-common/kubectl-object-model'; +import * as FileHelper from './utils/fileHelper'; +import * as KubernetesConstants from 'azure-pipelines-tasks-kubernetes-common/kubernetesconstants'; +import * as KubernetesManifestUtility from 'azure-pipelines-tasks-kubernetes-common/kubernetesmanifestutility'; +import * as CommonUtils from 'azure-pipelines-tasks-kubernetes-common/utility'; +import ClusterConnection from './clusterconnection'; + +const secretName = tl.getInput('secretName'); +const appName = tl.getInput('appName', true); +const namespace = getKubernetesNamespace(); +const dockerHubNamespace = tl.getInput('dockerHubNamespace'); +const args = tl.getInput('arguments'); +const funcRootDir = tl.getInput('functionRootDirectory', true); +const waitForStability = tl.getBoolInput('waitForStability'); +const isDryRun = (args && args.includes('--dry-run')) ? true : false; + +export async function deploy(commandHelper: CommandHelper, dockerConnection: DockerConnection) { + let pullSecretName: string = ''; + if (!isDryRun) { + // create pull secret if it is not dry-run + pullSecretName = createImagePullSecret(commandHelper); + } + + // invoke func kubernetes deploy + funcDeploy(commandHelper, dockerConnection, pullSecretName); + + if (!isDryRun) { + // get Kubernetes resources (as YAML) created by deployment + const kubernetesResourcesYaml = getKubernetesResourcesYaml(commandHelper, dockerConnection, pullSecretName); + + // annotate the resources + annotateKubernetesResources(commandHelper, kubernetesResourcesYaml); + + if (waitForStability) { + // wait for deployment to get stable + const kubernetesResources = getResourcesFromYaml(kubernetesResourcesYaml, KubernetesConstants.deploymentTypes); + await checkManifestStability(commandHelper, kubernetesResources); + } + } +} + +function createImagePullSecret(commandHelper: CommandHelper): string { + let pullSecretName = `${appName}-imagepullsecret`; + const createPullSecretCommand = commandHelper.getCreateDockerRegistrySecretCommand(pullSecretName, namespace); + if (createPullSecretCommand) { + const deleteSecretCommand = commandHelper.getDeleteSecretCommand(pullSecretName, namespace); + // while deleting, error is thrown if the secret is not present. Ignore the error. + commandHelper.execCommand(deleteSecretCommand, { failOnStdErr: false, ignoreReturnCode: true} as tr.IExecOptions, true); + commandHelper.execCommand(createPullSecretCommand); + const kubectl = new Kubectl(commandHelper.kubectlPath, namespace); + kubectl.annotate('secret', pullSecretName, KubernetesConstants.pipelineAnnotations); + } + else { + // no secret created if no Docker login is found. Case when user wants to use a public image. + pullSecretName = ''; + } + + return pullSecretName; +} + +function funcDeploy(commandHelper: CommandHelper, dockerConnection: DockerConnection, pullSecretName: string) { + const funcDeployCommand = commandHelper.getFuncDeployCommand(dockerConnection, secretName, appName, namespace, dockerHubNamespace, pullSecretName, args); + commandHelper.execCommand(funcDeployCommand, { cwd: funcRootDir } as tr.IExecOptions); +} + +function annotateKubernetesResources(commandHelper: CommandHelper, resourcesYaml: string) { + const funcKubernetesTemplatesPath = FileHelper.getFuncKubernetesYamlPath(); + FileHelper.writeContentToFile(funcKubernetesTemplatesPath, resourcesYaml); + const kubectl = new Kubectl(commandHelper.kubectlPath, namespace); + const annotateResults = kubectl.annotateFiles(funcKubernetesTemplatesPath, KubernetesConstants.pipelineAnnotations, true); + CommonUtils.checkForErrors([annotateResults]); +} + +async function checkManifestStability(commandHelper: CommandHelper, resources: Resource[]) { + const kubectl = new Kubectl(commandHelper.kubectlPath, namespace); + await KubernetesManifestUtility.checkManifestStability(kubectl, resources); +} + +function getKubernetesResourcesYaml(commandHelper: CommandHelper, dockerConnection, pullSecretName: string): string { + let resourcesYaml = null; + const argsWithDryRun = args ? args.concat(' --dry-run') : '--dry-run'; + const funcDeployDryRunCommand = commandHelper.getFuncDeployCommand(dockerConnection, secretName, appName, namespace, dockerHubNamespace, pullSecretName, argsWithDryRun); + const result: tr.IExecSyncResult = commandHelper.execCommand(funcDeployDryRunCommand, { cwd: funcRootDir } as tr.IExecOptions); + resourcesYaml = result.stdout; + + return resourcesYaml; +} + +function getResourcesFromYaml(yamlContent: string, filterResourceTypes: string[]): Resource[] { + const resources: Resource[] = []; + yaml.safeLoadAll(yamlContent, function (inputObject) { + const inputObjectKind: string = inputObject ? inputObject.kind : ''; + if (inputObjectKind && filterResourceTypes.filter(type => inputObjectKind.toLowerCase() === type.toLowerCase()).length > 0) { + const resource = { + type: inputObject.kind, + name: inputObject.metadata.name + }; + resources.push(resource); + } + }); + + return resources; +} + +function getKubernetesNamespace(): string { + let namespace = tl.getInput('namespace'); + if (!namespace) { + const kubeConnection = tl.getInput('kubernetesServiceConnection', false); + if (kubeConnection) { + namespace = tl.getEndpointDataParameter(kubeConnection, 'namespace', true); + } + } + + return namespace; +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/src/dockerConnection.ts b/_generated/AzureFunctionOnKubernetesV1/src/dockerConnection.ts new file mode 100644 index 000000000000..b16e50e844f7 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/src/dockerConnection.ts @@ -0,0 +1,42 @@ +'use strict'; + +import * as url from "url"; +import * as tl from 'azure-pipelines-task-lib/task'; +import * as ImageUtils from "azure-pipelines-tasks-docker-common/containerimageutils"; +import ContainerConnection from "azure-pipelines-tasks-docker-common/containerconnection"; +import RegistryServerAuthenticationToken from "azure-pipelines-tasks-docker-common/registryauthenticationprovider/registryauthenticationtoken"; +import { getDockerRegistryEndpointAuthenticationToken } from "azure-pipelines-tasks-docker-common/registryauthenticationprovider/registryauthenticationtoken"; + +export class DockerConnection { + private connection: ContainerConnection; + private registryAuthenticationToken: RegistryServerAuthenticationToken; + + public async open() { + const endpointId = tl.getInput("dockerRegistryServiceConnection", true); + this.registryAuthenticationToken = await getDockerRegistryEndpointAuthenticationToken(endpointId); + this.connection = new ContainerConnection(); + this.connection.open(null, this.registryAuthenticationToken); + } + + public getRegistry() { + let registry = ''; + if (this.registryAuthenticationToken) { + const registryUrl = this.registryAuthenticationToken.getLoginServerUrl(); + registry = this.getHostName(registryUrl); + } + + return registry; + } + + public close() { + if (this.connection) { + this.connection.close(); + } + } + + private getHostName(registryUrl: string) { + const uri = url.parse(registryUrl); + const host = !uri.slashes ? uri.href : uri.host; + return host; + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/src/run.ts b/_generated/AzureFunctionOnKubernetesV1/src/run.ts new file mode 100644 index 000000000000..a849c2178605 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/src/run.ts @@ -0,0 +1,46 @@ +"use strict"; + +import * as path from 'path'; +import * as tl from 'azure-pipelines-task-lib/task'; +import { deploy } from './deploy'; +import { DockerConnection } from './dockerConnection'; +import { CommandHelper } from './utils/commandHelper'; + +import ClusterConnection from "./clusterconnection"; + +import trm = require('azure-pipelines-task-lib/toolrunner'); + +tl.setResourcePath(path.join(__dirname, "..", 'task.json')); + +let telemetry = { + jobId: tl.getVariable('SYSTEM_JOBID') +}; + +console.log("##vso[telemetry.publish area=%s;feature=%s]%s", + "TaskEndpointId", + "AzureFunctionOnKubernetesV0", + JSON.stringify(telemetry)); + +async function run() { + const kubernetesConnection = new ClusterConnection(); + const commandHelper = new CommandHelper(); + const dockerConnection = new DockerConnection(); + console.log("Opening docker connection..."); + await dockerConnection.open(); + console.log("Opening kubernetes connection..."); + await kubernetesConnection.open(); + + try { + console.log("Trying to deploy...") + await deploy(commandHelper, dockerConnection); + } + finally { + console.log("Closing docker connection..."); + dockerConnection.close(); + console.log("Closing kubernetes connection..."); + kubernetesConnection.close(); + } +} + +run() + .catch((error) => tl.setResult(tl.TaskResult.Failed, !!error.message ? error.message : error)); \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/src/utils/commandHelper.ts b/_generated/AzureFunctionOnKubernetesV1/src/utils/commandHelper.ts new file mode 100644 index 000000000000..f7f13be7e5dc --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/src/utils/commandHelper.ts @@ -0,0 +1,66 @@ +'use strict'; + +import * as path from "path"; +import * as tl from "azure-pipelines-task-lib/task"; +import * as tr from "azure-pipelines-task-lib/toolrunner"; +import * as FuncKubernetesUtility from 'azure-pipelines-tasks-kubernetes-common/funckubernetesutility'; +import * as CommonUtils from 'azure-pipelines-tasks-kubernetes-common/utility'; +import { DockerConnection } from "../dockerConnection"; + +export class CommandHelper { + private funcPath: string; + public kubectlPath: string; + + constructor() { + // Find the path of func and kubectl. This will throw if any of them is not present + // and hence the task will fail. + this.funcPath = tl.which('func', true); + this.kubectlPath = tl.which('kubectl', true); + } + + public execCommand(command: tr.ToolRunner, options?: tr.IExecOptions, warnIfError?: boolean) { + const result: tr.IExecSyncResult = command.execSync(options); + CommonUtils.checkForErrors([result], warnIfError); + return result; + } + + public getFuncDeployCommand(dockerConnection: DockerConnection, secretName: string, appName: string, namespace: string, dockerHubNamespace: string, pullSecretName: string, args: string): tr.ToolRunner { + const registry = dockerHubNamespace ? dockerHubNamespace : dockerConnection.getRegistry(); + + if (!registry) { + tl.debug('Neither dockerHubNamespace is provided nor found registry info from Docker login. The deployment will fail.'); + } + return FuncKubernetesUtility.getFuncDeployCommand(this.funcPath, secretName, appName, namespace, null, registry, pullSecretName, args); + } + + public getCreateDockerRegistrySecretCommand(secretName: string, namespace: string): tr.ToolRunner { + const dockerConfigDir = tl.getVariable('DOCKER_CONFIG'); + if (dockerConfigDir) { + const command = tl.tool(this.kubectlPath); + const dockerConfigPath = path.join(dockerConfigDir, 'config.json'); + command.arg(['create', 'secret', 'generic']); + command.arg(secretName); + command.arg(`--from-file=.dockerconfigjson=${dockerConfigPath}`); + command.arg('--type=kubernetes.io/dockerconfigjson'); + if (namespace) { + command.arg(['--namespace', namespace]); + } + + return command; + } + else { + tl.debug('Not creating any pull-secret as no Docker login found.'); + return null; + } + } + + public getDeleteSecretCommand(secretName: string, namespace: string): tr.ToolRunner { + const command = tl.tool(this.kubectlPath); + command.arg(['delete', 'secret', secretName]); + if (namespace) { + command.arg(['--namespace', namespace]); + } + + return command; + } +} diff --git a/_generated/AzureFunctionOnKubernetesV1/src/utils/fileHelper.ts b/_generated/AzureFunctionOnKubernetesV1/src/utils/fileHelper.ts new file mode 100644 index 000000000000..8d3f7f55468d --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/src/utils/fileHelper.ts @@ -0,0 +1,42 @@ +'use strict'; + +import * as fs from 'fs'; +import * as path from 'path'; +import * as tl from 'azure-pipelines-task-lib/task'; +import * as os from 'os'; + +export function getTempDirectory(): string { + return tl.getVariable('agent.tempDirectory') || os.tmpdir(); +} + +export function ensureDirExists(dirPath: string): void { + if (!fs.existsSync(dirPath)) { + fs.mkdirSync(dirPath); + } +} + +export function getTaskTempDir(): string { + const tempDirectory = getTempDirectory(); + const funcSuffix = 'funckubetask_' + getCurrentTime().toString(); + const userDir = path.join(tempDirectory, funcSuffix); + ensureDirExists(userDir); + + return userDir; +} + +export function writeContentToFile(filePath: string, content: string) { + try { + fs.writeFileSync(filePath, content); + } catch (ex) { + tl.debug('Exception occurred while wrting content to file : ' + content + ' . Exception: ' + ex); + } +} + +export function getFuncKubernetesYamlPath(): string { + const tasktempDir = getTaskTempDir(); + return path.join(tasktempDir, 'resource_templates.yaml'); +} + +function getCurrentTime(): number { + return new Date().getTime(); +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/src/utils/utilities.ts b/_generated/AzureFunctionOnKubernetesV1/src/utils/utilities.ts new file mode 100644 index 000000000000..e8454cb0b84c --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/src/utils/utilities.ts @@ -0,0 +1,93 @@ +"use strict"; + +var https = require('https'); +var fs = require('fs'); +import * as path from "path"; +import * as tl from "azure-pipelines-task-lib/task"; +import * as os from "os"; +import * as util from "util"; +import * as toolLib from 'azure-pipelines-tool-lib/tool'; + +import kubectlutility = require("azure-pipelines-tasks-kubernetes-common/kubectlutility"); + +export function getTempDirectory(): string { + return tl.getVariable('agent.tempDirectory') || os.tmpdir(); +} + +export function getCurrentTime(): number { + return new Date().getTime(); +} + +export function getNewUserDirPath(): string { + var userDir = path.join(getTempDirectory(), "kubectlTask"); + ensureDirExists(userDir); + + userDir = path.join(userDir, getCurrentTime().toString()); + ensureDirExists(userDir); + + return userDir; +} + +function ensureDirExists(dirPath : string) : void +{ + if (!fs.existsSync(dirPath)) { + fs.mkdirSync(dirPath); + } +} + +export async function getKubectlVersion(versionSpec: string, checkLatest: boolean) : Promise { + + if(checkLatest) { + return await kubectlutility.getStableKubectlVersion(); + } + else if (versionSpec) { + if(versionSpec === "1.7") { + // Backward compat handle + tl.warning(tl.loc("UsingLatestStableVersion")); + return kubectlutility.getStableKubectlVersion(); + } + else if ("v".concat(versionSpec) === kubectlutility.stableKubectlVersion) { + tl.debug(util.format("Using default versionSpec:%s.", versionSpec)); + return kubectlutility.stableKubectlVersion; + } + else { + // Do not check for validity of the version here, + // We'll return proper error message when the download fails + if(!versionSpec.startsWith("v")) { + return "v".concat(versionSpec); + } + else{ + return versionSpec; + } + } + } + + return kubectlutility.stableKubectlVersion; + } + +export async function downloadKubectl(version: string): Promise { + return await kubectlutility.downloadKubectl(version); +} + +export function sanitizeVersionString(versions, inputVersion: string): string { + var version = toolLib.evaluateVersions(versions, inputVersion); + if (!version) { + throw new Error(tl.loc("NotAValidVersion", JSON.stringify(versions))); + } + + return version; +} + +export function assertFileExists(path: string) { + if(!fs.existsSync(path)) { + tl.error(tl.loc('FileNotFoundException', path)); + throw new Error(tl.loc('FileNotFoundException', path)); + } +} + +export function writeInlineConfigInTempPath(inlineConfig: string): string { + var tempInlinePath = getNewUserDirPath(); + tempInlinePath = path.join(tempInlinePath, "inlineconfig.yaml"); + fs.writeFileSync(tempInlinePath, inlineConfig); + return tempInlinePath; +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/task.json b/_generated/AzureFunctionOnKubernetesV1/task.json new file mode 100644 index 000000000000..d7c174d063c4 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/task.json @@ -0,0 +1,198 @@ +{ + "id": "FD1AA5B9-400C-4F4B-9C0B-069BA74E53C6", + "name": "AzureFunctionOnKubernetes", + "friendlyName": "Azure Function on Kubernetes", + "description": "Deploy Azure function to Kubernetes cluster.", + "helpUrl": "https://aka.ms/func-k8s", + "helpMarkDown": "[Learn more about this task](https://aka.ms/func-k8s) or [see Azure Functions on Kubernetes with KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) or [check out sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "category": "Deploy", + "preview": true, + "visibility": [ + "Build", + "Release" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 1, + "Minor": 226, + "Patch": 1 + }, + "demands": [], + "groups": [ + { + "name": "serviceConnections", + "displayName": "Service Connections", + "isExpanded": true + }, + { + "name": "commands", + "displayName": "Commands", + "isExpanded": true + } + ], + "inputs": [ + { + "name": "connectionType", + "type": "pickList", + "label": "Service connection type", + "defaultValue": "Kubernetes Service Connection", + "required": true, + "options": { + "Azure Resource Manager": "Azure Resource Manager", + "Kubernetes Service Connection": "Kubernetes Service Connection" + }, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Kubernetes service connection type." + }, + { + "name": "dockerRegistryServiceConnection", + "type": "connectedService:dockerregistry", + "label": "Docker registry service connection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Docker registry service connection." + }, + { + "name": "kubernetesServiceEndpoint", + "aliases": [ + "kubernetesServiceConnection" + ], + "type": "connectedService:kubernetes", + "label": "Kubernetes service connection", + "visibleRule": "connectionType = Kubernetes Service Connection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Kubernetes service connection." + }, + { + "name": "azureSubscriptionEndpoint", + "aliases": [ + "azureSubscriptionConnection" + ], + "type": "connectedService:AzureRM", + "label": "Azure subscription", + "helpMarkDown": "Select the Azure Resource Manager subscription, which contains Azure Container Registry.Note: To configure new service connection, select the Azure subscription from the list and click 'Authorize'. If your subscription is not listed or if you want to use an existing Service Principal, you can setup an Azure service connection using 'Add' or 'Manage' button.", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "groupName": "serviceConnections", + "required": true + }, + { + "name": "azureResourceGroup", + "label": "Resource group", + "type": "pickList", + "helpMarkDown": "Select an Azure resource group.", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "required": true, + "groupName": "serviceConnections", + "properties": { + "EditableOptions": "True" + } + }, + { + "name": "kubernetesCluster", + "label": "Kubernetes cluster", + "type": "pickList", + "helpMarkDown": "Select an Azure managed cluster.", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "required": true, + "groupName": "serviceConnections", + "properties": { + "EditableOptions": "True" + } + }, + { + "name": "namespace", + "type": "string", + "label": "Kubernetes namespace", + "groupName": "commands", + "helpMarkDown": "Kubernetes namespace" + }, + { + "name": "secretName", + "type": "string", + "label": "Secret Name", + "groupName": "commands", + "helpMarkDown": "Kubernetes secret containing function config data (for ex. AzureWebJobsStorage: )" + }, + { + "name": "dockerHubNamespace", + "type": "string", + "label": "Docker Hub namespace", + "groupName": "commands", + "helpMarkDown": "Docker Hub namespace. Required for private Docker Hub repository." + }, + { + "name": "appName", + "type": "string", + "required": true, + "label": "Application Name", + "groupName": "commands", + "helpMarkDown": "Application Name. The Kubernetes objects created use this name. This should follow Kubernetes naming conventions for resource names." + }, + { + "name": "functionRootDirectory", + "type": "filePath", + "label": "Function root directory", + "required": false, + "groupName": "commands", + "helpMarkDown": "Function root directory. Should contain host.json. Docker build and push is performed from this directory." + }, + { + "name": "waitForStability", + "type": "boolean", + "label": "Wait for stability", + "groupName": "commands", + "defaultValue": "true", + "helpMarkDown": "Wait for the Kubernetes objects to reach the desired state." + }, + { + "name": "arguments", + "type": "string", + "label": "Arguments", + "groupName": "commands", + "helpMarkDown": "Pass arguments to command. Ex:
--no-docker --service-type NodePort" + } + ], + "dataSourceBindings": [ + { + "target": "kubernetesCluster", + "endpointId": "$(azureSubscriptionEndpoint)", + "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/resourceGroups/$(azureResourceGroup)/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31", + "resultSelector": "jsonpath:$.value[*]", + "resultTemplate": "{{{name}}}" + }, + { + "target": "azureResourceGroup", + "endpointId": "$(azureSubscriptionEndpoint)", + "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31", + "resultSelector": "jsonpath:$.value[*]", + "resultTemplate": "{{{ #extractResource id resourcegroups}}}" + } + ], + "instanceNameFormat": "Func on K8s - deploy", + "execution": { + "Node10": { + "target": "src//run.js" + } + }, + "messages": { + "AllContainersNotInReadyState": "All the containers are not in a ready state.", + "CouldNotDeterminePodStatus": "Could not determine the pod's status due to the error: %s", + "CouldNotDetermineServiceStatus": "Could not determine the service %s status due to the error: %s", + "FileContentSynced": "Synced the file content to the disk. The content is %s.", + "KubectlClientVersion": "Kubectl Client Version", + "KubectlServerVersion": "Kubectl Server Version", + "KubernetesClusterResourceGroup": "Kubernetes cluster %s, resource group %s.", + "NoDataWrittenOnFile": "No data was written into the file %s", + "ServiceExternalIP": "service %s external IP is %s", + "WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s", + "KubeloginFailed": "Kubelogin authentication failed. Exception: %s" + }, + "_buildConfigMapping": { + "Default": "1.226.1", + "Node16-225": "1.226.0" + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/task.loc.json b/_generated/AzureFunctionOnKubernetesV1/task.loc.json new file mode 100644 index 000000000000..69d6e898b5d7 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/task.loc.json @@ -0,0 +1,198 @@ +{ + "id": "FD1AA5B9-400C-4F4B-9C0B-069BA74E53C6", + "name": "AzureFunctionOnKubernetes", + "friendlyName": "ms-resource:loc.friendlyName", + "description": "ms-resource:loc.description", + "helpUrl": "https://aka.ms/func-k8s", + "helpMarkDown": "ms-resource:loc.helpMarkDown", + "category": "Deploy", + "preview": true, + "visibility": [ + "Build", + "Release" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 1, + "Minor": 226, + "Patch": 1 + }, + "demands": [], + "groups": [ + { + "name": "serviceConnections", + "displayName": "ms-resource:loc.group.displayName.serviceConnections", + "isExpanded": true + }, + { + "name": "commands", + "displayName": "ms-resource:loc.group.displayName.commands", + "isExpanded": true + } + ], + "inputs": [ + { + "name": "connectionType", + "type": "pickList", + "label": "ms-resource:loc.input.label.connectionType", + "defaultValue": "Kubernetes Service Connection", + "required": true, + "options": { + "Azure Resource Manager": "Azure Resource Manager", + "Kubernetes Service Connection": "Kubernetes Service Connection" + }, + "groupName": "serviceConnections", + "helpMarkDown": "ms-resource:loc.input.help.connectionType" + }, + { + "name": "dockerRegistryServiceConnection", + "type": "connectedService:dockerregistry", + "label": "ms-resource:loc.input.label.dockerRegistryServiceConnection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "ms-resource:loc.input.help.dockerRegistryServiceConnection" + }, + { + "name": "kubernetesServiceEndpoint", + "aliases": [ + "kubernetesServiceConnection" + ], + "type": "connectedService:kubernetes", + "label": "ms-resource:loc.input.label.kubernetesServiceEndpoint", + "visibleRule": "connectionType = Kubernetes Service Connection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "ms-resource:loc.input.help.kubernetesServiceEndpoint" + }, + { + "name": "azureSubscriptionEndpoint", + "aliases": [ + "azureSubscriptionConnection" + ], + "type": "connectedService:AzureRM", + "label": "ms-resource:loc.input.label.azureSubscriptionEndpoint", + "helpMarkDown": "ms-resource:loc.input.help.azureSubscriptionEndpoint", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "groupName": "serviceConnections", + "required": true + }, + { + "name": "azureResourceGroup", + "label": "ms-resource:loc.input.label.azureResourceGroup", + "type": "pickList", + "helpMarkDown": "ms-resource:loc.input.help.azureResourceGroup", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "required": true, + "groupName": "serviceConnections", + "properties": { + "EditableOptions": "True" + } + }, + { + "name": "kubernetesCluster", + "label": "ms-resource:loc.input.label.kubernetesCluster", + "type": "pickList", + "helpMarkDown": "ms-resource:loc.input.help.kubernetesCluster", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "required": true, + "groupName": "serviceConnections", + "properties": { + "EditableOptions": "True" + } + }, + { + "name": "namespace", + "type": "string", + "label": "ms-resource:loc.input.label.namespace", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.namespace" + }, + { + "name": "secretName", + "type": "string", + "label": "ms-resource:loc.input.label.secretName", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.secretName" + }, + { + "name": "dockerHubNamespace", + "type": "string", + "label": "ms-resource:loc.input.label.dockerHubNamespace", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.dockerHubNamespace" + }, + { + "name": "appName", + "type": "string", + "required": true, + "label": "ms-resource:loc.input.label.appName", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.appName" + }, + { + "name": "functionRootDirectory", + "type": "filePath", + "label": "ms-resource:loc.input.label.functionRootDirectory", + "required": false, + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.functionRootDirectory" + }, + { + "name": "waitForStability", + "type": "boolean", + "label": "ms-resource:loc.input.label.waitForStability", + "groupName": "commands", + "defaultValue": "true", + "helpMarkDown": "ms-resource:loc.input.help.waitForStability" + }, + { + "name": "arguments", + "type": "string", + "label": "ms-resource:loc.input.label.arguments", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.arguments" + } + ], + "dataSourceBindings": [ + { + "target": "kubernetesCluster", + "endpointId": "$(azureSubscriptionEndpoint)", + "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/resourceGroups/$(azureResourceGroup)/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31", + "resultSelector": "jsonpath:$.value[*]", + "resultTemplate": "{{{name}}}" + }, + { + "target": "azureResourceGroup", + "endpointId": "$(azureSubscriptionEndpoint)", + "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31", + "resultSelector": "jsonpath:$.value[*]", + "resultTemplate": "{{{ #extractResource id resourcegroups}}}" + } + ], + "instanceNameFormat": "ms-resource:loc.instanceNameFormat", + "execution": { + "Node10": { + "target": "src//run.js" + } + }, + "messages": { + "AllContainersNotInReadyState": "ms-resource:loc.messages.AllContainersNotInReadyState", + "CouldNotDeterminePodStatus": "ms-resource:loc.messages.CouldNotDeterminePodStatus", + "CouldNotDetermineServiceStatus": "ms-resource:loc.messages.CouldNotDetermineServiceStatus", + "FileContentSynced": "ms-resource:loc.messages.FileContentSynced", + "KubectlClientVersion": "ms-resource:loc.messages.KubectlClientVersion", + "KubectlServerVersion": "ms-resource:loc.messages.KubectlServerVersion", + "KubernetesClusterResourceGroup": "ms-resource:loc.messages.KubernetesClusterResourceGroup", + "NoDataWrittenOnFile": "ms-resource:loc.messages.NoDataWrittenOnFile", + "ServiceExternalIP": "ms-resource:loc.messages.ServiceExternalIP", + "WritingDockerConfigToTempFile": "ms-resource:loc.messages.WritingDockerConfigToTempFile", + "KubeloginFailed": "ms-resource:loc.messages.KubeloginFailed" + }, + "_buildConfigMapping": { + "Default": "1.226.1", + "Node16-225": "1.226.0" + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1/tsconfig.json b/_generated/AzureFunctionOnKubernetesV1/tsconfig.json new file mode 100644 index 000000000000..79a868c8d1e3 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "commonjs" + }, + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/de-DE/resources.resjson b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/de-DE/resources.resjson new file mode 100644 index 000000000000..43cda11a081a --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/de-DE/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Azure Functions in Kubernetes", + "loc.helpMarkDown": "[Weitere Informationen zu dieser Aufgabe](https://aka.ms/func-k8s) oder [Azure Functions in Kubernetes mit KEDA](https://docs.microsoft.com/de-de/azure/azure-functions/functions-kubernetes-keda) oder [\"sample-hello-world-azure-functions\" anzeigen](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Stellen Sie eine Azure-Funktion im Kubernetes-Cluster bereit.", + "loc.instanceNameFormat": "Functions in Kubernetes – bereitstellen", + "loc.group.displayName.serviceConnections": "Dienstverbindungen", + "loc.group.displayName.commands": "Befehle", + "loc.input.label.connectionType": "Dienstverbindungstyp", + "loc.input.help.connectionType": "Wählen Sie einen Kubernetes-Dienstverbindungstyp aus.", + "loc.input.label.dockerRegistryServiceConnection": "Dienstverbindung für Docker-Registrierung", + "loc.input.help.dockerRegistryServiceConnection": "Wählen Sie eine Dienstverbindung für die Docker-Registrierung aus.", + "loc.input.label.kubernetesServiceEndpoint": "Kubernetes-Dienstverbindung", + "loc.input.help.kubernetesServiceEndpoint": "Wählen Sie eine Kubernetes-Dienstverbindung aus.", + "loc.input.label.azureSubscriptionEndpoint": "Azure-Abonnement", + "loc.input.help.azureSubscriptionEndpoint": "Wählen Sie das Azure Resource Manager-Abonnement aus, das Azure Container Registry enthält. Hinweis: Wählen Sie zum Konfigurieren einer neuen Dienstverbindung das Azure-Abonnement aus der Liste aus, und klicken Sie auf „Autorisieren“. Wenn Ihr Abonnement nicht aufgeführt ist oder Sie einen vorhandenen Dienstprinzipal verwenden möchten, können Sie über die Schaltfläche „Hinzufügen“ oder „Verwalten“ eine Azure-Dienstverbindung einrichten.", + "loc.input.label.azureResourceGroup": "Ressourcengruppe", + "loc.input.help.azureResourceGroup": "Wählen Sie eine Azure-Ressourcengruppe aus.", + "loc.input.label.kubernetesCluster": "Kubernetes-Cluster", + "loc.input.help.kubernetesCluster": "Wählen Sie einen verwalteten Azure-Cluster aus.", + "loc.input.label.namespace": "Kubernetes-Namespace", + "loc.input.help.namespace": "Kubernetes-Namespace", + "loc.input.label.secretName": "Der Name des Geheimnisses.", + "loc.input.help.secretName": "Kubernetes-Geheimnis mit Konfigurationsdaten für die Funktion (Beispiel: AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub-Namespace", + "loc.input.help.dockerHubNamespace": "Docker Hub-Namespace. Erforderlich für ein privates Docker Hub-Repository.", + "loc.input.label.appName": "Anwendungsname", + "loc.input.help.appName": "Anwendungsname. Die erstellten Kubernetes-Objekte verwenden diesen Namen. Der Name sollte den Kubernetes-Namenskonventionen für Ressourcen folgen.", + "loc.input.label.functionRootDirectory": "Stammverzeichnis der Funktion", + "loc.input.help.functionRootDirectory": "Stammverzeichnis für Funktionen. Sollte „host.json“ enthalten. Docker-Build- und -Pushvorgänge werden von diesem Verzeichnis aus ausgeführt.", + "loc.input.label.waitForStability": "Auf stabilen Zustand warten", + "loc.input.help.waitForStability": "Warten Sie, bis die Kubernetes-Objekte den gewünschten Zustand erreicht haben.", + "loc.input.label.arguments": "Argumente", + "loc.input.help.arguments": "Übergeben Sie Argumente an den Befehl. Beispiel:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Keiner der Container befindet sich im Zustand \"Bereit\".", + "loc.messages.CouldNotDeterminePodStatus": "Der Podstatus konnte aufgrund des folgenden Fehlers nicht bestimmt werden: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Der Status des Diensts \"%s\" konnte aufgrund des folgenden Fehlers nicht bestimmt werden: %s", + "loc.messages.FileContentSynced": "Der Inhalt der Datei wurde auf dem Datenträger synchronisiert. Der Inhalt ist \"%s\".", + "loc.messages.KubectlClientVersion": "Kubectl-Clientversion", + "loc.messages.KubectlServerVersion": "Kubectl-Serverversion", + "loc.messages.KubernetesClusterResourceGroup": "Kubernetes-Cluster „%s“, Ressourcengruppe „%s“.", + "loc.messages.NoDataWrittenOnFile": "In die Datei \"%s\" wurden keine Daten geschrieben.", + "loc.messages.ServiceExternalIP": "Die externe IP-Adresse für den Dienst \"%s\" lautet %s.", + "loc.messages.WritingDockerConfigToTempFile": "Die Docker-Konfiguration wird in die temporäre Datei geschrieben. Dateipfad: %s, Docker-Konfiguration: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/en-US/resources.resjson b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/en-US/resources.resjson new file mode 100644 index 000000000000..f8b2a2c850c6 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/en-US/resources.resjson @@ -0,0 +1,45 @@ +{ + "loc.friendlyName": "Azure Function on Kubernetes", + "loc.helpMarkDown": "[Learn more about this task](https://aka.ms/func-k8s) or [see Azure Functions on Kubernetes with KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) or [check out sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Deploy Azure function to Kubernetes cluster.", + "loc.instanceNameFormat": "Func on K8s - deploy", + "loc.group.displayName.serviceConnections": "Service Connections", + "loc.group.displayName.commands": "Commands", + "loc.input.label.connectionType": "Service connection type", + "loc.input.help.connectionType": "Select a Kubernetes service connection type.", + "loc.input.label.dockerRegistryServiceConnection": "Docker registry service connection", + "loc.input.help.dockerRegistryServiceConnection": "Select a Docker registry service connection.", + "loc.input.label.kubernetesServiceEndpoint": "Kubernetes service connection", + "loc.input.help.kubernetesServiceEndpoint": "Select a Kubernetes service connection.", + "loc.input.label.azureSubscriptionEndpoint": "Azure subscription", + "loc.input.help.azureSubscriptionEndpoint": "Select the Azure Resource Manager subscription, which contains Azure Container Registry.Note: To configure new service connection, select the Azure subscription from the list and click 'Authorize'. If your subscription is not listed or if you want to use an existing Service Principal, you can setup an Azure service connection using 'Add' or 'Manage' button.", + "loc.input.label.azureResourceGroup": "Resource group", + "loc.input.help.azureResourceGroup": "Select an Azure resource group.", + "loc.input.label.kubernetesCluster": "Kubernetes cluster", + "loc.input.help.kubernetesCluster": "Select an Azure managed cluster.", + "loc.input.label.namespace": "Kubernetes namespace", + "loc.input.help.namespace": "Kubernetes namespace", + "loc.input.label.secretName": "Secret Name", + "loc.input.help.secretName": "Kubernetes secret containing function config data (for ex. AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub namespace", + "loc.input.help.dockerHubNamespace": "Docker Hub namespace. Required for private Docker Hub repository.", + "loc.input.label.appName": "Application Name", + "loc.input.help.appName": "Application Name. The Kubernetes objects created use this name. This should follow Kubernetes naming conventions for resource names.", + "loc.input.label.functionRootDirectory": "Function root directory", + "loc.input.help.functionRootDirectory": "Function root directory. Should contain host.json. Docker build and push is performed from this directory.", + "loc.input.label.waitForStability": "Wait for stability", + "loc.input.help.waitForStability": "Wait for the Kubernetes objects to reach the desired state.", + "loc.input.label.arguments": "Arguments", + "loc.input.help.arguments": "Pass arguments to command. Ex:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "All the containers are not in a ready state.", + "loc.messages.CouldNotDeterminePodStatus": "Could not determine the pod's status due to the error: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Could not determine the service %s status due to the error: %s", + "loc.messages.FileContentSynced": "Synced the file content to the disk. The content is %s.", + "loc.messages.KubectlClientVersion": "Kubectl Client Version", + "loc.messages.KubectlServerVersion": "Kubectl Server Version", + "loc.messages.KubernetesClusterResourceGroup": "Kubernetes cluster %s, resource group %s.", + "loc.messages.NoDataWrittenOnFile": "No data was written into the file %s", + "loc.messages.ServiceExternalIP": "service %s external IP is %s", + "loc.messages.WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s", + "loc.messages.KubeloginFailed": "Kubelogin authentication failed. Exception: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/es-ES/resources.resjson b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/es-ES/resources.resjson new file mode 100644 index 000000000000..43978ef6433c --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/es-ES/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Función de Azure en Kubernetes", + "loc.helpMarkDown": "[Obtener más información acerca de esta tarea](https://aka.ms/func-k8s), [consultar Azure Functions en Kubernetes con KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) o [consultar sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Implementa la función de Azure en el clúster de Kubernetes.", + "loc.instanceNameFormat": "Función en K8s: implementar", + "loc.group.displayName.serviceConnections": "Conexiones de servicio", + "loc.group.displayName.commands": "Comandos", + "loc.input.label.connectionType": "Tipo de conexión de servicio", + "loc.input.help.connectionType": "Seleccione un tipo de conexión de servicio de Kubernetes.", + "loc.input.label.dockerRegistryServiceConnection": "Conexión de servicio del registro de Docker", + "loc.input.help.dockerRegistryServiceConnection": "Seleccione una conexión del servicio de registro de Docker.", + "loc.input.label.kubernetesServiceEndpoint": "Conexión de servicio de Kubernetes", + "loc.input.help.kubernetesServiceEndpoint": "Seleccione una conexión del servicio de Kubernetes.", + "loc.input.label.azureSubscriptionEndpoint": "Suscripción a Azure", + "loc.input.help.azureSubscriptionEndpoint": "Seleccione la suscripción de Azure Resource Manager, que contiene Azure Container Registry. Nota: Para configurar una nueva conexión de servicio, seleccione la suscripción de Azure de la lista y haga clic en \"Autorizar\". Si la suscripción no aparece en la lista o quiere usar una entidad de servicio existente, puede configurar la conexión de servicio de Azure con el botón \"Agregar\" o \"Administrar\".", + "loc.input.label.azureResourceGroup": "Grupo de recursos", + "loc.input.help.azureResourceGroup": "Seleccione un grupo de recursos de Azure.", + "loc.input.label.kubernetesCluster": "Clúster de Kubernetes", + "loc.input.help.kubernetesCluster": "Seleccione un clúster de Azure administrado.", + "loc.input.label.namespace": "Espacio de nombres de Kubernetes", + "loc.input.help.namespace": "Espacio de nombres de Kubernetes", + "loc.input.label.secretName": "Nombre del secreto", + "loc.input.help.secretName": "Secreto de Kubernetes que contiene los datos de configuración de la función (por ejemplo, AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Espacio de nombres de Docker Hub", + "loc.input.help.dockerHubNamespace": "Espacio de nombres de Docker Hub. Se requiere para el repositorio privado de Docker Hub.", + "loc.input.label.appName": "Nombre de aplicación", + "loc.input.help.appName": "Nombre de la aplicación. Los objetos de Kubernetes creados usan este nombre, que debe seguir las convenciones de nomenclatura de Kubernetes para los nombres de recurso.", + "loc.input.label.functionRootDirectory": "Directorio raíz de la función", + "loc.input.help.functionRootDirectory": "Directorio raíz de la función; debe contener host.json. La compilación e inserción de Docker se realizan desde este directorio.", + "loc.input.label.waitForStability": "Esperar estabilidad", + "loc.input.help.waitForStability": "Espere a que los objetos de Kubernetes alcancen el estado deseado.", + "loc.input.label.arguments": "Argumentos", + "loc.input.help.arguments": "Pase argumentos al comando. Ejemplo:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Ninguno de los contenedores está listo.", + "loc.messages.CouldNotDeterminePodStatus": "No se pudo determinar el estado del pod debido al error siguiente: %s", + "loc.messages.CouldNotDetermineServiceStatus": "No se pudo determinar el estado del servicio %s debido al error siguiente: %s", + "loc.messages.FileContentSynced": "Se ha sincronizado el contenido del archivo con el disco. El contenido es %s.", + "loc.messages.KubectlClientVersion": "Versión del cliente de Kubectl", + "loc.messages.KubectlServerVersion": "Versión del servidor de Kubectl", + "loc.messages.KubernetesClusterResourceGroup": "Clúster de Kubernetes %s, grupo de recursos %s.", + "loc.messages.NoDataWrittenOnFile": "No se escribieron datos en el archivo %s", + "loc.messages.ServiceExternalIP": "La dirección IP externa del servicio %s es %s", + "loc.messages.WritingDockerConfigToTempFile": "Escribiendo la configuración de Docker en el archivo temporal. Ruta de acceso del archivo: %s. Configuración de Docker: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/fr-FR/resources.resjson b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/fr-FR/resources.resjson new file mode 100644 index 000000000000..707336381a66 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/fr-FR/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Azure Functions sur Kubernetes", + "loc.helpMarkDown": "[En savoir plus sur cette tâche](https://aka.ms/func-k8s) ou [consulter Azure Functions sur Kubernetes avec KEDA](https://docs.microsoft.com/fr-fr/azure/azure-functions/functions-kubernetes-keda) ou [consulter sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Permet de déployer Azure Functions sur un cluster Kubernetes.", + "loc.instanceNameFormat": "Fonction sur Kubernetes – Déployer", + "loc.group.displayName.serviceConnections": "Connexions de service", + "loc.group.displayName.commands": "Commandes", + "loc.input.label.connectionType": "Type de connexion de service", + "loc.input.help.connectionType": "Sélectionnez un type de connexion de service Kubernetes.", + "loc.input.label.dockerRegistryServiceConnection": "Connexion de service de registre Docker", + "loc.input.help.dockerRegistryServiceConnection": "Sélectionnez une connexion de service de registre Docker.", + "loc.input.label.kubernetesServiceEndpoint": "Connexion de service Kubernetes", + "loc.input.help.kubernetesServiceEndpoint": "Sélectionnez une connexion de service Kubernetes.", + "loc.input.label.azureSubscriptionEndpoint": "Abonnement Azure", + "loc.input.help.azureSubscriptionEndpoint": "Sélectionnez l’abonnement Azure Resource Manager, qui contient Azure Container Registry. Note : Pour configurer une nouvelle connexion de service, sélectionnez l’abonnement Azure dans la liste, puis cliquez sur Autoriser. Remarque : Si votre abonnement n’est pas listé, ou si vous souhaitez utiliser un principal du service existant, vous pouvez configurer une connexion au service Azure à l’aide du bouton 'Ajouter' ou 'Gérer'.", + "loc.input.label.azureResourceGroup": "Groupe de ressources", + "loc.input.help.azureResourceGroup": "Sélectionnez un groupe de ressources Azure.", + "loc.input.label.kubernetesCluster": "Cluster Kubernetes", + "loc.input.help.kubernetesCluster": "Sélectionnez un cluster managé Azure.", + "loc.input.label.namespace": "Espace de noms Kubernetes", + "loc.input.help.namespace": "Espace de noms Kubernetes", + "loc.input.label.secretName": "Nom du secret", + "loc.input.help.secretName": "Secret Kubernetes contenant les données de configuration de fonction (par exemple AzureWebJobsStorage : )", + "loc.input.label.dockerHubNamespace": "Espace de noms Docker Hub", + "loc.input.help.dockerHubNamespace": "Espace de noms Docker Hub. Obligatoire pour le dépôt Docker Hub privé.", + "loc.input.label.appName": "Nom de l’application", + "loc.input.help.appName": "Nom d’application. Les objets Kubernetes créés utilisent ce nom. Il doit respecter les conventions d’affectation de noms Kubernetes pour les noms de ressources.", + "loc.input.label.functionRootDirectory": "Répertoire racine de la fonction", + "loc.input.help.functionRootDirectory": "Répertoire racine de la fonction. Doit contenir host.json. La build Docker et son envoi (push) sont effectués à partir de ce répertoire.", + "loc.input.label.waitForStability": "Attendre la stabilisation", + "loc.input.help.waitForStability": "Attendez que les objets Kubernetes atteignent l’état souhaité.", + "loc.input.label.arguments": "Arguments", + "loc.input.help.arguments": "Passez les arguments à la commande. Exemple :
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Tous les conteneurs ne sont pas prêts.", + "loc.messages.CouldNotDeterminePodStatus": "Impossible de déterminer l'état du pod en raison de l'erreur %s", + "loc.messages.CouldNotDetermineServiceStatus": "Impossible de déterminer l'état du service %s en raison de l'erreur %s", + "loc.messages.FileContentSynced": "Synchronisation effectuée du contenu du fichier sur le disque. Le contenu est %s.", + "loc.messages.KubectlClientVersion": "Version du client kubectl", + "loc.messages.KubectlServerVersion": "Version du serveur kubectl", + "loc.messages.KubernetesClusterResourceGroup": "Cluster Kubernetes : %s, groupe de ressources : %s.", + "loc.messages.NoDataWrittenOnFile": "Aucune donnée n’a été écrite dans le fichier %s", + "loc.messages.ServiceExternalIP": "l'adresse IP externe du service %s est %s", + "loc.messages.WritingDockerConfigToTempFile": "Écriture de la configuration Docker dans le fichier temporaire. Chemin de fichier : %s. Configuration Docker : %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/it-IT/resources.resjson b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/it-IT/resources.resjson new file mode 100644 index 000000000000..41341deb8b83 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/it-IT/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Funzione di Azure in Kubernetes", + "loc.helpMarkDown": "[Altre informazioni su questa attività](https://aka.ms/func-k8s). In alternativa, [vedere Funzioni di Azure in Kubernetes con KEDA](https://docs.microsoft.com/it-it/azure/azure-functions/functions-kubernetes-keda) oppure [sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Distribuisce la funzione di Azure nel cluster Kubernetes.", + "loc.instanceNameFormat": "Funzione in K8s - Distribuzione", + "loc.group.displayName.serviceConnections": "Connessioni al servizio", + "loc.group.displayName.commands": "Comandi", + "loc.input.label.connectionType": "Tipo di connessione al servizio", + "loc.input.help.connectionType": "Selezionare un tipo di connessione al servizio Kubernetes.", + "loc.input.label.dockerRegistryServiceConnection": "Connessione al servizio Registro Docker", + "loc.input.help.dockerRegistryServiceConnection": "Selezionare una connessione al servizio Registro Docker.", + "loc.input.label.kubernetesServiceEndpoint": "Connessione al servizio Kubernetes", + "loc.input.help.kubernetesServiceEndpoint": "Selezionare una connessione al servizio Kubernetes.", + "loc.input.label.azureSubscriptionEndpoint": "Sottoscrizione di Azure", + "loc.input.help.azureSubscriptionEndpoint": "Consente di selezionare l'abbonamento di Azure Resource Manager che contiene Registro Azure Container. Nota: per configurare la nuova connessione al servizio, selezionare l'abbonamento di Azure dall'elenco e fare clic su 'Autorizza'. Se l'abbonamento non è incluso nell'elenco o si vuole usare un'entità servizio esistente, è possibile configurare una connessione al servizio di Azure usando il pulsante 'Aggiungi' o 'Gestisci'.", + "loc.input.label.azureResourceGroup": "Gruppo di risorse", + "loc.input.help.azureResourceGroup": "Consente di selezionare un gruppo di risorse di Azure.", + "loc.input.label.kubernetesCluster": "Cluster Kubernetes", + "loc.input.help.kubernetesCluster": "Selezionare un cluster gestito di Azure.", + "loc.input.label.namespace": "Spazio dei nomi Kubernetes", + "loc.input.help.namespace": "Spazio dei nomi Kubernetes", + "loc.input.label.secretName": "Nome del segreto", + "loc.input.help.secretName": "Segreto di Kubernetes contenente i dati di configurazione della funzione, ad esempio AzureWebJobsStorage: ", + "loc.input.label.dockerHubNamespace": "Spazio dei nomi di Docker Hub", + "loc.input.help.dockerHubNamespace": "Spazio dei nomi di Docker Hub. È obbligatorio per il repository Docker Hub privato.", + "loc.input.label.appName": "Nome applicazione", + "loc.input.help.appName": "Nome dell'applicazione usato dagli oggetti Kubernetes creati. Deve essere conforme alle convenzioni di denominazione Kubernetes per i nomi di risorsa.", + "loc.input.label.functionRootDirectory": "Directory radice della funzione", + "loc.input.help.functionRootDirectory": "Directory radice della funzione. Deve contenere host.json. I comandi build e push di Docker vengono eseguiti da questa directory.", + "loc.input.label.waitForStability": "Attendi stabilità", + "loc.input.help.waitForStability": "Attende che gli oggetti Kubernetes raggiungano lo stato desiderato.", + "loc.input.label.arguments": "Argomenti", + "loc.input.help.arguments": "Passa gli argomenti al comando. Esempio:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Tutti i contenitori non si trovano in uno stato pronto.", + "loc.messages.CouldNotDeterminePodStatus": "Non è stato possibile determinare lo stato del pod a causa dell'errore: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Non è stato possibile determinare lo stato del servizio %s a causa dell'errore: %s", + "loc.messages.FileContentSynced": "Il contenuto del file è stato sincronizzato con il disco. Il contenuto è %s.", + "loc.messages.KubectlClientVersion": "Versione del client kubectl", + "loc.messages.KubectlServerVersion": "Versione del server kubectl", + "loc.messages.KubernetesClusterResourceGroup": "Cluster Kubernetes %s, gruppo di risorse %s.", + "loc.messages.NoDataWrittenOnFile": "Non sono stati scritti dati nel file %s", + "loc.messages.ServiceExternalIP": "l'IP esterno del servizio %s è %s", + "loc.messages.WritingDockerConfigToTempFile": "Scrittura della configurazione di Docker nel file temporaneo. Percorso del file: %s. Configurazione di Docker: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/ja-JP/resources.resjson b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/ja-JP/resources.resjson new file mode 100644 index 000000000000..3f716d4fd6f6 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/ja-JP/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Kubernetes での Azure 関数", + "loc.helpMarkDown": "[このタスクの詳細を表示](https://aka.ms/func-k8s)、または [「KEDA を使用した Kubernetes での Azure Functions」を参照](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda)、あるいは [sample-hello-world-azure-functions を確認](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Azure 関数を Kubernetes クラスターにデプロイします。", + "loc.instanceNameFormat": "K8s 上の関数 - デプロイ", + "loc.group.displayName.serviceConnections": "サービス接続", + "loc.group.displayName.commands": "コマンド", + "loc.input.label.connectionType": "サービス接続の種類", + "loc.input.help.connectionType": "Kubernetes サービス接続の種類を選択します。", + "loc.input.label.dockerRegistryServiceConnection": "Docker レジストリ サービス接続", + "loc.input.help.dockerRegistryServiceConnection": "Docker レジストリ サービス接続を選択します。", + "loc.input.label.kubernetesServiceEndpoint": "Kubernetes サービス接続", + "loc.input.help.kubernetesServiceEndpoint": "Kubernetes サービス接続を選択します。", + "loc.input.label.azureSubscriptionEndpoint": "Azure サブスクリプション", + "loc.input.help.azureSubscriptionEndpoint": "Azure Container Registry を含む Azure Resource Manager サブスクリプションを選択します。注: 新しいサービス接続を構成するには、リストから Azure サブスクリプションを選択して、[承認] をクリックします。サブスクリプションがリストにない場合、または既存のサービス プリンシパルを使用する場合は、[追加] または [管理] ボタンを使用して Azure サービス接続をセットアップすることができます。", + "loc.input.label.azureResourceGroup": "リソース グループ", + "loc.input.help.azureResourceGroup": "Azure リソース グループを選択します。", + "loc.input.label.kubernetesCluster": "Kubernetes クラスター", + "loc.input.help.kubernetesCluster": "Azure 管理対象クラスターを選択します。", + "loc.input.label.namespace": "Kubernetes 名前空間", + "loc.input.help.namespace": "Kubernetes 名前空間", + "loc.input.label.secretName": "シークレット名", + "loc.input.help.secretName": "関数の構成データを含む Kubernetes シークレット (例: AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub の名前空間", + "loc.input.help.dockerHubNamespace": "Docker Hub の名前空間。Docker Hub のプライベート リポジトリでは必須です。", + "loc.input.label.appName": "アプリケーション名", + "loc.input.help.appName": "アプリケーション名。作成された Kubernetes オブジェクトにこの名前が使用されます。これは、リソース名に対する Kubernetes の名前付け規則に従う必要があります。", + "loc.input.label.functionRootDirectory": "関数のルート ディレクトリ", + "loc.input.help.functionRootDirectory": "関数のルート ディレクトリ。host.json が含まれている必要があります。Docker のビルドとプッシュはこのディレクトリから実行されます。", + "loc.input.label.waitForStability": "安定するまで待機する", + "loc.input.help.waitForStability": "Kubernetes オブジェクトが目的の状態になるまで待機します。", + "loc.input.label.arguments": "引数", + "loc.input.help.arguments": "コマンドに引数を渡します。例:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "一部のコンテナーが準備完了の状態ではありません。", + "loc.messages.CouldNotDeterminePodStatus": "エラー: %s が原因でポッドの状態を特定できませんでした", + "loc.messages.CouldNotDetermineServiceStatus": "エラー: %s が原因でサービスを特定できませんでした", + "loc.messages.FileContentSynced": "ファイルの内容がディスクに同期されました。内容は %s です。", + "loc.messages.KubectlClientVersion": "kubectl クライアント バージョン", + "loc.messages.KubectlServerVersion": "kubectl サーバー バージョン", + "loc.messages.KubernetesClusterResourceGroup": "Kubernetes クラスター %s、リソース グループ %s。", + "loc.messages.NoDataWrittenOnFile": "ファイル %s にデータが書き込まれませんでした", + "loc.messages.ServiceExternalIP": "サービス %s の外部 IP は %s です", + "loc.messages.WritingDockerConfigToTempFile": "Docker 構成を一時ファイルに書き込んでいます。ファイル パス: %s、Docker 構成: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/ko-KR/resources.resjson b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/ko-KR/resources.resjson new file mode 100644 index 000000000000..0610ba1fa17f --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/ko-KR/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Kubernetes의 Azure Function", + "loc.helpMarkDown": "[이 작업에 대한 자세한 정보](https://aka.ms/func-k8s) 또는 [KEDA가 있는 Kubernetes의 Azure Functions 참조](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) 또는 [sample-hello-world-azure-functions 확인](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "Azure 함수를 Kubernetes 클러스터에 배포합니다.", + "loc.instanceNameFormat": "K8s의 함수 - 배포", + "loc.group.displayName.serviceConnections": "서비스 연결", + "loc.group.displayName.commands": "명령", + "loc.input.label.connectionType": "서비스 연결 형식", + "loc.input.help.connectionType": "Kubernetes 서비스 연결 유형을 선택합니다.", + "loc.input.label.dockerRegistryServiceConnection": "Docker 레지스트리 서비스 연결", + "loc.input.help.dockerRegistryServiceConnection": "Docker 레지스트리 서비스 연결을 선택합니다.", + "loc.input.label.kubernetesServiceEndpoint": "Kubernetes 서비스 연결", + "loc.input.help.kubernetesServiceEndpoint": "Kubernetes 서비스 연결을 선택합니다.", + "loc.input.label.azureSubscriptionEndpoint": "Azure 구독", + "loc.input.help.azureSubscriptionEndpoint": "Azure Container Registry가 포함된 Azure Resource Manager 구독을 선택합니다. 참고: 새 서비스 연결을 구성하려면 목록에서 Azure 구독을 선택하고 '권한 부여'를 클릭합니다. 구독이 목록에 없거나 기존 서비스 주체를 사용하려는 경우 '추가' 또는 '관리' 단추를 사용하여 Azure 서비스 연결을 설정할 수 있습니다.", + "loc.input.label.azureResourceGroup": "리소스 그룹", + "loc.input.help.azureResourceGroup": "Azure 리소스 그룹을 선택합니다.", + "loc.input.label.kubernetesCluster": "Kubernetes 클러스터", + "loc.input.help.kubernetesCluster": "Azure 관리 클러스터를 선택합니다.", + "loc.input.label.namespace": "Kubernetes 네임스페이스", + "loc.input.help.namespace": "Kubernetes 네임스페이스", + "loc.input.label.secretName": "비밀 이름", + "loc.input.help.secretName": "함수 구성 데이터가 포함된 Kubernetes 비밀입니다(예: AzureWebJobsStorage: ).", + "loc.input.label.dockerHubNamespace": "Docker Hub 네임스페이스", + "loc.input.help.dockerHubNamespace": "Docker Hub 네임스페이스입니다. 프라이빗 Docker Hub 리포지토리에 필요합니다.", + "loc.input.label.appName": "애플리케이션 이름", + "loc.input.help.appName": "애플리케이션 이름입니다. 만들어진 Kubernetes 개체가 이 이름을 사용합니다. 이 이름은 리소스 이름에 대한 Kubernetes 명명 규칙을 따라야 합니다.", + "loc.input.label.functionRootDirectory": "함수 루트 디렉터리", + "loc.input.help.functionRootDirectory": "함수 루트 디렉터리입니다. host.json이 포함되어야 합니다. Docker 빌드 및 푸시는 이 디렉터리에서 수행됩니다.", + "loc.input.label.waitForStability": "안정성 대기", + "loc.input.help.waitForStability": "Kubernetes 개체가 원하는 상태에 도달할 때까지 기다립니다.", + "loc.input.label.arguments": "인수", + "loc.input.help.arguments": "명령에 인수를 전달합니다. 예:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "모든 컨테이너가 준비 상태에 있지 않습니다.", + "loc.messages.CouldNotDeterminePodStatus": "오류로 인해 Pod의 상태를 확인할 수 없습니다. 오류: %s", + "loc.messages.CouldNotDetermineServiceStatus": "오류로 인해 서비스 %s 상태를 확인할 수 없습니다. 오류: %s", + "loc.messages.FileContentSynced": "파일 콘텐츠를 디스크에 동기화했습니다. 콘텐츠는 %s입니다.", + "loc.messages.KubectlClientVersion": "Kubectl 클라이언트 버전", + "loc.messages.KubectlServerVersion": "Kubectl 서버 버전", + "loc.messages.KubernetesClusterResourceGroup": "Kubernetes 클러스터 %s, 리소스 그룹 %s.", + "loc.messages.NoDataWrittenOnFile": "%s 파일에 데이터가 기록되지 않았습니다.", + "loc.messages.ServiceExternalIP": "서비스 %s 외부 IP가 %s입니다.", + "loc.messages.WritingDockerConfigToTempFile": "임시 파일에 Docker 구성을 쓰는 중입니다. 파일 경로: %s, Docker 구성: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/ru-RU/resources.resjson b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/ru-RU/resources.resjson new file mode 100644 index 000000000000..d0d21513e702 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/ru-RU/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Функция Azure в Kubernetes", + "loc.helpMarkDown": "См. [дополнительные сведения об этой задаче](https://aka.ms/func-k8s), [сведения об использовании Функций Azure в Kubernetes с KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) или [пример sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions).", + "loc.description": "Развертывание функции Azure в кластере Kubernetes.", + "loc.instanceNameFormat": "Функция в Kubernetes — развертывание", + "loc.group.displayName.serviceConnections": "Подключения служб", + "loc.group.displayName.commands": "Команды", + "loc.input.label.connectionType": "Тип подключения службы", + "loc.input.help.connectionType": "Выберите тип подключения службы Kubernetes.", + "loc.input.label.dockerRegistryServiceConnection": "Подключение к службе реестра Docker", + "loc.input.help.dockerRegistryServiceConnection": "Выберите подключение службы реестра Docker.", + "loc.input.label.kubernetesServiceEndpoint": "Подключение службы Kubernetes", + "loc.input.help.kubernetesServiceEndpoint": "Выберите подключение службы Kubernetes.", + "loc.input.label.azureSubscriptionEndpoint": "Подписка Azure", + "loc.input.help.azureSubscriptionEndpoint": "Выберите подписку Azure Resource Manager, которая включает Реестр контейнеров Azure. Примечание. Чтобы настроить новое подключение службы, выберите подписку Azure в списке и щелкните \"Авторизовать\". Если вашей подписки нет в списке или вы хотите использовать имеющийся субъект-службу, можно настроить подключение службы Azure с помощью кнопки \"Добавить\" или \"Управление\".", + "loc.input.label.azureResourceGroup": "Группа ресурсов", + "loc.input.help.azureResourceGroup": "Выберите группу ресурсов Azure.", + "loc.input.label.kubernetesCluster": "Кластер Kubernetes", + "loc.input.help.kubernetesCluster": "Выберите управляемый кластер Azure.", + "loc.input.label.namespace": "Пространство имен Kubernetes", + "loc.input.help.namespace": "Пространство имен Kubernetes", + "loc.input.label.secretName": "Имя секрета", + "loc.input.help.secretName": "Секрет Kubernetes, содержащий данные конфигурации функции (например, AzureWebJobsStorage: <строка подключения службы хранилища Azure>)", + "loc.input.label.dockerHubNamespace": "Пространство имен Docker Hub", + "loc.input.help.dockerHubNamespace": "Пространство имен Docker Hub. Требуется для частного репозитория Docker Hub.", + "loc.input.label.appName": "Имя приложения", + "loc.input.help.appName": "Имя приложения. Оно будет использоваться созданными объектами Kubernetes и должно соответствовать соглашениям об именовании Kubernetes для имен ресурсов.", + "loc.input.label.functionRootDirectory": "Корневой каталог функции", + "loc.input.help.functionRootDirectory": "Корневой каталог функции. Должен содержать host.json. Сборка и отправка Docker выполняются из этого каталога.", + "loc.input.label.waitForStability": "Дождитесь стабильности", + "loc.input.help.waitForStability": "Дождитесь, когда объекты Kubernetes достигнут желаемого состояния.", + "loc.input.label.arguments": "Аргументы", + "loc.input.help.arguments": "Передача аргументов команде. Пример:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "Все контейнеры не находятся в состоянии готовности.", + "loc.messages.CouldNotDeterminePodStatus": "Не удалось определить состояние объекта pod из-за ошибки: %s", + "loc.messages.CouldNotDetermineServiceStatus": "Не удалось определить состояние службы %s из-за ошибки: %s", + "loc.messages.FileContentSynced": "Содержимое файла синхронизировано с диском. Содержимое: %s.", + "loc.messages.KubectlClientVersion": "Версия клиента kubectl", + "loc.messages.KubectlServerVersion": "Версия сервера kubectl", + "loc.messages.KubernetesClusterResourceGroup": "Кластер Kubernetes %s, группа ресурсов %s.", + "loc.messages.NoDataWrittenOnFile": "Данные не были записаны в файл %s", + "loc.messages.ServiceExternalIP": "Внешний IP-адрес службы %s — %s.", + "loc.messages.WritingDockerConfigToTempFile": "Запись конфигурации Docker во временный файл. Путь к файлу: %s, конфигурация Docker: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/zh-CN/resources.resjson b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/zh-CN/resources.resjson new file mode 100644 index 000000000000..63c2f72971b1 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/zh-CN/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Kubernetes 上的 Azure 功能", + "loc.helpMarkDown": "[详细了解此任务](https://aka.ms/func-k8s)或[参阅有 KEDA 功能的 Kubernetes 上的 Azure Functions](https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-kubernetes-keda)或[查看 sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "将 Azure 功能部署到 Kubernetes 群集。", + "loc.instanceNameFormat": "K8s 上的 Func - 部署", + "loc.group.displayName.serviceConnections": "服务连接", + "loc.group.displayName.commands": "命令", + "loc.input.label.connectionType": "服务连接类型", + "loc.input.help.connectionType": "选择 Kubernetes 服务连接类型。", + "loc.input.label.dockerRegistryServiceConnection": "Docker 注册表服务连接", + "loc.input.help.dockerRegistryServiceConnection": "选择 Docker 注册表服务连接。", + "loc.input.label.kubernetesServiceEndpoint": "Kubernetes 服务连接", + "loc.input.help.kubernetesServiceEndpoint": "选择 Kubernetes 服务连接。", + "loc.input.label.azureSubscriptionEndpoint": "Azure 订阅", + "loc.input.help.azureSubscriptionEndpoint": "选择 Azure 资源管理器订阅,其中包含 Azure 容器注册表。注意: 要配置新的服务连接,请从列表中选择 Azure 订阅并单击“授权”。如果未列出订阅,或若要使用现有服务主体,可使用“添加”或“管理”按钮设置 Azure 服务连接。", + "loc.input.label.azureResourceGroup": "资源组", + "loc.input.help.azureResourceGroup": "选择 Azure 资源组。", + "loc.input.label.kubernetesCluster": "Kubernetes 群集", + "loc.input.help.kubernetesCluster": "选择 Azure 托管的群集。", + "loc.input.label.namespace": "Kubernetes 命名空间", + "loc.input.help.namespace": "Kubernetes 命名空间", + "loc.input.label.secretName": "机密名称", + "loc.input.help.secretName": "包含函数配置数据的 Kubernetes 机密(例如 AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub 命名空间", + "loc.input.help.dockerHubNamespace": "Docker Hub 命名空间。对于专用 Docker Hub 存储库是必需的。", + "loc.input.label.appName": "应用程序名称", + "loc.input.help.appName": "应用程序名称。创建的 Kubernetes 对象使用此名称。这应遵循 Kubernetes 资源名称命名约定。", + "loc.input.label.functionRootDirectory": "函数根目录", + "loc.input.help.functionRootDirectory": "函数根目录。应包含 host.json。从该目录执行 Docker 生成和推送。", + "loc.input.label.waitForStability": "等待稳定", + "loc.input.help.waitForStability": "等待 Kubernetes 对象达到所需状态。", + "loc.input.label.arguments": "参数", + "loc.input.help.arguments": "将参数传递给命令。例如:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "所有容器均未处于就绪状态。", + "loc.messages.CouldNotDeterminePodStatus": "由于错误 %s,无法确定 Pod 的状态", + "loc.messages.CouldNotDetermineServiceStatus": "由于错误 %s,无法确定服务 %s 状态", + "loc.messages.FileContentSynced": "文件内容已同步到磁盘。内容为 %s。", + "loc.messages.KubectlClientVersion": "Kubectl 客户端版本", + "loc.messages.KubectlServerVersion": "Kubectl 服务器版本", + "loc.messages.KubernetesClusterResourceGroup": "Kubernetes 群集 %s,资源组 %s。", + "loc.messages.NoDataWrittenOnFile": "没有任何数据写入到文件 %s", + "loc.messages.ServiceExternalIP": "服务 %s 外部 IP 为 %s", + "loc.messages.WritingDockerConfigToTempFile": "正在将 Docker 配置写入临时文件。文件路径: %s,Docker 配置: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/zh-TW/resources.resjson b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/zh-TW/resources.resjson new file mode 100644 index 000000000000..296747a51c2e --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/Strings/resources.resjson/zh-TW/resources.resjson @@ -0,0 +1,44 @@ +{ + "loc.friendlyName": "Kubernetes 上的 Azure 函式", + "loc.helpMarkDown": "[深入了解此工作](https://aka.ms/func-k8s)、[參閱 Kubernetes 上的 Azure Functions 與 KEDA](https://docs.microsoft.com/zh-tw/azure/azure-functions/functions-kubernetes-keda) 或[查看 sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "loc.description": "將 Azure 函式部署至 Kubernetes 叢集。", + "loc.instanceNameFormat": "K8s 上的函式 - 部署", + "loc.group.displayName.serviceConnections": "服務連線", + "loc.group.displayName.commands": "命令", + "loc.input.label.connectionType": "服務連線類型", + "loc.input.help.connectionType": "選取 Kubernetes 服務類型。", + "loc.input.label.dockerRegistryServiceConnection": "Docker 登錄服務連線", + "loc.input.help.dockerRegistryServiceConnection": "選取 Docker 登錄服務連線。", + "loc.input.label.kubernetesServiceEndpoint": "Kubernetes 服務連線", + "loc.input.help.kubernetesServiceEndpoint": "請選取 Kubernetes 服務連線。", + "loc.input.label.azureSubscriptionEndpoint": "Azure 訂用帳戶", + "loc.input.help.azureSubscriptionEndpoint": "請選取包含 Azure Container Registry 的 Azure Resource Manager 訂用帳戶。注意: 若要設定新的服務連線,請從清單中選取 Azure 訂用帳戶,然後按一下 [授權]。若未列出您的訂用帳戶,或您要使用現有服務主體,可使用 [新增] 或 [管理] 按鈕來設定 Azure 服務連線。", + "loc.input.label.azureResourceGroup": "資源群組", + "loc.input.help.azureResourceGroup": "請選取 Azure 資源群組。", + "loc.input.label.kubernetesCluster": "Kubernetes 叢集", + "loc.input.help.kubernetesCluster": "選取 Azure 受控叢集。", + "loc.input.label.namespace": "Kubernetes 命名空間", + "loc.input.help.namespace": "Kubernetes 命名空間", + "loc.input.label.secretName": "祕密名稱", + "loc.input.help.secretName": "包含函式組態資料的 Kubernetes 祕密 (例如 AzureWebJobsStorage: )", + "loc.input.label.dockerHubNamespace": "Docker Hub 命名空間", + "loc.input.help.dockerHubNamespace": "Docker Hub 命名空間。私人 Docker Hub 存放庫的必要項。", + "loc.input.label.appName": "應用程式名稱", + "loc.input.help.appName": "應用程式名稱,用於建立 Kubernetes 物件。此名稱應該遵循 Kubernetes 的資源名稱命名慣例。", + "loc.input.label.functionRootDirectory": "函式根目錄", + "loc.input.help.functionRootDirectory": "函式根目錄,應包含 host.json。從此目錄執行 Docker 建置和推送。", + "loc.input.label.waitForStability": "等候達到穩定", + "loc.input.help.waitForStability": "等候 Kubernetes 物件達到預期的狀態。", + "loc.input.label.arguments": "引數", + "loc.input.help.arguments": "將引數傳遞給命令,例如:
--no-docker --service-type NodePort", + "loc.messages.AllContainersNotInReadyState": "所有容器皆未處於就緒狀態。", + "loc.messages.CouldNotDeterminePodStatus": "因為發生以下錯誤,所以無法判斷 Pod 的狀態: %s", + "loc.messages.CouldNotDetermineServiceStatus": "因為發生以下錯誤,所以無法判斷服務 %s 狀態: %s", + "loc.messages.FileContentSynced": "檔案內容已同步到磁碟。內容為 %s。", + "loc.messages.KubectlClientVersion": "Kubectl 用戶端版本", + "loc.messages.KubectlServerVersion": "Kubectl 伺服器版本", + "loc.messages.KubernetesClusterResourceGroup": "Kubernetes 叢集 %s,資源群組 %s。", + "loc.messages.NoDataWrittenOnFile": "沒有任何資料寫入檔案 %s", + "loc.messages.ServiceExternalIP": "服務 %s 的外部 IP 是 %s", + "loc.messages.WritingDockerConfigToTempFile": "正在將 Docker 設定寫入暫存檔案。檔案路徑: %s,Docker 設定: %s" +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/Tests/L0.ts b/_generated/AzureFunctionOnKubernetesV1_Node16/Tests/L0.ts new file mode 100644 index 000000000000..33f06fb20602 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/Tests/L0.ts @@ -0,0 +1,16 @@ +import fs = require('fs'); +import assert = require('assert'); +import path = require('path'); + +describe('AzureFunctionOnKubernetesV1 Suite', function () { + before(() => { + }); + + after(() => { + }); + + it('Does a basic hello world test', function(done: Mocha.Done) { + // TODO - add real tests + done(); + }); +}); diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/Tests/package-lock.json b/_generated/AzureFunctionOnKubernetesV1_Node16/Tests/package-lock.json new file mode 100644 index 000000000000..fbc19a0daacc --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/Tests/package-lock.json @@ -0,0 +1,14 @@ +{ + "name": "azure-function-on-kubernetes-tests", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", + "dev": true + } + } +} diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/Tests/package.json b/_generated/AzureFunctionOnKubernetesV1_Node16/Tests/package.json new file mode 100644 index 000000000000..acaf22eafcd6 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/Tests/package.json @@ -0,0 +1,22 @@ +{ + "name": "azure-function-on-kubernetes-tests", + "version": "1.0.0", + "description": "Azure Pipelines Azure Function on Kubernetes V0 Task Tests", + "main": "L0.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" + }, + "author": "Microsoft Corporation", + "license": "MIT", + "bugs": { + "url": "https://github.com/Microsoft/azure-pipelines-tasks/issues" + }, + "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", + "devDependencies": { + "@types/mocha": "^5.2.0" + } +} diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/icon.png b/_generated/AzureFunctionOnKubernetesV1_Node16/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..76a581b1090d318bb7481195ae1e7b301664cdcf GIT binary patch literal 1373 zcmV-j1)}Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf1oBBlK~z{r#g<)6 zn`IQo|Fn!j!EG?emTYF(U>I2>lrbtWHpR`2883FBPA`mZQDf8_HF}{&FZ@XKO2?cq zolb8IFytloj&4guB;{3prygKrL)_Va%c$ebJ4SPg7@-jtVNbq-8k1g_r)B->2cLZeO( zjRs5y6rZ!ySFe1uML*-iSwrLL+)W2$&8`Iksiw{q{|E5&)8HCY_AniiW94JT?*+D;F!e!f&$OZa zsdBhHeiZOb?<}JfM#vzV_Rqo2uurn88-tAtgRcU^?=c1IOt(k8=HO9`LdGth#MDTQ z%oE^XN-tn!>X`~JN^4uO)@nibGZn~4;k%jz2gFM$nkhQb_;_ikaiM2^>~gahmdPg* zP*M<(TF}NtmLp{}S4)SO#w4O8r(0mX7 z41O9&=K*PyQ@Ly$N;cL;DyLu)ry|e6p05|*CpqaUy!~D&SEIPaA;B`io9|((iPPUl zGA@j8^jh@f6H=|fIyw-%GTE9^XtSJzn~%`q{rcrao%rT4bwY&0+ z@DICvMs8xld1|pPT>SB2+YIbvn?~W#xlVKpOyJ80?KqO3W9UNWz`MUyOvF1y{}?z2Cs zEE;e6eN=0f67_^{uRGO7I&o)hP$X_%R;ruZE^&=76Comwi}B0-%NrL$Y9O40dD%Gs zaIw*|3yjwCTZ_*vj{+OYOkD&fIOQ%pQjE%N99B_?|7UqO=fW6geii#Z0Yr_!65I`p z0H5W3rknuci@>k@_?=J% + + + + + + + + + + + diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/make.json b/_generated/AzureFunctionOnKubernetesV1_Node16/make.json new file mode 100644 index 000000000000..eb1d638ba9f7 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/make.json @@ -0,0 +1,14 @@ +{ + "rm": [ + { + "items": [ + "node_modules/azure-pipelines-tasks-docker-common/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tasks-kubernetes-common/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tasks-azure-arm-rest/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tool-lib/node_modules/azure-pipelines-task-lib", + "node_modules/https-proxy-agent/node_modules/agent-base" + ], + "options": "-Rf" + } + ] +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/package-lock.json b/_generated/AzureFunctionOnKubernetesV1_Node16/package-lock.json new file mode 100644 index 000000000000..58b49d5903e5 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/package-lock.json @@ -0,0 +1,1150 @@ +{ + "name": "azurefunctiononkubernetes", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@azure/msal-common": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-9.1.1.tgz", + "integrity": "sha512-we9xR8lvu47fF0h+J8KyXoRy9+G/fPzm3QEa2TrdR3jaVS3LKAyE2qyMuUkNdbVkvzl8Zr9f7l+IUSP22HeqXw==" + }, + "@azure/msal-node": { + "version": "1.14.5", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.14.5.tgz", + "integrity": "sha512-NcVdMfn8Z3ogN+9RjOSF7uwf2Gki5DEJl0BdDSL83KUAgVAobtkZi5W8EqxbJLrTO/ET0jv5DregrcR5qg2pEA==", + "requires": { + "@azure/msal-common": "^9.0.1", + "jsonwebtoken": "^8.5.1", + "uuid": "^8.3.0" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + } + }, + "@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "requires": { + "@types/node": "*" + } + }, + "@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "requires": { + "@types/node": "*" + } + }, + "@types/jsonwebtoken": { + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", + "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", + "requires": { + "@types/node": "*" + } + }, + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" + }, + "@types/node": { + "version": "16.18.38", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.38.tgz", + "integrity": "sha512-6sfo1qTulpVbkxECP+AVrHV9OoJqhzCsfTNp5NIG+enM4HyM3HvZCO798WShIXBN0+QtDIcutJCjsVYnQP5rIQ==" + }, + "@types/node-forge": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.2.tgz", + "integrity": "sha512-TzX3ahoi9xbmaoT58smrBu7oa6dQXb/+PTNCslZyD/55tlJ/osofIMClzZsoo6buDFrg7e4DvVGkZqVgv6OLxw==", + "requires": { + "@types/node": "*" + } + }, + "@types/q": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", + "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==" + }, + "@types/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q==" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "async-mutex": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", + "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", + "requires": { + "tslib": "^2.4.0" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "azure-devops-node-api": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-12.0.0.tgz", + "integrity": "sha512-S6Il++7dQeMlZDokBDWw7YVoPeb90tWF10pYxnoauRMnkuL91jq9M7SOYRVhtO3FUC5URPkB/qzGa7jTLft0Xw==", + "requires": { + "tunnel": "0.0.6", + "typed-rest-client": "^1.8.4" + } + }, + "azure-pipelines-task-lib": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.4.0.tgz", + "integrity": "sha512-JgtxfjxjRA+KWY0Q5UC1fo48nkbVxFHgKEuasKdJMSNxHydOyNlB5MNw4UTiTXp9b0nnqKeOQOBn5RN3go3aPg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "azure-pipelines-tasks-azure-arm-rest": { + "version": "3.223.4", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-azure-arm-rest/-/azure-pipelines-tasks-azure-arm-rest-3.223.4.tgz", + "integrity": "sha512-3RPwQfTk38HYGOCTmG2+UVM2JClaUV76YVqYrR/AhShMMFkg1wQIbpQZ7PLUh0YPbyWqFhmdaZla0JTRL9MWkg==", + "requires": { + "@azure/msal-node": "1.14.5", + "@types/jsonwebtoken": "^8.5.8", + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.5.4", + "async-mutex": "^0.4.0", + "azure-devops-node-api": "^12.0.0", + "azure-pipelines-task-lib": "^3.4.0", + "https-proxy-agent": "^4.0.0", + "jsonwebtoken": "^8.5.1", + "node-fetch": "^2.6.7", + "q": "1.5.1", + "typed-rest-client": "1.8.4", + "xml2js": "0.4.13" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + } + } + }, + "azure-pipelines-tasks-docker-common": { + "version": "2.211.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-docker-common/-/azure-pipelines-tasks-docker-common-2.211.0.tgz", + "integrity": "sha512-5FMFZjgTt4eKmcDYvQRx1kYd622Bgb36B9QLgvwYibaKfHLAYYshdO3Q/iOHxiO1ApazQbIhN4Wqzy3YtQxzVw==", + "requires": { + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.5.4", + "@types/uuid": "^8.3.0", + "azure-pipelines-task-lib": "^3.1.0", + "azure-pipelines-tasks-azure-arm-rest-v2": "^2.210.0", + "del": "2.2.0", + "q": "1.4.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + }, + "dependencies": { + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + } + } + }, + "azure-pipelines-tasks-azure-arm-rest-v2": { + "version": "2.210.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-azure-arm-rest-v2/-/azure-pipelines-tasks-azure-arm-rest-v2-2.210.0.tgz", + "integrity": "sha512-zKkFPah6ng4oGRej5Ax5eNEEd6FQ48y+1/MIXvh/VTDAFnLfLJ9M8lUh1UlmZOetX6zTcoidSKmmZWmq/KamOw==", + "requires": { + "@types/jsonwebtoken": "^8.5.8", + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.5.4", + "azure-pipelines-task-lib": "^3.1.0", + "jsonwebtoken": "^8.5.1", + "q": "1.5.1", + "typed-rest-client": "1.8.4" + }, + "dependencies": { + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + } + } + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==" + } + } + }, + "azure-pipelines-tasks-kubernetes-common": { + "version": "2.224.1", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-kubernetes-common/-/azure-pipelines-tasks-kubernetes-common-2.224.1.tgz", + "integrity": "sha512-UwVeSD1hZcPW9Z4CwAuNp6wmczdBCoWOa0saVv0DNejGVbOi0Nu7xBl+J3/N8xhcLnkD5G00LDY29G69yZFXUA==", + "requires": { + "@types/mocha": "5.2.7", + "@types/node": "10.17.0", + "@types/node-forge": "^1.3.2", + "@types/uuid": "8.3.0", + "azure-devops-node-api": "^12.0.0", + "azure-pipelines-task-lib": "^3.1.0", + "azure-pipelines-tool-lib": "^1.0.2", + "js-yaml": "3.13.1", + "node-forge": "^1.3.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.0.tgz", + "integrity": "sha512-wuJwN2KV4tIRz1bu9vq5kSPasJ8IsEjZaP1ZR7KlmdUZvGF/rXy8DmXOVwUD0kAtvtJ7aqMKPqUXC0NUTDbrDg==" + }, + "@types/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==" + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "azure-pipelines-tool-lib": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/azure-pipelines-tool-lib/-/azure-pipelines-tool-lib-1.3.2.tgz", + "integrity": "sha512-PtYcd3E2ouwZhLuaOpWA00FYoLjRuJs1V8mNu3u6lBnqeYd4jh/8VL/of6nchm8f2NM6Div+EEnbOcmWvcptPg==", + "requires": { + "@types/semver": "^5.3.0", + "@types/uuid": "^3.4.5", + "azure-pipelines-task-lib": "^3.1.10", + "semver": "^5.7.0", + "semver-compare": "^1.0.0", + "typed-rest-client": "^1.8.6", + "uuid": "^3.3.2" + }, + "dependencies": { + "@types/uuid": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.10.tgz", + "integrity": "sha512-BgeaZuElf7DEYZhWYDTc/XcLZXdVgFkVSTa13BqKvbnmUrxr3TJFKofUxCtDO9UQOdhnV+HPOESdHiHKZOJV1A==" + } + } + }, + "typed-rest-client": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.9.tgz", + "integrity": "sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + } + } + }, + "azure-pipelines-tool-lib": { + "version": "2.0.0-preview", + "resolved": "https://registry.npmjs.org/azure-pipelines-tool-lib/-/azure-pipelines-tool-lib-2.0.0-preview.tgz", + "integrity": "sha512-OeivwKLpLMsvGpZ2H+2UPxFwwqNkV8TzfKByqjYAllzGDAw4BvciAdjCMwkpGdTOnzfPbRpr33sy48kn7RqfKA==", + "requires": { + "@types/semver": "^5.3.0", + "@types/uuid": "^3.4.5", + "azure-pipelines-task-lib": "^4.0.0-preview", + "semver": "^5.7.0", + "semver-compare": "^1.0.0", + "typed-rest-client": "^1.8.6", + "uuid": "^3.3.2" + }, + "dependencies": { + "@types/uuid": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.10.tgz", + "integrity": "sha512-BgeaZuElf7DEYZhWYDTc/XcLZXdVgFkVSTa13BqKvbnmUrxr3TJFKofUxCtDO9UQOdhnV+HPOESdHiHKZOJV1A==" + }, + "azure-pipelines-task-lib": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.1.0.tgz", + "integrity": "sha512-8CNC9PcP+4eS76QcIDmPmBfrrao9xpy/M0Uts4TWk3chfr3uOXFGf0DYHVTJGF9180g51kyVXYTObicouq0KZQ==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "typed-rest-client": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.9.tgz", + "integrity": "sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + } + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "del": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.0.tgz", + "integrity": "sha512-AZDiRb78EEGYCsAZTG3v+CM5q8J0BIs+wI7QeUtyosm+zIMm4XSmp6aI/K7cU9l+YaKpDKN9dYP1xTrNjLQ+LA==", + "requires": { + "globby": "^4.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==" + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "globby": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-4.1.0.tgz", + "integrity": "sha512-JPDtMSr0bt25W64q792rvlrSwIaZwqUAhqdYKSr57Wh/xBcQ5JDWLM85ndn+Q1WdBQXLb9YGCl0QN/T0HpqU0A==", + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^6.0.1", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "requires": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + } + }, + "http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "requires": { + "@types/node": "^10.0.3" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + } + } + }, + "https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "requires": { + "agent-base": "5", + "debug": "4" + }, + "dependencies": { + "agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==" + } + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==" + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mockery": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "requires": { + "pinkie": "^2.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "requires": { + "asap": "~2.0.6" + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "requires": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + } + }, + "sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "requires": { + "get-port": "^3.1.0" + } + }, + "then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "requires": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "dependencies": { + "@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + } + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "tslib": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", + "integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "typed-rest-client": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.4.tgz", + "integrity": "sha512-MyfKKYzk3I6/QQp6e1T50py4qg+c+9BzOEl2rBmQIpStwNUoqQ73An+Tkfy9YuV7O+o2mpVVJpe+fH//POZkbg==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true + }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "xml2js": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.13.tgz", + "integrity": "sha512-BoxD65qWA2p4znzbaati/Td19uFEc0X6ydj0bFphJO62RrNaGqOyW6ljLWPo3GKDbvW/6dnxAoRX01BsgEWsMA==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": ">=2.4.6" + } + }, + "xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" + } + } +} diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/package.json b/_generated/AzureFunctionOnKubernetesV1_Node16/package.json new file mode 100644 index 000000000000..7cad3c76a887 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/package.json @@ -0,0 +1,30 @@ +{ + "name": "azurefunctiononkubernetes", + "version": "1.0.0", + "description": "Deploy Azure Function on Kubernetes", + "main": "src//run.js", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" + }, + "bugs": { + "url": "https://github.com/microsoft/azure-pipelines-tasks/issues" + }, + "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", + "devDependencies": { + "typescript": "4.0.2" + }, + "dependencies": { + "@types/mocha": "^5.2.7", + "@types/node": "^16.11.39", + "@types/q": "^1.5.0", + "@types/uuid": "^9.0.0", + "azure-pipelines-task-lib": "^4.4.0", + "agent-base": "^6.0.2", + "azure-pipelines-tasks-azure-arm-rest": "3.223.4", + "azure-pipelines-tasks-docker-common": "^2.211.0", + "azure-pipelines-tasks-kubernetes-common": "^2.224.1", + "azure-pipelines-tool-lib": "^2.0.0-preview", + "js-yaml": "3.13.1" + } +} diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/src/clusterconnection.ts b/_generated/AzureFunctionOnKubernetesV1_Node16/src/clusterconnection.ts new file mode 100644 index 000000000000..dec8c5668fa5 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/src/clusterconnection.ts @@ -0,0 +1,138 @@ +"use strict"; + +import * as fs from "fs"; +import * as path from "path"; +import * as tl from "azure-pipelines-task-lib/task"; +import * as tr from "azure-pipelines-task-lib/toolrunner"; +import * as utils from "./utils/utilities"; +import * as toolLib from 'azure-pipelines-tool-lib/tool'; +import { Kubelogin } from 'azure-pipelines-tasks-kubernetes-common/kubelogin'; + +export default class ClusterConnection { + private kubectlPath: string; + private kubeconfigFile: string; + private userDir: string; + + constructor(existingKubeConfigPath?: string) { + this.kubectlPath = tl.which("kubectl", false); + this.userDir = utils.getNewUserDirPath(); + if (existingKubeConfigPath) { + this.kubeconfigFile = existingKubeConfigPath; + } + } + + private loadClusterType(connectionType: string): any { + if(connectionType === "Azure Resource Manager") { + return require("./clusters/armkubernetescluster"); + } + else { + return require("./clusters/generickubernetescluster"); + } + } + + // get kubeconfig file path + private async getKubeConfig(connectionType): Promise { + return this.loadClusterType(connectionType).getKubeConfig().then((config) => { + return config; + }); + } + + private async initialize(): Promise { + // prepend the tools path. instructs the agent to prepend for future tasks + if(!process.env['PATH'].toLowerCase().startsWith(path.dirname(this.kubectlPath.toLowerCase()))) { + toolLib.prependPath(path.dirname(this.kubectlPath)); + } + } + + public createCommand(): tr.ToolRunner { + var command = tl.tool(this.kubectlPath); + return command; + } + + // open kubernetes connection + public async open() { + var connectionType = tl.getInput("connectionType", true); + console.log("Connection type: " + connectionType); + if (connectionType === "None") { + return this.initialize(); + } + var kubeconfig; + if (!this.kubeconfigFile) { + kubeconfig = await this.getKubeConfig(connectionType); + } + + return this.initialize().then(async () => { + if (kubeconfig) + { + this.kubeconfigFile = path.join(this.userDir, "config"); + fs.writeFileSync(this.kubeconfigFile, kubeconfig); + } + + process.env["KUBECONFIG"] = this.kubeconfigFile; + + const kubelogin = new Kubelogin(this.userDir); + if (kubelogin.isAvailable()) { + tl.debug('Kubelogin is installed. Converting kubeconfig.'); + const serviceConnection: string = tl.getInput('azureSubscriptionEndpoint', false); + try { + await kubelogin.login(serviceConnection); + } catch (err) { + tl.debug(tl.loc('KubeloginFailed', err)); + } + } + }); + } + + // close kubernetes connection + public close(): void { + var connectionType = tl.getInput("connectionType", true); + if (connectionType === "None") { + return; + } + if (this.kubeconfigFile != null && fs.existsSync(this.kubeconfigFile)) + { + delete process.env["KUBECONFIG"]; + fs.unlinkSync(this.kubeconfigFile); + } + } + + public setKubeConfigEnvVariable() { + if (this.kubeconfigFile && fs.existsSync(this.kubeconfigFile)) { + tl.setVariable("KUBECONFIG", this.kubeconfigFile); + } + else { + tl.error(tl.loc('KubernetesServiceConnectionNotFound')); + throw new Error(tl.loc('KubernetesServiceConnectionNotFound')); + } + } + + public unsetKubeConfigEnvVariable() { + var kubeConfigPath = tl.getVariable("KUBECONFIG"); + if (kubeConfigPath) { + tl.setVariable("KUBECONFIG", ""); + } + } + + //excute kubernetes command + public execCommand(command: tr.ToolRunner, options?: tr.IExecOptions) { + var errlines = []; + command.on("errline", line => { + errlines.push(line); + }); + + tl.debug(tl.loc('CallToolRunnerExec')); + + let promise = command.exec(options) + .fail(error => { + tl.debug(tl.loc('ToolRunnerExecCallFailed', error)); + errlines.forEach(line => tl.error(line)); + throw error; + }) + .then(() => { + tl.debug(tl.loc('ToolRunnerExecCallSucceeded')); + }); + + tl.debug(tl.loc('ReturningToolRunnerExecPromise')); + return promise; + } +} diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/src/clusters/armkubernetescluster.ts b/_generated/AzureFunctionOnKubernetesV1_Node16/src/clusters/armkubernetescluster.ts new file mode 100644 index 000000000000..f1e14c142993 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/src/clusters/armkubernetescluster.ts @@ -0,0 +1,26 @@ +"use strict"; + +import tl = require('azure-pipelines-task-lib/task'); +import { AzureAksService } from 'azure-pipelines-tasks-azure-arm-rest/azure-arm-aks-service'; +import { AzureRMEndpoint } from 'azure-pipelines-tasks-azure-arm-rest/azure-arm-endpoint'; +import { AzureEndpoint, AKSClusterAccessProfile} from 'azure-pipelines-tasks-azure-arm-rest/azureModels'; + +// get kubeconfig file content +async function getKubeConfigFromAKS(azureSubscriptionEndpoint: string, resourceGroup: string, clusterName: string, useClusterAdmin?: boolean) : Promise { + var azureEndpoint: AzureEndpoint = await (new AzureRMEndpoint(azureSubscriptionEndpoint)).getEndpoint(); + var aks = new AzureAksService(azureEndpoint); + + tl.debug(tl.loc("KubernetesClusterResourceGroup", clusterName, resourceGroup)); + + var clusterInfo : AKSClusterAccessProfile = await aks.getAccessProfile(resourceGroup, clusterName, useClusterAdmin); + var base64Kubeconfig = Buffer.from(clusterInfo.properties.kubeConfig, 'base64'); + return base64Kubeconfig.toString(); +} + +export async function getKubeConfig(): Promise { + var clusterName : string = tl.getInput("kubernetesCluster", true); + var azureSubscriptionEndpoint : string = tl.getInput("azureSubscriptionEndpoint", true); + var resourceGroup : string = tl.getInput("azureResourceGroup", true); + var useClusterAdmin: boolean = tl.getBoolInput('useClusterAdmin'); + return getKubeConfigFromAKS(azureSubscriptionEndpoint, resourceGroup, clusterName, useClusterAdmin); +} diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/src/clusters/generickubernetescluster.ts b/_generated/AzureFunctionOnKubernetesV1_Node16/src/clusters/generickubernetescluster.ts new file mode 100644 index 000000000000..c7b68229c6fc --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/src/clusters/generickubernetescluster.ts @@ -0,0 +1,17 @@ +"use strict"; + +import tl = require('azure-pipelines-task-lib/task'); +import kubectlutility = require("azure-pipelines-tasks-kubernetes-common/kubectlutility"); + +export async function getKubeConfig(): Promise { + var kubernetesServiceEndpoint = tl.getInput("kubernetesServiceEndpoint", true); + var authorizationType = tl.getEndpointDataParameter(kubernetesServiceEndpoint, 'authorizationType', true); + if (!authorizationType || authorizationType === "Kubeconfig") + { + return kubectlutility.getKubeconfigForCluster(kubernetesServiceEndpoint); + } + else if (authorizationType === "ServiceAccount" || authorizationType === "AzureSubscription") + { + return kubectlutility.createKubeconfig(kubernetesServiceEndpoint); + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/src/deploy.ts b/_generated/AzureFunctionOnKubernetesV1_Node16/src/deploy.ts new file mode 100644 index 000000000000..3c308862579f --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/src/deploy.ts @@ -0,0 +1,122 @@ +'use strict'; + +import * as yaml from 'js-yaml'; +import * as tl from 'azure-pipelines-task-lib/task'; +import * as tr from "azure-pipelines-task-lib/toolrunner"; +import { CommandHelper } from './utils/commandHelper'; +import { DockerConnection } from './dockerConnection'; +import { Kubectl, Resource } from 'azure-pipelines-tasks-kubernetes-common/kubectl-object-model'; +import * as FileHelper from './utils/fileHelper'; +import * as KubernetesConstants from 'azure-pipelines-tasks-kubernetes-common/kubernetesconstants'; +import * as KubernetesManifestUtility from 'azure-pipelines-tasks-kubernetes-common/kubernetesmanifestutility'; +import * as CommonUtils from 'azure-pipelines-tasks-kubernetes-common/utility'; +import ClusterConnection from './clusterconnection'; + +const secretName = tl.getInput('secretName'); +const appName = tl.getInput('appName', true); +const namespace = getKubernetesNamespace(); +const dockerHubNamespace = tl.getInput('dockerHubNamespace'); +const args = tl.getInput('arguments'); +const funcRootDir = tl.getInput('functionRootDirectory', true); +const waitForStability = tl.getBoolInput('waitForStability'); +const isDryRun = (args && args.includes('--dry-run')) ? true : false; + +export async function deploy(commandHelper: CommandHelper, dockerConnection: DockerConnection) { + let pullSecretName: string = ''; + if (!isDryRun) { + // create pull secret if it is not dry-run + pullSecretName = createImagePullSecret(commandHelper); + } + + // invoke func kubernetes deploy + funcDeploy(commandHelper, dockerConnection, pullSecretName); + + if (!isDryRun) { + // get Kubernetes resources (as YAML) created by deployment + const kubernetesResourcesYaml = getKubernetesResourcesYaml(commandHelper, dockerConnection, pullSecretName); + + // annotate the resources + annotateKubernetesResources(commandHelper, kubernetesResourcesYaml); + + if (waitForStability) { + // wait for deployment to get stable + const kubernetesResources = getResourcesFromYaml(kubernetesResourcesYaml, KubernetesConstants.deploymentTypes); + await checkManifestStability(commandHelper, kubernetesResources); + } + } +} + +function createImagePullSecret(commandHelper: CommandHelper): string { + let pullSecretName = `${appName}-imagepullsecret`; + const createPullSecretCommand = commandHelper.getCreateDockerRegistrySecretCommand(pullSecretName, namespace); + if (createPullSecretCommand) { + const deleteSecretCommand = commandHelper.getDeleteSecretCommand(pullSecretName, namespace); + // while deleting, error is thrown if the secret is not present. Ignore the error. + commandHelper.execCommand(deleteSecretCommand, { failOnStdErr: false, ignoreReturnCode: true} as tr.IExecOptions, true); + commandHelper.execCommand(createPullSecretCommand); + const kubectl = new Kubectl(commandHelper.kubectlPath, namespace); + kubectl.annotate('secret', pullSecretName, KubernetesConstants.pipelineAnnotations); + } + else { + // no secret created if no Docker login is found. Case when user wants to use a public image. + pullSecretName = ''; + } + + return pullSecretName; +} + +function funcDeploy(commandHelper: CommandHelper, dockerConnection: DockerConnection, pullSecretName: string) { + const funcDeployCommand = commandHelper.getFuncDeployCommand(dockerConnection, secretName, appName, namespace, dockerHubNamespace, pullSecretName, args); + commandHelper.execCommand(funcDeployCommand, { cwd: funcRootDir } as tr.IExecOptions); +} + +function annotateKubernetesResources(commandHelper: CommandHelper, resourcesYaml: string) { + const funcKubernetesTemplatesPath = FileHelper.getFuncKubernetesYamlPath(); + FileHelper.writeContentToFile(funcKubernetesTemplatesPath, resourcesYaml); + const kubectl = new Kubectl(commandHelper.kubectlPath, namespace); + const annotateResults = kubectl.annotateFiles(funcKubernetesTemplatesPath, KubernetesConstants.pipelineAnnotations, true); + CommonUtils.checkForErrors([annotateResults]); +} + +async function checkManifestStability(commandHelper: CommandHelper, resources: Resource[]) { + const kubectl = new Kubectl(commandHelper.kubectlPath, namespace); + await KubernetesManifestUtility.checkManifestStability(kubectl, resources); +} + +function getKubernetesResourcesYaml(commandHelper: CommandHelper, dockerConnection, pullSecretName: string): string { + let resourcesYaml = null; + const argsWithDryRun = args ? args.concat(' --dry-run') : '--dry-run'; + const funcDeployDryRunCommand = commandHelper.getFuncDeployCommand(dockerConnection, secretName, appName, namespace, dockerHubNamespace, pullSecretName, argsWithDryRun); + const result: tr.IExecSyncResult = commandHelper.execCommand(funcDeployDryRunCommand, { cwd: funcRootDir } as tr.IExecOptions); + resourcesYaml = result.stdout; + + return resourcesYaml; +} + +function getResourcesFromYaml(yamlContent: string, filterResourceTypes: string[]): Resource[] { + const resources: Resource[] = []; + yaml.safeLoadAll(yamlContent, function (inputObject) { + const inputObjectKind: string = inputObject ? inputObject.kind : ''; + if (inputObjectKind && filterResourceTypes.filter(type => inputObjectKind.toLowerCase() === type.toLowerCase()).length > 0) { + const resource = { + type: inputObject.kind, + name: inputObject.metadata.name + }; + resources.push(resource); + } + }); + + return resources; +} + +function getKubernetesNamespace(): string { + let namespace = tl.getInput('namespace'); + if (!namespace) { + const kubeConnection = tl.getInput('kubernetesServiceConnection', false); + if (kubeConnection) { + namespace = tl.getEndpointDataParameter(kubeConnection, 'namespace', true); + } + } + + return namespace; +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/src/dockerConnection.ts b/_generated/AzureFunctionOnKubernetesV1_Node16/src/dockerConnection.ts new file mode 100644 index 000000000000..b16e50e844f7 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/src/dockerConnection.ts @@ -0,0 +1,42 @@ +'use strict'; + +import * as url from "url"; +import * as tl from 'azure-pipelines-task-lib/task'; +import * as ImageUtils from "azure-pipelines-tasks-docker-common/containerimageutils"; +import ContainerConnection from "azure-pipelines-tasks-docker-common/containerconnection"; +import RegistryServerAuthenticationToken from "azure-pipelines-tasks-docker-common/registryauthenticationprovider/registryauthenticationtoken"; +import { getDockerRegistryEndpointAuthenticationToken } from "azure-pipelines-tasks-docker-common/registryauthenticationprovider/registryauthenticationtoken"; + +export class DockerConnection { + private connection: ContainerConnection; + private registryAuthenticationToken: RegistryServerAuthenticationToken; + + public async open() { + const endpointId = tl.getInput("dockerRegistryServiceConnection", true); + this.registryAuthenticationToken = await getDockerRegistryEndpointAuthenticationToken(endpointId); + this.connection = new ContainerConnection(); + this.connection.open(null, this.registryAuthenticationToken); + } + + public getRegistry() { + let registry = ''; + if (this.registryAuthenticationToken) { + const registryUrl = this.registryAuthenticationToken.getLoginServerUrl(); + registry = this.getHostName(registryUrl); + } + + return registry; + } + + public close() { + if (this.connection) { + this.connection.close(); + } + } + + private getHostName(registryUrl: string) { + const uri = url.parse(registryUrl); + const host = !uri.slashes ? uri.href : uri.host; + return host; + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/src/run.ts b/_generated/AzureFunctionOnKubernetesV1_Node16/src/run.ts new file mode 100644 index 000000000000..a849c2178605 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/src/run.ts @@ -0,0 +1,46 @@ +"use strict"; + +import * as path from 'path'; +import * as tl from 'azure-pipelines-task-lib/task'; +import { deploy } from './deploy'; +import { DockerConnection } from './dockerConnection'; +import { CommandHelper } from './utils/commandHelper'; + +import ClusterConnection from "./clusterconnection"; + +import trm = require('azure-pipelines-task-lib/toolrunner'); + +tl.setResourcePath(path.join(__dirname, "..", 'task.json')); + +let telemetry = { + jobId: tl.getVariable('SYSTEM_JOBID') +}; + +console.log("##vso[telemetry.publish area=%s;feature=%s]%s", + "TaskEndpointId", + "AzureFunctionOnKubernetesV0", + JSON.stringify(telemetry)); + +async function run() { + const kubernetesConnection = new ClusterConnection(); + const commandHelper = new CommandHelper(); + const dockerConnection = new DockerConnection(); + console.log("Opening docker connection..."); + await dockerConnection.open(); + console.log("Opening kubernetes connection..."); + await kubernetesConnection.open(); + + try { + console.log("Trying to deploy...") + await deploy(commandHelper, dockerConnection); + } + finally { + console.log("Closing docker connection..."); + dockerConnection.close(); + console.log("Closing kubernetes connection..."); + kubernetesConnection.close(); + } +} + +run() + .catch((error) => tl.setResult(tl.TaskResult.Failed, !!error.message ? error.message : error)); \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/src/utils/commandHelper.ts b/_generated/AzureFunctionOnKubernetesV1_Node16/src/utils/commandHelper.ts new file mode 100644 index 000000000000..bc04e530861c --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/src/utils/commandHelper.ts @@ -0,0 +1,67 @@ +'use strict'; + +import * as path from "path"; +import * as tl from "azure-pipelines-task-lib/task"; +import * as tr from "azure-pipelines-task-lib/toolrunner"; +import * as FuncKubernetesUtility from 'azure-pipelines-tasks-kubernetes-common/funckubernetesutility'; +import * as CommonUtils from 'azure-pipelines-tasks-kubernetes-common/utility'; +import { DockerConnection } from "../dockerConnection"; + +export class CommandHelper { + private funcPath: string; + public kubectlPath: string; + + constructor() { + // Find the path of func and kubectl. This will throw if any of them is not present + // and hence the task will fail. + this.funcPath = tl.which('func', true); + this.kubectlPath = tl.which('kubectl', true); + } + + public execCommand(command: tr.ToolRunner, options?: tr.IExecOptions, warnIfError?: boolean) { + const result: tr.IExecSyncResult = command.execSync(options); + CommonUtils.checkForErrors([result], warnIfError); + return result; + } + + public getFuncDeployCommand(dockerConnection: DockerConnection, secretName: string, appName: string, namespace: string, dockerHubNamespace: string, pullSecretName: string, args: string): tr.ToolRunner { + const registry = dockerHubNamespace ? dockerHubNamespace : dockerConnection.getRegistry(); + + if (!registry) { + tl.debug('Neither dockerHubNamespace is provided nor found registry info from Docker login. The deployment will fail.'); + } + // dirty hack for node 16 because kubernetes-common usu task-lib version 3 and node16 version of the task uses task-lib v4 now so types are incompatible + return FuncKubernetesUtility.getFuncDeployCommand(this.funcPath, secretName, appName, namespace, null, registry, pullSecretName, args) as unknown as tr.ToolRunner; + } + + public getCreateDockerRegistrySecretCommand(secretName: string, namespace: string): tr.ToolRunner { + const dockerConfigDir = tl.getVariable('DOCKER_CONFIG'); + if (dockerConfigDir) { + const command = tl.tool(this.kubectlPath); + const dockerConfigPath = path.join(dockerConfigDir, 'config.json'); + command.arg(['create', 'secret', 'generic']); + command.arg(secretName); + command.arg(`--from-file=.dockerconfigjson=${dockerConfigPath}`); + command.arg('--type=kubernetes.io/dockerconfigjson'); + if (namespace) { + command.arg(['--namespace', namespace]); + } + + return command; + } + else { + tl.debug('Not creating any pull-secret as no Docker login found.'); + return null; + } + } + + public getDeleteSecretCommand(secretName: string, namespace: string): tr.ToolRunner { + const command = tl.tool(this.kubectlPath); + command.arg(['delete', 'secret', secretName]); + if (namespace) { + command.arg(['--namespace', namespace]); + } + + return command; + } +} diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/src/utils/fileHelper.ts b/_generated/AzureFunctionOnKubernetesV1_Node16/src/utils/fileHelper.ts new file mode 100644 index 000000000000..8d3f7f55468d --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/src/utils/fileHelper.ts @@ -0,0 +1,42 @@ +'use strict'; + +import * as fs from 'fs'; +import * as path from 'path'; +import * as tl from 'azure-pipelines-task-lib/task'; +import * as os from 'os'; + +export function getTempDirectory(): string { + return tl.getVariable('agent.tempDirectory') || os.tmpdir(); +} + +export function ensureDirExists(dirPath: string): void { + if (!fs.existsSync(dirPath)) { + fs.mkdirSync(dirPath); + } +} + +export function getTaskTempDir(): string { + const tempDirectory = getTempDirectory(); + const funcSuffix = 'funckubetask_' + getCurrentTime().toString(); + const userDir = path.join(tempDirectory, funcSuffix); + ensureDirExists(userDir); + + return userDir; +} + +export function writeContentToFile(filePath: string, content: string) { + try { + fs.writeFileSync(filePath, content); + } catch (ex) { + tl.debug('Exception occurred while wrting content to file : ' + content + ' . Exception: ' + ex); + } +} + +export function getFuncKubernetesYamlPath(): string { + const tasktempDir = getTaskTempDir(); + return path.join(tasktempDir, 'resource_templates.yaml'); +} + +function getCurrentTime(): number { + return new Date().getTime(); +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/src/utils/utilities.ts b/_generated/AzureFunctionOnKubernetesV1_Node16/src/utils/utilities.ts new file mode 100644 index 000000000000..e8454cb0b84c --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/src/utils/utilities.ts @@ -0,0 +1,93 @@ +"use strict"; + +var https = require('https'); +var fs = require('fs'); +import * as path from "path"; +import * as tl from "azure-pipelines-task-lib/task"; +import * as os from "os"; +import * as util from "util"; +import * as toolLib from 'azure-pipelines-tool-lib/tool'; + +import kubectlutility = require("azure-pipelines-tasks-kubernetes-common/kubectlutility"); + +export function getTempDirectory(): string { + return tl.getVariable('agent.tempDirectory') || os.tmpdir(); +} + +export function getCurrentTime(): number { + return new Date().getTime(); +} + +export function getNewUserDirPath(): string { + var userDir = path.join(getTempDirectory(), "kubectlTask"); + ensureDirExists(userDir); + + userDir = path.join(userDir, getCurrentTime().toString()); + ensureDirExists(userDir); + + return userDir; +} + +function ensureDirExists(dirPath : string) : void +{ + if (!fs.existsSync(dirPath)) { + fs.mkdirSync(dirPath); + } +} + +export async function getKubectlVersion(versionSpec: string, checkLatest: boolean) : Promise { + + if(checkLatest) { + return await kubectlutility.getStableKubectlVersion(); + } + else if (versionSpec) { + if(versionSpec === "1.7") { + // Backward compat handle + tl.warning(tl.loc("UsingLatestStableVersion")); + return kubectlutility.getStableKubectlVersion(); + } + else if ("v".concat(versionSpec) === kubectlutility.stableKubectlVersion) { + tl.debug(util.format("Using default versionSpec:%s.", versionSpec)); + return kubectlutility.stableKubectlVersion; + } + else { + // Do not check for validity of the version here, + // We'll return proper error message when the download fails + if(!versionSpec.startsWith("v")) { + return "v".concat(versionSpec); + } + else{ + return versionSpec; + } + } + } + + return kubectlutility.stableKubectlVersion; + } + +export async function downloadKubectl(version: string): Promise { + return await kubectlutility.downloadKubectl(version); +} + +export function sanitizeVersionString(versions, inputVersion: string): string { + var version = toolLib.evaluateVersions(versions, inputVersion); + if (!version) { + throw new Error(tl.loc("NotAValidVersion", JSON.stringify(versions))); + } + + return version; +} + +export function assertFileExists(path: string) { + if(!fs.existsSync(path)) { + tl.error(tl.loc('FileNotFoundException', path)); + throw new Error(tl.loc('FileNotFoundException', path)); + } +} + +export function writeInlineConfigInTempPath(inlineConfig: string): string { + var tempInlinePath = getNewUserDirPath(); + tempInlinePath = path.join(tempInlinePath, "inlineconfig.yaml"); + fs.writeFileSync(tempInlinePath, inlineConfig); + return tempInlinePath; +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/task.json b/_generated/AzureFunctionOnKubernetesV1_Node16/task.json new file mode 100644 index 000000000000..fbffe5694dd8 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/task.json @@ -0,0 +1,202 @@ +{ + "id": "FD1AA5B9-400C-4F4B-9C0B-069BA74E53C6", + "name": "AzureFunctionOnKubernetes", + "friendlyName": "Azure Function on Kubernetes", + "description": "Deploy Azure function to Kubernetes cluster.", + "helpUrl": "https://aka.ms/func-k8s", + "helpMarkDown": "[Learn more about this task](https://aka.ms/func-k8s) or [see Azure Functions on Kubernetes with KEDA](https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda) or [check out sample-hello-world-azure-functions](https://github.com/kedacore/sample-hello-world-azure-functions)", + "category": "Deploy", + "preview": true, + "visibility": [ + "Build", + "Release" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 1, + "Minor": 226, + "Patch": 0 + }, + "demands": [], + "groups": [ + { + "name": "serviceConnections", + "displayName": "Service Connections", + "isExpanded": true + }, + { + "name": "commands", + "displayName": "Commands", + "isExpanded": true + } + ], + "inputs": [ + { + "name": "connectionType", + "type": "pickList", + "label": "Service connection type", + "defaultValue": "Kubernetes Service Connection", + "required": true, + "options": { + "Azure Resource Manager": "Azure Resource Manager", + "Kubernetes Service Connection": "Kubernetes Service Connection" + }, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Kubernetes service connection type." + }, + { + "name": "dockerRegistryServiceConnection", + "type": "connectedService:dockerregistry", + "label": "Docker registry service connection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Docker registry service connection." + }, + { + "name": "kubernetesServiceEndpoint", + "aliases": [ + "kubernetesServiceConnection" + ], + "type": "connectedService:kubernetes", + "label": "Kubernetes service connection", + "visibleRule": "connectionType = Kubernetes Service Connection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "Select a Kubernetes service connection." + }, + { + "name": "azureSubscriptionEndpoint", + "aliases": [ + "azureSubscriptionConnection" + ], + "type": "connectedService:AzureRM", + "label": "Azure subscription", + "helpMarkDown": "Select the Azure Resource Manager subscription, which contains Azure Container Registry.Note: To configure new service connection, select the Azure subscription from the list and click 'Authorize'. If your subscription is not listed or if you want to use an existing Service Principal, you can setup an Azure service connection using 'Add' or 'Manage' button.", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "groupName": "serviceConnections", + "required": true + }, + { + "name": "azureResourceGroup", + "label": "Resource group", + "type": "pickList", + "helpMarkDown": "Select an Azure resource group.", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "required": true, + "groupName": "serviceConnections", + "properties": { + "EditableOptions": "True" + } + }, + { + "name": "kubernetesCluster", + "label": "Kubernetes cluster", + "type": "pickList", + "helpMarkDown": "Select an Azure managed cluster.", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "required": true, + "groupName": "serviceConnections", + "properties": { + "EditableOptions": "True" + } + }, + { + "name": "namespace", + "type": "string", + "label": "Kubernetes namespace", + "groupName": "commands", + "helpMarkDown": "Kubernetes namespace" + }, + { + "name": "secretName", + "type": "string", + "label": "Secret Name", + "groupName": "commands", + "helpMarkDown": "Kubernetes secret containing function config data (for ex. AzureWebJobsStorage: )" + }, + { + "name": "dockerHubNamespace", + "type": "string", + "label": "Docker Hub namespace", + "groupName": "commands", + "helpMarkDown": "Docker Hub namespace. Required for private Docker Hub repository." + }, + { + "name": "appName", + "type": "string", + "required": true, + "label": "Application Name", + "groupName": "commands", + "helpMarkDown": "Application Name. The Kubernetes objects created use this name. This should follow Kubernetes naming conventions for resource names." + }, + { + "name": "functionRootDirectory", + "type": "filePath", + "label": "Function root directory", + "required": false, + "groupName": "commands", + "helpMarkDown": "Function root directory. Should contain host.json. Docker build and push is performed from this directory." + }, + { + "name": "waitForStability", + "type": "boolean", + "label": "Wait for stability", + "groupName": "commands", + "defaultValue": "true", + "helpMarkDown": "Wait for the Kubernetes objects to reach the desired state." + }, + { + "name": "arguments", + "type": "string", + "label": "Arguments", + "groupName": "commands", + "helpMarkDown": "Pass arguments to command. Ex:
--no-docker --service-type NodePort" + } + ], + "dataSourceBindings": [ + { + "target": "kubernetesCluster", + "endpointId": "$(azureSubscriptionEndpoint)", + "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/resourceGroups/$(azureResourceGroup)/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31", + "resultSelector": "jsonpath:$.value[*]", + "resultTemplate": "{{{name}}}" + }, + { + "target": "azureResourceGroup", + "endpointId": "$(azureSubscriptionEndpoint)", + "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31", + "resultSelector": "jsonpath:$.value[*]", + "resultTemplate": "{{{ #extractResource id resourcegroups}}}" + } + ], + "instanceNameFormat": "Func on K8s - deploy", + "execution": { + "Node10": { + "target": "src//run.js" + }, + "Node16": { + "target": "src//run.js", + "argumentFormat": "" + } + }, + "messages": { + "AllContainersNotInReadyState": "All the containers are not in a ready state.", + "CouldNotDeterminePodStatus": "Could not determine the pod's status due to the error: %s", + "CouldNotDetermineServiceStatus": "Could not determine the service %s status due to the error: %s", + "FileContentSynced": "Synced the file content to the disk. The content is %s.", + "KubectlClientVersion": "Kubectl Client Version", + "KubectlServerVersion": "Kubectl Server Version", + "KubernetesClusterResourceGroup": "Kubernetes cluster %s, resource group %s.", + "NoDataWrittenOnFile": "No data was written into the file %s", + "ServiceExternalIP": "service %s external IP is %s", + "WritingDockerConfigToTempFile": "Writing Docker config to temp file. File path: %s, Docker config: %s", + "KubeloginFailed": "Kubelogin authentication failed. Exception: %s" + }, + "_buildConfigMapping": { + "Default": "1.226.1", + "Node16-225": "1.226.0" + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/task.loc.json b/_generated/AzureFunctionOnKubernetesV1_Node16/task.loc.json new file mode 100644 index 000000000000..aa6c79163f03 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/task.loc.json @@ -0,0 +1,202 @@ +{ + "id": "FD1AA5B9-400C-4F4B-9C0B-069BA74E53C6", + "name": "AzureFunctionOnKubernetes", + "friendlyName": "ms-resource:loc.friendlyName", + "description": "ms-resource:loc.description", + "helpUrl": "https://aka.ms/func-k8s", + "helpMarkDown": "ms-resource:loc.helpMarkDown", + "category": "Deploy", + "preview": true, + "visibility": [ + "Build", + "Release" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 1, + "Minor": 226, + "Patch": 0 + }, + "demands": [], + "groups": [ + { + "name": "serviceConnections", + "displayName": "ms-resource:loc.group.displayName.serviceConnections", + "isExpanded": true + }, + { + "name": "commands", + "displayName": "ms-resource:loc.group.displayName.commands", + "isExpanded": true + } + ], + "inputs": [ + { + "name": "connectionType", + "type": "pickList", + "label": "ms-resource:loc.input.label.connectionType", + "defaultValue": "Kubernetes Service Connection", + "required": true, + "options": { + "Azure Resource Manager": "Azure Resource Manager", + "Kubernetes Service Connection": "Kubernetes Service Connection" + }, + "groupName": "serviceConnections", + "helpMarkDown": "ms-resource:loc.input.help.connectionType" + }, + { + "name": "dockerRegistryServiceConnection", + "type": "connectedService:dockerregistry", + "label": "ms-resource:loc.input.label.dockerRegistryServiceConnection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "ms-resource:loc.input.help.dockerRegistryServiceConnection" + }, + { + "name": "kubernetesServiceEndpoint", + "aliases": [ + "kubernetesServiceConnection" + ], + "type": "connectedService:kubernetes", + "label": "ms-resource:loc.input.label.kubernetesServiceEndpoint", + "visibleRule": "connectionType = Kubernetes Service Connection", + "required": true, + "groupName": "serviceConnections", + "helpMarkDown": "ms-resource:loc.input.help.kubernetesServiceEndpoint" + }, + { + "name": "azureSubscriptionEndpoint", + "aliases": [ + "azureSubscriptionConnection" + ], + "type": "connectedService:AzureRM", + "label": "ms-resource:loc.input.label.azureSubscriptionEndpoint", + "helpMarkDown": "ms-resource:loc.input.help.azureSubscriptionEndpoint", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "groupName": "serviceConnections", + "required": true + }, + { + "name": "azureResourceGroup", + "label": "ms-resource:loc.input.label.azureResourceGroup", + "type": "pickList", + "helpMarkDown": "ms-resource:loc.input.help.azureResourceGroup", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "required": true, + "groupName": "serviceConnections", + "properties": { + "EditableOptions": "True" + } + }, + { + "name": "kubernetesCluster", + "label": "ms-resource:loc.input.label.kubernetesCluster", + "type": "pickList", + "helpMarkDown": "ms-resource:loc.input.help.kubernetesCluster", + "visibleRule": "connectionType = Azure Resource Manager", + "defaultValue": "", + "required": true, + "groupName": "serviceConnections", + "properties": { + "EditableOptions": "True" + } + }, + { + "name": "namespace", + "type": "string", + "label": "ms-resource:loc.input.label.namespace", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.namespace" + }, + { + "name": "secretName", + "type": "string", + "label": "ms-resource:loc.input.label.secretName", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.secretName" + }, + { + "name": "dockerHubNamespace", + "type": "string", + "label": "ms-resource:loc.input.label.dockerHubNamespace", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.dockerHubNamespace" + }, + { + "name": "appName", + "type": "string", + "required": true, + "label": "ms-resource:loc.input.label.appName", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.appName" + }, + { + "name": "functionRootDirectory", + "type": "filePath", + "label": "ms-resource:loc.input.label.functionRootDirectory", + "required": false, + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.functionRootDirectory" + }, + { + "name": "waitForStability", + "type": "boolean", + "label": "ms-resource:loc.input.label.waitForStability", + "groupName": "commands", + "defaultValue": "true", + "helpMarkDown": "ms-resource:loc.input.help.waitForStability" + }, + { + "name": "arguments", + "type": "string", + "label": "ms-resource:loc.input.label.arguments", + "groupName": "commands", + "helpMarkDown": "ms-resource:loc.input.help.arguments" + } + ], + "dataSourceBindings": [ + { + "target": "kubernetesCluster", + "endpointId": "$(azureSubscriptionEndpoint)", + "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/resourceGroups/$(azureResourceGroup)/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31", + "resultSelector": "jsonpath:$.value[*]", + "resultTemplate": "{{{name}}}" + }, + { + "target": "azureResourceGroup", + "endpointId": "$(azureSubscriptionEndpoint)", + "endpointUrl": "{{{endpoint.url}}}/subscriptions/{{{endpoint.subscriptionId}}}/providers/Microsoft.ContainerService/managedClusters?api-version=2017-08-31", + "resultSelector": "jsonpath:$.value[*]", + "resultTemplate": "{{{ #extractResource id resourcegroups}}}" + } + ], + "instanceNameFormat": "ms-resource:loc.instanceNameFormat", + "execution": { + "Node10": { + "target": "src//run.js" + }, + "Node16": { + "target": "src//run.js", + "argumentFormat": "" + } + }, + "messages": { + "AllContainersNotInReadyState": "ms-resource:loc.messages.AllContainersNotInReadyState", + "CouldNotDeterminePodStatus": "ms-resource:loc.messages.CouldNotDeterminePodStatus", + "CouldNotDetermineServiceStatus": "ms-resource:loc.messages.CouldNotDetermineServiceStatus", + "FileContentSynced": "ms-resource:loc.messages.FileContentSynced", + "KubectlClientVersion": "ms-resource:loc.messages.KubectlClientVersion", + "KubectlServerVersion": "ms-resource:loc.messages.KubectlServerVersion", + "KubernetesClusterResourceGroup": "ms-resource:loc.messages.KubernetesClusterResourceGroup", + "NoDataWrittenOnFile": "ms-resource:loc.messages.NoDataWrittenOnFile", + "ServiceExternalIP": "ms-resource:loc.messages.ServiceExternalIP", + "WritingDockerConfigToTempFile": "ms-resource:loc.messages.WritingDockerConfigToTempFile", + "KubeloginFailed": "ms-resource:loc.messages.KubeloginFailed" + }, + "_buildConfigMapping": { + "Default": "1.226.1", + "Node16-225": "1.226.0" + } +} \ No newline at end of file diff --git a/_generated/AzureFunctionOnKubernetesV1_Node16/tsconfig.json b/_generated/AzureFunctionOnKubernetesV1_Node16/tsconfig.json new file mode 100644 index 000000000000..79a868c8d1e3 --- /dev/null +++ b/_generated/AzureFunctionOnKubernetesV1_Node16/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "commonjs" + }, + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/make-options.json b/make-options.json index 06c9ada352f0..34ba333378c8 100644 --- a/make-options.json +++ b/make-options.json @@ -224,5 +224,9 @@ "GitHubCommentV0", "AndroidSigningV2", "AndroidSigningV3" + ], + "Node16_225": [ + "AzureFunctionOnKubernetesV0", + "AzureFunctionOnKubernetesV1" ] } \ No newline at end of file