Compare commits

..

582 Commits

Author SHA1 Message Date
Charles Gagnon
d296b6397e Fix HDFS node for Integrated auth (#12906) (#12907)
* Fix some HDFS issues

* Undo other changes
2020-10-13 15:10:11 -07:00
Vasu Bhog
05615c796d Fix connection when changing kernel from Kusto to SQL (#12881) (#12887)
* Fix Kusto to SQL kernel connection change

* Updated Fix - removes kernel alias mapping while ensuring multi kusto notebooks work properly

* Fix tests
2020-10-12 10:52:24 -07:00
Aasim Khan
e60b01ac00 Adding sql vm and sql db notebooks to october (#12880)
* SQL VM deployments (#12144)

* Added sql vm deployment option

* Added more fields for sql vm deployments

* created basic sqlvm deployment. Mostly hardcoded

* added string to package.nls

* added poc deployments for sql vm

* Made some changes in the notebook that was mentioned in PR

* Added scaffolding for azure sql vm wizard.

* code cleanups

* added some async logic

* added loading component

* fixed loader code

* completed page2 of wizard

* added some more required fields.

* added some more fields

* added network settings page

* added sql server settings page

* added azure signin support and sql server settings page

* added some helper methods in wizard code

* added some fixes

* fixed azure and vm setting page
added validation in azure setting page

* added changes for the notebook variable

* validations and other bug fixes

* commenting sql storage optimization dropdown

* cleanedup wizard base page

* reversing  vm image list to display newer images first

* cleaning model code

* added validations for network setting

* Completed summary page
fixed the code poisition
some additional field validations

* fixed networking page

* - fixed an error with vm size model variable
- removed byol images because it was not working with az sql vm
- Fixed vm size display names in dropdown

* added double quotes to some localized strings

* added some space inside strings

* -Added live validations
-Restyled network component
-Added required to regions
-Some bug fixes

* -redesigned summary page
-localized some strings

* Fixed summary page section titles

* -Fixed validations on sql server settings page
-Fixed some fields on Summary Page

* corrected onleave validation
using array for error messages
using Promises.all

* Fixed bug on network settings dropdowns when user does not have existing resource to populate them

* Change resource deployment display name
Added Ninar's iteration of the notebook
Changed RDP check box label
Surfacing API errors to user
Filtering regions based on Azure VM regions and user's subscription region
Made form validation async
Displaying new checkbox on network page when dropdowns empty
Fixed a small bug in SQL auth form validation
Made summary single item per row and fixed the gaps in spacing
Fixed validations in vm page
Checking if vm name already exists on azure

* Fixed sql vm eula
Fixed sql vm description
Added hyperlink for more info on vm sizes

* Replaced loading component with dropdown loaders.

* localized string
Fixed a bug in network settings page

* Added additonal filtering

* added reverse to image images

* Fixing some merge related issues

* Fixed conflicts

* sql db deployments into main (WIP) (#12767)

* added my resource-deployment

* changed notebook message

* Add more advanced properties for spark job submission dialog (#12732)

* Add more advanced properties for spark job submission dialog

* Add queue

* Revert "Add more advanced properties for spark job submission dialog (#12732)"

This reverts commit e6a7e86ddbe70b39660098a8ebd9ded2a1c5530c.

* Changes made for simplification

* changed error messages

* tags added

* tags removed due to redundancy

* Update package.json

* Update resourceTypePickerDialog.ts

* changes based on feedback

* activaterealtimevalidation removed

Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>

* adding tags to sql vm

* added register navigation for Azure settings page

* simplified check

Co-authored-by: Alex Ma <alma1@microsoft.com>
Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
2020-10-11 13:06:41 -07:00
Charles Gagnon
b68cdbeebe Update HDFS mount path (#12865) (#12866) 2020-10-09 15:49:21 -07:00
Charles Gagnon
7429407029 [Port] Sync up arc and azdata extensions with main (#12810)
* Sync up arc and azdata extensions with main

* capture 'this' to use retrieveVariable as callback (#12828)

* capture 'this' to use retrieveVariable as callback

* remove change not needed for #12082

Co-authored-by: Arvind Ranasaria <ranasaria@outlook.com>
2020-10-08 16:03:27 -07:00
Barbara Valdez
6adeffbc8e replace pip in notebook (#12808) (#12827) 2020-10-08 15:23:30 -07:00
Chris LaFreniere
8a078d2d68 default to relative links in images and links (#12802) (#12813) 2020-10-08 12:30:11 -07:00
Charles Gagnon
eadac3af3a Fix arc strings (#12803) 2020-10-07 20:37:59 -07:00
Charles Gagnon
8e8d9b5f59 port c679d5e1f0 (#12780)
Co-authored-by: Arvind Ranasaria <ranasaria@outlook.com>
2020-10-07 20:36:51 -07:00
Aasim Khan
93e806cca1 Aasim/release1.23/resource filter (#12796)
* Added categories and search based filtering to the resource dialog. (#12658)

* added filtering to the resource type along with a new component.

* -Added caching of cards
-Removed unused component props
-localized tags
-limited the scope of list items

* Made some changes in the PR

* - Added Iot Category to SQL edge
- Moved category names to constants
- Moved localization strings to localized constants
- Made filtering logic more concise
- Changed how category list is generated
--Category list can now be ordered
-Added back event generation for selectedCard

* Fixed bugs, and some additional changes
-Fixed radiogroup height to avoid the movement of options below it
-Restoring the focus back to the search and listview components
- Added focus behaviour for listview
- Fixed a typo in comment

* Made categories an Enum

* Added localized string

* localized category string
converted categories to enum.

* made the filtering logic more concise.

* returning string if no localized string formed
removed unnecessary returns

* fixed the filtering tag logic
resetting search when category is changed

* removing the iot tag from sql edge deployment

* made filtering logic more concise
made enum const

* added vscode list

* some cleanup

* Some PR changes
- Made PR camelcase
- added comments to SQL
- removed unnecessary export

* -Some PR related changes
-Removing unsupported style property
-scoping down css and removing unused ones.

* Fixed a comment text

* Fixed typings for listview event

* Adding tags to azure sql deployment
2020-10-07 14:55:09 -07:00
Charles Gagnon
98ed0d5274 cherry-picked from b8de69dfac (#12777)
Co-authored-by: Arvind Ranasaria <ranasaria@outlook.com>
2020-10-07 10:35:10 -07:00
Chris LaFreniere
7bca43524e Notebooks: WYSIWYG Add Redo, Fix Shortcuts (#12752) (#12784)
* Add redo and out/indent

* Check for active cell before doing shortcut

* PR feedback

* Remove unnecessary parameter
2020-10-07 10:01:46 -07:00
Charles Gagnon
a8c983519e Save username/password for BDC HDFS connections (#12667) (#12778)
* Save username/password for BDC HDFS connections

* comment
2020-10-06 21:51:04 -07:00
Charles Gagnon
ac6ef2639f Port 807a4ae8c4 (#12747) 2020-10-06 13:41:27 -07:00
Barbara Valdez
35957cc283 Fix search for pinned notebooks (#12719) (#12766)
* fix search for pinned notebooks

* fix filtering when verifying that a search folder is not a subdirectory from the current folder queries path

* Show book node on pinned notebooks search results

* fix parent node on pinned notebooks search results

* fix search for pinned notebook and modify how pinned notebooks are stored in workspace

* update format of pinned notebooks for users that used the september release version

* removed unused functions

* Address PR comments

* fix parent node for legacy version of jupyter books

* remove cast from book path
2020-10-06 13:38:39 -07:00
Charles Gagnon
b054295eac Add additional logging to spark command failures (#12706) (#12761) 2020-10-06 11:47:06 -07:00
Charles Gagnon
5b7a7c9865 Fix HDFS node to only show up for BDC connections (#12714) (#12762) 2020-10-06 11:36:40 -07:00
Charles Gagnon
867faae14f [Port] Improved behavior for accepting EULA. (#12453) (#12749)
* Improved behavior for accepting EULA. (#12453)

* working version of overloading "select" button

* promptForEula to use showErrorMessage

* make parameter optional in promptForEula

* remove test code

* PR feedback

* eula to EULA

* minor fix

* Fix compile error

Co-authored-by: Arvind Ranasaria <ranasaria@outlook.com>
2020-10-05 18:52:16 -07:00
Charles Gagnon
4c6b606c82 use selected subscriptions (#12691) (#12741)
* working version

* pr feedback

Co-authored-by: Arvind Ranasaria <ranasaria@outlook.com>
2020-10-05 18:51:26 -07:00
Monica Gupta
d5daaf918d Fix notebook issue when creating Kusto notebooks 2nd time after launching ADS (#12700) (#12750)
* Fix notebook issue

* Removed not required code

Co-authored-by: Monica Gupta <mogupt@microsoft.com>

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-10-05 15:56:19 -07:00
Charles Gagnon
72d48bda61 Allow non-admin BDC connections to see BDC features (#12663) (#12737)
* Add handling for non-admin BDC users

* Bump STS

* Fix HDFS root node commands

* remove nested awaits

* colon
2020-10-05 15:55:23 -07:00
Charles Gagnon
93156ccf04 cherry-pick 7bfea07b9b (#12742)
Co-authored-by: Arvind Ranasaria <ranasaria@outlook.com>
2020-10-05 15:39:48 -07:00
Udeesha Gautam
781c7de772 ML extension - revised button component (#12674) (#12746)
* Revert "Revert "ML extension updates  (#11817)" (#12645)"

This reverts commit 34a6200a47.

* Modified button template and renamed infoButton ElementRef

* fix rendering issue

* Minor code cleanup.

* add clean up previous button logic

Co-authored-by: Alan Ren <alanren@microsoft.com>

Co-authored-by: Hale Rankin <harankin@microsoft.com>
Co-authored-by: Alan Ren <alanren@microsoft.com>
2020-10-05 13:58:01 -07:00
Charles Gagnon
41e8b73ac4 vBump notebooks to get latest CU6 version of book (#12683) (#12739) 2020-10-05 13:41:16 -07:00
Udeesha Gautam
61254c7298 Updating SqltoolsService Version to Pick DacFx changes (#12743)
Co-authored-by: Benjin Dubishar <benjin.dubishar@gmail.com>
2020-10-05 13:06:44 -07:00
Charles Gagnon
5f59fa021c Fix checkbox change event not firing on enter press (#12703) (#12735)
* Fix checkbox change event not firing

* Add comment
2020-10-05 12:53:59 -07:00
Charles Gagnon
1f65216889 Port bf9646ba98 (#12738) 2020-10-05 12:52:46 -07:00
Charles Gagnon
c801d46814 Fix root group name check (#12660) (#12736) 2020-10-05 12:51:23 -07:00
Alan Ren
6c85cf2bdd update preview feature notification (#12723) (#12734) 2020-10-05 12:48:28 -07:00
Aasim Khan
9067204979 Aasim/release1.23/importfixes (#12721)
* Fixing import getting stuck on step 4  (#12677)

* Getting the proper attribute during column modification
Exposing errors of change column settings and stopping import if they occur

* removing extra space

* Added a comment for error handling

* Fixed a test error that was caused due to insufficient null checks.

* removing unnecessary return

* version bump of flat file services (#12686)
2020-10-02 15:17:55 -07:00
Karl Burtram
ac6bc56c4e Bump ADS to 1.23.0 2020-10-02 14:54:53 -07:00
Charles Gagnon
1b5c54dd8c revert grid streaming changes (#12650) (#12652)
(cherry picked from commit cf9754f627)

Co-authored-by: Lucy Zhang <luczhan@microsoft.com>
2020-09-28 21:49:49 -07:00
Aditya Bist
4082170522 bump version for hotfix (#12592) 2020-09-25 21:10:34 -07:00
Alan Ren
5ecf1c6e6f bump sts version (#12636) (#12638) 2020-09-25 14:59:04 -07:00
Charles Gagnon
6de11c8107 Fix undefined error in server tree data source (#12616) (#12617)
* Fix undefined error in server tree data source

* Add comment

(cherry picked from commit 1ea33d83bf)
2020-09-25 13:43:47 -07:00
Monica Gupta
76d7b0a9fe Addressed comments (#12618)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-09-24 17:16:23 -07:00
Alan Ren
ce4c3e9586 clone the object to be modified (#12583) (#12590) 2020-09-23 13:42:44 -07:00
Alan Ren
5190bf376c escape the value for display (#12547) (#12571) 2020-09-22 14:50:41 -07:00
Udeesha Gautam
77b9a708df fix the reference error due to extra $ in default variable (#12524) 2020-09-21 10:21:23 -07:00
Udeesha Gautam
a4ee871b88 Port/db project fixes (#12521)
* Update default values and example text when dropdown value changes (#12493)

* remove option to add reference to same database (#12495)

Co-authored-by: Kim Santiago <31145923+kisantia@users.noreply.github.com>
2020-09-20 21:09:46 -07:00
Charles Gagnon
3f4e19fc08 Arc good ARC bad (#12499) (#12511)
Co-authored-by: Chris LaFreniere <40371649+chlafreniere@users.noreply.github.com>
2020-09-20 11:44:30 -07:00
Barbara Valdez
571fca6de5 In-Viewlet Notebooks Search (#12455) (#12514)
* fix search

* Add sql carbon tags to vs files

Co-authored-by: chlafreniere <hichise@gmail.com>
Co-authored-by: abist <adbist@microsoft.com>

Co-authored-by: chlafreniere <hichise@gmail.com>
Co-authored-by: abist <adbist@microsoft.com>
2020-09-19 18:13:10 -07:00
Barbara Valdez
5a2fdc4034 Add warning message for users using the new version of jupyter book (#12496) (#12500)
* Add warning message for users

* Address pr comments
2020-09-18 20:15:12 -07:00
Chris LaFreniere
cc6d84e7f6 Notebooks: Fix Grids Not Rendering when Unsaved Notebook Reloaded (#12483) (#12498)
* Clear Output and fix output change

* Fix tests after forced clear + append output
2020-09-18 20:14:45 -07:00
Vasu Bhog
99e11d2e22 Fix PySpark kernel connection change (#12494) (#12497) 2020-09-18 20:10:37 -07:00
Charles Gagnon
9a85123e21 Revert BDC deployment back to using old azdata check (#12470) (#12474) 2020-09-18 18:46:22 -07:00
Lucy Zhang
56669db6b6 update resultSet in data provider (#12478) (#12486) 2020-09-18 18:36:40 -07:00
Udeesha Gautam
8782eeb32f Port/ml fixes (#12491)
* change to allow refresh and delete correctly (#12477)

* add table name to models that are imported (#12445)
2020-09-18 17:44:58 -07:00
Charles Gagnon
7f3d5bac0a start with eulaCheckButton hidden (#12427) (#12458)
* start with eulaCheckButton hidden

* reset buttons on card select

* remove testcode

Co-authored-by: Arvind Ranasaria <ranasaria@outlook.com>
2020-09-18 11:52:32 -07:00
Charles Gagnon
7a1e0a7d2e Fix resource deployment text field validation (#12421) (#12457) 2020-09-18 11:22:23 -07:00
Alan Ren
681ecbd946 fix the legacy card style issue (#12428) (#12442)
* fix the legacy card style issue

* replace the card class
2020-09-18 11:14:02 -07:00
Vasu Bhog
e7798a8e32 Fix Spark kernel connections and switch from Kusto to Spark kernels (#12436) (#12441)
* Fix connection dialog for Spark and issue when switching from Kusto to Spark

* Address comments
2020-09-17 21:32:03 -07:00
Aasim Khan
b158180ef4 Added portal link for Azure SQL (#12425) 2020-09-17 17:37:41 -07:00
Aditya Bist
7ad9da7fda fix connection dialog indentation (#12414) 2020-09-17 15:55:54 -07:00
Charles Gagnon
94e2016a16 Port updates for removing EULA acceptance checkbox from Arc deployments (#12409)
* controller dropdown field to SQL MIAA and Postgres deployment. (#12217)

* saving first draft

* throw if no controllers

* cleanup

* bug fixes

* bug fixes and caching controller access

* pr comments and bug fixes.

* fixes

* fixes

* comment fix

* remove debug prints

* comment fixes

* remove debug logs

* inputValueTransformer returns string|Promise

* PR feedback

* pr fixes

* remove _ from protected fields

* anonymous to full methods

* small fixes

(cherry picked from commit 9cf80113fc)

* fix option sources (#12387)


(cherry picked from commit fca8b85a72)

* Remove azdata eula acceptance from arc deployments (#12292)

* saving to switch tasks

* activate to exports in extApi

* working version - cleanup pending

* improve messages

* apply pr feedback from a different review

* remove unneeded strings

* redo apiService

* remove async from getVersionFromOutput

* remove _ prefix from protected fields

* error message fix

* throw specif errors from azdata extension

* arrow methods to regular methods

* pr feedback

* expand azdata extension api

* pr feedback

* remove unused var

* pr feedback

(cherry picked from commit ba44a2f02e)

Co-authored-by: Arvind Ranasaria <ranasaria@outlook.com>
2020-09-17 15:05:02 -07:00
Aditya Bist
21bb577da8 fix maximize bug (#12335) 2020-09-17 14:18:53 -07:00
Udeesha Gautam
5e8325ba28 marking intermittent test failure as unstable (#12402) (#12407) 2020-09-17 13:36:13 -07:00
Aasim Khan
25b7ccade3 Added awaits to change column setting (#12315) 2020-09-17 13:28:21 -07:00
Barbara Valdez
57940c581c Update Windows command and minor update to installation cell (#12361) (#12400)
* Fix windows command and minor update to installation cell

* Add expand_section field on the first section of the book
2020-09-17 13:17:50 -07:00
Chris LaFreniere
82f9e4e24b Notebooks: Fast update WYSIWYG support for source update (#12289) (#12399)
* Fast update WYSIWYG support for source update

* Do bracket matching over hardcoding line offsets
2020-09-17 13:17:03 -07:00
Hale Rankin
3e22fcfd2d 12360 Notebook UI - Mac/Win fix for Select all. (#12383) (#12397)
* 12360 Notebook UI - Mac/Win fix for Select all.

* Fix for ctrl key selecting all in windows

* Fix undo as well

* preventDefault to prevent confusing behavior

Co-authored-by: chlafreniere <hichise@gmail.com>

Co-authored-by: chlafreniere <hichise@gmail.com>
2020-09-17 12:18:47 -07:00
Lucy Zhang
0bc81e1078 Fix notebook table rendering with multiple code cells (#12363) (#12391)
* create unique query runner for each cell

* use cellUri instead of cellId to identify runner

* disconnect each query runner connection

* remove queryrunners size check
2020-09-17 10:32:11 -07:00
Barbara Valdez
7b6328dccf Fix highlight issue (#12278) (#12362)
* Fix highlight issue

* Address PR comments
2020-09-16 13:48:14 -07:00
Vasu Bhog
05124273ea Fix Notebook Kusto Kernel Consistency (#12256) (#12352)
* fix kusto notebook consistency

* Address undefined
2020-09-16 12:08:28 -07:00
Lucy Zhang
b1d4444522 Fix notebook cancel query bug (#12300) (#12351)
* fix undefined query runner error

* store connection id

* revert sqlSessionManager change
2020-09-16 12:07:38 -07:00
Alan Ren
4ee2d369cf vbump sql-db-proj extension (#12336) (#12354)
* vbump sql-db-proj extension (#12336)

* update sqlproj dependency version (#12359)

Co-authored-by: Udeesha Gautam <46980425+udeeshagautam@users.noreply.github.com>
2020-09-16 11:47:51 -07:00
Charles Gagnon
fb28b69bb0 Fix component items in declarative table not showing (#12330) (#12331)
(cherry picked from commit 4dd04cb250)
2020-09-16 11:43:01 -07:00
Chris LaFreniere
f2709c7100 Watch for on load event (#12309) (#12346) 2020-09-16 00:43:23 -07:00
Chris LaFreniere
3476f5ae38 Add newline after caption (#12276) (#12340) 2020-09-15 23:07:18 -07:00
Chris LaFreniere
b937fdee7a 12284 Removed custom CSS that positioned editor text beneath overlapping layers. Text is now selectable. (#12312) (#12339)
Co-authored-by: Hale Rankin <harankin@microsoft.com>
2020-09-15 23:04:30 -07:00
Chris LaFreniere
dd9ac2e362 Add heasdingStyle atx option (#12286) (#12338) 2020-09-15 22:50:46 -07:00
Alan Ren
403ff6cfec remove data-workspace dependency (#12321) (#12327) 2020-09-15 17:05:29 -07:00
Udeesha Gautam
4a6226974e adding icon for add new and open project (#12265) (#12324) 2020-09-15 16:28:42 -07:00
Charles Gagnon
6a2c47f511 Disable resource viewer (#12291) (#12298)
* Disable resource viewer

* comment

* Remove unused

(cherry picked from commit 95b76f08f2)
2020-09-15 16:13:53 -07:00
Aditya Bist
3d9a316f4b bump vscode version (#12258) 2020-09-14 14:53:26 -07:00
dependabot[bot]
cea9194595 Bump node-fetch from 2.6.0 to 2.6.1 in /build (#12220)
Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-14 09:18:18 -07:00
dependabot[bot]
08050956c9 Bump node-fetch from 2.6.0 to 2.6.1 in /build/actions (#12219)
Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-14 09:17:23 -07:00
Barbara Valdez
e16d3ed827 Address comments jupyter create book notebook (#12250)
* Remove toc file link and add warning for windows users
2020-09-11 17:31:30 -07:00
Aasim Khan
8cc8dcc89c Added loading to dropdowns (#12214)
* Added loading prop to dropdowns

* Added property for setting loading text message

* removed unnecessary sets

* changed code to match new changes

* Changed the dropdown loader to use select component instead of edit.
Added missing props in dropdown loader
2020-09-11 16:57:28 -07:00
Barbara Valdez
173a715a4d Fix pinned notebooks navigator (#12246) 2020-09-11 16:39:40 -07:00
Chris LaFreniere
4fee0210f6 Notebooks: Add setting for default text cell edit behavior (#12245)
* Add setting for default text cell edit behavior

* string updates
2020-09-11 16:29:09 -07:00
Lucy Zhang
f99adf3de4 Notebooks: Hide link and image buttons in text cell toolbar in WYSIWYG mode (#12240)
* hide link and image buttons in WYSIWYG mode

* defined taskbar actions

* rename arrays
2020-09-11 15:55:06 -07:00
Kartik Arora
3d81da9762 fix bug that doesn't register double click enabled on new notebook contexts (#12239) 2020-09-11 14:42:13 -07:00
Kim Santiago
a567ff6de4 Have default values in add database dialog input boxes (#12155)
* show default values in text boxes

* add sqlcmd formatting

* add tests

* Add some sqlcmd variable name validation

* Addressing comments

* fixes after merge

* fix test

* don't localize OtherServer

* fix for windows

* one more fix

* fix test
2020-09-11 14:05:39 -07:00
Amir Omidi
61ceb72cea Change tables to make them work for our scenario (#12193)
* Change tables to make them work for our scenario

* Comments & deprecate API

* Disable selections by default
2020-09-11 13:44:19 -07:00
Chris LaFreniere
58d3b969a2 Set items in cell model (#12237) 2020-09-11 13:12:41 -07:00
Monica Gupta
f8d725e15b Make SandDance work generically for Kusto (#12229)
* Make SandDance work generically for Kusto and Postgres

* Addressed comments

* removed param

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-09-11 11:28:30 -07:00
Aasim Khan
a823e44393 Resource Deployment UX Refresh (#12173)
* adding new card to styles

* renamed property, removed unnecessary css

* Fixed to match new props

* added horizontal class

* merged from master
2020-09-11 11:13:59 -07:00
Karl Burtram
6929a803dc Fix missing package update (#12235) 2020-09-11 11:10:08 -07:00
Kim Santiago
8a6c776a5f make schema compare test unstable (#12234)
* make schema compare test unstable

* also make Standalone database context menu test unstable
2020-09-11 10:57:48 -07:00
Karl Burtram
d1ba3e23f4 Update external repo links (#12226)
* Update external repo links

* Update yarn files
2020-09-11 10:50:12 -07:00
Hale Rankin
6670289057 Hackathon - Better Markdown Editor (#11540)
* Hackathon - better markdown editor - modified Bold to wrap selection in HTML. Split Image button into two new options: embed and link. Made preview container contentEditable.

* Removed the new dropdown from Image button -- it is not necessary since we are adding a context panel instead.

* Modified preview icons

* Set code-component dimensions so it is not visible. It is still being used to pass markdown changes to however.

* add turndown and save markdown

* update model on UI when source changes

* Added conditional that sets element attribute contentEditable when it is in edit mode.

* Added textView component that can be used for editing.

* update source on MD view not on every keystroke

* Added markdown editor buttons that allow user to swap editor, preview views.

* Cleaning up implementation

* Setting base value of _showPreview to false.

* don't allow html edit on split view

* Update editor automagically

* Add an image picking dialog to notebook toolbar.

* Await transformText()

* revert pushEditOperations to fix cursor issue

* Implemented radio buttons for three view toggles.

* Added new, optional properties to radioButton: name, icon class and tooltip. This allows for display as toggleable icon. Updated styles and theme accordingly.

* Style tweaks.

* Added new ViewAction file where the RadioButton action will reside.

* Removed radio button implementation in exchange for native button instantiation. Adjusted CSS and theme accordingly.

* Styles, component and template changes to handle view toggle between text, markdownn an splitview. Includes reverting of radioButton as this is no longer used.

* WYSIWYG 3 Modes

* Ensure one action active at a time

* Setting Text View button active by default. Cleaned up styles. Moved toolbar element to prevent code cell layout overflow.

* Ensure we respect editMode, add showMarkdown

* hiding overflow on code-cell

* Empty text container needs 100% width. Eliminates weird selection border too.

* Initialize _previewMode

* Actions Compatibility

* Further toolbar enhancements

* Update yarn lock after merge

* Slim down changes

* Remove commented out code

* Added margins around notebook-preview container for more visual space for text

* Add turndown to workbench html

* Tweak import

* Add types/turndown

* Remove workbench.html fix

* Import cjs modules directly for turndown

* Leverage solution from github

* browser umd

* non browser umd

* welp dependency

* Modified updatePreview to insert a p tag only when text cell is empty.

* add listener for undo

* add turndown to remote and web

* Fix workbench, check in plugin

* PR comment

Co-authored-by: maddydev <makoripa@microsoft.com>
Co-authored-by: chlafreniere <hichise@gmail.com>
Co-authored-by: Cory Rivera <corivera@microsoft.com>
Co-authored-by: Lucy Zhang <luczhan@microsoft.com>
2020-09-11 00:22:07 -07:00
Chris LaFreniere
0f8fa0ccef Quick tweaks to resource viewer (v1) (#12210) 2020-09-10 21:57:43 -07:00
Chris LaFreniere
02ddfc20f1 Add vcore limit support (#12212) 2020-09-10 21:45:38 -07:00
Chris LaFreniere
1f0cdf82e4 Notebook Text Cell Highlight Improvements (#12197)
* 1st iteration

* works but multiple highlights

* remove comment

* Works but multiple selects

* wip

* cleanup

* cleanup

* Update TPN

* Add mark.js to remote + web

* PR feedback

* Tweak workbench html files
2020-09-10 21:40:29 -07:00
Aditya Bist
baa12d725f fix focus order (#12233) 2020-09-10 19:17:24 -07:00
Kim Santiago
133ff73a43 Add reference to another sql project (#12186)
* add projects to add database reference dialog

* able to add project references

* check for circular dependency

* only allow adding reference to project in the same workspace

* fix location dropdown when project reference is enabled

* add tests

* more tests

* cleanup

* fix flakey test

* addressing comments
2020-09-10 17:44:39 -07:00
Alan Ren
7df132b307 data workspace extension batch 2 (#12208)
* work in progress

* load projects in view and test cases

* update scope

* make the sql proj menu available in workspace view

* add extension unit test

* address comments

* fix errors
2020-09-10 17:17:57 -07:00
Aditya Bist
cd8102535b remove unused splash screen and fix issue reporter path (#12218) 2020-09-10 16:31:38 -07:00
Udeesha Gautam
974e832f78 Update SqlToolsService For a DacFx Fix (#12224) 2020-09-10 14:21:56 -07:00
Lucy Zhang
e3ec6bf9c5 Add grid streaming support for notebooks (#12175)
* add onResultUpdate handler in gridoutput

* convert rows to mimetype and html

* wait for data conversion to finish before saving

* detach changeRef after output is created

* fix save grid action

* move data conversion check to each cell

* move conversion logic to dataprovider

* notify data converting when user saves

* add comments and remove unused methods

* fix method return type

* fix tests

* fix convertData method header

* move azdata changes to azdata proposed

* address PR comments

* display top rows message

* fix messages/table ordering and query 100 rows

* add missing escape import

* set default max rows to 5000

* add undefined check to updateResultSet

* change gridDataConversionComplete return type
2020-09-10 13:31:40 -07:00
Kartik Arora
1528c642d1 Enable double click edit (#12200)
* fix to working version

* add comment documentation

* minor changes based on review

* resolve comments

* remnove unnecessary assignment
2020-09-10 12:18:42 -07:00
Monica Gupta
5730940492 Added color theme for Kusto (#12216)
* Added color theme

* Changed Kusto extension UI labels

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-09-10 12:07:04 -07:00
Barbara Valdez
3ff9df8e0b Add support for new version of Jupyter Book (#12086)
* Add support for new jupyter book version

* Add changes to the jupyter notebook to create books

* Create config file

* Add support of new version of jupyter book on ADS

* Fix paths for opening folder with v1 and v2 books

* Add tests for jupyter book v2

* Update tests

* Fix tests

* Fix get parent issue

* Address PR comments

* Fix bookVersion condition in getSections and fix issue on create book notebook

* Fix search

* update python notebook

* Remove commented lines
2020-09-10 11:32:58 -07:00
Vasu Bhog
ff61eae164 Fixed Kusto change connections for previous notebooks (#12207)
* fix connection dialog for change connection on notebook

* Better way to show all connections for providers

* minor change
2020-09-10 13:20:35 -05:00
dependabot[bot]
773ff0e62a Bump yargs-parser in /extensions/markdown-language-features (#12213)
Bumps [yargs-parser](https://github.com/yargs/yargs-parser) from 13.1.1 to 13.1.2.
- [Release notes](https://github.com/yargs/yargs-parser/releases)
- [Changelog](https://github.com/yargs/yargs-parser/blob/master/docs/CHANGELOG-full.md)
- [Commits](https://github.com/yargs/yargs-parser/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-10 10:58:39 -07:00
Chris LaFreniere
869d071f73 storage class data controller (#12209) 2020-09-10 10:41:12 -07:00
Anthony Dresser
d01dc5a5c7 increase memory size for valid layers check (#12206) 2020-09-10 10:18:35 -07:00
Chris LaFreniere
adefa213e2 String update (#12202) 2020-09-09 19:07:40 -07:00
Arvind Ranasaria
2d29ef7eca 2 failing tests fixes (#12121)
* For testing azdata Ext

* add back skipped test

* all tests fixed on linux

* For testing azdata Ext

* fix for mac

* brew upgrade test fix

* remove temp changes

* remove Logger.log calls from test

* _ for unused parameters
2020-09-09 17:59:57 -07:00
Kim Santiago
dad31bc387 get delete and exclude to work for pre and post deploy scripts (#12191) 2020-09-09 16:46:09 -07:00
Alan Ren
afb872b3e1 use latest SQL Tools Service (#12201) 2020-09-09 15:50:22 -07:00
Mark Ghanayem
6dcc832983 changed image path a 3rd time to be a URL (#12203)
* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* [Kusto extension]  Moved Gifs files to resources/images folder

* changing image path a 3rd time

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-09-09 14:29:00 -07:00
Mark Ghanayem
7a744bc7f2 [Kusto extension] Moved Gifs files to resources/images folder (#12196)
* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* [Kusto extension]  Moved Gifs files to resources/images folder

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-09-09 14:09:30 -07:00
Anthony Dresser
8a8137e96c Add initial resource view (#12180)
* add inital resource view

* fix strict compile

* hide resource viewer behind arc

* fix arc detection

* fix hygiene

* add disposable

* make the css more specific
2020-09-09 10:49:14 -07:00
Vladimir Chernov
5ae9495bc6 Sql Assessment fixes (#12169)
* prevent simultaneous actions runs and label fix
* sqltools service version update
2020-09-09 17:54:48 +03:00
Vasu Bhog
3a0be70783 Kusto Kernel New Notebook Changes (#12085)
* Kusto New Notebook Action Changes

* Kusto Cluster properly switches context when kernel changes

* SQL Connections kernel change to Kusto works properly

* Multiple New Kusto Notebooks open properly and change kernels properly

* Fix SQL Notebook - Change to Kusto Kernel

* Fix unit tests

* Address comments

* Add test, and finalize changes
2020-09-09 09:19:36 -05:00
Amir Omidi
a840057cd8 Fix zonejs eating all errors (#12188) 2020-09-08 18:02:34 -07:00
Amir Omidi
f56e09cfa1 Splits the work of the assessment dialog into smaller managable chunks (#12172)
* Splits the work of the assessment dialog into smaller managable chunks

* Use the new assessment dialog page
2020-09-08 17:22:23 -07:00
Amir Omidi
9ed274fb39 Genericify components (#12158)
* Genericify components

* Fix compile issue

* Fix feedback

* Genericify azdata components (#12164)

* azdata generics

* Add the withProps method to azdata proposed as there may be mistakes with the interfaces in the generics

* Fix build issues because of other extensions

* Remove extra spaces
2020-09-08 16:15:24 -07:00
Alan Ren
e2b5e9bd66 support multiple flavor of notebooks (#12159)
* support multiple flavor of notebooks

* update resource

* comments
2020-09-08 16:07:55 -07:00
Anthony Dresser
f6c63f2dcb strict null chart (#12167) 2020-09-08 15:28:39 -07:00
Anthony Dresser
2b33c7c27f fix query plan css (#12181) 2020-09-08 15:18:58 -07:00
Anthony Dresser
d9b4af1217 strict null check contrib/editorReplace and services/queryEditor (#12166) 2020-09-08 14:06:43 -07:00
Aasim Khan
7231df34ce Changing import version to 1.0 for GA (#12177) 2020-09-08 12:34:37 -07:00
Mark Ghanayem
68709c02fe [Kusto] Update ReadMe file (#12116)
* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* [Kusto] Update readme

* changed click to select

* Add Animated gifs and some text updtes

* add link

* change in media format syntax

* Removed peek definitions

* removed all machine learning refs

* removed en-us

* rename media to images

* removed gifs

* added back peek definitions

* changed media to images

* rename folder again and remove azuredatastudio repo link

* help whitespace identions

* renamed media files

* change image format text

* removed gifs

* add gifs back

* edit gulpfile.hygiene.js file to add gifs

* fixed image

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-09-08 09:50:08 -07:00
Anthony Dresser
3134449b38 Merge branch 'ads-main-vscode-2020-09-05T03-17-37' into main 2020-09-06 13:20:50 -07:00
Anthony Dresser
2b2b9ff44d add debug typings and comment out tests separtely for a few directories (#12163) 2020-09-05 20:32:06 -07:00
Arvind Ranasaria
c5d0c6f623 defining arc api (#12153)
* defining arcApi

* pr feedback

* activate arc extension in test

* skip failing test temporarily

* remove arcService test file
2020-09-05 10:09:15 -07:00
Charles Gagnon
3d7d1b23cb Add refresh/edit columns resource viewer actions (#12161)
* Add refresh/edit columns resource viewer actions

* add actions
2020-09-05 07:51:06 -07:00
Charles Gagnon
7cbf471913 Add azure data provider (#12160) 2020-09-05 01:21:51 -07:00
Anthony Dresser
3b2cd653a7 rerender view on layout (#12143) 2020-09-05 00:27:39 -07:00
ADS Merger
6718c7565d Merge from vscode 892353d48e17303de203bb5071f21ea69573367d 2020-09-05 03:17:42 +00:00
Charles Gagnon
b8d0e2a9e3 Cleanup and fixes for resource viewer and filter plugin (#12154)
* Cleanup and fixes for resource viewer and filter plugin

* fix strict nulls
2020-09-04 19:10:26 -07:00
Barbara Valdez
fa5bfee0cf Add tests to GitHubRemoteBook (#11953)
* Tests for githubRemoteBook class

* Add some tests and remove unused class

* Address PR comments
2020-09-04 18:51:04 -07:00
Anthony Dresser
704222b8d7 remove some vscode differences (#12146) 2020-09-04 18:04:30 -07:00
Anthony Dresser
503090856a Strict null scripting (#12126)
* strict null scripting

* fix compile

* fix tests

* fix icon
2020-09-04 18:04:08 -07:00
Alan Ren
bbe5b98a2c replace the placeholder with real workspace icon (#12150) 2020-09-04 16:01:53 -07:00
Charles Gagnon
84ca18b428 Remove extra id property from azure subs and add type name helper (#12145)
* Remove extra id property from azure subs and add type name helper

* case

* Change a few names
2020-09-04 16:01:05 -07:00
Kim Santiago
f6b46a1c5c Change DSP in new project template from 130 to 150 (#12139)
* change DSP in new project template from 130 to 150

* addressing comments
2020-09-04 15:51:41 -07:00
Amir Omidi
59bb827d2e Introduce vertical cards (#12125)
* Introduce vertical cards

* Simplify and add a css type

* Feedback

* Update yarn.lock
2020-09-04 15:15:58 -07:00
Charles Gagnon
c2320831f7 Add subscription ID to all graph query items (#12133)
* Add subscription ID to all graph query items

* fix machine-learning
2020-09-04 13:08:10 -07:00
Charles Gagnon
1d12823f09 error handling (#12140) 2020-09-04 11:44:37 -07:00
Charles Gagnon
a69ce7ec62 azdata string fixes (#12132)
* azdata string fixes

* Remove getResponses function

* change

* minor change
2020-09-04 08:38:11 -07:00
Alan Ren
1e49e47a37 ASDE updates (#12134)
* add storage account cleanup and other misc stuff

* force load

* cell -> code cell
2020-09-03 22:12:10 -07:00
Laura Jiang
4cc3a3f788 Provide bookTreeView comment to ensure compatibility (#12122)
* compatibility comment

* add importance
2020-09-03 21:54:34 -07:00
Maddy
a57379be49 add role on toggelMore action element (#11975)
* add role on toggelMore action element

* add aria-haspopup

* Fix localization and more descriptive

* single localized constant

Co-authored-by: Vasu Bhog <vabhog@microsoft.com>
2020-09-03 23:37:39 -05:00
Charles Gagnon
787245b058 Don't propagate click when clicking on header filter (#12130) 2020-09-03 21:36:11 -07:00
Amir Omidi
1e5ab4d9f0 remove unnecessary import (#12129) 2020-09-03 21:17:58 -07:00
Charles Gagnon
9004769865 Update azure graph queries to allow multiple subs (#12124) 2020-09-03 19:07:37 -07:00
Anthony Dresser
b1ce53ade3 Merge branch 'ads-main-vscode-2020-09-03T02-34-50' into main 2020-09-03 19:05:37 -07:00
Charles Gagnon
1b4f6f8934 Add Data Grid Provider API (#12097)
* Add RegisterResourceDataProvider API

* Change to data grid provider

* fixes

* updates
2020-09-03 17:55:25 -07:00
Anthony Dresser
4eb98a9dcc fix hygiene
remove sqllint for now

fix hygiene

Revert "remove sqllint for now"

This reverts commit 981ff90b9a5bbf3710d0f0ce58a8b67a92fe64eb.

distro

update smoke version

fix default theme
2020-09-03 16:27:59 -07:00
ADS Merger
a63578e6f7 Merge from vscode 7eaf220cafb9d9e901370ffce02229171cbf3ea6 2020-09-03 16:27:57 -07:00
Alan Ren
39d9eed585 give back the getter for container property (#12110)
* give back the getter for container property

* parameter type
2020-09-03 13:59:38 -07:00
Kim Santiago
78ff0c7d93 More add database reference dialog UI (#12066)
* add suppress missing dependencies checkbox

* add example usage

* set font-styles

* Fix typo

* allow example usage to be selectable

* don't localize example usage

* move example usage strings to a new section
2020-09-03 13:22:26 -07:00
Shafiq Ur Rahman
80b85ad74c Official icon for ADX (#12102) 2020-09-03 13:03:32 -07:00
Arvind Ranasaria
1c4e65ebe1 azdata startup: install/update commands and configrations (#11924)
* WIP

* first version with working tests

* fixes needed after merge from main

* Linux untest changes and merge from other changes from mac

* after testing getTextContent

* rename 2 methods

* linux discovery

* tested code on linux

* using release.json for update discovery on linux

* comment added

* dead code removed

* coomments

* revert unrelated change

* revert testing changes

* code complete, testing pending

* test complete

* PR feedback

* remove SendOutputChannelToConsole

* cleanup

* pr feedback

* PR Feedback

* pr feedback

* pr feedback

* pr feedback

* fix loc function

* install/upgrade command - context sensitive

* add awaits as pr feedback

* cleanup

* merge from main

* merge from main

* cleanup and pr feedback

* PR feedback and cleanup

* cleanup

* pr feedback

* pr feedback.

* revert accidental changes

* cleanup

* test fixes

* test fixes and pr feedback

* pr fixes and eula similar to install/upgrade

* revert extraneous change

* log and prompt fixes

* string fixes

* string updates

* string updates based on PR feedback

* loc const rename

* pr feedback

* string fixes

* make setContext settings uniform

* add commandPallete

* eulaAccepted setContext  from memento

* misc fixes

* bug fixes

* test fix

* skip failinf test for fix later

* pr feedback

* upgrading -> updating

Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-09-03 12:23:53 -07:00
Anthony Dresser
b7c2eaa65d strict compile contrib/backup (#12088) 2020-09-03 11:50:53 -07:00
Charles Gagnon
528fbb14ea vBump Arc extension to 0.3.5 (#12105) 2020-09-03 11:38:00 -07:00
Kim Santiago
f29127d515 Add db and server sqlcmd variables for database references (#12089)
* add support for adding db and server sqlcmd variables

* fix incrementing

* split up test
2020-09-03 10:27:02 -07:00
anjalia
d97993e518 Allow edit of sqlproj in place and reload (#11980)
* edit sql proj file

* bug fix

* updating reload project method

* adding test for reload

* formatting
2020-09-03 10:08:12 -07:00
Charles Gagnon
887ce88100 Fix tree view icons (#12095) 2020-09-02 18:46:34 -07:00
Charles Gagnon
6be8c1d54b Remove PG dashboard link (#12094) 2020-09-02 17:22:03 -07:00
Karl Burtram
c5e90d0236 Add migration service calls to migration wizard (#12090)
* Hook up migration apis WIP

* WIP 2

* WIP 3

* Fix build breaks

* Break 2

* WIP 4

* SKU recommendation page work

* WIP 5

* A few minor fixes

* Merge main

* Add back assessment dialog

* Address feedback

Co-authored-by: Amir Omidi <amomidi@microsoft.com>
2020-09-02 16:15:39 -07:00
Anthony Dresser
65e253ae0d attempt to adjust timing (#12064)
* attempt to adject timing

* add another animation frame wait

* add another debounce
2020-09-02 13:35:55 -07:00
Anthony Dresser
a6314b57b7 Add different flag for azure dialog (#12073)
* add different flag for azure dialog

* missing code change

* rename browser to browse
2020-09-02 13:35:36 -07:00
Charles Gagnon
e6d250c640 Base resource viewer editor (#12039)
* Base resource viewer editor

* Use table more directly

* Dispose listeners

* Fix strict compile

* undo

* More strict fixes

* Remove theming logic

* comments

* more fixes

* cleanup

* Remove actions contribution
2020-09-02 13:02:58 -07:00
Anthony Dresser
c982ea338d Update strict compile numbers (#12087)
* update strict compile numbers

* fix json
2020-09-02 12:15:16 -07:00
Anthony Dresser
8b8bef0401 add strict compile for restore (#12067) 2020-09-02 11:58:30 -07:00
Lucy Zhang
bfe694763b Add tests for Jupyter Session (#12053)
* add tests for Jupyter Session

* remove comment and fix description

* throw error if spark kernel provider is not mssql

* use localize strings and add pythonEnvVarPath test
2020-09-02 11:44:15 -07:00
Kim Santiago
f174dc1c77 Support for adding new SQLCMD variables to a project (#12009) 2020-09-02 11:22:36 -07:00
dependabot[bot]
2d33c8dd82 Bump bl from 4.0.2 to 4.0.3 (#12084)
Bumps [bl](https://github.com/rvagg/bl) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/rvagg/bl/releases)
- [Commits](https://github.com/rvagg/bl/compare/v4.0.2...v4.0.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-02 09:12:25 -07:00
Anthony Dresser
d8dcc90857 Strict nulls for contrib/restore and contrib/views (#12044)
* strict nulls for contrib/restore and contrib/views

* remove unnecessary function

* compile error
2020-09-01 17:53:29 -07:00
Anthony Dresser
9dde80ce1c add check for preview features on children providers on all azure tree providers (#12068) 2020-09-01 17:26:54 -07:00
Jorge Berumen
7b099e703a Updating config to point to latest service layer (#12058) 2020-09-01 17:10:06 -07:00
Monica Gupta
5d4afae616 Sets language mode based on connection type (#12065)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-09-01 15:43:37 -07:00
Alan Ren
6cbfc0fb1c introduce data workspace extension (#12046)
* initial commit

* command name

* format file

* update view name

* spacing

* comments

* update yarn.lock

* comments

* Revert "comments"

This reverts commit 3aa7f68edbe87a3312e206df7b162cdd57419dd4.

* address comments

* use built-in icon
2020-09-01 13:26:37 -07:00
anjalia
2b59cc0185 Auto incrementing default name when adding object to database project (#12013)
* adding auto increment

* changing while to do while

* streamlining code
2020-09-01 13:15:16 -07:00
Alan Ren
b0211b434a fix the issue that error dialog is not showing (#12061) 2020-09-01 13:08:38 -07:00
Amir Omidi
7ceee95f52 radio card change (#12049)
* radio card change

* Clone the object

* freeze change description

* Change to deepClone
2020-09-01 12:06:38 -07:00
Shafiq Ur Rahman
34e317a559 Marketplace resources (#12042) 2020-09-01 11:35:43 -07:00
Kim Santiago
177d9bef39 Hook up add database references dialog (#12002)
* initial dialog

* got enabling working

* add tests

* cleanup

* add test coverage for systemDbRadioButtonClick()

* change DAC to .dacpac

* remove isEmptyOrUndefined

* hook up add database reference dialog

* cleanup

* Addressing comments
2020-09-01 11:06:04 -07:00
Charles Gagnon
8f8d01cee2 Post-update vBump arc extension (#12056) 2020-09-01 10:12:51 -07:00
Charles Gagnon
5cba0b4f7c vBump arc extension (#12055) 2020-09-01 10:05:46 -07:00
Charles Gagnon
48d4b806ad Add storage class options for Arc PG Deployment (#12054)
* Add storage class options for Arc PG Deployment

* Fix JSON

* Fix descriptions

* Update section title
2020-09-01 09:56:29 -07:00
Udeesha Gautam
3c6796938d minor cleanups to hide extra tree items and command that are not required (#12038) 2020-09-01 09:38:21 -07:00
Amir Omidi
53081cfca9 SKU recommendation page work (#12050) 2020-09-01 09:31:39 -07:00
Monica Gupta
96a6d0674a Fix for language provider text -non sql family too (#12040)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-09-01 09:01:53 -07:00
Anthony Dresser
2bc1a41ec4 add contrib/tasks to strict compile (#12034) 2020-08-31 20:19:44 -07:00
Leila Lali
635da9a2b2 ML - Bug fixing (#11920)
* Fixed a bug with validating inputs when generating predict script

* Fixed the bug with verifying R packages

* Fixed the tests

* Added warning for when output column data type doesn't match with model output data type

* Fix the issue with selecting db
2020-08-31 20:02:30 -07:00
Arvind Ranasaria
23bd05ea68 Eula handling for Azdata (#12035)
* Eula handling for Azdata

* PR feedback

* pr feedback

* pr feedback

* remove extra await

Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-08-31 18:57:22 -07:00
Charles Gagnon
85e6d785ff Bump arc/azdata versions (#12043) 2020-08-31 18:55:00 -07:00
Charles Gagnon
02248fc065 Add dont show prompt to azdata toasts (#12037)
* Add dont show prompt to azdata toasts

* Undo version change

* undo
2020-08-31 17:15:26 -07:00
Justin M
a5b1e027c1 3491 Added Function to NodeTypes. Added Function to CanAlter and CanExecute. Added function support to css. Added drag and drop support for functions (#11990) 2020-08-31 16:46:00 -07:00
Anthony Dresser
a35c267214 update strict compile numbers (#12033) 2020-08-31 16:09:41 -07:00
Charles Gagnon
98d8c19b07 Only copy coverage if tests were ran (#12032) 2020-08-31 15:47:56 -07:00
Anthony Dresser
b6e45b69a6 simplify tsconfig (#11927) 2020-08-31 15:35:21 -07:00
Amir Omidi
2692df3cc7 Amir/enable sql vms for sql migration/assessments (#12029)
* Enable SQL Vms

* Enable SQL VMs

* Undo abd commit
2020-08-31 15:12:54 -07:00
Leila Lali
22c88cdd2e setting selected db name in drop down to current connection db name (#11912) 2020-08-31 14:44:08 -07:00
Monica Gupta
81e81f1c49 Fix Kusto startup error (#12028)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-31 14:26:17 -07:00
Anthony Dresser
f3befb0f4d Merge branch 'ads-main-vscode-2020-08-22T06-06-45' into main 2020-08-31 14:22:42 -07:00
Charles Gagnon
f7c7274463 Fix context menu for disconnected server nodes (#12018)
* Fix context menu for disconnected server nodes

* Fix strict compile
2020-08-31 13:34:21 -07:00
Laura Jiang
cb1d892747 adjust div order (#12022) 2020-08-31 13:09:26 -07:00
Arvind Ranasaria
7495259e13 Manual azdata installation/upgrade using Readme (#12023)
* code complete

* string fixes

* show logger

* pr feedback
2020-08-31 12:50:10 -07:00
Amir Omidi
61e5003931 fix setCurrentPage (#12025)
* fix setCurrentPage

* Fix wrong import
2020-08-31 12:36:38 -07:00
Anthony Dresser
8d88791a0b fix hygiene
fix compile errors

fix build; disable a bunch of failing tests

update smoke extension

fix modals

fix icons
2020-08-31 12:35:57 -07:00
ADS Merger
4ad73d381c Merge from vscode ad407028575a77ea387eb7cc219b323dc017b686 2020-08-31 12:35:56 -07:00
Charles Gagnon
404260b8a0 Arc dashboard fixes (#12021)
* Arc dashboard fixes

* Bump versions
2020-08-31 12:32:26 -07:00
Monica Gupta
3d0dd0de98 Fix for query editor toolbar actions to show correctly based on file type (#11976)
* Fix for query editor toolbar actions to show correctly based on file type when not connected

* Addressed comments

* Fix when it is .sql file but connection is kust

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-31 12:01:23 -07:00
Kim Santiago
1984c4ca97 Update publish dialog UI (#11996)
* change svgs

* change label to server and get rid of connection string

* fix user for windows auth

* move blue icons out of dark and light folders
2020-08-31 10:25:58 -07:00
Maddy
ae830d9e64 Pinning Notebooks on Notebooks view (#11963)
* initial commit

* added tests

* code cleanup and more tests

* add missed util test

* changes to address comments

* remove pin from resources
2020-08-31 08:53:11 -07:00
Charles Gagnon
b4a3325a21 Add Azure properties back to Arc dashboards (#12010)
* Add Azure properties back to dashboards

* remove
2020-08-29 07:58:06 -07:00
Arvind Ranasaria
48e437c4a5 Improve discovery/upgrade messages (#12003) 2020-08-28 16:53:18 -07:00
Charles Gagnon
e9b00062a4 azdata extension fix/updates (#12008) 2020-08-28 16:49:21 -07:00
Charles Gagnon
47c1204e89 Fix arc node info updating (#12007)
* Fix arc node info updating

* Missed await
2020-08-28 15:53:17 -07:00
Amir Omidi
ceb4df5b8b Support SQL Servers for migrations (#11987)
* Support SQL Servers

* Use function but dont do anything with it for now
2020-08-28 12:56:08 -07:00
Charles Gagnon
d8aa9b8d7f azdata debug logging on all commands and always accept eula (#12001) 2020-08-28 12:46:41 -07:00
David Shiflet
94958236cd redo profiler feature move from protocolclient (#12000)
* redo profiler feature move from protocolclient

* remove commented code
2020-08-28 14:50:32 -04:00
Vasu Bhog
d59063ebab Add tests to NotebookUriHandler (#11959)
* NotebookUriHandler Test

* set test to previous, return promise for handleUri

* Added tests for file uri scheme https/http

* Updated NotebookUri to await handleUri calls and add more tests
2020-08-28 10:51:12 -05:00
Arvind Ranasaria
795300347b remove extra quotes (#11997) 2020-08-28 08:24:34 -07:00
Charles Gagnon
4789f2165b Add debug config option to azdata extension (#11999) 2020-08-28 07:04:47 -07:00
Monica Gupta
e9c5a6dfbd Fix VSIX file generation for Kusto (#11998)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-27 22:22:53 -07:00
Charles Gagnon
100072cabd Add Storage Class params to MIAA deploy (#11993) 2020-08-27 18:19:31 -07:00
Monica Gupta
57ce9fae6f Update servuce-downloader version (#11994)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-27 18:03:39 -07:00
Charles Gagnon
c04f2aa110 Fix arc controller connect (#11995) 2020-08-27 18:01:02 -07:00
Kim Santiago
70399be699 Initial add database reference dialog UI (#11944)
* initial dialog

* got enabling working

* add tests

* cleanup

* add test coverage for systemDbRadioButtonClick()

* change DAC to .dacpac

* remove isEmptyOrUndefined
2020-08-27 17:22:40 -07:00
Charles Gagnon
bf278c39bd Make editable dropdowns emit value change events on type (#11970) 2020-08-27 14:52:20 -07:00
Charles Gagnon
9824118a07 Disable new async tree by default (#11991) 2020-08-27 14:49:55 -07:00
Arvind Ranasaria
00c7600b05 Changes to discover and perform azdata update (#11906)
* WIP

* first version with working tests

* fixes needed after merge from main

* Linux untest changes and merge from other changes from mac

* after testing getTextContent

* rename 2 methods

* linux discovery

* tested code on linux

* using release.json for update discovery on linux

* comment added

* dead code removed

* coomments

* revert unrelated change

* revert testing changes

* PR feedback

* remove SendOutputChannelToConsole

* cleanup

* pr feedback

* PR Feedback

* pr feedback

* pr feedback

* merge from main

* merge from main

* cleanup and pr feedback

* pr feedback

* pr feedback.

* pr feedback

Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-08-27 13:25:54 -07:00
Charles Gagnon
b715e6ed82 Use namespace instead of listing all pods (#11986) 2020-08-27 12:40:07 -07:00
Sakshi Sharma
75812c71df Add folder icon to project (#11904)
* Add folder icon to project

* Fix conflicts arising due to merge
2020-08-27 10:50:17 -07:00
Sakshi Sharma
21c8609eb7 Changes to add pre/post deploy script to sqlproj (#11864)
* Initial changes for adding pre/post deploy script in project

* Right click > Add pre/post deploy script

* Print script files in tree

* Add new pre-post deploy items with their own tags and additional ones with None

* Add tests

* Fix error due to merge conflicts

* Addressed comments and fixed tests.

* Fix code scan error

* Addressed comments
2020-08-27 10:50:02 -07:00
Charles Gagnon
fa664bc92f Show message when external endpoint isn't configured (#11962) 2020-08-27 07:35:44 -07:00
Amir Omidi
c4e06f4db3 Fix test failure (#11973)
* Fix test failure

* Fix the right thing

* move them around
2020-08-26 15:49:52 -07:00
Amir Omidi
5a301f9073 Potentially fixes the test percentage (#11974)
* Potentially fixes the test percentage

* PR feedback
2020-08-26 14:44:32 -07:00
Shafiq Ur Rahman
2f94307635 Kusto extension for ADS (#11752)
* Kusto extension

* Add kusto to extensions.ts

* Remove objectExplorerNodeProvider

* Removed some BDC items + CR cleanup

* Cleanup unused strings in package.nls.json

* Remove unused svgs, and some cleanup

* Bringing objectExplorerNode back and hygiene changes

* rename to KustoObjectExplorerNodeProvider

* rename to KustoIconProvider

* Cleanup SQL code

* Fix compilation error

* Clean up in objectExplorerNodeProvider folder

* Some more clean up based on comments

* apiWrapper add

* changed to camelCase

* Remove unused functions/files

* Removed AgentServicesFeature

* dacfx, cms, schemacompare clean up

* Clean up and addressed few comments

* Remove apWrapper from kusto extension

* Addressed few comments

* credentialstore and escapeexception changes

* Added strict check for Kusto extension

* Fix error and addressed comment

* Saving Kusto files shoulf default to .kql

* package.json changes

* Fix objectExplorerNodeProvider

* Amir/kusto fix (#11972)

* Add the compiled extensions.js

* Fix strict compile rules

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
Co-authored-by: Amir Omidi <amomidi@microsoft.com>
2020-08-26 14:13:31 -07:00
anjalia
f7279cb1f5 Auto increment new db project name (#11882)
* auto increment db proj name

* auto increment on import project from db

* adding separate message if workspace setting is invalid

* updating based on feedback

* adding do not ask again functionality

* moving constants

* making newprojecttool only top level functions

* adding tests

* updating to address merge conflicts

* fixing tests

* fixing tests
2020-08-26 12:14:51 -07:00
Lucy Zhang
a3121c0b2d Add tests for Jupyter Session (#11961)
* add tests for config kernel and connection

* move sinon.restore and fix config filepath
2020-08-25 18:59:53 -07:00
Amir Omidi
15017917b3 don't pass in an object (#11957) 2020-08-25 18:14:05 -07:00
Amir Omidi
4659d727b7 strict null checks azure (#11928)
* strict null checks azure

* strict compilation

* Fix compilation issues

* Return empty arrays instead
2020-08-25 18:12:47 -07:00
Charles Gagnon
8b52e7200c Add arc controllerModel tests (#11947)
* Add arc controllerModel tests

* Fix compile
2020-08-25 13:18:35 -07:00
Kim Santiago
b95e20b6ee Change name from import new database project (#11946)
* change name from import new database project

* update command name to 'Create Project From Database'
2020-08-25 12:00:04 -07:00
Chris LaFreniere
82132583af Re-enable previously commented out configure python wizard tests (#11945)
* Re-enable configure python wizard tests

* Remove extra comment
2020-08-25 11:26:37 -07:00
Charles Gagnon
7b54abbc96 Fix connection status badge display (#11933) 2020-08-25 08:45:42 -07:00
Laura Jiang
8e74ce1881 change indiffeditor (#11943) 2020-08-24 19:22:16 -07:00
Charles Gagnon
52ec96e4f1 Fix dropping async oe tree item onto root (#11934) 2020-08-24 18:07:42 -07:00
Charles Gagnon
969932743a Add external miaa endpoint property (#11940) 2020-08-24 18:07:25 -07:00
Charles Gagnon
54826b5fe3 Fix dnd auto-connecting profiles when dragging (#11935)
* Fix dnd auto-connecting profiles when dragging

* Expand connected nodes

* fix
2020-08-24 18:07:08 -07:00
Charles Gagnon
bd2ab6071d Disable Arc PG Manage action and clean up commands (#11942) 2020-08-24 18:05:15 -07:00
Laura Jiang
18a6879d64 Create sticky run code button for notebook code cell (#11903)
* update css for run code button

* rm extra position change
2020-08-24 16:05:31 -07:00
Maddy
384553c231 bookTreeView tests (#11746)
* bookTreeView tests

* add types

* CI failure change test

* test mix up corrected

* check notebook path exists

* missing file error fix

* error msg update

* openNotebook test error alternative fix

* move openNotebook test to unstable

* skip instead of marking unstable
2020-08-24 14:41:12 -07:00
Charles Gagnon
0e4e8c304c Add static logger class for azdata extension (#11939)
* Add static logger class for arc extension

* Fix compile errors

* Fix test
2020-08-24 12:32:45 -07:00
Charles Gagnon
d96e83c3f0 Update arc api (#11932) 2020-08-23 07:23:14 -07:00
Anthony Dresser
d8f9cdeacb update error counts for strict compile (#11926) 2020-08-21 23:38:57 -07:00
Anthony Dresser
3e515f2f59 Strict nulls check contrib/queryplan (#11917)
* remove angular query pla neditor and replace with non-angular version; strict null check contrib/queryPlan

* fix compile
2020-08-21 23:04:36 -07:00
Anthony Dresser
91065ebc38 Strict null contrib/webview (#11921)
* strict null contrib/webview

* fix compile
2020-08-21 23:04:29 -07:00
Kim Santiago
9133bef329 Update publish project dialog to look closer to the mockups (#11875)
* initial changes

* got everything lined up

* get rid of bottom scrollbar

* change database textbox to dropdown and cleanup

* more cleanup and fix profile text box

* fix label

* add fireOnTextChange to editable dropdown

* change edit icon and enable input boxes
2020-08-21 18:17:42 -07:00
Anthony Dresser
1eb2e5f41a add more granularity to strict vscode (#11922) 2020-08-21 17:30:52 -07:00
Amir Omidi
9a472cf8ec Expose the graph API (#11919)
* Exposing the graph API

* Azure managed instance retrival

* Fix compile error
2020-08-21 17:19:00 -07:00
Anthony Dresser
9d680be37a add strict nulls for contrib/extensions (#11916) 2020-08-21 17:17:59 -07:00
Anthony Dresser
f4f4271115 disable telemetry permently in web (#11918) 2020-08-21 17:14:01 -07:00
Anthony Dresser
faff61bb82 strict null for contrib/preferences and contrib/configuration (#11915) 2020-08-21 15:51:29 -07:00
Charles Gagnon
061052e4f3 Update arc deployment wizards (#11907) 2020-08-21 14:45:00 -07:00
Charles Gagnon
a6efd56844 Add Arc MIAA delete action back (#11901)
* Add Arc MIAA delete action back

* fix
2020-08-21 14:10:29 -07:00
Charles Gagnon
b4d61a067e Bump Arc extension version (#11914) 2020-08-21 13:14:08 -07:00
Charles Gagnon
d073cd595b Disable connectivity mode selection (#11911)
* Disable connectivity mode selection until Direct mode is fully completed

* add azdata change
2020-08-21 13:08:49 -07:00
Anthony Dresser
1b02fb6906 Add strict compiling for profiler service (#11898)
* add strict compiling for profiler

* fix up strict

* add contrib
2020-08-21 12:52:24 -07:00
Anthony Dresser
31323d6efb fix clicking on a profile in azure connection dialog (#11900) 2020-08-20 20:41:54 -07:00
Laura Jiang
84d21b1e76 adjust css to pin toolbar (#11894) 2020-08-20 17:11:53 -07:00
Charles Gagnon
b2a1738836 Remove REST API from Arc extension (#11888)
* wip

* Remove old API

* Fix tests
2020-08-20 15:56:46 -07:00
Monica Gupta
9c81db574e Fix for File -> New Query (#11893)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-20 14:55:56 -07:00
Amir Omidi
18dc7e75ff use azurecore and azureresource as typings (#11892)
* use azurecore and azureresource as typings

* Remove unrelated file
2020-08-20 14:45:22 -07:00
Anthony Dresser
adfdd56907 Even more strictness (#11879)
* add more to strict nulls

* maintain error handling properly

* fix lint

* the rest of workbench/services

* fix compile
2020-08-20 14:00:26 -07:00
Amir Omidi
ca2b893c2c Update test cover dependency (#11889) 2020-08-20 12:25:12 -07:00
Kim Santiago
7029276f16 Update import project toolbar icon to be blue (#11878)
* update import project toolbar icon to be blue

* get rid of dark and light
2020-08-20 10:43:28 -07:00
Amir Omidi
bcce80094d Azure Subscription Page and another azdata change (#11877)
* Azure subscription page

* .
2020-08-20 10:23:48 -07:00
Sakshi Sharma
9861ca77e0 Add Import Database at server level (#11821)
* Add Import Database at server levelin dataExplorer

* Add Import database at server level in objectExplorer
2020-08-20 00:26:48 -07:00
Anthony Dresser
9327624930 Add more to strict nulls (#11871)
* add more to strict nulls

* maintain error handling properly

* fix lint
2020-08-19 18:38:34 -07:00
Lucy Zhang
69a96a7d5d Adding tests for DataResourceDataProvider (#11743)
* tests for getRow method

* use suiteSetup

* added more tests

* revert changes to gridOutput.component.ts

* mocked out services for DataResourceDataProvider

* add test for serializeResults

* change path to fsPath

* fix param type and use fs promises

* use async in startSerialization

* mock ContextService
2020-08-19 17:08:27 -07:00
Vasu Bhog
29fbc7d952 Refactored Server Instance Tests (#11868)
* Refactored and improved testing through sinon

* Addressed changes - helper function and direct call to function refactor
2020-08-19 17:28:15 -05:00
Lucy Zhang
fefb47da83 change notebook grid actions orientation to horizontal (#11870)
* change actions orientation to horizontal

* add missing import
2020-08-19 14:42:06 -07:00
Anthony Dresser
de3c6e6e99 Disable telemetry on web smoke (#11858)
* disable telemtry on web smoke

* add true
2020-08-19 14:34:13 -07:00
Alan Ren
a3ae2df0ce support aria-expand for actions (#11869)
* support aria-expand for actions

* update text
2020-08-19 14:18:52 -07:00
Charles Gagnon
3c538d1c2d Add AsyncServerTree (#11838)
* wip

* Fixes

* More fixes

* more fixes

* Disable when preview features disabled

* remove unused imports

* Handle promises

* PR feedback

* Single default ServerGroup color value
2020-08-19 14:01:10 -07:00
Amir Omidi
d2e4eeac88 skuRecommendationPage & azdata change (#11863)
* skuRecommendationPage

* fix
2020-08-19 13:04:08 -07:00
Shafiq Ur Rahman
97b6d71a06 Kusto - ADS Core changes (#11750)
* ADS Core changes

* Generic fix to get language mode based on providerId

* Addressed comments

* Fix failing tests

* Fix for "New Notebook" from file menu option

* Remove line

* Fix for merge conflict

* Add removed comment back

* Addressed comments

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-19 12:27:16 -07:00
Aasim Khan
43f08e7efb Added ESRP task for signing extensions (#11845)
* Added esrp task for vsix

* added the condition to sign only when needed

* Changed dotnet core task name for more context
2020-08-19 10:43:23 -07:00
Anthony Dresser
60c62c0668 Fix a bunch of strict issues (#11857)
* fix a bunch of strict issues

* fix tests

* fix tests
2020-08-19 10:37:30 -07:00
Sakshi Sharma
e90341b3d2 Initial Pre-post deployment changes (#11703)
* Update Open Project to display pre-post deployment scripts in the project tree

* Address comments

* Fixed tests

* Update nonDeployScripts to noneDeployScripts and throw a warning message instead of informational message for prePostDeployCount
2020-08-19 01:06:29 -07:00
Cory Rivera
0f063d3a2e Skip adding python user package directory to PATH on SAW devices. (#11849) 2020-08-18 17:14:19 -07:00
Shafiq Ur Rahman
62d60f62f3 Kusto - AzureCore changes (#11751)
* AzureCore changes

* Removed connectazuredataexplorer command from command.ts, package.json, and package.nls.json (#11844)

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
Co-authored-by: Justin M <63619224+JustinMDotNet@users.noreply.github.com>
2020-08-18 16:56:17 -07:00
Vasu Bhog
2bfba53e21 Kusto Notebook Kernel Changes (#11760)
* Able to get Kernel Alias using extension registery

* Get Kernel Alias through Capability Services

* Notebook Action feature to add kusto to dropdown based on extension - complete

* Fixed indexing issue when Kusto is in kernels Dropdown

* Kusto Kernel listed properly and selected when kernel changes

* Added kernel change when user Attaches To Kusto connection

* Deleted unnecessary code/refactored

* Fix Merge Issues

* Resolving Compile issues - test file error

* Capabilities Provider Changes

* Fixed Notebook Tests

* Rearchitect kernel changes to Notebook Model

* Address minor changes
2020-08-18 14:52:25 -05:00
Amir Omidi
6153b7ad06 Start with the SKU recommendation screen (#11786) 2020-08-18 12:44:58 -07:00
Anthony Dresser
c4b524237c Better table implementation (#11781)
* wip

* wip

* weird splitview scrolling stuff

* working table

* remove spliceable table

* handling resizing columns

* get perf table integrated into grid

* make more improvments to table view

* testing

* wip

* wip

* fix async data window; add more optimization to scrolling

* work on scrolling

* fix column resizing

* start working on table widget

* inital work to get table widget working with styles and mouse controls

* fix unrendering selection; fix sizes of cells

* support high perf table option; remove unused files; add cell borders to high perf

* add accessibility tags

* handle borders and row count

* more styling changfes

* fix strict null checks

* adding inital keyboard navigation

* center row count; add padding left to rows

* inital drag selection

* remove drag implementation; it can be done better utilizing the global mouse monitor object

* range logic

* create custom grid range

* work with new range

* remove unused code

* fix how plus range works

* add drag selection; change focus to set selection; fix problem with creating a range with inverse start and end

* code cleanup

* fix strict-null-checks

* fix up perf table

* fix layering

* inital table service

* finish table service

* fix some compile errors

* fix compile

* fix compile

* fix up for use

* fix layering

* remove console use

* fix strict nulls
2020-08-18 12:10:05 -07:00
Kim Santiago
17856855f6 Make sql project publish SQLCMD table editable (#11812)
* make table editable

* add button to load values from sqlproj

* use form component group

* match mockups

* move UI constants to a separate file

* fix error
2020-08-18 12:04:12 -07:00
Lucy Zhang
b16c6f3faa update sqltoolsservice version (#11843) 2020-08-18 09:41:07 -07:00
Charles Gagnon
fc9d08a62b Fix DT linting errors (#11831) 2020-08-17 13:48:48 -07:00
Cory Rivera
92db8df000 Simplify python reinstallation by only installing jupyter. (#11820) 2020-08-17 11:02:18 -07:00
Maddy
b7e12cb8a7 open resource only when it's file (#11815) 2020-08-17 08:52:30 -07:00
Charles Gagnon
3192d056f2 Update notebook convert action when clause for notebook editor (#11826) 2020-08-15 17:27:43 -07:00
Charles Gagnon
273f6b658a Add separate config for enabling nb convert and fix css (#11811) 2020-08-15 17:15:28 -07:00
Chris LaFreniere
e90578694b Call onDidInsert Before Layout (#11819) 2020-08-14 19:52:27 -07:00
Kim Santiago
3b2e53d270 Add support for AAD interactive connection strings for project data sources (#11761)
* add support for AAD interactive for project data sources

* fix whitespace

* remove warning message

* choose azureMFA if a connection string has both integrated security=true and authentication=active directory interactive
2020-08-14 16:13:22 -07:00
Chris LaFreniere
a34a72795b Notebook Code Cleanup + Utils Test (#11754)
* Cleanup + Utils Test

* Removing unnecessary util method
2020-08-14 14:08:56 -07:00
Cory Rivera
ff2d2d0339 Remove preview flag for Configure Python wizard. (#11813) 2020-08-14 12:36:40 -07:00
anjalia
1ee4af52b4 Expand/collapse all node options (#11728)
* Implementing expand and collapse nodes

* adding constants for error messages

* Removing expand all database projects functionality

* Reformatting imports
2020-08-13 18:31:03 -07:00
anjalia
28aa9b7912 Adding Link to ADS Extension Generator Documentation in Extensions Menu (#11785)
* Link to the extension generator documentation in the extension menu

* Moving actions to correct files

* Reverting changes to imports in vs folder
2020-08-13 18:28:57 -07:00
Anthony Dresser
8cf82c1f8b Azure pane in connection dialog (#11736)
* azure pane in connection dialog

* fix layering

* fix issues

* fix test

* more test fixes

* add back double click to connect for non-contributed views
2020-08-13 17:02:42 -07:00
Anthony Dresser
a69b4bf662 Add check for disable telemetry when showing opt out (#11796)
* add check for disable telemtry when showing output

* remove previous fixes for smoke tests

* fix compile

* continue on error for smoke tests
2020-08-13 16:57:05 -07:00
Kim Santiago
f3a48da3fa Initial project references changes (#11648)
* first changes for showing project references

* add tests

* fix interface and formatting

* add try so that project still gets loaded even if dependency project loading fails

* use instanceof

* add circular reference error
2020-08-13 16:08:32 -07:00
Cory Rivera
d68433ec22 Add some package management unit tests for JupyterServerInstallation (#11777) 2020-08-13 13:12:28 -07:00
Charles Gagnon
c66726cdb5 Fix default query shortcuts not being available (#11775) 2020-08-13 12:45:35 -07:00
Charles Gagnon
d547dd8ba3 Post release vBump (#11774) 2020-08-13 10:37:44 -07:00
Leila Lali
cc8989c2a5 ML - Verifying ODBC Driver (#11587)
* Verifying ODBC is installed before opening package manager dialog
2020-08-13 08:52:10 -07:00
Leila Lali
053a2c7446 ML - Updating sqlmlutil to fix R package management (#11432)
Updating sqlmlutil to fix R package management
2020-08-12 14:29:07 -07:00
Amir Omidi
6e306461d7 Introduces event queue processor to create a consistent UI (#11780) 2020-08-12 14:06:49 -07:00
Leila Lali
e40a81e8e1 ML - Fixed script formatting for prediction (#11767)
* Fixed script formatting for prediction
2020-08-12 13:36:39 -07:00
Charles Gagnon
094ee7c50c Add extension api for calling azdata commands (#11763)
* Add extension api for calling azdata commands

* Update typings file name
2020-08-12 12:57:59 -07:00
Anthony Dresser
d96fe82fbc Rewrite scrollablesplitview (#11566)
* fix issues with scrollable, maybe

* add debounce

* remove scrollable

* fix events

* perf improvements

* fix compile errors

* fix more compile

* add tests

* maybe fix tests

* 💄

* 💄

* maybe this will work

* fix compile

* try this

* remove some unneeded functionality

* fix comment
2020-08-12 12:16:04 -07:00
Anthony Dresser
bc44014532 Fix web smoke tests (#11759)
* fix web smoke tests

* readd web smoke
2020-08-12 12:02:42 -07:00
Amir Omidi
8cbf73dff6 Page changing (#11770) 2020-08-12 11:25:28 -07:00
Leila Lali
28b0d827b9 Changed the order of pages in import model wizard based on the new design (#11579) 2020-08-12 09:31:26 -07:00
Charles Gagnon
01ea89a461 Add azdata tests (#11745) 2020-08-12 09:02:42 -07:00
Charles Gagnon
00af075fb3 Update README and CHANGELOG for August release (#11772)
* Update README and CHANGELOG for August release

* Fix milestone
2020-08-12 09:01:27 -07:00
Udeesha Gautam
72f6d8a006 update sqltoolsService version for a sqltoolsservice and a dacfx fix (#11764) 2020-08-11 22:24:09 -07:00
Kim Santiago
86a019842f Fix importing new project from server dashboard (#11766)
* fix importing new project from server dashboard

* also fix not showing list of dbs if the connection from connection dialog already specified the db
2020-08-11 18:08:13 -07:00
Amir Omidi
207a9a6a25 Sets up the first page with some filler information (#11762)
* Sets up the first page with some filler information

* Add some valid information

* move to its own method
2020-08-11 17:12:05 -07:00
Charles Gagnon
6e26261149 Move rest of DE actions into package contributions (#11755)
* Move rest of DE actions into package contributions

* Add sql-database-projects import
2020-08-11 15:37:03 -07:00
Amir Omidi
acd9fc8fd6 Migration wizard skeleton setup (#11758) 2020-08-11 14:54:40 -07:00
Amir Omidi
3432743f63 Dynamic ws protocol (#11757) 2020-08-11 14:04:35 -07:00
Alex Ma
f45583c0f6 Refresh fix for Edit Data (#11710)
* hook in grid panel to edit data input through the editDataResultsInput

* added then at end of refreshGrid to ensure cell reset happens after refresh.

* abstraction

* Timeout removed as its causing issues with refreshing

* added await for dataRows

* Added working timeout for refresh

* removed spaces

* added comment explaining isRefresh

* Timeout set to 500 for better coverage.

Co-authored-by: Amir Omidi <amomidi@microsoft.com>
Co-authored-by: Anthony Dresser <andresse@microsoft.com>
2020-08-11 14:04:24 -07:00
Charles Gagnon
aecb0efbc0 Fix up data explorer contributed actions on OE nodes (#11685)
* Fix up data explorer contributed actions on OE nodes

* sql carbon edit

* add Database node
2020-08-11 10:25:38 -07:00
Anthony Dresser
86fcd05eff Fix smoke tests (#11734)
* add small timeout to address timeout issues in smoke tests

* fix comment

* longer wait

* fix smoketests

* redisable web
2020-08-10 21:43:27 -07:00
Anthony Dresser
1f71ea301c Merge branch 'publish/server' into main 2020-08-10 19:09:25 -07:00
Anthony Dresser
a721ab559d distro 2020-08-10 17:50:40 -07:00
Anthony Dresser
0c0c87184c reenable server builds 2020-08-10 17:49:31 -07:00
Amir Omidi
39900b7a92 SQL Migration Extension Skeleton (#11625)
* Start on skeleton

* Finish up skeleton

* .

* Change up the skeleton a bit, add some states.
2020-08-10 17:31:50 -07:00
Monica Gupta
6435540f35 Hides Edit Data , Script as Create and Script as drop for Kusto tables (#11742)
* Hide Edit Data , Script as Create and Script as drop for Kusto tables

* clean up

* more clean up

Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-10 16:32:19 -07:00
Arvind Ranasaria
3b38ba7e30 findAzdata test fix (#11724)
* findAzdata test fix

* cleanup

* pr feedback
2020-08-10 16:07:47 -07:00
Alan Ren
bc0753a95c hide edit data and script as create (#11737) 2020-08-10 13:40:35 -07:00
Leila Lali
76d6e93f7c Updating ML ext version (#11741) 2020-08-10 13:36:27 -07:00
Leila Lali
f7cd25af71 ML - Removing reference to deprecated API (#11733)
* Removing reference to deprecated API
2020-08-10 13:06:47 -07:00
Charles Gagnon
858c1e826d Put export as SQL/Notebook under preview flag (#11726)
* Put export as SQL/Notebook under preview flag

* add sqlcmd under preview

* Remove comment
2020-08-09 16:09:51 -07:00
Arvind Ranasaria
2b0b529b21 Add controller display name (#11675)
* Add controller display name

* pr feedback

* revert unneeded change

* pr feedback
2020-08-07 16:47:10 -07:00
Charles Gagnon
ec0f7f992c Update min required ADS version for machine-learning (#11722) 2020-08-07 15:45:19 -07:00
Maddy
3683aaaf2a Fix/markdown links (#11708)
* test changes

* maintain uri if it's not a file

* check file and path is string

* missed this

* Add SQL CARBON EDIT

Co-authored-by: chgagnon <chgagnon@microsoft.com>
2020-08-07 15:39:39 -07:00
Charles Gagnon
6440bad9bb Update ML package version (#11720) 2020-08-07 14:52:45 -07:00
Alan Ren
f8a6658128 make sure options is not undefined (#11715) 2020-08-07 14:50:09 -07:00
Lucy Zhang
1e00898105 change wizard title to heading 2 (#11711) 2020-08-07 13:37:53 -07:00
Alan Ren
3c647c4376 show backup/restore only for mssql (#11714) 2020-08-07 12:58:33 -07:00
Alan Ren
0a3d109073 custom hint text (#11705) 2020-08-06 21:21:50 -07:00
Karl Burtram
4c4c22331d Add welcomePageWithTour to startupEditor check (#11702) 2020-08-06 20:49:35 -07:00
Monica Gupta
dcd1a175e4 Fix for reading "options" property from backend in manage dashboard (#11701)
Co-authored-by: Monica Gupta <mogupt@microsoft.com>
2020-08-06 17:37:15 -07:00
Anthony Dresser
2b2c912135 Distro (#11693)
* distro

* distro

* distro
2020-08-06 14:04:29 -07:00
Anthony Dresser
99de46adbd Distro (#11692)
* distro

* distro
2020-08-06 13:59:32 -07:00
AzureDataStudio
7fbc37058b Merge branch 'ads-main-vscode-2020-08-06T07-08-45' into main 2020-08-06 13:50:20 -07:00
AzureDataStudio
24b3181cbc Fix errors
distro

distro

comment out reh stuff

distro

fix yml

distro

bump smoke ext
2020-08-06 13:49:27 -07:00
Maddy
adacbdc4cf Fix/save defaults to txt (#11623)
* regression fix from vscode merge

* pass language not mode for getting the extension

* fix compile errors on vscode.

* case sensitive update
2020-08-06 10:17:58 -07:00
Charles Gagnon
9bdfa57be6 Revert "Do ModelView initialization actions before others (#11512)" (#11677)
This reverts commit 9bdd5f2899b36a44bca4add1f05164cf1489929b.
2020-08-06 08:47:33 -07:00
ADS Merger
540046ba00 Merge from vscode cfbd1999769f4f08dce29629fb92fdc0fac53829 2020-08-06 07:08:52 +00:00
Amir Omidi
9c67832880 Return cancelled, not undefined for azure login (#11656)
* Return cancelled, not undefined.

* fallback to reject

* Add type to the rejection

* add default
2020-08-05 14:48:47 -07:00
Cory Rivera
28f1321ad7 Add task for downloading Python package when building ADS for SAW devices. (#11659) 2020-08-05 14:11:44 -07:00
Arvind Ranasaria
92b0603968 emit better errors for azure access failure (#11603)
* emit better errors for azure access failure

* Update modelViewUtils.ts

added missing breaks

* merge changes with those done directly from browser

* pr feedback

* string updates

* print only 1 error for account error

* fix comments

* pr feedback
2020-08-05 13:43:15 -07:00
Amir Omidi
ea2564b133 Dropdown fix (#11660) 2020-08-05 12:47:37 -07:00
v-bbrady
99e1bbf06f fixes button font color not showing on welcome page #11598 (#11658)
* fixes stying issue

* formatting
2020-08-05 11:49:48 -07:00
v-bbrady
c0836409cc fixes button height (#11471) 2020-08-05 11:25:56 -07:00
Alan Ren
50b6789e51 show hidden connection properties (#11646) 2020-08-05 10:15:56 -07:00
Alan Ren
b71432523d replace obsolete command (#11650) 2020-08-05 10:15:36 -07:00
Cory Rivera
d380328f8b Use a regex to detect notebook started message. (#11642) 2020-08-04 18:00:52 -07:00
Christopher Suh
aa151b280f Added Column folder drag & drop (#11595)
* wip

* working folder drag/drop

* helper method

* cleanup

* cleanup

* cleanup

* added view

* helper method for nodeTypeId

* made method static for access from editordroptarget

* pr changes
2020-08-04 20:49:21 -04:00
Alan Ren
656d944894 add some unit test for resource deployment ext (#11604)
* add some unit test for resource deployment ext

* feedback & remove unused method
2020-08-04 17:18:26 -07:00
Charles Gagnon
0c3798ae26 Fix error when clicking on empty dropdown (#11637) 2020-08-04 14:33:25 -07:00
Barbara Valdez
e7ec278ef2 Replace URL and use vscode.URI on local paths (#11624)
* Use vscode.URI for local paths

* Use vscode.uri file method to set the name for remotebookfull path compressed file

* Add await on extract tar function

* Replace remote paths too

* Use vscode.uri.file instead of parse for local paths
2020-08-04 13:22:28 -07:00
Sumit Kumar
9df51b9936 test case failing (#11609)
* initial draft

* change tenant

* assertion error

* fixed failing test
2020-08-04 11:03:26 -07:00
v-bbrady
8fce371e3f fixes duplicate list items on welcome #11366 #11578 (#11378)
* fixes duplicate list items on welcome

* fixes duplicate list, and comments on PR

* updates to use clearNode, and removes unnecessary formatter

* awaits maplistentries, calls functions directly
2020-08-04 10:51:13 -07:00
Sakshi Sharma
381a32929f First set of test for SchemaCompareDialog (#11444)
* Add a test for SchemaCompareDialog and update the product code with deferred promise

* Update test to verify that button clicked worked

* Addressed comments

* Updated verifyButtonsState to use should instead of console.log
2020-08-04 01:10:46 -07:00
Maddy
eeb1f7cf3e remove old code (#11620) 2020-08-03 17:08:00 -07:00
Charles Gagnon
694f34a4cd Add Notebook <-> SQL convert (#11590)
* Add Notebook <-> SQL convert

* Update STS
2020-08-03 14:50:24 -07:00
Udeesha Gautam
fbbb9ce529 load publish profile sqlcmd "value" tag and throw error if not loaded correctly (#11615)
* load publish profile sqlcmd "value" tag and throw error if not loaded correctly

* moved the read profile function to utils
2020-08-03 14:16:00 -07:00
Kim Santiago
9d730bd0b5 make font size consistent in publish dialog (#11614) 2020-08-03 12:56:50 -07:00
Amir Omidi
f941f9910b Tenant list UI for Firewall Rules (#11539)
* Start on the tenant list

* continue work

* Finish up...

* Fix test

* Fix

* Fix tests

* Some PR feedback

* Move responsibilities around

* Fix comment
2020-07-31 20:07:30 -07:00
Hale Rankin
68e7a293ad Notebook cell toolbar additions - move cell, convert cell (#11457)
* Notebook cell toolbar additions - move up and move down added. Stubbed out related actions. Cleaned up component code.

* Added new more actions menu item: Convert cell.

* add move cell support in model

* Schema Compare cleanup (#11418)

* cleanup async and await stuff

* remove awaits

* remove more awaits

* fix (#11437)

* Add some unit tests for PyPiClient. (#11442)

* handle invalid character in kubectl version output (#11460)

* Add tests for azdata extension (#11423)

* Add tests for azdata extension

* Fail on stderr

* Skip test for not implemented logic

* Move executeCommand stub

* Add missing packages

* let semver to parse the version (#11463)

* let semver to parse the version

* check

* Stop hardcoding python3 (#11464)

* Add ConnectControllerDialog tests (#11443)

* Automatically fix up arc controller URL

* wip

* Force tests to pass

* Refactor

* comment

* adds role of button to all links that are buttons (#11465)

* Merge from vscode 0a7364f00514c46c9caceece15e1f82f82e3712f

* bump smoke extensions

* bump node version in builds

* bump smoke extensions

* Add query-history and sql-assessment to recommended extensions (#11477)

* First draft of outputProcessor tests (#11368)

* First draft of outputProcessor tests

* add return type for a function

* pr feedback

* comments and Spellings, getRandom ==> getRandomElement

* pr feedback

* pr feedback

* Adds support for installing azdata on Linux (#11469)

* Large cleanup of AzureCore - Introduction of getAccountSecurityToken and deprecation of getSecurityToken (#11446)

* do a large cleanup of azurecore

* Fix tests

* Rework Device Code

* Fix tests

* Fix AE scenario

* Fix firewall rule - clenaup logging

* Shorthand syntax

* Fix firewall tests

* Start on tests for azureAuth

* Add more tests

* Address comments

* Add a few more important tests

* Don't throw error on old code

* Fill in todo

* Adding button plugin to table component  (#10918)

* Added delete plugin to table component

* Arc - Remove Azure params from Postgres deployment (#11478)

Co-authored-by: Brian Bergeron <brberger@microsoft.com>

* tests for KernelsDropdown class (#11476)

* add return type for a function

* tests for KernelsDropdown class

* remove inadvertent change

* remove inadvertent change

* formatting changes

* pr feedback

* pr feedback

* implement review feedback (#11470)

* fix sql proj sqlcmd table showing after loading profile when it shouldn't (#11479)

* Feature/outer paths for project (#11445)

* allow relative paths in project file outside of project folder

* Adding some tests

* Adding error string to loc strings

* Fixed test

* fix error message

* PR comments and some more fixes

* change userName to match what the azure account display name is (#11484)

* change userName to match what the azure account display name is

* Handle undefined value

* Merge from vscode 8c426f9f3b6b18935cc6c2ec8aa6d45ccd88021e

* recomment out integration tests

* Fix/open book error (#11379)

* add isNotebook param and showPreview option

* showPreview changes

* update OpenNotebookFolder to open a specific path

* added test for showPreviewFile

* test name typo

* remove isNotebook from openBook

* Add test coverage for dacpac wizard import flow (#11483)

* Adding importConfig onPageEnter() test

* Removing redundancy from dacpac wizard pages

* promisifying file selection so it can be awaited in the test

* removing debug prints

* PR feedback

* Remove all accounts regardless of failure in one account (#11431)

* distro (#11487)

* distro

* distro

* distro

* distro

* Adding icons to Database Projects' tree view (#11488)

* Add images

* Splitting to light and dark mode icons

* Hooks up icons to treeItems

* updating package.json with new icon and vbump

* move icon loader before tree view created

* Update Arc extension version and fix Controller connectivity status names (#11498)

* Update connectivity mode names

(cherry picked from commit f0aabcfa86d178cdf74470f9fdeded19718bcea2)

* Bump package version

(cherry picked from commit e08370539006c638d6e25c2f4f23fa2754a3377d)

* deploy to single existing device (#11494)

* deploy to single existing device

* comments

* Add versioning for accounts (#11497)

* Add versioning for accounts

* deletion value

* Changes to getAccountSecurityToken (#11502)

* Hook up convert cell

* Fix tests

* Add convert cell tests

Co-authored-by: chlafreniere <hichise@gmail.com>
Co-authored-by: Kim Santiago <31145923+kisantia@users.noreply.github.com>
Co-authored-by: Maddy <12754347+MaddyDev@users.noreply.github.com>
Co-authored-by: Cory Rivera <corivera@microsoft.com>
Co-authored-by: Alan Ren <alanren@microsoft.com>
Co-authored-by: Charles Gagnon <chgagnon@microsoft.com>
Co-authored-by: Chris LaFreniere <40371649+chlafreniere@users.noreply.github.com>
Co-authored-by: v-bbrady <60623315+v-bbrady@users.noreply.github.com>
Co-authored-by: ADS Merger <andresse@microsoft.com>
Co-authored-by: Arvind Ranasaria <ranasaria@outlook.com>
Co-authored-by: Amir Omidi <amomidi@microsoft.com>
Co-authored-by: Leila Lali <llali@microsoft.com>
Co-authored-by: Brian Bergeron <brian.e.bergeron@gmail.com>
Co-authored-by: Brian Bergeron <brberger@microsoft.com>
Co-authored-by: Udeesha Gautam <46980425+udeeshagautam@users.noreply.github.com>
Co-authored-by: Benjin Dubishar <benjin.dubishar@gmail.com>
2020-07-31 17:57:46 -07:00
Kim Santiago
30845cbd6d update project already exists error message (#11596) 2020-07-31 14:50:31 -07:00
Barbara Valdez
c52155b621 Add setting for collapsing/expanding books at root level (#11543)
* Add setting for max number of expanded books

* Remove extra commas

* Add setting for expanding/collapsing books at root level

* Change typo in name of setting

* Change default value to false
2020-07-31 14:44:45 -07:00
Aasim Khan
1a68f17650 added focus to first element in the form (#11597) 2020-07-31 13:56:00 -07:00
Charles Gagnon
13008cc2b9 Thenable -> Promise in OE Service (#11594)
* Thenable -> Promise in OE Service

* Remove more thens
2020-07-31 13:00:03 -07:00
Kim Santiago
9c1168ba3b Add DacFx summary page tests (#11519)
* remove generate script operation

* add tests for summary page

* add a couple more checks
2020-07-31 10:18:21 -07:00
Vladimir Chernov
89753577ab Sql Assessment HTML report (#11558) 2020-07-31 13:00:00 +03:00
dependabot[bot]
4f58f53e57 Bump elliptic from 6.4.0 to 6.5.3 (#11589)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.4.0 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.4.0...v6.5.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-30 17:15:05 -07:00
dependabot[bot]
969936d98d Bump elliptic in /extensions/markdown-language-features (#11588)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.4.0 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.4.0...v6.5.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-30 17:14:47 -07:00
Alan Ren
21d09cb975 remove the scheduled run info from yml (#11562) 2020-07-30 15:25:02 -07:00
Alan Ren
01957abf71 update to use correct environment variable (#11584) 2020-07-30 15:17:55 -07:00
Kim Santiago
9e5bd182bb don't change focus to file explorer viewlet when automatically opening sql projects in the open folder (#11583) 2020-07-30 14:50:42 -07:00
Charles Gagnon
ee540ac89c Fix Notebook toolbar contributed actions (#11572)
* Fix Notebook toolbar contributed actions

* Fix args

* Remove unused imports
2020-07-30 14:11:15 -07:00
Kim Santiago
5fd9d1b18f Remove system dbs from dacfx wizard dropdowns (#11510)
* remove system dbs from dacfx wizard dropdowns

* add test for filtering out system dbs
2020-07-30 13:52:05 -07:00
Alan Ren
6fbb9c2773 deploy ASDE to multiple devices (#11518) 2020-07-30 12:20:48 -07:00
Charles Gagnon
6e439d66a8 Remove azdata toast startup notifications (#11582) 2020-07-30 08:19:37 -07:00
Kim Santiago
c06bd0821b Add deploy options support (#11567)
* add getOptionsFromProfile request

* update deploy and generate script to accept options

* fix tests

* update message

* update message to say what isn't supported

* bump sqltoolsservice version
2020-07-29 17:52:21 -07:00
Alan Ren
6751dffbc3 update action name (#11565) 2020-07-28 17:56:51 -07:00
Anthony Dresser
d244a14468 Use existing resource for untitled if it is already open (#11536)
* use existing resource for untitled if it is already open

* remove unnecessary call
2020-07-28 13:09:51 -07:00
Arvind Ranasaria
ada8cb2f08 change back to using locationVariableName (#11559) 2020-07-28 12:03:46 -07:00
Charles Gagnon
cf6d02d2b4 azdata improvements (#11516)
* azdata improvements

* Don't error on sudo command stderr either

* Improve output channel logging for commands

* Fix childprocess stuff

* pr comments

* Fix compile errors

* more pr comments
2020-07-28 08:43:10 -07:00
AzureDataStudio
3c7f2df156 Merge branch 'ads-main-vscode-2020-07-24T05-27-28' into main 2020-07-27 20:37:28 -07:00
AzureDataStudio
5b234d5884 fix issue with object explorer tests 2020-07-27 16:21:42 -07:00
Amir Omidi
9d1587f008 Special case personal accounts (#11538)
* Special case personal accounts

* Add comments
2020-07-27 15:36:20 -07:00
Kim Santiago
c7423efe14 add back toolbar icon for importing db project (#11513) 2020-07-27 14:35:13 -07:00
Anthony Dresser
51abf123a9 add wrap for error message (#11535) 2020-07-27 14:13:32 -07:00
Udeesha Gautam
6928904a26 Small fixes for output window and test (#11533)
* Small fixes for output window and test

* removing some parts of recent tests that might cause issues
2020-07-27 13:28:18 -07:00
Arvind Ranasaria
c275f367da emit error for kube file not found (#11524)
* error  for kube file not found

* code cleanup

* pr feedback.

* make 'kube config' localized
2020-07-27 12:25:08 -07:00
Charles Gagnon
67ddf81562 Do ModelView initialization actions before others (#11512) 2020-07-27 10:40:40 -07:00
Christopher Suh
6d77176b92 focus in editor after dropping (#11525) 2020-07-27 12:36:36 -04:00
Lucy Zhang
807d03725f Fix Notebook data export to excel/csv not including headers (#11491)
* added includeHeaders param when getting rows

* fix spacing

* fix syntax and use of map
2020-07-27 09:08:55 -07:00
anjalia
4cf7f9ed66 Onboarding Check In (#11520)
* t-anjaga onboarding check in

* Onboarding check in, using GitHub username
2020-07-27 08:29:30 -07:00
Charles Gagnon
1ab18113ee Fix location parameter for Arc controller deployment (#11503) 2020-07-25 09:51:52 -07:00
Barbara Valdez
6d9efbd603 Open books from Github (#10670)
* Add open book option in UI

* Add dropdowns option on dialog

* Add flow logic

* Fetch releases and validate URL

* Add class for github books and shared file books

* Change code structure

* Unblock local copy + stack overflows

* Download books from github

* Remove unused files

* Clean code and use the openNotebookFolder command to open remote book

* Checkpoint

* Refactor remote book dialog model to only hold data

* Remove ApiWrapper and refactor createlocalcopy method

* Use sinon js framework instead of typemoq for testing remotebookController

* Remove api wrapper

* Add some tests

* Add more tests and address pr comments

* Address PR comments

* Fix remotebook broken tests

* Add download location in output channel and use openBook command

* Address PR comments

* Fix typos, print error message and remove failing test

* Print error message

* Separate tests in different files

* Declare controller variable inside extension.tst

Co-authored-by: chlafreniere <hichise@gmail.com>
2020-07-24 19:39:03 -07:00
Amir Omidi
56d1a1c1af Use home_oid, over oid, over unique_name, over sub (#11514)
* Prefer the homeOid over oid

* Prefer unique_name over sub

* Not always defined
2020-07-24 16:00:25 -07:00
ADS Merger
d965d4aef3 Merge from vscode 731f9c25632dbbf01ee3a7892ad9d2791fe0260c 2020-07-24 05:27:34 +00:00
Amir Omidi
eccf3cf5fe Changes to getAccountSecurityToken (#11502) 2020-07-23 19:14:23 -07:00
Amir Omidi
5b8039379e Add versioning for accounts (#11497)
* Add versioning for accounts

* deletion value
2020-07-23 19:13:44 -07:00
Alan Ren
83211d6e2d deploy to single existing device (#11494)
* deploy to single existing device

* comments
2020-07-23 17:54:32 -07:00
Charles Gagnon
188cfdbd20 Update Arc extension version and fix Controller connectivity status names (#11498)
* Update connectivity mode names

(cherry picked from commit f0aabcfa86d178cdf74470f9fdeded19718bcea2)

* Bump package version

(cherry picked from commit e08370539006c638d6e25c2f4f23fa2754a3377d)
2020-07-23 16:37:48 -07:00
Benjin Dubishar
2b132f6b58 Adding icons to Database Projects' tree view (#11488)
* Add images

* Splitting to light and dark mode icons

* Hooks up icons to treeItems

* updating package.json with new icon and vbump

* move icon loader before tree view created
2020-07-23 11:52:54 -07:00
Anthony Dresser
769a9d4699 distro (#11487)
* distro

* distro

* distro

* distro
2020-07-23 11:07:01 -07:00
Amir Omidi
2fc51ffe82 Remove all accounts regardless of failure in one account (#11431) 2020-07-23 11:06:29 -07:00
Benjin Dubishar
c963e6ec08 Add test coverage for dacpac wizard import flow (#11483)
* Adding importConfig onPageEnter() test

* Removing redundancy from dacpac wizard pages

* promisifying file selection so it can be awaited in the test

* removing debug prints

* PR feedback
2020-07-23 02:15:05 -07:00
Maddy
21cf89fb7e Fix/open book error (#11379)
* add isNotebook param and showPreview option

* showPreview changes

* update OpenNotebookFolder to open a specific path

* added test for showPreviewFile

* test name typo

* remove isNotebook from openBook
2020-07-22 22:23:37 -07:00
Anthony Dresser
a889d017f5 Merge branch 'ads-main-vscode-2020-07-23T02-21-03' into main 2020-07-22 21:31:16 -07:00
Amir Omidi
32047d5557 change userName to match what the azure account display name is (#11484)
* change userName to match what the azure account display name is

* Handle undefined value
2020-07-22 19:31:52 -07:00
Udeesha Gautam
196b3752a9 Feature/outer paths for project (#11445)
* allow relative paths in project file outside of project folder

* Adding some tests

* Adding error string to loc strings

* Fixed test

* fix error message

* PR comments and some more fixes
2020-07-22 19:28:03 -07:00
Anthony Dresser
c76e3ff0c9 recomment out integration tests 2020-07-22 19:23:52 -07:00
ADS Merger
ede827ee82 Merge from vscode 8c426f9f3b6b18935cc6c2ec8aa6d45ccd88021e 2020-07-23 02:21:09 +00:00
Kim Santiago
efc8182954 fix sql proj sqlcmd table showing after loading profile when it shouldn't (#11479) 2020-07-22 17:59:26 -07:00
Alan Ren
154b75a0de implement review feedback (#11470) 2020-07-22 17:54:43 -07:00
Arvind Ranasaria
9b4931bb0e tests for KernelsDropdown class (#11476)
* add return type for a function

* tests for KernelsDropdown class

* remove inadvertent change

* remove inadvertent change

* formatting changes

* pr feedback

* pr feedback
2020-07-22 17:49:01 -07:00
Brian Bergeron
b53d1cee4a Arc - Remove Azure params from Postgres deployment (#11478)
Co-authored-by: Brian Bergeron <brberger@microsoft.com>
2020-07-22 17:03:52 -07:00
Leila Lali
4a88adffd2 Adding button plugin to table component (#10918)
* Added delete plugin to table component
2020-07-22 16:26:16 -07:00
Amir Omidi
587abd43c2 Large cleanup of AzureCore - Introduction of getAccountSecurityToken and deprecation of getSecurityToken (#11446)
* do a large cleanup of azurecore

* Fix tests

* Rework Device Code

* Fix tests

* Fix AE scenario

* Fix firewall rule - clenaup logging

* Shorthand syntax

* Fix firewall tests

* Start on tests for azureAuth

* Add more tests

* Address comments

* Add a few more important tests

* Don't throw error on old code

* Fill in todo
2020-07-22 15:03:42 -07:00
Charles Gagnon
a61b85c9ff Adds support for installing azdata on Linux (#11469) 2020-07-22 13:41:52 -07:00
Arvind Ranasaria
d086b5b01e First draft of outputProcessor tests (#11368)
* First draft of outputProcessor tests

* add return type for a function

* pr feedback

* comments and Spellings, getRandom ==> getRandomElement

* pr feedback

* pr feedback
2020-07-22 12:27:23 -07:00
Charles Gagnon
8da27190a2 Add query-history and sql-assessment to recommended extensions (#11477) 2020-07-22 11:14:59 -07:00
Anthony Dresser
c3d151fbee Merge branch 'ads-main-vscode-2020-07-22T03-06-51' into main 2020-07-22 00:50:38 -07:00
Anthony Dresser
ca39cbe6ab bump smoke extensions 2020-07-21 20:17:22 -07:00
Anthony Dresser
2f0dbb633d bump node version in builds 2020-07-21 20:15:26 -07:00
Anthony Dresser
f316c27098 bump smoke extensions 2020-07-21 20:13:57 -07:00
ADS Merger
1b7b54ce14 Merge from vscode 0a7364f00514c46c9caceece15e1f82f82e3712f 2020-07-22 03:06:57 +00:00
v-bbrady
53ec7585a9 adds role of button to all links that are buttons (#11465) 2020-07-21 19:08:05 -07:00
Charles Gagnon
0f2b463536 Add ConnectControllerDialog tests (#11443)
* Automatically fix up arc controller URL

* wip

* Force tests to pass

* Refactor

* comment
2020-07-21 17:15:13 -07:00
Chris LaFreniere
0c3c714be1 Stop hardcoding python3 (#11464) 2020-07-21 16:38:04 -07:00
Alan Ren
39ca386d2a let semver to parse the version (#11463)
* let semver to parse the version

* check
2020-07-21 16:01:01 -07:00
Charles Gagnon
b57cae5b60 Add tests for azdata extension (#11423)
* Add tests for azdata extension

* Fail on stderr

* Skip test for not implemented logic

* Move executeCommand stub

* Add missing packages
2020-07-21 14:13:58 -07:00
Alan Ren
238d643a8e handle invalid character in kubectl version output (#11460) 2020-07-21 13:36:23 -07:00
Cory Rivera
7461cf844d Add some unit tests for PyPiClient. (#11442) 2020-07-21 10:56:25 -07:00
Maddy
f780db907d fix (#11437) 2020-07-21 10:10:35 -07:00
Kim Santiago
d533af3019 Schema Compare cleanup (#11418)
* cleanup async and await stuff

* remove awaits

* remove more awaits
2020-07-21 09:47:14 -07:00
Alan Ren
92c8d890c4 0.18.0 just got released, bump the version (#11438) 2020-07-20 17:28:13 -07:00
Kim Santiago
69849de6f0 Refactor schema compare options and add tests (#11414)
* refactor to make testing options easier

* some cleanup

* remove async

* get file to 100% coverage

* address a couple comments
2020-07-20 16:53:44 -07:00
Charles Gagnon
7fe3df8259 Automatically fix up arc controller URL (#11177) 2020-07-20 16:24:52 -07:00
Charles Gagnon
d99201002d Remove profiler ApiWrapper (#11441) 2020-07-20 15:42:17 -07:00
Charles Gagnon
8828758b2f Remove CMS ApiWrapper (#11439) 2020-07-20 15:24:36 -07:00
Udeesha Gautam
921beebd79 Test/dacpac tests (#11428)
* Adding test for select operation page and dacpac wizard

* skipping one test for investigation

* Changes as per PR comments
2020-07-20 14:23:27 -07:00
Alan Ren
ca900464e5 update import extension version (#11430) 2020-07-20 14:04:11 -07:00
Chris LaFreniere
3792a6328f Fix Notebooks Word Wrapping Logic (#11415)
* make word wrap logic easier

* Stop passing in IConfigurationService
2020-07-20 13:50:26 -07:00
Cory Rivera
047c51921b Exclude Spark notebook kernels when running on SAW devices. (#11416) 2020-07-20 12:36:40 -07:00
Anthony Dresser
26f833f728 disable web smoke again (#11421) 2020-07-20 12:25:03 -07:00
Lucy Zhang
66632e6262 Fix notebook results grid settings not updating (#11413)
* added boolean for results grid settings changed

* change parameter name to forceThemeUpdate
2020-07-20 10:28:27 -07:00
Aasim Khan
decba446dd -Updated dataclient on services and adding the new version over here. (#11419) 2020-07-20 10:21:22 -07:00
Charles Gagnon
6f9991e22b Add support for installing azdata on Windows (#11387)
* Add support for installing azdata on Windows

* Don't run startup code when in test context since it blocks on UI input

* restart checks

* Disable calls for now
2020-07-18 18:15:52 -07:00
Amir Omidi
5613a97fae Use a unique key for the accounts (#11380)
* Use a unique key for the accounts

* Fix some tests

* Simplify display name

* Change to a random UUID
2020-07-17 13:39:53 -07:00
Anthony Dresser
eb82cd3f4b fix tasks for building (#11412) 2020-07-17 13:03:49 -07:00
Amir Omidi
648174e91d Tenant filter fix (#11411)
* Fix tenant filter

* Test for the azure filter feature
2020-07-17 12:46:22 -07:00
v-bbrady
fea0fb13f6 fixes tab focus not beig visible after deploying a server (#11410) 2020-07-17 12:12:11 -07:00
cssuh
0833de1e7c Merge branch 'ads-main-vscode-2020-07-15T23-51-12' into main 2020-07-17 15:00:28 -04:00
Kim Santiago
3c3c5f7348 remove extension.js from dacpac code coverage (#11406) 2020-07-17 11:07:48 -07:00
Charles Gagnon
4594943b53 Don't throw if cleanup drop fails (#11405) 2020-07-17 10:59:13 -07:00
Alan Ren
42fa5c3275 update change log for 1.20.1 (#11390)
* update change log for 1.20.1

* more info for known issue
2020-07-17 09:59:20 -07:00
v-bbrady
3633a21413 fixes the contrast ratio for hoverable list items in the welcome page new button dropdown (#11106)
* fixes button alignment and missing icons issues with ads welcome page

* removes dead code, registers new Button

* creates one button component and adds proper attributes depending on platform

* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* adds return types to functions

* fixes show all extensions command

* updates dropdown color themes

* adjusts colors from color registry

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-07-17 09:52:20 -07:00
Vasu Bhog
71fbe2ed53 Fix markdown cell toolbar focus not being visible (#11386)
* Markdown Toolbar focus fix

* Fixed sizing issues of icons

* Fixed spacing
2020-07-17 11:04:17 -05:00
dependabot[bot]
da4f9152a3 Bump lodash from 4.17.15 to 4.17.19 in /extensions/integration-tests (#11397)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:47:03 -07:00
dependabot[bot]
54e3df8e84 Bump lodash from 4.17.15 to 4.17.19 in /test/smoke (#11392)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:46:47 -07:00
dependabot[bot]
9efe275c39 Bump lodash from 4.17.15 to 4.17.19 in /extensions/schema-compare (#11393)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:46:23 -07:00
dependabot[bot]
27983d4c66 Bump lodash from 4.17.15 to 4.17.19 in /extensions/notebook (#11394)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:46:10 -07:00
dependabot[bot]
6f2d29ca57 Bump lodash from 4.17.15 to 4.17.19 in /extensions/azurecore (#11395)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:45:59 -07:00
dependabot[bot]
cdf173c4db Bump lodash from 4.17.15 to 4.17.19 in /extensions/cms (#11396)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:45:48 -07:00
dependabot[bot]
991b081977 Bump lodash from 4.17.15 to 4.17.19 in /extensions/mssql (#11398)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:44:46 -07:00
dependabot[bot]
3faadb72a3 Bump lodash from 4.17.15 to 4.17.19 in /extensions/dacpac (#11399)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:44:38 -07:00
dependabot[bot]
14262151e9 Bump lodash in /extensions/markdown-language-features (#11400)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.10 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.10...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:44:29 -07:00
dependabot[bot]
1c53a209bc Bump lodash from 4.17.15 to 4.17.19 in /extensions/resource-deployment (#11402)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:44:21 -07:00
dependabot[bot]
f1a13fae39 Bump lodash from 4.17.15 to 4.17.19 in /samples/sqlservices (#11401)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-17 08:43:53 -07:00
Alan Ren
b098ce64b5 expose realm field to the wizard UI (#11388)
* add realm

* optional fields

* use default values

* localized constant
2020-07-16 21:33:56 -07:00
chlafreniere
b96ea07d8f Test fix try finding text documents multiple times 2020-07-16 18:48:07 -07:00
Christopher Suh
48ef272c66 fix for dragged table name (#11376)
* fix for dragged table name

* escaped bracket characters

* fixed escaping brackets

* moved outer brackets

* using interpolated strings
2020-07-16 17:53:04 -04:00
Anthony Dresser
ddb6129d8b fix issues with smoke tests (#11381) 2020-07-16 14:10:00 -07:00
v-bbrady
309bb51812 updates copy for getting started tour in the command palette (#11383) 2020-07-16 13:59:57 -07:00
Anthony Dresser
c013e3fc27 default theme to light (#11358) 2020-07-16 13:38:18 -07:00
Anthony Dresser
9744d7796c fix array access issues with map iterators 2020-07-16 11:48:51 -07:00
Maddy
9b1eb53665 Test/highlight correct nb (#11348)
* unit test of the method

* stash changes

* revealActiveDocumentInViewlet test

* separate tests

* test on activate

* added tests

* feedback changes

* naming change
2020-07-16 10:55:46 -07:00
dependabot[bot]
b68b655fa5 Bump hoek from 4.2.0 to 4.2.1 (#11377)
Bumps [hoek](https://github.com/hapijs/hoek) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/hapijs/hoek/releases)
- [Commits](https://github.com/hapijs/hoek/compare/v4.2.0...v4.2.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 10:35:24 -07:00
dependabot[bot]
8b206a4d52 Bump lodash from 4.17.4 to 4.17.19 (#11364)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.4 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.4...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 10:33:19 -07:00
Alan Ren
16f24d8c6a fix the issue with explorer widget context menu (#11373) 2020-07-16 10:22:47 -07:00
Aasim Khan
021c01e0b6 Remove unstable import test (#11337)
* Remove unstable test

* removed the unstable test

* checking if activate does not throw error

* merged chagnes from master
2020-07-16 10:13:28 -07:00
dependabot[bot]
8322e5dc83 Bump lodash from 4.17.15 to 4.17.19 in /build (#11363)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 09:34:27 -07:00
dependabot[bot]
62b8ff4972 Bump lodash from 4.17.15 to 4.17.19 in /extensions/agent (#11361)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 09:34:07 -07:00
dependabot[bot]
6d679b6416 Bump lodash from 4.17.15 to 4.17.19 in /extensions/admin-tool-ext-win (#11360)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 09:33:52 -07:00
dependabot[bot]
0e81d04b98 Bump lodash from 4.17.15 to 4.17.19 in /extensions/arc (#11362)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 09:32:54 -07:00
Anthony Dresser
ac1237d51c bump smoke test extension 2020-07-16 08:00:13 +00:00
Anthony Dresser
8e5da8aa36 update linux build agent 2020-07-16 03:45:34 +00:00
Anthony Dresser
6098bffc99 distro 2020-07-15 19:36:29 -07:00
v-bbrady
cc78d6a8f0 accessibility fix: swaps header tags for label tags on most recent list (#11189)
* switches header tags on form to label tags

* fixes issue according to pr comments
2020-07-15 18:04:21 -07:00
Kim Santiago
0a1c2583cc Load connection from publish profile (#11263)
* initial changes for reading connection from profile

* connection string can now be read from publish.xml

* fix build errors and update test

* move publish profile tests to their own file

* cleanup

* update message

* fix string

* remove apiWrapper
2020-07-15 17:03:25 -07:00
ADS Merger
9d3f12d0b7 Merge from vscode 1b314ab317fbff7d799b21754326b7d849889ceb 2020-07-15 23:51:18 +00:00
Anthony Dresser
aae013d498 add option to open excel file externally (#11324) 2020-07-15 15:06:46 -07:00
v-bbrady
0fa23eb3b5 Bbrady/welcome page focus contrast #10616 (#11233)
* fixes focus \color contrast for welcome page

* removes dead code

* removes dead css

* merge

* merge
2020-07-15 14:16:53 -07:00
Charles Gagnon
f4a4127471 Remove ApiWrapper from sql-database-projects (#11345)
* Remove ApiWrapper

* fix compile error

* Use .resolves

* Check error messages

* Check for not called

* FIx global beforeEach/afterEach
2020-07-15 14:02:33 -07:00
Alan Ren
c7799168b0 post release vbump (#11351)
* v bump

* update vscode version
2020-07-15 09:21:35 -07:00
Alan Ren
59ad8b3e61 update change log and readme (#11352) 2020-07-15 08:46:09 -07:00
Arvind Ranasaria
f8f64340f6 New tests for NotebookServiceImpl module (#11250)
* Working tests Upto 97.5% coverage

* pr feedback

* pr feedback

* pr feedback and test bug fixes + 1 new test

* revert debug change
2020-07-14 23:08:58 -07:00
Benjin Dubishar
dc7e6f59bd Aligns how Import and New project flows work (#11184)
* Slight import refactor

* Test updates

* Adds test, sets script name for File extractType to projectName

* generating correct folder list

* Correctly setting serverId for Imports started from Object Explorer

* Adding regression test

* uncommented test check
2020-07-14 19:31:22 -07:00
Alan Ren
6147e1cba4 bump import extension version (#11346) 2020-07-14 17:47:36 -07:00
Kim Santiago
de69e73a9d Open sql projects in opened folder (#11333)
* open projects in workspace automatically

* add test

* fix for windows
2020-07-14 16:20:37 -07:00
Aasim Khan
24f6cd2e5b Removing ApiWrapper and adding sinon (#11340)
* Added sinon
removed api wrapper
removed unnecesaary utils

* merged from testfix

* merged from aasim/import/downloadTestFix

* merge from aasim/import/downloadTestFix
2020-07-14 14:53:18 -07:00
Aasim Khan
cabbbb56f2 bumping up the services version to 0.0.4 (#11341) 2020-07-14 14:52:05 -07:00
Charles Gagnon
1b616acfdb Remove ApiWrapper from mssql extension (#11336) 2020-07-14 10:59:55 -07:00
Charles Gagnon
cbf3cd7445 Remove AzureCore ApiWrapper (#11335) 2020-07-13 18:11:54 -07:00
Charles Gagnon
9e6056968b Add Sinon docs to test README (#11332) 2020-07-13 18:03:17 -07:00
Anthony Dresser
6e9e97f711 fix screenshots for smoketests (#11334) 2020-07-13 16:34:49 -07:00
Alan Ren
11aa2b73b4 update ASDE strings (#11317)
* update strings

* comments

* update license term link
2020-07-13 15:40:06 -07:00
Amir Omidi
22f85ad4ff Handle don't ask again button (#11236)
* Handle don't ask again button

* Change to ignore

* Change language

* Pass in tenant name and ID

* Fix message

* Don't allow common tenant to get interaction required prompt

* Move things around
2020-07-13 14:52:41 -07:00
Amir Omidi
3c0d819911 Fixes the declarative table issue (#11330) 2020-07-13 14:35:35 -07:00
Anthony Dresser
351ab2f40f fix default connection group by changing ordering of groups (#11303) 2020-07-13 13:25:05 -07:00
Anthony Dresser
286c021df9 Fix access to query editor configuration (#11321)
* fix access to query editor configuration

* fix configuration type

* fix setting type
2020-07-13 13:05:36 -07:00
Amir Omidi
ff979f90d1 Optional PII logging (#11322)
* Start with logger

* allow user to enable PII logging

* prefix the log
2020-07-13 13:05:00 -07:00
Kim Santiago
347c193455 Add main controller tests for a few extensions (#11307)
* add a few tests

* fix errors

* undo change

* move registering commands to extension.ts for dacpac and schema compare

* undo createController() addition

* fix whitespace
2020-07-13 09:59:12 -07:00
Charles Gagnon
1e62030581 Revert to previous behavior for tree data providers getChildren (#11308)
* Revert to previous behavior for tree data providers without resolve support

* Add another sql carbon edit
2020-07-13 09:48:28 -07:00
Arvind Ranasaria
32c3a13f7b Phase 3 of notebookEditor tests (#11188)
* Phase 3 of notebookEditor tests

* update visibility for visibility tests

* saving in progress version to switch tasks

* remove inadvertent change

* corner cases tests to drive to 100%

* remove commented code

* pr feedback
2020-07-13 03:06:19 -07:00
Sakshi Sharma
81008d3803 Mark failing schema compare test as unstable (#11310) 2020-07-12 07:57:32 -07:00
Udeesha Gautam
ab9fceec70 Dacpac extensions tests - for investigation (#11192)
* Adding some tests for dacpac extension to understand how coverage gets affected

* Added config page tests

* Fixing PR issues
2020-07-11 13:45:50 -07:00
Anthony Dresser
d2bdd2bace web smoke tests (#11280)
* distro

* renable web smoke

* add missing script

* update node version

* update node version everywhere

* ensure playwright drivers are installed

* fix screenshot capture

* try this

* rewrite connection dialog code

* fix permissions

* more wip

* replace more $ with ^

* revert changes

* refactor and revert more changes

* add screen shot functionality to playwright

* fix compile

* fix profiler compile

* don't run new files for web

* continue on error for web

* continue on error for web not normal

* revert some changes
2020-07-10 22:12:45 -07:00
Alan Ren
e2b52b97c8 fix insight details dialog issue (#11309)
* fix show details dialog

* update viewlet id
2020-07-10 18:07:39 -07:00
Aasim Khan
df8f5ae3a6 Additional tests for the import wizard (#11273)
* Setting up tests on import extension

* -Added API wrappers for all the azdata and vscode APIs to make them easily mockable
-Added some unit tests for the import extension
-Some code logic separations

* -added code report for the import extension in ci

* Did some more code refractoring

* -Added json report generation

* updated vscodetestcoverage to latest version in import extension.

* -remove duplicate codecoverageConfig.json

* -Added some modifyColumnPage tests

* pushing temp changes

* -Added some more testcases

* -Added tests using available vscode and azdata apis

* some minor comment change

* removed unnecessary test

* added accidently removed test

* Added some comments

* fixed some broken tests and added comments in fileConfigPage

* code clean up and some more comments

* fixed the prosePreviewPage test and the download test

* added getter and setters

* Increasing timeout and fixing a comment

* removed unnecessary comments and some other code cleanup

* Deleting dotnet files before redownloading them

* - made changes in the PR
- Moved extensioncode to utils.test for better reusability

* added some 'should' messages
2020-07-10 15:34:44 -07:00
Christopher Suh
30e8edd875 added name (#11302) 2020-07-10 18:16:01 -04:00
Anthony Dresser
6d6abdff7d fix configuration access for grid (#11299) 2020-07-10 14:51:10 -07:00
Vasu Bhog
e714c876c2 Onboarding Pull Request (#11298)
Co-authored-by: Vasu Bhog <vasubhog@Vasus-MacBook-Pro.local>
2020-07-10 16:17:35 -05:00
Charles Gagnon
3db33de69f Add new ViewContainerLocation for dialogs (#11289) 2020-07-10 14:09:16 -07:00
Charles Gagnon
0835d3ed0f Only throw if releaseNotesUrl doesn't exist (#11295) 2020-07-10 12:31:55 -07:00
Sakshi Sharma
3e860692a2 Add missing await (#11275)
* Add missing await

* Addressed comment
2020-07-10 11:26:18 -07:00
Vladimir Chernov
95b024ed66 Updated README file for Sql Assessment extension (#11293) 2020-07-10 20:56:46 +03:00
Charles Gagnon
16329d6749 Remove unused ViewPane implementation (#11290) 2020-07-10 10:52:02 -07:00
Charles Gagnon
1ce24fae05 Filter to just BDC for create new controller action (#11291) 2020-07-10 10:15:34 -07:00
Lucy Zhang
826a0cf9ec added name to developers.ts (#11288) 2020-07-10 10:02:46 -07:00
Charles Gagnon
399bac33f4 Add empty azdata extension (#11281) 2020-07-10 08:13:39 -07:00
Chris LaFreniere
171f091c88 Fix no books currently selected error in viewlet (#11269)
* Fix no books currently selected error

* check sections undefined vs length
2020-07-09 23:14:46 -07:00
Kim Santiago
7d5ecfe905 Add "Import New Database Project" to dashboard toolbar (#11229)
* add import database project to database and server dashboard home toolbar

* connection profile is getting passed to the extension

* use MenuItemAction instead of creating a new one

* move database picking

* add comment

* add helper function
2020-07-09 16:47:55 -07:00
Aasim Khan
1796b519e5 Fixed a Bug where csv is treated as txt file by import wizard (#11271)
* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* Fixed the bug where CSVs were treated as TXT files

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-07-09 15:01:48 -07:00
Amir Omidi
c334a95d35 Fixes the SSMS launch issue (#11257)
* Fixes the SSMS launch issue

* Spelling
2020-07-09 14:04:53 -07:00
Alan Ren
5a275209cc fix account dropdown list issue (#11266)
* fix the empty account list issue

* remove comments
2020-07-09 13:58:07 -07:00
Maddy
9c0f415bd9 Feat/search in books (#11117)
* clean up unsavedBooks to providedBooks

* added notebooks viewley contribution

* added notebookExporerAction context

* temp shortcut key B

* remove commenred code

* changes with master merge

* fix comments

* initial tests

* fix casing and description

* merged master and resolved errors

* initial commit

* search view changes

* remove extension point & add custom view container

* merge latest from master

* remove unused files

* move book images to common

* remove notebookExplorer contrib & move to notebook

* build fix

* remove explorer specific sryles from common

* vscode convention to define container actions

* rename notebooks/title

* show collapsible search view separately

* style changes

* rename method

* code cleanup

* enable search on type

* merged master and resolved compile errors

* highlight fix

* code cleanup

* rename interface

* fix hygiene floating promises errors

* more hygiene errors

* avoid circular dependency

* new ids for notebookSearch actions

* reuse SearchSortOrder from search

* merged main and resolved compile errors

* reuse search code

* vscode merge regression on highlight

* extend searchView

* missed resoved files

* null to undefined

* make treeView readonly

* revert carbon edit

* address PR comments

* convert async
2020-07-09 13:13:36 -07:00
Anthony Dresser
a69032e317 fix issues with file menu commands (#11254) 2020-07-08 18:52:26 -07:00
Kim Santiago
7176c7f42f move load profile button to top of publish dialog (#11264) 2020-07-08 17:30:38 -07:00
Vladimir Chernov
f5a16de2a4 SQL Assessment display name and description update (#11253)
Co-authored-by: Vladimir Chernov <Vladimir.Chernov@viacode.com>
2020-07-08 14:40:39 -07:00
Charles Gagnon
2a7483c036 Fix error when calling getParent (#11252) 2020-07-08 14:23:52 -07:00
Charles Gagnon
ae908530e2 Fix ModelView tree components to keep custom state (#11239)
* Fix ModelView tree components to keep custom state

* override postGetChildren

* deepClone
2020-07-08 13:05:54 -07:00
Charles Gagnon
b3a01fcf77 Remove ApiWrapper from notebook extension (#11224)
* Remove ApiWrapper in notebook extension

* delete file

* Remove copyrights
2020-07-08 11:06:32 -07:00
Alan Ren
449a46d7fc fix the storage object parent (#11243) 2020-07-08 10:00:46 -07:00
Alan Ren
b3121fae22 remove px from width string and then parse (#11241) 2020-07-07 22:00:58 -07:00
Kim Santiago
f95cb5f5d3 don't update database name to master (#11216) 2020-07-07 16:50:59 -07:00
Chris LaFreniere
5f8180ebbf Add Notebook Completion Item Provider Unit Tests (#11222)
* completion item provider tests

* Add nb completionItemProvider tests
2020-07-07 12:48:22 -07:00
Cory Rivera
f409abfc01 Disable python downloads when running notebooks on a SAW. (#11186) 2020-07-07 11:32:05 -07:00
v-bbrady
9f0584f88f removes more link from list element into div (#11218) 2020-07-07 11:06:44 -07:00
Alan Ren
3cf48fb207 SQL Edge deployment using Azure IoT hub (#11202)
* Azure IoT deployment type

* more updates

* organize fields

* a few more improvements

* resolve merge issues

* new rg improvement

* fix tests

* comments 1

* comments 2
2020-07-07 10:36:26 -07:00
Kim Santiago
3084867d7e pass connection profile to extension contributed commands in dashboard toolbar (#11217) 2020-07-07 10:34:04 -07:00
Maddy
ac78822d90 set currentMatch on find changes only (#11215) 2020-07-06 17:33:22 -07:00
Christopher Suh
aa4045c8a9 ServerTreeView unit tests (#11207)
* added unit tests

* removed newlines
2020-07-06 20:25:07 -04:00
Barbara Valdez
2a6fcee913 Add more tests to local content manager (#10350)
* Add more tests

* Add descriptive messages to asserts and remove formats check

* Address comments
2020-07-06 16:58:19 -07:00
Anthony Dresser
6d94d79527 distro (#11210) 2020-07-06 14:11:33 -07:00
v-bbrady
eabacae0c0 fixes show all extensions button #10445 #10625 (#11104)
* fixes button alignment and missing icons issues with ads welcome page

* removes dead code, registers new Button

* creates one button component and adds proper attributes depending on platform

* Add CodeQL Analysis workflow (#10195)

* Add CodeQL Analysis workflow

* Fix path

* adds return types to functions

* fixes show all extensions command

* formats css

* fixes layering issue

* updates querySelectors to be more specific

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-07-06 14:01:08 -07:00
Amir Omidi
84a7d1916a Fixes the azure account pane location (#11211) 2020-07-06 13:32:23 -07:00
Kim Santiago
b238819c89 Standardize slashes in sqlproj (#11174)
* standardize slashes that go in sqlproj

* update tests to not have os specific baselines

* fix test

* fix delete tests

* some cleanup
2020-07-06 13:17:55 -07:00
Amir Omidi
b0cab3125e Revert "Prints out the actual error that happened" (#11212)
* Revert "Prints out the actual error that happened (#11208)"

This reverts commit 6eb88924f6.

* Fix the JSON.stringify
2020-07-06 12:23:46 -07:00
Amir Omidi
0043a7f93b Change branding of linux version (#11133) 2020-07-06 12:04:11 -07:00
Amir Omidi
6eb88924f6 Prints out the actual error that happened (#11208) 2020-07-06 11:58:14 -07:00
Kim Santiago
ac71c6f06d Add "Open Containing Folder" to project context menu (#11187)
* add command to open the folder the project is in

* move commands to constants
2020-07-06 11:42:25 -07:00
2588 changed files with 114584 additions and 69230 deletions

View File

@@ -3,7 +3,7 @@
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
#-------------------------------------------------------------------------------------------------------------
FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:0-10
FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:0-12
ARG TARGET_DISPLAY=":1"

View File

@@ -6,9 +6,9 @@ This repository includes configuration for a development container for working w
## Quick start - local
1. Install Docker Desktop or Docker on your local machine. (See [docs](https://aka.ms/vscode-remote/containers/getting-started) for additional details.)
1. Install Docker Desktop or Docker for Linux on your local machine. (See [docs](https://aka.ms/vscode-remote/containers/getting-started) for additional details.)
2. [Docker Desktop] If you are not using the new WSL2 Docker Desktop engine, increase the resources allocated to Docker Desktop to at least **4 Cores and 4 GB of RAM (8 GB recommended)**. Right-click on the Docker status bar item, go to **Preferences/Settings > Resources > Advanced** to do so.
2. **Important**: Docker needs at least **4 Cores and 6 GB of RAM (8 GB recommended)** to run full build. If you on macOS, or using the old Hyper-V engine for Windows, update these values for Docker Desktop by right-clicking on the Docker status bar item, going to **Preferences/Settings > Resources > Advanced**.
> **Note:** The [Resource Monitor](https://marketplace.visualstudio.com/items?itemName=mutantdino.resourcemonitor) extension is included in the container so you can keep an eye on CPU/Memory in the status bar.
@@ -44,7 +44,7 @@ Next: **[Try it out!](#try-it)**
3. Press <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> and select **Codespaces: Create New Codespace**.
4. Use default settings, select a plan, and then enter the repository URL `https://github.com/microsoft/vscode` (or a branch or PR URL) in the input box when prompted.
4. Use default settings (which should include **Standard** 4 core, 8 GB RAM Codespace), select a plan, and then enter the repository URL `https://github.com/microsoft/vscode` (or a branch or PR URL) in the input box when prompted.
5. After the container is running, open a web browser and go to [http://localhost:6080](http://localhost:6080) or use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.

View File

@@ -12,7 +12,11 @@
}
},
"overrideCommand": false,
"runArgs": ["--init"],
"runArgs": [
"--init",
// seccomp=unconfined is required for Chrome sandboxing
"--security-opt", "seccomp=unconfined"
],
"settings": {
// zsh is also available

View File

@@ -5,6 +5,7 @@
**/vs/loader.js
**/insane/**
**/marked/**
**/markjs/**
**/test/**/*.js
**/node_modules/**
**/vscode-api-tests/testWorkspace/**

View File

@@ -682,6 +682,20 @@
"**/{vs,sql}/workbench/services/**/{common,browser}/**"
]
},
{
"target": "**/{vs,sql}/workbench/contrib/notebook/common/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/**/{common,worker}/**",
"**/{vs,sql}/platform/**/common/**",
"**/{vs,sql}/editor/**",
"**/{vs,sql}/workbench/common/**",
"**/{vs,sql}/workbench/api/common/**",
"**/{vs,sql}/workbench/services/**/common/**",
"**/{vs,sql}/workbench/contrib/**/common/**"
]
},
{
"target": "**/{vs,sql}/workbench/contrib/**/common/**",
"restrictions": [
@@ -717,7 +731,9 @@
"chart.js",
"plotly.js-dist-min",
"angular2-grid",
"html-query-plan"
"html-query-plan",
"turndown",
"mark.js"
]
},
{
@@ -764,6 +780,18 @@
"*" // node modules
]
},
{
"target": "**/{vs,sql}/code/browser/**",
"restrictions": [
"vs/nls",
"vs/css!./**/*",
"**/{vs,sql}/base/**/{common,browser}/**",
"**/{vs,sql}/base/parts/**/{common,browser}/**",
"**/{vs,sql}/platform/**/{common,browser}/**",
"**/{vs,sql}/code/**/{common,browser}/**",
"**/{vs,sql}/workbench/workbench.web.api"
]
},
{
"target": "**/{vs,sql}/code/node/**",
"restrictions": [
@@ -834,6 +862,18 @@
"**/{vs,sql}/workbench/workbench.common.main"
]
},
{
"target": "**/src/{vs,sql}/workbench/workbench.web.api.ts",
"restrictions": [
"vs/nls",
"**/{vs,sql}/base/**/{common,browser}/**",
"**/{vs,sql}/base/parts/**/{common,browser}/**",
"**/{vs,sql}/platform/**/{common,browser}/**",
"**/{vs,sql}/editor/**",
"**/{vs,sql}/workbench/**/{common,browser}/**",
"**/{vs,sql}/workbench/workbench.web.main"
]
},
{
"target": "**/src/{vs,sql}/workbench/workbench.sandbox.main.ts",
"restrictions": [

1
.gitignore vendored
View File

@@ -24,6 +24,7 @@ out-vscode-reh-web-min/
out-vscode-reh-web-pkg/
out-vscode-web/
out-vscode-web-min/
out-vscode-web-pkg/
src/vs/server
resources/server
build/node_modules

View File

@@ -4,7 +4,6 @@
"recommendations": [
"dbaeumer.vscode-eslint",
"EditorConfig.EditorConfig",
"msjsdiag.debugger-for-chrome",
"ms-vscode.vscode-github-issue-notebooks"
"msjsdiag.debugger-for-chrome"
]
}

22
.vscode/launch.json vendored
View File

@@ -19,7 +19,8 @@
"timeout": 30000,
"port": 5870,
"outFiles": [
"${workspaceFolder}/out/**/*.js"
"${workspaceFolder}/out/**/*.js",
"${workspaceFolder}/extensions/*/out/**/*.js"
]
},
{
@@ -68,10 +69,9 @@
}
},
{
"type": "pwa-chrome",
"type": "chrome",
"request": "attach",
"name": "Attach to azuredatastudio",
"timeout": 50000,
"port": 9222
},
{
@@ -90,29 +90,32 @@
"port": 9222,
"timeout": 20000,
"env": {
"VSCODE_EXTHOST_WILL_SEND_SOCKET": null
"VSCODE_EXTHOST_WILL_SEND_SOCKET": null,
"VSCODE_SKIP_PRELAUNCH": "1"
},
"cleanUp": "wholeBrowser",
"breakOnLoad": false,
"urlFilter": "*workbench.html*",
"runtimeArgs": [
"--inspect=5875",
"--no-cached-data",
],
"webRoot": "${workspaceFolder}",
// Settings for js-debug:
"cascadeTerminateToConfigurations": [
"Attach to Extension Host"
],
"userDataDir": false,
"pauseForSourceMap": false,
"outFiles": [
"${workspaceFolder}/out/**/*.js"
],
"browserLaunchLocation": "workspace"
"browserLaunchLocation": "workspace",
"preLaunchTask": "Ensure Prelaunch Dependencies",
},
{
"type": "chrome",
"type": "node",
"request": "launch",
"name": "Launch ADS (Web) (TBD)",
"program": "${workspaceFolder}/resources/serverless/code-web.js",
"program": "${workspaceFolder}/resources/web/code-web.js",
"presentation": {
"group": "0_vscode",
"order": 2
@@ -273,6 +276,7 @@
"Attach to Extension Host",
"Attach to Shared Process",
],
"preLaunchTask": "Ensure Prelaunch Dependencies",
"presentation": {
"group": "0_vscode",
"order": 1

38
.vscode/notebooks/api.github-issues vendored Normal file
View File

@@ -0,0 +1,38 @@
[
{
"kind": 1,
"language": "markdown",
"value": "#### Config",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repo=repo:microsoft/vscode\n$milestone=milestone:\"August 2020\"",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "### Finalization",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repo $milestone label:api-finalization",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "### Proposals",
"editable": true
},
{
"kind": 2,
"language": "github-issues",
"value": "$repo $milestone is:open label:api-proposal ",
"editable": true
}
]

View File

@@ -11,6 +11,18 @@
"value": "$inbox=repo:microsoft/vscode is:open no:assignee -label:feature-request -label:testplan-item -label:plan-item ",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "## Inbox tracking and Issue triage",
"editable": true
},
{
"kind": 1,
"language": "markdown",
"value": "New issues or pull requests submitted by the community are initially triaged by an [automatic classification bot](https://github.com/microsoft/vscode-github-triage-actions/tree/master/classifier-deep). Issues that the bot does not correctly triage are then triaged by a team member. The team rotates the inbox tracker on a weekly basis.\n\nA [mirror](https://github.com/JacksonKearl/testissues/issues) of the VS Code issue stream is available with details about how the bot classifies issues, including feature-area classifications and confidence ratings. Per-category confidence thresholds and feature-area ownership data is maintained in [.github/classifier.json](https://github.com/microsoft/vscode/blob/master/.github/classifier.json). \n\n💡 The bot is being run through a GitHub action that runs every 30 minutes. Give the bot the opportunity to classify an issue before doing it manually.\n\n### Inbox Tracking\n\nThe inbox tracker is responsible for the [global inbox](https://github.com/Microsoft/vscode/issues?utf8=%E2%9C%93&q=is%3Aopen+no%3Aassignee+-label%3Afeature-request+-label%3Atestplan-item+-label%3Aplan-item) containing all **open issues and pull requests** that\n- are neither **feature requests** nor **test plan items** nor **plan items** and\n- have **no owner assignment**.\n\nThe **inbox tracker** may perform any step described in our [issue triaging documentation](https://github.com/microsoft/vscode/wiki/Issues-Triaging) but its main responsibility is to route issues to the actual feature area owner.\n\nFeature area owners track the **feature area inbox** containing all **open issues and pull requests** that\n- are personally assigned to them and are not assigned to any milestone\n- are labeled with their feature area label and are not assigned to any milestone.\nThis secondary triage may involve any of the steps described in our [issue triaging documentation](https://github.com/microsoft/vscode/wiki/Issues-Triaging) and results in a fully triaged or closed issue.\n\nThe [github triage extension](https://github.com/microsoft/vscode-github-triage-extension) can be used to assist with triaging — it provides a \"Command Palette\"-style list of triaging actions like assignment, labeling, and triggers for various bot actions.",
"editable": true
},
{
"kind": 1,
"language": "markdown",
@@ -32,7 +44,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$inbox",
"editable": false
"value": "$inbox -label:emmet",
"editable": true
}
]

View File

@@ -8,7 +8,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks\n\n// current milestone name\n$milestone=milestone:\"June 2020\"",
"value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks\n\n// current milestone name\n$milestone=milestone:\"August 2020\"",
"editable": true
},
{

View File

@@ -14,7 +14,7 @@
{
"kind": 2,
"language": "github-issues",
"value": "$repos=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks \n$milestone=milestone:\"June 2020\"",
"value": "$repos=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks \n$milestone=milestone:\"July 2020\"",
"editable": true
},
{
@@ -44,7 +44,8 @@
{
"kind": 1,
"language": "markdown",
"value": "### All"
"value": "### All",
"editable": true
},
{
"kind": 2,

View File

@@ -2,7 +2,7 @@
# Flags: CaseSensitive WordMatch
# ContextLines: 2
16 results - 5 files
14 results - 4 files
src/vs/base/browser/dom.ts:
81 };
@@ -34,24 +34,11 @@ src/vs/base/common/arrays.ts:
420 */
421 export function first<T>(array: ReadonlyArray<T>, fn: (item: T) => boolean, notFoundValue: T): T;
560
561 /**
562: * @deprecated ES6: use `Array.find`
563 */
564 export function find<T>(arr: ArrayLike<T>, predicate: (value: T, index: number, arr: ArrayLike<T>) => any): T | undefined {
src/vs/base/common/map.ts:
11
12 /**
13: * @deprecated ES6: use `[...SetOrMap.values()]`
14 */
15 export function values<V = any>(set: Set<V>): V[];
22
23 /**
24: * @deprecated ES6: use `[...map.keys()]`
25 */
26 export function keys<K, V>(map: Map<K, V>): K[] {
568
569 /**
570: * @deprecated ES6: use `Array.find`
571 */
572 export function find<T>(arr: ArrayLike<T>, predicate: (value: T, index: number, arr: ArrayLike<T>) => any): T | undefined {
src/vs/base/common/objects.ts:
115

111
.vscode/tasks.json vendored
View File

@@ -3,12 +3,8 @@
"tasks": [
{
"type": "npm",
"script": "watchd",
"label": "Build VS Code",
"group": {
"kind": "build",
"isDefault": true
},
"script": "watch-clientd",
"label": "Build VS Code Core",
"isBackground": true,
"presentation": {
"reveal": "never"
@@ -26,11 +22,76 @@
"message": 3
},
"background": {
"beginsPattern": "\\[watch-client\\].*Starting compilation",
"endsPattern": "\\[watch-client\\].*Finished compilation"
"beginsPattern": "Starting compilation",
"endsPattern": "Finished compilation"
}
}
},
{
"type": "npm",
"script": "watch-extensionsd",
"label": "Build VS Code Extensions",
"isBackground": true,
"presentation": {
"reveal": "never"
},
"problemMatcher": {
"owner": "typescript",
"applyTo": "closedDocuments",
"fileLocation": [
"absolute"
],
"pattern": {
"regexp": "Error: ([^(]+)\\((\\d+|\\d+,\\d+|\\d+,\\d+,\\d+,\\d+)\\): (.*)$",
"file": 1,
"location": 2,
"message": 3
},
"background": {
"beginsPattern": "Starting compilation",
"endsPattern": "Finished compilation"
}
}
},
{
"label": "Build VS Code",
"dependsOn": [
"Build VS Code Core",
"Build VS Code Extensions"
],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"type": "npm",
"script": "kill-watch-clientd",
"label": "Kill Build VS Code Core",
"group": "build",
"presentation": {
"reveal": "never"
},
"problemMatcher": "$tsc"
},
{
"type": "npm",
"script": "kill-watch-extensionsd",
"label": "Kill Build VS Code Extensions",
"group": "build",
"presentation": {
"reveal": "never"
},
"problemMatcher": "$tsc"
},
{
"label": "Kill Build VS Code",
"dependsOn": [
"Kill Build VS Code Core",
"Kill Build VS Code Extensions"
],
"group": "build"
},
{
"type": "npm",
"script": "strict-vscode-watch",
@@ -45,16 +106,6 @@
"applyTo": "allDocuments"
}
},
{
"type": "npm",
"script": "kill-watchd",
"label": "Kill Build VS Code",
"group": "build",
"presentation": {
"reveal": "never"
},
"problemMatcher": "$tsc"
},
{
"type": "npm",
"script": "watch-webd",
@@ -88,7 +139,7 @@
"label": "Kill Build Web Extensions",
"group": "build",
"presentation": {
"reveal": "never",
"reveal": "never"
},
"problemMatcher": "$tsc"
},
@@ -149,6 +200,28 @@
"source": "eslint",
"base": "$eslint-stylish"
}
},
{
"type": "shell",
"command": "node build/lib/preLaunch.js",
"label": "Ensure Prelaunch Dependencies",
"presentation": {
"reveal": "silent"
}
},
{
"type": "npm",
"script": "tsec-compile-check",
"problemMatcher": [
{
"base": "$tsc",
"applyTo": "allDocuments",
"owner": "tsec"
},
],
"group": "build",
"label": "npm: tsec-compile-check",
"detail": "node_modules/tsec/bin/tsec -p src/tsconfig.json --noEmit"
}
]
}

View File

@@ -1,3 +1,3 @@
disturl "https://atom.io/download/electron"
target "7.3.2"
target "9.2.1"
runtime "electron"

View File

@@ -1,5 +1,35 @@
# Change Log
## Version 1.21.0
* Release date: August 12, 2020
* Release status: General Availability
* New Notebook Features
* Move cell locations changd
* Added action to convert cells to Text Cell or Code cell
* Jupyter Books picker to open Jupyter Books directly from Github
* Search bar added to Notebooks Viewlet for searching through Jupyter Books
* Address issues in [August 2020 Milestone](https://github.com/microsoft/azuredatastudio/milestone/59?closed=1)
## Version 1.20.1
* Release date: July 17, 2020
* Release status: General Availability
* Fix bug #11372 Object Explorer drag-and-drop table incorrectly wraps table names [#11372](https://github.com/microsoft/azuredatastudio/issues/11372)
* Fix bug #11356 Dark theme is now the default theme [#11356](https://github.com/microsoft/azuredatastudio/issues/11356)
* Known Issues:
* Some users have reported connection errors from the new Microsoft.Data.SqlClient v2.0.0 included in this release. Users have found [following these instructions](https://github.com/microsoft/azuredatastudio/issues/11367#issuecomment-659614111) to successfully connect. This issue was caused by a client driver update which fixed an issue where TLS encryption wasn't enforced correctly. See https://github.com/dotnet/SqlClient/blob/master/release-notes/2.0/2.0.0.md#breaking-changes-1 and https://docs.microsoft.com/en-us/sql/relational-databases/native-client/features/using-encryption-without-validation for more information.
## Version 1.20.0
* Release date: July 15, 2020
* Release status: General Availability
* Feature Tour
* New Notebook Features
* Header support in Markdown Toolbar
* Side-by-side Markdown preview in Text Cells
* Drag and drop columns and tables into Query Editor
* Azure Account icon added to Activity Bar
* Address issues in [July 2020 Milestone](https://github.com/microsoft/azuredatastudio/milestone/57?closed=1)
* Bug fixes
## Version 1.19.0
* Release date: June 15, 2020
* Release status: General Availability

View File

@@ -129,10 +129,10 @@ Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the [Source EULA](LICENSE.txt).
[win-user]: https://go.microsoft.com/fwlink/?linkid=2132348
[win-system]: https://go.microsoft.com/fwlink/?linkid=2132347
[win-zip]: https://go.microsoft.com/fwlink/?linkid=2132518
[osx-zip]: https://go.microsoft.com/fwlink/?linkid=2132519
[linux-zip]: https://go.microsoft.com/fwlink/?linkid=2132349
[linux-rpm]: https://go.microsoft.com/fwlink/?linkid=2132351
[linux-deb]: https://go.microsoft.com/fwlink/?linkid=2132350
[win-user]: https://go.microsoft.com/fwlink/?linkid=2138608
[win-system]: https://go.microsoft.com/fwlink/?linkid=2138704
[win-zip]: https://go.microsoft.com/fwlink/?linkid=2138705
[osx-zip]: https://go.microsoft.com/fwlink/?linkid=2138609
[linux-zip]: https://go.microsoft.com/fwlink/?linkid=2138706
[linux-rpm]: https://go.microsoft.com/fwlink/?linkid=2138507
[linux-deb]: https://go.microsoft.com/fwlink/?linkid=2138508

View File

@@ -41,6 +41,7 @@ expressly granted herein, whether by implication, estoppel or otherwise.
JupyterLab: https://github.com/jupyterlab/jupyterlab
keytar: https://github.com/atom/node-keytar
make-error: https://github.com/JsCommunity/make-error
mark.js: https://github.com/julmot/mark.js
minimist: https://github.com/substack/minimist
moment: https://github.com/moment/moment
native-keymap: https://github.com/Microsoft/node-native-keymap
@@ -63,6 +64,8 @@ expressly granted herein, whether by implication, estoppel or otherwise.
svg.js: https://github.com/svgdotjs/svg.js
systemjs: https://github.com/systemjs/systemjs
temp-write: https://github.com/sindresorhus/temp-write
turndown: https://github.com/domchristie/turndown
turndown-plugin-gfm: https://github.com/domchristie/turndown-plugin-gfm
underscore: https://github.com/jashkenas/underscore
v8-profiler: https://github.com/node-inspector/v8-profiler
vscode: https://github.com/microsoft/vscode
@@ -1254,6 +1257,32 @@ ISC © Julien Fontanet
=========================================
END OF make-error NOTICES AND INFORMATION
%% mark.js NOTICES AND INFORMATION BEGIN HERE
=========================================
The MIT License (MIT)
Copyright (c) 20142019 Julian Kühnel
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
=========================================
END OF mark.js NOTICES AND INFORMATION
%% minimist NOTICES AND INFORMATION BEGIN HERE
=========================================
This software is released under the MIT license:
@@ -2002,6 +2031,58 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
=========================================
END OF temp-write NOTICES AND INFORMATION
%% turndown NOTICES AND INFORMATION BEGIN HERE
=========================================
MIT License
Copyright (c) 2017 Dom Christie
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
=========================================
END OF turndown NOTICES AND INFORMATION
%% turndown-plugin-gfm NOTICES AND INFORMATION BEGIN HERE
=========================================
MIT License
Copyright (c) 2017 Dom Christie
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
=========================================
END OF turndown-plugin-gfm NOTICES AND INFORMATION
%% underscore NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright (c) 2009-2017 Jeremy Ashkenas, DocumentCloud and Investigative

View File

@@ -286,9 +286,9 @@ nice-try@^1.0.4:
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
node-fetch@^2.3.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
version "2.6.1"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
npm-run-path@^2.0.0:
version "2.0.2"

View File

@@ -1,7 +1,7 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3 # {{SQL CARBON EDIT}} update version
inputs:
@@ -50,7 +50,7 @@ steps:
displayName: Run Unit Tests (Electron)
# - script: | {{SQL CARBON EDIT}} disable
# yarn test-browser --browser chromium --browser webkit --browser firefox
# yarn test-browser --browser chromium --browser webkit --browser firefox --tfs "Browser Unit Tests"
# displayName: Run Unit Tests (Browser)
# - script: | {{SQL CARBON EDIT}} disable

View File

@@ -21,7 +21,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
@@ -101,7 +101,7 @@ steps:
- script: |
set -e
yarn test-browser --build --browser chromium --browser webkit --browser firefox
yarn test-browser --build --browser chromium --browser webkit --browser firefox --tfs "Browser Unit Tests"
displayName: Run unit tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
@@ -118,6 +118,13 @@ steps:
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin" \
./resources/server/test/test-web-integration.sh --browser webkit
displayName: Run integration tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/VSCode-darwin
@@ -128,13 +135,6 @@ steps:
displayName: Run remote integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin" \
./resources/server/test/test-web-integration.sh --browser webkit
displayName: Run integration tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/VSCode-darwin
@@ -160,6 +160,13 @@ steps:
continueOnError: true
condition: failed()
- task: PublishTestResults@2
displayName: Publish Tests Results
inputs:
testResultsFiles: '*-results.xml'
searchFolder: '$(Build.ArtifactStagingDirectory)/test-results'
condition: succeededOrFailed()
- script: |
set -e
security create-keychain -p pwd $(agent.tempdirectory)/buildagent.keychain
@@ -204,13 +211,6 @@ steps:
zip -d $(agent.builddirectory)/VSCode-darwin.zip "*.pkg"
displayName: Clean Archive
- script: |
set -e
AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
node build/azure-pipelines/common/createAsset.js darwin-unnotarized archive "VSCode-darwin-$VSCODE_QUALITY.zip" $(agent.builddirectory)/VSCode-darwin.zip
displayName: Publish Unnotarized Build
- script: |
APP_ROOT=$(agent.builddirectory)/VSCode-darwin
APP_NAME="`ls $APP_ROOT | head -n 1`"

View File

@@ -27,11 +27,11 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: '10.15.3'
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:
versionSpec: '1.x'
versionSpec: "1.x"
- task: AzureKeyVault@1
displayName: 'Azure Key Vault: Get Secrets'
@@ -127,14 +127,17 @@ steps:
APP_NAME="`ls $APP_ROOT | head -n 1`"
yarn smoketest --build "$APP_ROOT/$APP_NAME" --screenshots "$(build.artifactstagingdirectory)/smokeshots"
displayName: Run smoke tests (Electron)
continueOnError: true
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
# - script: |
# set -e
# VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/azuredatastudio-reh-web-darwin" \
# yarn smoketest --web --headless --screenshots "$(build.artifactstagingdirectory)/smokeshots"
# displayName: Run smoke tests (Browser)
# condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
set -e
node ./node_modules/playwright/install.js
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/azuredatastudio-reh-web-darwin" \
yarn smoketest --web --headless --screenshots "$(build.artifactstagingdirectory)/smokeshots"
displayName: Run smoke tests (Browser)
continueOnError: true
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- script: |
set -e

View File

@@ -11,7 +11,7 @@ pr:
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: AzureKeyVault@1
displayName: 'Azure Key Vault: Get Secrets'

View File

@@ -1,7 +1,7 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.15.1'
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:

View File

@@ -11,7 +11,7 @@ pr:
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: AzureKeyVault@1
displayName: 'Azure Key Vault: Get Secrets'

View File

@@ -10,7 +10,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:
@@ -44,8 +44,8 @@ steps:
- script: | # {{SQL CARBON EDIT}} add strict null check
yarn strict-vscode
displayName: Run Strict Null Check
# - script: | {{SQL CARBON EDIT}} remove monaco editor checks
# yarn monaco-compile-check
# displayName: Run Monaco Editor Checks
@@ -67,7 +67,7 @@ steps:
displayName: Run Unit Tests (Electron)
# - script: | {{SQL CARBON EDIT}} disable
# DISPLAY=:10 yarn test-browser --browser chromium
# DISPLAY=:10 yarn test-browser --browser chromium --tfs "Browser Unit Tests"
# displayName: Run Unit Tests (Browser)
# - script: | {{SQL CARBON EDIT}} disable

View File

@@ -21,7 +21,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:

View File

@@ -21,7 +21,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
@@ -106,7 +106,7 @@ steps:
- script: |
set -e
DISPLAY=:10 yarn test-browser --build --browser chromium
DISPLAY=:10 yarn test-browser --build --browser chromium --tfs "Browser Unit Tests"
displayName: Run unit tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
@@ -123,6 +123,13 @@ steps:
displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-x64" \
DISPLAY=:10 ./resources/server/test/test-web-integration.sh --browser chromium
displayName: Run integration tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
APP_ROOT=$(agent.builddirectory)/VSCode-linux-x64
@@ -133,13 +140,6 @@ steps:
displayName: Run remote integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-x64" \
DISPLAY=:10 ./resources/server/test/test-web-integration.sh --browser chromium
displayName: Run integration tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- task: PublishPipelineArtifact@0
inputs:
artifactName: crash-dump-linux
@@ -148,6 +148,13 @@ steps:
continueOnError: true
condition: failed()
- task: PublishTestResults@2
displayName: Publish Tests Results
inputs:
testResultsFiles: '*-results.xml'
searchFolder: '$(Build.ArtifactStagingDirectory)/test-results'
condition: succeededOrFailed()
- script: |
set -e
yarn gulp "vscode-linux-x64-build-deb"

View File

@@ -1,7 +1,7 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:

View File

@@ -24,7 +24,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: '10.15.1'
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:
@@ -159,6 +159,45 @@ steps:
yarn gulp vscode-linux-x64-build-rpm
displayName: Build Rpm
- task: UseDotNet@2
displayName: 'Install .NET Core sdk for signing'
inputs:
packageType: sdk
version: 2.1.x
installationPath: $(Agent.ToolsDirectory)/dotnet
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
inputs:
ConnectedServiceName: 'Code Signing'
FolderPath: '$(Build.SourcesDirectory)/.build'
Pattern: 'extensions/*.vsix'
signConfigType: inlineSignParams
inlineOperation: |
[
{
"keyCode": "CP-233016",
"operationSetCode": "OpcSign",
"parameters": [
{
"parameterName": "FileDigest",
"parameterValue": "/fd \"SHA256\""
}
],
"toolName": "sign",
"toolVersion": "1.0"
},
{
"keyCode": "CP-233016",
"operationSetCode": "OpcVerify",
"parameters": [],
"toolName": "sign",
"toolVersion": "1.0"
}
]
SessionTimeout: 120
displayName: 'Signing Extensions'
condition: and(succeeded(), eq(variables['signed'], true))
- script: |
set -e
./build/azure-pipelines/linux/createDrop.sh
@@ -170,6 +209,7 @@ steps:
mkdir -p $(Build.ArtifactStagingDirectory)/test-results/coverage
cp --parents -r $(Build.SourcesDirectory)/extensions/*/coverage/** $(Build.ArtifactStagingDirectory)/test-results/coverage
displayName: Copy Coverage
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
- task: PublishTestResults@2
displayName: 'Publish Test Results test-results.xml'

View File

@@ -1,157 +1,3 @@
resources:
containers:
- container: vscode-x64
image: vscodehub.azurecr.io/vscode-linux-build-agent:x64
endpoint: VSCodeHub
- container: snapcraft
image: snapcore/snapcraft:stable
jobs:
- job: Compile
pool:
vmImage: 'Ubuntu-16.04'
container: vscode-x64
steps:
- template: product-compile.yml
- job: Windows
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
pool:
vmImage: VS2017-Win2016
variables:
VSCODE_ARCH: x64
dependsOn:
- Compile
steps:
- template: win32/product-build-win32.yml
- job: Windows32
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WIN32_32BIT'], 'true'))
pool:
vmImage: VS2017-Win2016
variables:
VSCODE_ARCH: ia32
dependsOn:
- Compile
steps:
- template: win32/product-build-win32.yml
- job: WindowsARM64
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WIN32_ARM64'], 'true'))
pool:
vmImage: VS2017-Win2016
variables:
VSCODE_ARCH: arm64
dependsOn:
- Compile
steps:
- template: win32/product-build-win32-arm64.yml
- job: Linux
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
container: vscode-x64
dependsOn:
- Compile
steps:
- template: linux/product-build-linux.yml
- job: LinuxSnap
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
container: snapcraft
dependsOn: Linux
steps:
- template: linux/snap-build-linux.yml
- job: LinuxArmhf
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
variables:
VSCODE_ARCH: armhf
dependsOn:
- Compile
steps:
- template: linux/product-build-linux-multiarch.yml
- job: LinuxArm64
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX_ARM64'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
variables:
VSCODE_ARCH: arm64
dependsOn:
- Compile
steps:
- template: linux/product-build-linux-multiarch.yml
- job: LinuxAlpine
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX_ALPINE'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
variables:
VSCODE_ARCH: alpine
dependsOn:
- Compile
steps:
- template: linux/product-build-linux-multiarch.yml
- job: LinuxWeb
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WEB'], 'true'))
pool:
vmImage: 'Ubuntu-16.04'
variables:
VSCODE_ARCH: x64
dependsOn:
- Compile
steps:
- template: web/product-build-web.yml
- job: macOS
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_MACOS'], 'true'))
pool:
vmImage: macOS-latest
dependsOn:
- Compile
steps:
- template: darwin/product-build-darwin.yml
- job: Release
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), or(eq(variables['VSCODE_RELEASE'], 'true'), and(or(eq(variables['VSCODE_QUALITY'], 'insider'), eq(variables['VSCODE_QUALITY'], 'exploration')), eq(variables['Build.Reason'], 'Schedule'))))
pool:
vmImage: 'Ubuntu-16.04'
dependsOn:
- Windows
- Windows32
- Linux
- LinuxSnap
- LinuxArmhf
- LinuxArm64
- LinuxAlpine
- macOS
steps:
- template: release.yml
- job: Mooncake
pool:
vmImage: 'Ubuntu-16.04'
condition: and(succeededOrFailed(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
dependsOn:
- Windows
- Windows32
- Linux
- LinuxSnap
- LinuxArmhf
- LinuxArm64
- LinuxAlpine
- LinuxWeb
- macOS
steps:
- template: sync-mooncake.yml
trigger: none
pr: none
@@ -160,4 +6,139 @@ schedules:
displayName: Mon-Fri at 7:00
branches:
include:
- main
- master
resources:
containers:
- container: vscode-x64
image: vscodehub.azurecr.io/vscode-linux-build-agent:x64
endpoint: VSCodeHub
- container: snapcraft
image: snapcore/snapcraft:stable
stages:
- stage: Compile
jobs:
- job: Compile
pool:
vmImage: 'Ubuntu-16.04'
container: vscode-x64
steps:
- template: product-compile.yml
- stage: Windows
dependsOn:
- Compile
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
pool:
vmImage: VS2017-Win2016
jobs:
- job: Windows
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
variables:
VSCODE_ARCH: x64
steps:
- template: win32/product-build-win32.yml
- job: Windows32
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32_32BIT'], 'true'))
variables:
VSCODE_ARCH: ia32
steps:
- template: win32/product-build-win32.yml
- job: WindowsARM64
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32_ARM64'], 'true'))
variables:
VSCODE_ARCH: arm64
steps:
- template: win32/product-build-win32-arm64.yml
- stage: Linux
dependsOn:
- Compile
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
pool:
vmImage: 'Ubuntu-16.04'
jobs:
- job: Linux
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
container: vscode-x64
steps:
- template: linux/product-build-linux.yml
- job: LinuxSnap
dependsOn:
- Linux
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
container: snapcraft
steps:
- template: linux/snap-build-linux.yml
- job: LinuxArmhf
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true'))
variables:
VSCODE_ARCH: armhf
steps:
- template: linux/product-build-linux-multiarch.yml
- job: LinuxArm64
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARM64'], 'true'))
variables:
VSCODE_ARCH: arm64
steps:
- template: linux/product-build-linux-multiarch.yml
- job: LinuxAlpine
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ALPINE'], 'true'))
variables:
VSCODE_ARCH: alpine
steps:
- template: linux/product-build-linux-multiarch.yml
- job: LinuxWeb
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WEB'], 'true'))
variables:
VSCODE_ARCH: x64
steps:
- template: web/product-build-web.yml
- stage: macOS
dependsOn:
- Compile
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
pool:
vmImage: macOS-latest
jobs:
- job: macOS
condition: and(succeeded(), eq(variables['VSCODE_BUILD_MACOS'], 'true'))
steps:
- template: darwin/product-build-darwin.yml
- stage: Mooncake
dependsOn:
- Windows
- Linux
- macOS
condition: and(succeededOrFailed(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
pool:
vmImage: 'Ubuntu-16.04'
jobs:
- job: SyncMooncake
displayName: Sync Mooncake
steps:
- template: sync-mooncake.yml
- stage: Publish
dependsOn:
- Windows
- Linux
- macOS
condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), or(eq(variables['VSCODE_RELEASE'], 'true'), and(or(eq(variables['VSCODE_QUALITY'], 'insider'), eq(variables['VSCODE_QUALITY'], 'exploration')), eq(variables['Build.Reason'], 'Schedule'))))
pool:
vmImage: 'Ubuntu-16.04'
jobs:
- job: BuildService
displayName: Build Service
steps:
- template: release.yml

View File

@@ -16,7 +16,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2

View File

@@ -9,7 +9,7 @@ pr: none
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:

View File

@@ -36,6 +36,18 @@ function updateDTSFile(outPath: string, tag: string) {
fs.writeFileSync(outPath, newContent);
}
function repeat(str: string, times: number): string {
const result = new Array(times);
for (let i = 0; i < times; i++) {
result[i] = str;
}
return result.join('');
}
function convertTabsToSpaces(str: string): string {
return str.replace(/\t/gm, value => repeat(' ', value.length));
}
function getNewFileContent(content: string, tag: string) {
const oldheader = [
`/*---------------------------------------------------------------------------------------------`,
@@ -44,7 +56,7 @@ function getNewFileContent(content: string, tag: string) {
` *--------------------------------------------------------------------------------------------*/`
].join('\n');
return getNewFileHeader(tag) + content.slice(oldheader.length);
return convertTabsToSpaces(getNewFileHeader(tag) + content.slice(oldheader.length));
}
function getNewFileHeader(tag: string) {

View File

@@ -1,7 +1,7 @@
resources:
containers:
- container: linux-x64
image: sqltoolscontainers.azurecr.io/linux-build-agent:1
image: sqltoolscontainers.azurecr.io/linux-build-agent:2
endpoint: ContainerRegistry
jobs:
@@ -46,7 +46,7 @@ jobs:
steps:
- template: linux/sql-product-build-linux.yml
parameters:
extensionsToUnitTest: ["admin-tool-ext-win", "agent", "azurecore", "cms", "dacpac", "import", "schema-compare", "notebook", "resource-deployment", "machine-learning", "sql-database-projects"]
extensionsToUnitTest: ["admin-tool-ext-win", "agent", "azdata", "azurecore", "cms", "dacpac", "import", "schema-compare", "notebook", "resource-deployment", "machine-learning", "sql-database-projects", "data-workspace"]
timeoutInMinutes: 70
- job: LinuxWeb

View File

@@ -15,7 +15,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "10.15.1"
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:

View File

@@ -1,7 +1,7 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:

View File

@@ -21,7 +21,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:

View File

@@ -1,7 +1,7 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3 # {{SQL CARBON EDIT}} update version
inputs:
@@ -57,7 +57,7 @@ steps:
displayName: Run Unit Tests (Electron)
# - powershell: | {{SQL CARBON EDIT}} disable
# yarn test-browser --browser chromium --browser firefox
# yarn test-browser --browser chromium --browser firefox --tfs "Browser Unit Tests"
# displayName: Run Unit Tests (Browser)
# - powershell: | {{SQL CARBON EDIT}} disable

View File

@@ -21,7 +21,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:

View File

@@ -21,7 +21,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "12.13.0"
versionSpec: "12.14.1"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
inputs:
@@ -115,7 +115,7 @@ steps:
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { yarn test-browser --build --browser chromium --browser firefox }
exec { yarn test-browser --build --browser chromium --browser firefox --tfs "Browser Unit Tests" }
displayName: Run unit tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
@@ -135,18 +135,18 @@ steps:
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
$AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
$AppProductJson = Get-Content -Raw -Path "$AppRoot\resources\app\product.json" | ConvertFrom-Json
$AppNameShort = $AppProductJson.nameShort
exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"; .\resources\server\test\test-remote-integration.bat }
displayName: Run remote integration tests (Electron)
exec { $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-web-win32-$(VSCODE_ARCH)"; .\resources\server\test\test-web-integration.bat --browser firefox }
displayName: Run integration tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-web-win32-$(VSCODE_ARCH)"; .\resources\server\test\test-web-integration.bat --browser firefox }
displayName: Run integration tests (Browser)
$AppRoot = "$(agent.builddirectory)\VSCode-win32-$(VSCODE_ARCH)"
$AppProductJson = Get-Content -Raw -Path "$AppRoot\resources\app\product.json" | ConvertFrom-Json
$AppNameShort = $AppProductJson.nameShort
exec { $env:INTEGRATION_TEST_ELECTRON_PATH = "$AppRoot\$AppNameShort.exe"; $env:VSCODE_REMOTE_SERVER_PATH = "$(agent.builddirectory)\vscode-reh-win32-$(VSCODE_ARCH)"; .\resources\server\test\test-remote-integration.bat }
displayName: Run remote integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- task: PublishPipelineArtifact@0
@@ -157,6 +157,13 @@ steps:
continueOnError: true
condition: failed()
- task: PublishTestResults@2
displayName: Publish Tests Results
inputs:
testResultsFiles: '*-results.xml'
searchFolder: '$(Build.ArtifactStagingDirectory)/test-results'
condition: succeededOrFailed()
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
inputs:
ConnectedServiceName: 'ESRP CodeSign'

View File

@@ -21,7 +21,7 @@ steps:
- task: NodeTool@0
inputs:
versionSpec: "10.15.1"
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:
@@ -103,6 +103,17 @@ steps:
env:
VSCODE_MIXIN_PASSWORD: $(github-distro-mixin-password)
- task: UniversalPackages@0
displayName: Download SAW Python package
inputs:
command: 'download'
downloadDirectory: '$(agent.builddirectory)\azuredatastudio-win32-x64\resources\app\ads-python'
feedsToUse: 'internal'
vstsFeed: '2191dd5f-4aec-491b-ac50-568bbc331c8a'
vstsFeedPackage: '2e355f03-a97e-499a-949b-f02d62b6160c'
vstsPackageVersion: '*'
condition: and(succeeded(), eq(variables['VSCODE_QUALITY'], 'saw'))
# - powershell: | @anthonydresser unit tests timeout never existing the node process
# . build/azure-pipelines/win32/exec.ps1
# $ErrorActionPreference = "Stop"

View File

@@ -1,7 +1,7 @@
steps:
- task: NodeTool@0
inputs:
versionSpec: "10.15.1"
versionSpec: "12.13.0"
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
inputs:

View File

@@ -171,8 +171,8 @@ gulp.task(compileExtensionsBuildLegacyTask);
const cleanExtensionsBuildTask = task.define('clean-extensions-build', util.rimraf('.build/extensions'));
const compileExtensionsBuildTask = task.define('compile-extensions-build', task.series(
cleanExtensionsBuildTask,
task.define('bundle-extensions-build', () => ext.packageLocalExtensionsStream().pipe(gulp.dest('.build'))),
task.define('bundle-marketplace-extensions-build', () => ext.packageMarketplaceExtensionsStream().pipe(gulp.dest('.build')))
task.define('bundle-extensions-build', () => ext.packageLocalExtensionsStream(false).pipe(gulp.dest('.build'))),
task.define('bundle-marketplace-extensions-build', () => ext.packageMarketplaceExtensionsStream(false).pipe(gulp.dest('.build'))),
));
gulp.task(compileExtensionsBuildTask);

View File

@@ -42,8 +42,8 @@ const indentationFilter = [
'**',
// except specific files
'!ThirdPartyNotices.txt',
'!LICENSE.{txt,rtf}',
'!**/ThirdPartyNotices.txt',
'!**/LICENSE.{txt,rtf}',
'!LICENSES.chromium.html',
'!**/LICENSE',
'!src/vs/nls.js',
@@ -96,6 +96,7 @@ const indentationFilter = [
'!**/*.dockerfile',
'!extensions/markdown-language-features/media/*.js',
// {{SQL CARBON EDIT}}
'!**/*.gif',
'!build/actions/**/*.js',
'!**/*.{xlf,docx,sql,vsix,bacpac,ipynb,jpg}',
'!extensions/mssql/sqltoolsservice/**',
@@ -138,6 +139,7 @@ const copyrightFilter = [
'!resources/linux/snap/snapcraft.yaml',
'!resources/linux/snap/electron-launch',
'!resources/win32/bin/code.js',
'!resources/web/code-web.js',
'!resources/completions/**',
'!extensions/markdown-language-features/media/highlight.css',
'!extensions/html-language-features/server/src/modes/typescript/*',
@@ -145,6 +147,7 @@ const copyrightFilter = [
'!src/vs/editor/test/node/classification/typescript-test.ts',
'!scripts/code-web.js',
'!resources/serverless/code-web.js',
'!src/vs/editor/test/node/classification/typescript-test.ts',
// {{SQL CARBON EDIT}}
'!extensions/notebook/src/intellisense/text.ts',
'!extensions/mssql/src/hdfs/webhdfs.ts',
@@ -168,10 +171,12 @@ const copyrightFilter = [
'!extensions/markdown-language-features/media/tomorrow.css',
'!src/sql/workbench/browser/modelComponents/media/highlight.css',
'!src/sql/workbench/contrib/notebook/electron-browser/cellViews/media/highlight.css',
'!src/sql/workbench/contrib/notebook/browser/turndownPluginGfm.ts',
'!extensions/mssql/sqltoolsservice/**',
'!extensions/import/flatfileimportservice/**',
'!extensions/notebook/src/prompts/**',
'!extensions/mssql/src/prompts/**',
'!extensions/kusto/src/prompts/**',
'!extensions/notebook/resources/jupyter_config/**',
'!extensions/query-history/images/**',
'!**/*.gif',

View File

@@ -36,29 +36,13 @@ const { compileBuildTask } = require('./gulpfile.compile');
const { compileExtensionsBuildTask } = require('./gulpfile.extensions');
const productionDependencies = deps.getProductionDependencies(path.dirname(__dirname));
const baseModules = Object.keys(process.binding('natives')).filter(n => !/^_|\//.test(n));
const nodeModules = [ // {{SQL CARBON EDIT}}
'electron',
'original-fs',
'rxjs/Observable',
'rxjs/add/observable/fromPromise',
'rxjs/Subject',
'rxjs/Observer',
'slickgrid/lib/jquery.event.drag-2.3.0',
'slickgrid/lib/jquery-ui-1.9.2',
'slickgrid/slick.core',
'slickgrid/slick.grid',
'slickgrid/slick.editors',
'slickgrid/slick.dataview']
.concat(Object.keys(product.dependencies || {}))
.concat(_.uniq(productionDependencies.map(d => d.name)))
.concat(baseModules);
// Build
const vscodeEntryPoints = _.flatten([
buildfile.entrypoint('vs/workbench/workbench.desktop.main'),
buildfile.base,
buildfile.workerExtensionHost,
buildfile.workerNotebook,
buildfile.workbenchDesktop,
buildfile.code
]);
@@ -93,9 +77,7 @@ const vscodeResources = [
'out-build/vs/platform/files/**/*.md',
'out-build/vs/code/electron-browser/workbench/**',
'out-build/vs/code/electron-browser/sharedProcess/sharedProcess.js',
'out-build/vs/code/electron-browser/issue/issueReporter.js',
'out-build/vs/code/electron-browser/processExplorer/processExplorer.js',
'out-build/sql/workbench/electron-browser/splashscreen/*', // {{SQL CARBON EDIT}} STart
'out-build/vs/code/electron-sandbox/issue/issueReporter.js',
'out-build/sql/**/*.{svg,png,cur,html}',
'out-build/sql/base/browser/ui/table/media/*.{gif,png,svg}',
'out-build/sql/base/browser/ui/checkbox/media/*.{gif,png,svg}',
@@ -114,7 +96,8 @@ const vscodeResources = [
'out-build/sql/media/icons/*.svg',
'out-build/sql/workbench/parts/notebook/media/**/*.svg',
'out-build/sql/setup.js', // {{SQL CARBON EDIT}} end
'out-build/vs/platform/auth/common/auth.css',
'out-build/vs/code/electron-sandbox/processExplorer/processExplorer.js',
'out-build/vs/code/electron-sandbox/proxy/auth.js',
'!**/test/**'
];
@@ -124,7 +107,7 @@ const optimizeVSCodeTask = task.define('optimize-vscode', task.series(
src: 'out-build',
entryPoints: vscodeEntryPoints,
resources: vscodeResources,
loaderConfig: common.loaderConfig(nodeModules),
loaderConfig: common.loaderConfig(),
out: 'out-vscode',
bundleInfo: undefined
})
@@ -135,12 +118,6 @@ const sourceMappingURLBase = `https://sqlopsbuilds.blob.core.windows.net/sourcem
const minifyVSCodeTask = task.define('minify-vscode', task.series(
optimizeVSCodeTask,
util.rimraf('out-vscode-min'),
() => {
const fullpath = path.join(process.cwd(), 'out-vscode/bootstrap-window.js');
const contents = fs.readFileSync(fullpath).toString();
const newContents = contents.replace('[/*BUILD->INSERT_NODE_MODULES*/]', JSON.stringify(nodeModules));
fs.writeFileSync(fullpath, newContents);
},
common.minifyTask('out-vscode', `${sourceMappingURLBase}/core`)
));
gulp.task(minifyVSCodeTask);

View File

@@ -94,8 +94,8 @@ function buildWin32Setup(arch, target) {
IncompatibleTargetAppId: { 'ia32': product.win32AppId, 'x64': product.win32x64AppId, 'arm64': product.win32arm64AppId }[arch],
IncompatibleArchAppId: { 'ia32': x64AppId, 'x64': ia32AppId, 'arm64': ia32AppId }[arch],
AppUserId: product.win32AppUserModelId,
ArchitecturesAllowed: { 'ia32': '', 'x64': 'x64', 'arm64': '' }[arch],
ArchitecturesInstallIn64BitMode: { 'ia32': '', 'x64': 'x64', 'arm64': '' }[arch],
ArchitecturesAllowed: { 'ia32': '', 'x64': 'x64', 'arm64': 'arm64' }[arch],
ArchitecturesInstallIn64BitMode: { 'ia32': '', 'x64': 'x64', 'arm64': 'arm64' }[arch],
SourceDir: sourcePath,
RepoDir: repoPath,
OutputDir: outputPath,

View File

@@ -53,7 +53,9 @@ function createAsar(folderPath, unpackGlobs, destFilename) {
const insertFile = (relativePath, stat, shouldUnpack) => {
insertDirectoryForFile(relativePath);
pendingInserts++;
filesystem.insertFile(relativePath, shouldUnpack, { stat: stat }, {}, onFileInserted);
// Do not pass `onFileInserted` directly because it gets overwritten below.
// Create a closure capturing `onFileInserted`.
filesystem.insertFile(relativePath, shouldUnpack, { stat: stat }, {}).then(() => onFileInserted(), () => onFileInserted());
};
return es.through(function (file) {
if (file.stat.isDirectory()) {

View File

@@ -8,10 +8,17 @@
import * as path from 'path';
import * as es from 'event-stream';
const pickle = require('chromium-pickle-js');
const Filesystem = require('asar/lib/filesystem');
const Filesystem = <typeof AsarFilesystem>require('asar/lib/filesystem');
import * as VinylFile from 'vinyl';
import * as minimatch from 'minimatch';
declare class AsarFilesystem {
readonly header: unknown;
constructor(src: string);
insertDirectory(path: string, shouldUnpack?: boolean): unknown;
insertFile(path: string, shouldUnpack: boolean, file: { stat: { size: number; mode: number; }; }, options: {}): Promise<void>;
}
export function createAsar(folderPath: string, unpackGlobs: string[], destFilename: string): NodeJS.ReadWriteStream {
const shouldUnpackFile = (file: VinylFile): boolean => {
@@ -61,7 +68,9 @@ export function createAsar(folderPath: string, unpackGlobs: string[], destFilena
const insertFile = (relativePath: string, stat: { size: number; mode: number; }, shouldUnpack: boolean) => {
insertDirectoryForFile(relativePath);
pendingInserts++;
filesystem.insertFile(relativePath, shouldUnpack, { stat: stat }, {}, onFileInserted);
// Do not pass `onFileInserted` directly because it gets overwritten below.
// Create a closure capturing `onFileInserted`.
filesystem.insertFile(relativePath, shouldUnpack, { stat: stat }, {}).then(() => onFileInserted(), () => onFileInserted());
};
return es.through(function (file) {

View File

@@ -18,7 +18,9 @@ const fancyLog = require('fancy-log');
const ansiColors = require('ansi-colors');
const root = path.dirname(path.dirname(__dirname));
const builtInExtensions = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8')).builtInExtensions;
const productjson = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8'));
const builtInExtensions = productjson.builtInExtensions;
const webBuiltInExtensions = productjson.webBuiltInExtensions;
const controlFilePath = path.join(os.homedir(), '.vscode-oss-dev', 'extensions', 'control.json');
const ENABLE_LOGGING = !process.env['VSCODE_BUILD_BUILTIN_EXTENSIONS_SILENCE_PLEASE'];
@@ -100,14 +102,14 @@ function writeControlFile(control) {
fs.writeFileSync(controlFilePath, JSON.stringify(control, null, 2));
}
function main() {
exports.getBuiltInExtensions = function getBuiltInExtensions() {
log('Syncronizing built-in extensions...');
log(`You can manage built-in extensions with the ${ansiColors.cyan('--builtin')} flag`);
const control = readControlFile();
const streams = [];
for (const extension of builtInExtensions) {
for (const extension of [...builtInExtensions, ...webBuiltInExtensions]) {
let controlState = control[extension.name] || 'marketplace';
control[extension.name] = controlState;
@@ -116,14 +118,16 @@ function main() {
writeControlFile(control);
es.merge(streams)
.on('error', err => {
console.error(err);
process.exit(1);
})
.on('end', () => {
process.exit(0);
});
}
return new Promise((resolve, reject) => {
es.merge(streams)
.on('error', reject)
.on('end', resolve);
});
};
main();
if (require.main === module) {
exports.getBuiltInExtensions().then(() => process.exit(0)).catch(err => {
console.error(err);
process.exit(1);
});
}

View File

@@ -18,6 +18,7 @@ const reporter_1 = require("./reporter");
const util = require("./util");
const fancyLog = require("fancy-log");
const ansiColors = require("ansi-colors");
const os = require("os");
const watch = require('./watch');
const reporter = reporter_1.createReporter();
function getTypeScriptCompilerOptions(src) {
@@ -69,6 +70,9 @@ function createCompile(src, build, emitError) {
}
function compileTask(src, out, build) {
return function () {
if (os.totalmem() < 4000000000) {
throw new Error('compilation requires 4GB of RAM');
}
const compile = createCompile(src, build, true);
const srcPipe = gulp.src(`${src}/**`, { base: `${src}` });
let generator = new MonacoGenerator(false);

View File

@@ -18,6 +18,7 @@ import { createReporter } from './reporter';
import * as util from './util';
import * as fancyLog from 'fancy-log';
import * as ansiColors from 'ansi-colors';
import * as os from 'os';
import ts = require('typescript');
const watch = require('./watch');
@@ -81,6 +82,11 @@ function createCompile(src: string, build: boolean, emitError?: boolean) {
export function compileTask(src: string, out: string, build: boolean): () => NodeJS.ReadWriteStream {
return function () {
if (os.totalmem() < 4_000_000_000) {
throw new Error('compilation requires 4GB of RAM');
}
const compile = createCompile(src, build, true);
const srcPipe = gulp.src(`${src}/**`, { base: `${src}` });
let generator = new MonacoGenerator(false);

View File

@@ -4,7 +4,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.translatePackageJSON = exports.packageRebuildExtensionsStream = exports.cleanRebuildExtensions = exports.packageExternalExtensionsStream = exports.scanBuiltinExtensions = exports.packageMarketplaceWebExtensionsStream = exports.packageMarketplaceExtensionsStream = exports.packageLocalWebExtensionsStream = exports.packageLocalExtensionsStream = exports.fromMarketplace = void 0;
exports.translatePackageJSON = exports.packageRebuildExtensionsStream = exports.cleanRebuildExtensions = exports.packageExternalExtensionsStream = exports.scanBuiltinExtensions = exports.packageMarketplaceExtensionsStream = exports.packageLocalExtensionsStream = exports.fromMarketplace = void 0;
const es = require("event-stream");
const fs = require("fs");
const glob = require("glob");
@@ -22,22 +22,28 @@ const fancyLog = require("fancy-log");
const ansiColors = require("ansi-colors");
const buffer = require('gulp-buffer');
const json = require("gulp-json-editor");
const jsoncParser = require("jsonc-parser");
const webpack = require('webpack');
const webpackGulp = require('webpack-stream');
const util = require('./util');
const root = path.dirname(path.dirname(__dirname));
const commit = util.getVersion(root);
const sourceMappingURLBase = `https://sqlopsbuilds.blob.core.windows.net/sourcemaps/${commit}`;
function minimizeLanguageJSON(input) {
const tmLanguageJsonFilter = filter('**/*.tmLanguage.json', { restore: true });
function minifyExtensionResources(input) {
const jsonFilter = filter(['**/*.json', '**/*.code-snippets'], { restore: true });
return input
.pipe(tmLanguageJsonFilter)
.pipe(jsonFilter)
.pipe(buffer())
.pipe(es.mapSync((f) => {
f.contents = Buffer.from(JSON.stringify(JSON.parse(f.contents.toString('utf8'))));
const errors = [];
const value = jsoncParser.parse(f.contents.toString('utf8'), errors);
if (errors.length === 0) {
// file parsed OK => just stringify to drop whitespace and comments
f.contents = Buffer.from(JSON.stringify(value));
}
return f;
}))
.pipe(tmLanguageJsonFilter.restore);
.pipe(jsonFilter.restore);
}
function updateExtensionPackageJSON(input, update) {
const packageJsonFilter = filter('extensions/*/package.json', { restore: true });
@@ -57,24 +63,18 @@ function fromLocal(extensionPath, forWeb) {
let input = isWebPacked
? fromLocalWebpack(extensionPath, webpackConfigFileName)
: fromLocalNormal(extensionPath);
if (forWeb) {
input = updateExtensionPackageJSON(input, (data) => {
if (data.browser) {
data.main = data.browser;
}
data.extensionKind = ['web'];
return data;
});
}
else if (isWebPacked) {
if (isWebPacked) {
input = updateExtensionPackageJSON(input, (data) => {
delete data.scripts;
delete data.dependencies;
delete data.devDependencies;
if (data.main) {
data.main = data.main.replace('/out/', /dist/);
}
return data;
});
}
return minimizeLanguageJSON(input);
return input;
}
function fromLocalWebpack(extensionPath, webpackConfigFileName) {
const result = es.through();
@@ -194,7 +194,6 @@ function fromMarketplace(extensionName, version, metadata) {
exports.fromMarketplace = fromMarketplace;
const excludedExtensions = [
'vscode-api-tests',
'vscode-web-playground',
'vscode-colorize-tests',
'vscode-test-resolver',
'ms-vscode.node-debug',
@@ -211,6 +210,7 @@ const externalExtensions = [
'admin-tool-ext-win',
'agent',
'arc',
'azdata',
'import',
'profiler',
'admin-pack',
@@ -218,109 +218,118 @@ const externalExtensions = [
'schema-compare',
'cms',
'query-history',
'kusto',
'liveshare',
'sql-database-projects',
'machine-learning',
'sql-assessment',
'asde-deployment'
'asde-deployment',
'sql-migration',
'data-workspace'
];
// extensions that require a rebuild since they have native parts
const rebuildExtensions = [
'big-data-cluster',
'mssql'
];
const builtInExtensions = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8')).builtInExtensions;
function packageLocalExtensionsStream() {
const localExtensionDescriptions = glob.sync('extensions/*/package.json')
const marketplaceWebExtensions = [
'ms-vscode.references-view'
];
const productJson = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8'));
const builtInExtensions = productJson.builtInExtensions || [];
const webBuiltInExtensions = productJson.webBuiltInExtensions || [];
/**
* Loosely based on `getExtensionKind` from `src/vs/workbench/services/extensions/common/extensionsUtil.ts`
*/
function isWebExtension(manifest) {
if (typeof manifest.extensionKind !== 'undefined') {
const extensionKind = Array.isArray(manifest.extensionKind) ? manifest.extensionKind : [manifest.extensionKind];
return (extensionKind.indexOf('web') >= 0);
}
return (!Boolean(manifest.main) || Boolean(manifest.browser));
}
function packageLocalExtensionsStream(forWeb) {
const localExtensionsDescriptions = (glob.sync('extensions/*/package.json')
.map(manifestPath => {
const absoluteManifestPath = path.join(root, manifestPath);
const extensionPath = path.dirname(path.join(root, manifestPath));
const extensionName = path.basename(extensionPath);
return { name: extensionName, path: extensionPath };
return { name: extensionName, path: extensionPath, manifestPath: absoluteManifestPath };
})
.filter(({ name }) => excludedExtensions.indexOf(name) === -1)
.filter(({ name }) => builtInExtensions.every(b => b.name !== name))
.filter(({ name }) => externalExtensions.indexOf(name) === -1); // {{SQL CARBON EDIT}} Remove external Extensions with separate package
const localExtensions = localExtensionDescriptions.map(extension => {
return fromLocal(extension.path, false)
.filter(({ name }) => externalExtensions.indexOf(name) === -1) // {{SQL CARBON EDIT}} Remove external Extensions with separate package
);
const localExtensionsStream = minifyExtensionResources(es.merge(...localExtensionsDescriptions.map(extension => {
return fromLocal(extension.path, forWeb)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
});
const nodeModules = gulp.src('extensions/node_modules/**', { base: '.' });
return es.merge(nodeModules, ...localExtensions)
.pipe(util2.setExecutableBit(['**/*.sh']));
})));
let result;
if (forWeb) {
result = localExtensionsStream;
}
else {
// also include shared node modules
result = es.merge(localExtensionsStream, gulp.src('extensions/node_modules/**', { base: '.' }));
}
return (result
.pipe(util2.setExecutableBit(['**/*.sh'])));
}
exports.packageLocalExtensionsStream = packageLocalExtensionsStream;
function packageLocalWebExtensionsStream() {
const localExtensionDescriptions = glob.sync('extensions/*/package.json')
.filter(manifestPath => {
const packageJsonConfig = require(path.join(root, manifestPath));
return !packageJsonConfig.main || packageJsonConfig.browser;
})
.map(manifestPath => {
const extensionPath = path.dirname(path.join(root, manifestPath));
const extensionName = path.basename(extensionPath);
return { name: extensionName, path: extensionPath };
});
return es.merge(...localExtensionDescriptions.map(extension => {
return fromLocal(extension.path, true)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
}));
}
exports.packageLocalWebExtensionsStream = packageLocalWebExtensionsStream;
function packageMarketplaceExtensionsStream() {
const extensions = builtInExtensions.map(extension => {
return fromMarketplace(extension.name, extension.version, extension.metadata)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
});
return es.merge(extensions)
.pipe(util2.setExecutableBit(['**/*.sh']));
}
exports.packageMarketplaceExtensionsStream = packageMarketplaceExtensionsStream;
function packageMarketplaceWebExtensionsStream(builtInExtensions) {
const extensions = builtInExtensions
function packageMarketplaceExtensionsStream(forWeb) {
const marketplaceExtensionsDescriptions = [
...builtInExtensions.filter(({ name }) => (forWeb ? marketplaceWebExtensions.indexOf(name) >= 0 : true)),
...(forWeb ? webBuiltInExtensions : [])
];
const marketplaceExtensionsStream = minifyExtensionResources(es.merge(...marketplaceExtensionsDescriptions
.map(extension => {
const input = fromMarketplace(extension.name, extension.version, extension.metadata)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
return updateExtensionPackageJSON(input, (data) => {
if (data.main) {
data.browser = data.main;
}
data.extensionKind = ['web'];
delete data.scripts;
delete data.dependencies;
delete data.devDependencies;
return data;
});
});
return es.merge(extensions);
})));
return (marketplaceExtensionsStream
.pipe(util2.setExecutableBit(['**/*.sh'])));
}
exports.packageMarketplaceWebExtensionsStream = packageMarketplaceWebExtensionsStream;
function scanBuiltinExtensions(extensionsRoot, forWeb) {
exports.packageMarketplaceExtensionsStream = packageMarketplaceExtensionsStream;
function scanBuiltinExtensions(extensionsRoot, exclude = []) {
const scannedExtensions = [];
const extensionsFolders = fs.readdirSync(extensionsRoot);
for (const extensionFolder of extensionsFolders) {
const packageJSONPath = path.join(extensionsRoot, extensionFolder, 'package.json');
if (!fs.existsSync(packageJSONPath)) {
continue;
try {
const extensionsFolders = fs.readdirSync(extensionsRoot);
for (const extensionFolder of extensionsFolders) {
if (exclude.indexOf(extensionFolder) >= 0) {
continue;
}
const packageJSONPath = path.join(extensionsRoot, extensionFolder, 'package.json');
if (!fs.existsSync(packageJSONPath)) {
continue;
}
let packageJSON = JSON.parse(fs.readFileSync(packageJSONPath).toString('utf8'));
if (!isWebExtension(packageJSON)) {
continue;
}
const children = fs.readdirSync(path.join(extensionsRoot, extensionFolder));
const packageNLSPath = children.filter(child => child === 'package.nls.json')[0];
const packageNLS = packageNLSPath ? JSON.parse(fs.readFileSync(path.join(extensionsRoot, extensionFolder, packageNLSPath)).toString()) : undefined;
const readme = children.filter(child => /^readme(\.txt|\.md|)$/i.test(child))[0];
const changelog = children.filter(child => /^changelog(\.txt|\.md|)$/i.test(child))[0];
scannedExtensions.push({
extensionPath: extensionFolder,
packageJSON,
packageNLS,
readmePath: readme ? path.join(extensionFolder, readme) : undefined,
changelogPath: changelog ? path.join(extensionFolder, changelog) : undefined,
});
}
let packageJSON = JSON.parse(fs.readFileSync(packageJSONPath).toString('utf8'));
const extensionKind = packageJSON['extensionKind'] || [];
if (forWeb && extensionKind.indexOf('web') === -1) {
continue;
}
const children = fs.readdirSync(path.join(extensionsRoot, extensionFolder));
const packageNLS = children.filter(child => child === 'package.nls.json')[0];
const readme = children.filter(child => /^readme(\.txt|\.md|)$/i.test(child))[0];
const changelog = children.filter(child => /^changelog(\.txt|\.md|)$/i.test(child))[0];
if (packageNLS) {
// temporary
packageJSON = translatePackageJSON(packageJSON, path.join(extensionsRoot, extensionFolder, packageNLS));
}
scannedExtensions.push({
extensionPath: extensionFolder,
packageJSON,
packageNLSPath: packageNLS ? path.join(extensionFolder, packageNLS) : undefined,
readmePath: readme ? path.join(extensionFolder, readme) : undefined,
changelogPath: changelog ? path.join(extensionFolder, changelog) : undefined,
});
return scannedExtensions;
}
catch (ex) {
return scannedExtensions;
}
return scannedExtensions;
}
exports.scanBuiltinExtensions = scanBuiltinExtensions;
function packageExternalExtensionsStream() {

View File

@@ -21,6 +21,7 @@ import * as fancyLog from 'fancy-log';
import * as ansiColors from 'ansi-colors';
const buffer = require('gulp-buffer');
import json = require('gulp-json-editor');
import * as jsoncParser from 'jsonc-parser';
const webpack = require('webpack');
const webpackGulp = require('webpack-stream');
const util = require('./util');
@@ -28,16 +29,21 @@ const root = path.dirname(path.dirname(__dirname));
const commit = util.getVersion(root);
const sourceMappingURLBase = `https://sqlopsbuilds.blob.core.windows.net/sourcemaps/${commit}`;
function minimizeLanguageJSON(input: Stream): Stream {
const tmLanguageJsonFilter = filter('**/*.tmLanguage.json', { restore: true });
function minifyExtensionResources(input: Stream): Stream {
const jsonFilter = filter(['**/*.json', '**/*.code-snippets'], { restore: true });
return input
.pipe(tmLanguageJsonFilter)
.pipe(jsonFilter)
.pipe(buffer())
.pipe(es.mapSync((f: File) => {
f.contents = Buffer.from(JSON.stringify(JSON.parse(f.contents.toString('utf8'))));
const errors: jsoncParser.ParseError[] = [];
const value = jsoncParser.parse(f.contents.toString('utf8'), errors);
if (errors.length === 0) {
// file parsed OK => just stringify to drop whitespace and comments
f.contents = Buffer.from(JSON.stringify(value));
}
return f;
}))
.pipe(tmLanguageJsonFilter.restore);
.pipe(jsonFilter.restore);
}
function updateExtensionPackageJSON(input: Stream, update: (data: any) => any): Stream {
@@ -61,16 +67,11 @@ function fromLocal(extensionPath: string, forWeb: boolean): Stream {
? fromLocalWebpack(extensionPath, webpackConfigFileName)
: fromLocalNormal(extensionPath);
if (forWeb) {
input = updateExtensionPackageJSON(input, (data: any) => {
if (data.browser) {
data.main = data.browser;
}
data.extensionKind = ['web'];
return data;
});
} else if (isWebPacked) {
if (isWebPacked) {
input = updateExtensionPackageJSON(input, (data: any) => {
delete data.scripts;
delete data.dependencies;
delete data.devDependencies;
if (data.main) {
data.main = data.main.replace('/out/', /dist/);
}
@@ -78,7 +79,7 @@ function fromLocal(extensionPath: string, forWeb: boolean): Stream {
});
}
return minimizeLanguageJSON(input);
return input;
}
@@ -224,10 +225,8 @@ export function fromMarketplace(extensionName: string, version: string, metadata
.pipe(json({ __metadata: metadata }))
.pipe(packageJsonFilter.restore);
}
const excludedExtensions = [
'vscode-api-tests',
'vscode-web-playground',
'vscode-colorize-tests',
'vscode-test-resolver',
'ms-vscode.node-debug',
@@ -245,6 +244,7 @@ const externalExtensions = [
'admin-tool-ext-win',
'agent',
'arc',
'azdata',
'import',
'profiler',
'admin-pack',
@@ -252,11 +252,14 @@ const externalExtensions = [
'schema-compare',
'cms',
'query-history',
'kusto',
'liveshare',
'sql-database-projects',
'machine-learning',
'sql-assessment',
'asde-deployment'
'asde-deployment',
'sql-migration',
'data-workspace'
];
// extensions that require a rebuild since they have native parts
@@ -265,6 +268,10 @@ const rebuildExtensions = [
'mssql'
];
const marketplaceWebExtensions = [
'ms-vscode.references-view'
];
interface IBuiltInExtension {
name: string;
version: string;
@@ -272,113 +279,133 @@ interface IBuiltInExtension {
metadata: any;
}
const builtInExtensions: IBuiltInExtension[] = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8')).builtInExtensions;
const productJson = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8'));
const builtInExtensions: IBuiltInExtension[] = productJson.builtInExtensions || [];
const webBuiltInExtensions: IBuiltInExtension[] = productJson.webBuiltInExtensions || [];
export function packageLocalExtensionsStream(): NodeJS.ReadWriteStream {
const localExtensionDescriptions = (<string[]>glob.sync('extensions/*/package.json'))
.map(manifestPath => {
const extensionPath = path.dirname(path.join(root, manifestPath));
const extensionName = path.basename(extensionPath);
return { name: extensionName, path: extensionPath };
})
.filter(({ name }) => excludedExtensions.indexOf(name) === -1)
.filter(({ name }) => builtInExtensions.every(b => b.name !== name))
.filter(({ name }) => externalExtensions.indexOf(name) === -1); // {{SQL CARBON EDIT}} Remove external Extensions with separate package
const localExtensions = localExtensionDescriptions.map(extension => {
return fromLocal(extension.path, false)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
});
const nodeModules = gulp.src('extensions/node_modules/**', { base: '.' });
return es.merge(nodeModules, ...localExtensions)
.pipe(util2.setExecutableBit(['**/*.sh']));
type ExtensionKind = 'ui' | 'workspace' | 'web';
interface IExtensionManifest {
main: string;
browser: string;
extensionKind?: ExtensionKind | ExtensionKind[];
}
/**
* Loosely based on `getExtensionKind` from `src/vs/workbench/services/extensions/common/extensionsUtil.ts`
*/
function isWebExtension(manifest: IExtensionManifest): boolean {
if (typeof manifest.extensionKind !== 'undefined') {
const extensionKind = Array.isArray(manifest.extensionKind) ? manifest.extensionKind : [manifest.extensionKind];
return (extensionKind.indexOf('web') >= 0);
}
return (!Boolean(manifest.main) || Boolean(manifest.browser));
}
export function packageLocalWebExtensionsStream(): NodeJS.ReadWriteStream {
const localExtensionDescriptions = (<string[]>glob.sync('extensions/*/package.json'))
.filter(manifestPath => {
const packageJsonConfig = require(path.join(root, manifestPath));
return !packageJsonConfig.main || packageJsonConfig.browser;
})
.map(manifestPath => {
const extensionPath = path.dirname(path.join(root, manifestPath));
const extensionName = path.basename(extensionPath);
return { name: extensionName, path: extensionPath };
});
export function packageLocalExtensionsStream(forWeb: boolean): Stream {
const localExtensionsDescriptions = (
(<string[]>glob.sync('extensions/*/package.json'))
.map(manifestPath => {
const absoluteManifestPath = path.join(root, manifestPath);
const extensionPath = path.dirname(path.join(root, manifestPath));
const extensionName = path.basename(extensionPath);
return { name: extensionName, path: extensionPath, manifestPath: absoluteManifestPath };
})
.filter(({ name }) => excludedExtensions.indexOf(name) === -1)
.filter(({ name }) => builtInExtensions.every(b => b.name !== name))
.filter(({ name }) => externalExtensions.indexOf(name) === -1) // {{SQL CARBON EDIT}} Remove external Extensions with separate package
);
const localExtensionsStream = minifyExtensionResources(
es.merge(
...localExtensionsDescriptions.map(extension => {
return fromLocal(extension.path, forWeb)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
})
)
);
return es.merge(...localExtensionDescriptions.map(extension => {
return fromLocal(extension.path, true)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
}));
let result: Stream;
if (forWeb) {
result = localExtensionsStream;
} else {
// also include shared node modules
result = es.merge(localExtensionsStream, gulp.src('extensions/node_modules/**', { base: '.' }));
}
return (
result
.pipe(util2.setExecutableBit(['**/*.sh']))
);
}
export function packageMarketplaceExtensionsStream(): NodeJS.ReadWriteStream {
const extensions = builtInExtensions.map(extension => {
return fromMarketplace(extension.name, extension.version, extension.metadata)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
});
export function packageMarketplaceExtensionsStream(forWeb: boolean): Stream {
const marketplaceExtensionsDescriptions = [
...builtInExtensions.filter(({ name }) => (forWeb ? marketplaceWebExtensions.indexOf(name) >= 0 : true)),
...(forWeb ? webBuiltInExtensions : [])
];
const marketplaceExtensionsStream = minifyExtensionResources(
es.merge(
...marketplaceExtensionsDescriptions
.map(extension => {
const input = fromMarketplace(extension.name, extension.version, extension.metadata)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
return updateExtensionPackageJSON(input, (data: any) => {
delete data.scripts;
delete data.dependencies;
delete data.devDependencies;
return data;
});
})
)
);
return es.merge(extensions)
.pipe(util2.setExecutableBit(['**/*.sh']));
}
export function packageMarketplaceWebExtensionsStream(builtInExtensions: IBuiltInExtension[]): NodeJS.ReadWriteStream {
const extensions = builtInExtensions
.map(extension => {
const input = fromMarketplace(extension.name, extension.version, extension.metadata)
.pipe(rename(p => p.dirname = `extensions/${extension.name}/${p.dirname}`));
return updateExtensionPackageJSON(input, (data: any) => {
if (data.main) {
data.browser = data.main;
}
data.extensionKind = ['web'];
return data;
});
});
return es.merge(extensions);
return (
marketplaceExtensionsStream
.pipe(util2.setExecutableBit(['**/*.sh']))
);
}
export interface IScannedBuiltinExtension {
extensionPath: string,
packageJSON: any,
packageNLSPath?: string,
readmePath?: string,
changelogPath?: string,
extensionPath: string;
packageJSON: any;
packageNLS?: any;
readmePath?: string;
changelogPath?: string;
}
export function scanBuiltinExtensions(extensionsRoot: string, forWeb: boolean): IScannedBuiltinExtension[] {
export function scanBuiltinExtensions(extensionsRoot: string, exclude: string[] = []): IScannedBuiltinExtension[] {
const scannedExtensions: IScannedBuiltinExtension[] = [];
const extensionsFolders = fs.readdirSync(extensionsRoot);
for (const extensionFolder of extensionsFolders) {
const packageJSONPath = path.join(extensionsRoot, extensionFolder, 'package.json');
if (!fs.existsSync(packageJSONPath)) {
continue;
}
let packageJSON = JSON.parse(fs.readFileSync(packageJSONPath).toString('utf8'));
const extensionKind: string[] = packageJSON['extensionKind'] || [];
if (forWeb && extensionKind.indexOf('web') === -1) {
continue;
}
const children = fs.readdirSync(path.join(extensionsRoot, extensionFolder));
const packageNLS = children.filter(child => child === 'package.nls.json')[0];
const readme = children.filter(child => /^readme(\.txt|\.md|)$/i.test(child))[0];
const changelog = children.filter(child => /^changelog(\.txt|\.md|)$/i.test(child))[0];
if (packageNLS) {
// temporary
packageJSON = translatePackageJSON(packageJSON, path.join(extensionsRoot, extensionFolder, packageNLS));
try {
const extensionsFolders = fs.readdirSync(extensionsRoot);
for (const extensionFolder of extensionsFolders) {
if (exclude.indexOf(extensionFolder) >= 0) {
continue;
}
const packageJSONPath = path.join(extensionsRoot, extensionFolder, 'package.json');
if (!fs.existsSync(packageJSONPath)) {
continue;
}
let packageJSON = JSON.parse(fs.readFileSync(packageJSONPath).toString('utf8'));
if (!isWebExtension(packageJSON)) {
continue;
}
const children = fs.readdirSync(path.join(extensionsRoot, extensionFolder));
const packageNLSPath = children.filter(child => child === 'package.nls.json')[0];
const packageNLS = packageNLSPath ? JSON.parse(fs.readFileSync(path.join(extensionsRoot, extensionFolder, packageNLSPath)).toString()) : undefined;
const readme = children.filter(child => /^readme(\.txt|\.md|)$/i.test(child))[0];
const changelog = children.filter(child => /^changelog(\.txt|\.md|)$/i.test(child))[0];
scannedExtensions.push({
extensionPath: extensionFolder,
packageJSON,
packageNLS,
readmePath: readme ? path.join(extensionFolder, readme) : undefined,
changelogPath: changelog ? path.join(extensionFolder, changelog) : undefined,
});
}
scannedExtensions.push({
extensionPath: extensionFolder,
packageJSON,
packageNLSPath: packageNLS ? path.join(extensionFolder, packageNLS) : undefined,
readmePath: readme ? path.join(extensionFolder, readme) : undefined,
changelogPath: changelog ? path.join(extensionFolder, changelog) : undefined,
});
return scannedExtensions;
} catch (ex) {
return scannedExtensions;
}
return scannedExtensions;
}
export function packageExternalExtensionsStream(): NodeJS.ReadWriteStream {

View File

@@ -1147,12 +1147,7 @@ function createIslFile(originalFilePath, messages, language, innoSetup) {
if (line.length > 0) {
let firstChar = line.charAt(0);
if (firstChar === '[' || firstChar === ';') {
if (line === '; *** Inno Setup version 5.5.3+ English messages ***') {
content.push(`; *** Inno Setup version 5.5.3+ ${innoSetup.defaultInfo.name} messages ***`);
}
else {
content.push(line);
}
content.push(line);
}
else {
let sections = line.split('=');

View File

@@ -94,6 +94,10 @@
"name": "vs/workbench/contrib/issue",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/contrib/keybindings",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/contrib/markers",
"project": "vscode-workbench"
@@ -246,10 +250,6 @@
"name": "vs/workbench/services/configurationResolver",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/services/crashReporter",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/services/dialogs",
"project": "vscode-workbench"

View File

@@ -1316,11 +1316,7 @@ function createIslFile(originalFilePath: string, messages: Map<string>, language
if (line.length > 0) {
let firstChar = line.charAt(0);
if (firstChar === '[' || firstChar === ';') {
if (line === '; *** Inno Setup version 5.5.3+ English messages ***') {
content.push(`; *** Inno Setup version 5.5.3+ ${innoSetup.defaultInfo!.name} messages ***`);
} else {
content.push(line);
}
content.push(line);
} else {
let sections: string[] = line.split('=');
let key = sections[0];

View File

@@ -28,14 +28,15 @@ const REPO_ROOT_PATH = path.join(__dirname, '../..');
function log(prefix, message) {
fancyLog(ansiColors.cyan('[' + prefix + ']'), message);
}
function loaderConfig(emptyPaths) {
function loaderConfig() {
const result = {
paths: {
'vs': 'out-build/vs',
'sql': 'out-build/sql',
'vscode': 'empty:'
'vscode': 'empty:',
'azdata': 'empty:' // {{SQL CARBON EDIT}}
},
nodeModules: emptyPaths || []
amdModulesPattern: /^(vs|sql)\// // {{SQL CARBON EDIT}} include sql in regex
};
result['vs/css'] = { inlineResources: true };
return result;
@@ -71,7 +72,7 @@ function loader(src, bundledFileHeader, bundleLoader) {
}))
.pipe(concat('vs/loader.js')));
}
function toConcatStream(src, bundledFileHeader, sources, dest) {
function toConcatStream(src, bundledFileHeader, sources, dest, fileContentMapper) {
const useSourcemaps = /\.js$/.test(dest) && !/\.nls\.js$/.test(dest);
// If a bundle ends up including in any of the sources our copyright, then
// insert a fake source at the beginning of each bundle with our copyright
@@ -92,10 +93,12 @@ function toConcatStream(src, bundledFileHeader, sources, dest) {
const treatedSources = sources.map(function (source) {
const root = source.path ? REPO_ROOT_PATH.replace(/\\/g, '/') : '';
const base = source.path ? root + `/${src}` : '';
const path = source.path ? root + '/' + source.path.replace(/\\/g, '/') : 'fake';
const contents = source.path ? fileContentMapper(source.contents, path) : source.contents;
return new VinylFile({
path: source.path ? root + '/' + source.path.replace(/\\/g, '/') : 'fake',
path: path,
base: base,
contents: Buffer.from(source.contents)
contents: Buffer.from(contents)
});
});
return es.readArray(treatedSources)
@@ -103,9 +106,9 @@ function toConcatStream(src, bundledFileHeader, sources, dest) {
.pipe(concat(dest))
.pipe(stats_1.createStatsStream(dest));
}
function toBundleStream(src, bundledFileHeader, bundles) {
function toBundleStream(src, bundledFileHeader, bundles, fileContentMapper) {
return es.merge(bundles.map(function (bundle) {
return toConcatStream(src, bundledFileHeader, bundle.sources, bundle.dest);
return toConcatStream(src, bundledFileHeader, bundle.sources, bundle.dest, fileContentMapper);
}));
}
const DEFAULT_FILE_HEADER = [
@@ -121,6 +124,7 @@ function optimizeTask(opts) {
const bundledFileHeader = opts.header || DEFAULT_FILE_HEADER;
const bundleLoader = (typeof opts.bundleLoader === 'undefined' ? true : opts.bundleLoader);
const out = opts.out;
const fileContentMapper = opts.fileContentMapper || ((contents, _path) => contents);
return function () {
const bundlesStream = es.through(); // this stream will contain the bundled files
const resourcesStream = es.through(); // this stream will contain the resources
@@ -129,7 +133,7 @@ function optimizeTask(opts) {
if (err || !result) {
return bundlesStream.emit('error', JSON.stringify(err));
}
toBundleStream(src, bundledFileHeader, result.files).pipe(bundlesStream);
toBundleStream(src, bundledFileHeader, result.files, fileContentMapper).pipe(bundlesStream);
// Remove css inlined resources
const filteredResources = resources.slice();
result.cssInlinedResources.forEach(function (resource) {

View File

@@ -18,7 +18,6 @@ import * as fancyLog from 'fancy-log';
import * as ansiColors from 'ansi-colors';
import * as path from 'path';
import * as pump from 'pump';
import * as sm from 'source-map';
import * as terser from 'terser';
import * as VinylFile from 'vinyl';
import * as bundle from './bundle';
@@ -32,14 +31,15 @@ function log(prefix: string, message: string): void {
fancyLog(ansiColors.cyan('[' + prefix + ']'), message);
}
export function loaderConfig(emptyPaths?: string[]) {
export function loaderConfig() {
const result: any = {
paths: {
'vs': 'out-build/vs',
'sql': 'out-build/sql', // {{SQL CARBON EDIT}}
'vscode': 'empty:'
'vscode': 'empty:',
'azdata': 'empty:' // {{SQL CARBON EDIT}}
},
nodeModules: emptyPaths || []
amdModulesPattern: /^(vs|sql)\// // {{SQL CARBON EDIT}} include sql in regex
};
result['vs/css'] = { inlineResources: true };
@@ -49,10 +49,6 @@ export function loaderConfig(emptyPaths?: string[]) {
const IS_OUR_COPYRIGHT_REGEXP = /Copyright \(C\) Microsoft Corporation/i;
declare class FileSourceMap extends VinylFile {
public sourceMap: sm.RawSourceMap;
}
function loader(src: string, bundledFileHeader: string, bundleLoader: boolean): NodeJS.ReadWriteStream {
let sources = [
`${src}/vs/loader.js`
@@ -85,7 +81,7 @@ function loader(src: string, bundledFileHeader: string, bundleLoader: boolean):
);
}
function toConcatStream(src: string, bundledFileHeader: string, sources: bundle.IFile[], dest: string): NodeJS.ReadWriteStream {
function toConcatStream(src: string, bundledFileHeader: string, sources: bundle.IFile[], dest: string, fileContentMapper: (contents: string, path: string) => string): NodeJS.ReadWriteStream {
const useSourcemaps = /\.js$/.test(dest) && !/\.nls\.js$/.test(dest);
// If a bundle ends up including in any of the sources our copyright, then
@@ -109,11 +105,13 @@ function toConcatStream(src: string, bundledFileHeader: string, sources: bundle.
const treatedSources = sources.map(function (source) {
const root = source.path ? REPO_ROOT_PATH.replace(/\\/g, '/') : '';
const base = source.path ? root + `/${src}` : '';
const path = source.path ? root + '/' + source.path.replace(/\\/g, '/') : 'fake';
const contents = source.path ? fileContentMapper(source.contents, path) : source.contents;
return new VinylFile({
path: source.path ? root + '/' + source.path.replace(/\\/g, '/') : 'fake',
path: path,
base: base,
contents: Buffer.from(source.contents)
contents: Buffer.from(contents)
});
});
@@ -123,9 +121,9 @@ function toConcatStream(src: string, bundledFileHeader: string, sources: bundle.
.pipe(createStatsStream(dest));
}
function toBundleStream(src: string, bundledFileHeader: string, bundles: bundle.IConcatFile[]): NodeJS.ReadWriteStream {
function toBundleStream(src: string, bundledFileHeader: string, bundles: bundle.IConcatFile[], fileContentMapper: (contents: string, path: string) => string): NodeJS.ReadWriteStream {
return es.merge(bundles.map(function (bundle) {
return toConcatStream(src, bundledFileHeader, bundle.sources, bundle.dest);
return toConcatStream(src, bundledFileHeader, bundle.sources, bundle.dest, fileContentMapper);
}));
}
@@ -163,6 +161,12 @@ export interface IOptimizeTaskOpts {
* (out folder name)
*/
languages?: Language[];
/**
* File contents interceptor
* @param contents The contens of the file
* @param path The absolute file path, always using `/`, even on Windows
*/
fileContentMapper?: (contents: string, path: string) => string;
}
const DEFAULT_FILE_HEADER = [
@@ -179,6 +183,7 @@ export function optimizeTask(opts: IOptimizeTaskOpts): () => NodeJS.ReadWriteStr
const bundledFileHeader = opts.header || DEFAULT_FILE_HEADER;
const bundleLoader = (typeof opts.bundleLoader === 'undefined' ? true : opts.bundleLoader);
const out = opts.out;
const fileContentMapper = opts.fileContentMapper || ((contents: string, _path: string) => contents);
return function () {
const bundlesStream = es.through(); // this stream will contain the bundled files
@@ -188,7 +193,7 @@ export function optimizeTask(opts: IOptimizeTaskOpts): () => NodeJS.ReadWriteStr
bundle.bundle(entryPoints, loaderConfig, function (err, result) {
if (err || !result) { return bundlesStream.emit('error', JSON.stringify(err)); }
toBundleStream(src, bundledFileHeader, result.files).pipe(bundlesStream);
toBundleStream(src, bundledFileHeader, result.files, fileContentMapper).pipe(bundlesStream);
// Remove css inlined resources
const filteredResources = resources.slice();

55
build/lib/preLaunch.js Normal file
View File

@@ -0,0 +1,55 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
// @ts-check
const path = require("path");
const child_process_1 = require("child_process");
const fs_1 = require("fs");
const yarn = process.platform === 'win32' ? 'yarn.cmd' : 'yarn';
const rootDir = path.resolve(__dirname, '..', '..');
function runProcess(command, args = []) {
return new Promise((resolve, reject) => {
const child = child_process_1.spawn(command, args, { cwd: rootDir, stdio: 'inherit', env: process.env });
child.on('exit', err => !err ? resolve() : process.exit(err !== null && err !== void 0 ? err : 1));
child.on('error', reject);
});
}
async function exists(subdir) {
try {
await fs_1.promises.stat(path.join(rootDir, subdir));
return true;
}
catch (_a) {
return false;
}
}
async function ensureNodeModules() {
if (!(await exists('node_modules'))) {
await runProcess(yarn);
}
}
async function getElectron() {
await runProcess(yarn, ['electron']);
}
async function ensureCompiled() {
if (!(await exists('out'))) {
await runProcess(yarn, ['compile']);
}
}
async function main() {
await ensureNodeModules();
await getElectron();
await ensureCompiled();
// Can't require this until after dependencies are installed
const { getBuiltInExtensions } = require('./builtInExtensions');
await getBuiltInExtensions();
}
if (require.main === module) {
main().catch(err => {
console.error(err);
process.exit(1);
});
}

65
build/lib/preLaunch.ts Normal file
View File

@@ -0,0 +1,65 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
// @ts-check
import * as path from 'path';
import { spawn } from 'child_process';
import { promises as fs } from 'fs';
const yarn = process.platform === 'win32' ? 'yarn.cmd' : 'yarn';
const rootDir = path.resolve(__dirname, '..', '..');
function runProcess(command: string, args: ReadonlyArray<string> = []) {
return new Promise((resolve, reject) => {
const child = spawn(command, args, { cwd: rootDir, stdio: 'inherit', env: process.env });
child.on('exit', err => !err ? resolve() : process.exit(err ?? 1));
child.on('error', reject);
});
}
async function exists(subdir: string) {
try {
await fs.stat(path.join(rootDir, subdir));
return true;
} catch {
return false;
}
}
async function ensureNodeModules() {
if (!(await exists('node_modules'))) {
await runProcess(yarn);
}
}
async function getElectron() {
await runProcess(yarn, ['electron']);
}
async function ensureCompiled() {
if (!(await exists('out'))) {
await runProcess(yarn, ['compile']);
}
}
async function main() {
await ensureNodeModules();
await getElectron();
await ensureCompiled();
// Can't require this until after dependencies are installed
const { getBuiltInExtensions } = require('./builtInExtensions');
await getBuiltInExtensions();
}
if (require.main === module) {
main().catch(err => {
console.error(err);
process.exit(1);
});
}

View File

@@ -33,7 +33,7 @@ function yarnInstall(location, opts) {
yarnInstall('extensions'); // node modules shared by all extensions
if (!(process.platform === 'win32' && process.env['npm_config_arch'] === 'arm64')) {
if (!(process.platform === 'win32' && (process.arch === 'arm64' || process.env['npm_config_arch'] === 'arm64'))) {
yarnInstall('remote'); // node modules used by vscode server
yarnInstall('remote/web'); // node modules used by vscode web
}

View File

@@ -40,7 +40,8 @@
"gulp-bom": "^1.0.0",
"gulp-sourcemaps": "^1.11.0",
"gulp-uglify": "^3.0.0",
"iconv-lite-umd": "0.6.7",
"iconv-lite-umd": "0.6.8",
"jsonc-parser": "^2.3.0",
"mime": "^1.3.4",
"minimatch": "3.0.4",
"minimist": "^1.2.3",
@@ -49,7 +50,7 @@
"rollup-plugin-commonjs": "^10.1.0",
"rollup-plugin-node-resolve": "^5.2.0",
"terser": "4.3.8",
"typescript": "^4.0.0-dev.20200629",
"typescript": "^4.1.0-dev.20200824",
"vsce": "1.48.0",
"vscode-telemetry-extractor": "^1.6.0",
"xml2js": "^0.4.17"

View File

@@ -14,7 +14,8 @@
"checkJs": true,
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true
"noUnusedParameters": true,
"newLine": "lf"
},
"include": [
"**/*.ts"

View File

@@ -34,6 +34,7 @@ VersionInfoVersion={#RawVersion}
ShowLanguageDialog=auto
ArchitecturesAllowed={#ArchitecturesAllowed}
ArchitecturesInstallIn64BitMode={#ArchitecturesInstallIn64BitMode}
WizardStyle=modern
#ifdef Sign
SignTool=esrp
@@ -47,7 +48,7 @@ DefaultDirName={pf}\{#DirName}
#endif
[Languages]
Name: "english"; MessagesFile: "{#RepoDir}\build\win32\i18n\Default.isl,{#RepoDir}\build\win32\i18n\messages.en.isl" {#LocalizedLanguageFile}
Name: "english"; MessagesFile: "compiler:Default.isl,{#RepoDir}\build\win32\i18n\messages.en.isl" {#LocalizedLanguageFile}
Name: "german"; MessagesFile: "compiler:Languages\German.isl,{#RepoDir}\build\win32\i18n\messages.de.isl" {#LocalizedLanguageFile("deu")}
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl,{#RepoDir}\build\win32\i18n\messages.es.isl" {#LocalizedLanguageFile("esp")}
Name: "french"; MessagesFile: "compiler:Languages\French.isl,{#RepoDir}\build\win32\i18n\messages.fr.isl" {#LocalizedLanguageFile("fra")}
@@ -58,7 +59,7 @@ Name: "korean"; MessagesFile: "{#RepoDir}\build\win32\i18n\Default.ko.isl,{#Repo
Name: "simplifiedChinese"; MessagesFile: "{#RepoDir}\build\win32\i18n\Default.zh-cn.isl,{#RepoDir}\build\win32\i18n\messages.zh-cn.isl" {#LocalizedLanguageFile("chs")}
Name: "traditionalChinese"; MessagesFile: "{#RepoDir}\build\win32\i18n\Default.zh-tw.isl,{#RepoDir}\build\win32\i18n\messages.zh-tw.isl" {#LocalizedLanguageFile("cht")}
Name: "brazilianPortuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl,{#RepoDir}\build\win32\i18n\messages.pt-br.isl" {#LocalizedLanguageFile("ptb")}
Name: "hungarian"; MessagesFile: "compiler:Languages\Hungarian.isl,{#RepoDir}\build\win32\i18n\messages.hu.isl" {#LocalizedLanguageFile("hun")}
Name: "hungarian"; MessagesFile: "{#RepoDir}\build\win32\i18n\Default.hu.isl,{#RepoDir}\build\win32\i18n\messages.hu.isl" {#LocalizedLanguageFile("hun")}
Name: "turkish"; MessagesFile: "compiler:Languages\Turkish.isl,{#RepoDir}\build\win32\i18n\messages.tr.isl" {#LocalizedLanguageFile("trk")}
[InstallDelete]
@@ -87,7 +88,7 @@ Source: "{#ProductJsonPath}"; DestDir: "{code:GetDestDir}\resources\app"; Flags:
[Icons]
Name: "{group}\{#NameLong}"; Filename: "{app}\{#ExeBasename}.exe"; AppUserModelID: "{#AppUserId}"
Name: "{commondesktop}\{#NameLong}"; Filename: "{app}\{#ExeBasename}.exe"; Tasks: desktopicon; AppUserModelID: "{#AppUserId}"
Name: "{autodesktop}\{#NameLong}"; Filename: "{app}\{#ExeBasename}.exe"; Tasks: desktopicon; AppUserModelID: "{#AppUserId}"
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#NameLong}"; Filename: "{app}\{#ExeBasename}.exe"; Tasks: quicklaunchicon; AppUserModelID: "{#AppUserId}"
[Run]
@@ -147,7 +148,7 @@ begin
Result := True;
#if "user" == InstallTarget
if not WizardSilent() and IsAdminLoggedOn() then begin
if not WizardSilent() and IsAdmin() then begin
if MsgBox('This User Installer is not meant to be run as an Administrator. If you would like to install Azure Data Studio for all users in this system, download the System Installer instead from https://docs.microsoft.com/sql/azure-data-studio/download. Are you sure you want to continue?', mbError, MB_OKCANCEL) = IDCANCEL then begin
Result := False;
end;

View File

@@ -0,0 +1,366 @@
;Inno Setup version 6.0.3+ Hungarian messages
;Based on the translation of Kornél Pál, kornelpal@gmail.com
;István Szabó, E-mail: istvanszabo890629@gmail.com
;
; To download user-contributed translations of this file, go to:
; http://www.jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=Magyar
LanguageID=$040E
LanguageCodePage=1250
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial CE
;TitleFontSize=29
;CopyrightFontName=Arial CE
;CopyrightFontSize=8
[Messages]
; *** Application titles
SetupAppTitle=Telepítő
SetupWindowTitle=%1 - Telepítő
UninstallAppTitle=Eltávolító
UninstallAppFullTitle=%1 Eltávolító
; *** Misc. common
InformationTitle=Információk
ConfirmTitle=Megerősít
ErrorTitle=Hiba
; *** SetupLdr messages
SetupLdrStartupMessage=%1 telepítve lesz. Szeretné folytatni?
LdrCannotCreateTemp=Átmeneti fájl létrehozása nem lehetséges. A telepítés megszakítva
LdrCannotExecTemp=Fájl futtatása nem lehetséges az átmeneti könyvtárban. A telepítés megszakítva
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%nHiba %2: %3
SetupFileMissing=A(z) %1 fájl hiányzik a telepítő könyvtárából. Kérem hárítsa el a problémát, vagy szerezzen be egy másik példányt a programból!
SetupFileCorrupt=A telepítési fájlok sérültek. Kérem, szerezzen be új másolatot a programból!
SetupFileCorruptOrWrongVer=A telepítési fájlok sérültek, vagy inkompatibilisek a telepítő ezen verziójával. Hárítsa el a problémát, vagy szerezzen be egy másik példányt a programból!
InvalidParameter=A parancssorba átadott paraméter érvénytelen:%n%n%1
SetupAlreadyRunning=A Telepítő már fut.
WindowsVersionNotSupported=A program nem támogatja a Windows ezen verzióját.
WindowsServicePackRequired=A program futtatásához %1 Service Pack %2 vagy újabb szükséges.
NotOnThisPlatform=Ez a program nem futtatható %1 alatt.
OnlyOnThisPlatform=Ezt a programot %1 alatt kell futtatni.
OnlyOnTheseArchitectures=A program kizárólag a következő processzor architektúrákhoz tervezett Windows-on telepíthető:%n%n%1
WinVersionTooLowError=A program futtatásához %1 %2 verziója vagy későbbi szükséges.
WinVersionTooHighError=Ez a program nem telepíthető %1 %2 vagy későbbire.
AdminPrivilegesRequired=Csak rendszergazdai módban telepíthető ez a program.
PowerUserPrivilegesRequired=Csak rendszergazdaként vagy kiemelt felhasználóként telepíthető ez a program.
SetupAppRunningError=A telepítő úgy észlelte %1 jelenleg fut.%n%nZárja be az összes példányt, majd kattintson az 'OK'-ra a folytatáshoz, vagy a 'Mégse'-re a kilépéshez.
UninstallAppRunningError=Az eltávolító úgy észlelte %1 jelenleg fut.%n%nZárja be az összes példányt, majd kattintson az 'OK'-ra a folytatáshoz, vagy a 'Mégse'-re a kilépéshez.
; *** Startup questions
PrivilegesRequiredOverrideTitle=Telepítési mód kiválasztása
PrivilegesRequiredOverrideInstruction=Válasszon telepítési módot
PrivilegesRequiredOverrideText1=%1 telepíthető az összes felhasználónak (rendszergazdai jogok szükségesek), vagy csak magának.
PrivilegesRequiredOverrideText2=%1 csak magának telepíthető, vagy az összes felhasználónak (rendszergazdai jogok szükségesek).
PrivilegesRequiredOverrideAllUsers=Telepítés &mindenkinek
PrivilegesRequiredOverrideAllUsersRecommended=Telepítés &mindenkinek (ajánlott)
PrivilegesRequiredOverrideCurrentUser=Telepítés csak &nekem
PrivilegesRequiredOverrideCurrentUserRecommended=Telepítés csak &nekem (ajánlott)
; *** Misc. errors
ErrorCreatingDir=A Telepítő nem tudta létrehozni a(z) "%1" könyvtárat
ErrorTooManyFilesInDir=Nem hozható létre fájl a(z) "%1" könyvtárban, mert az már túl sok fájlt tartalmaz
; *** Setup common messages
ExitSetupTitle=Kilépés a telepítőből
ExitSetupMessage=A telepítés még folyamatban van. Ha most kilép, a program nem kerül telepítésre.%n%nMásik alkalommal is futtatható a telepítés befejezéséhez%n%nKilép a telepítőből?
AboutSetupMenuItem=&Névjegy...
AboutSetupTitle=Telepítő névjegye
AboutSetupMessage=%1 %2 verzió%n%3%n%nAz %1 honlapja:%n%4
AboutSetupNote=
TranslatorNote=
; *** Buttons
ButtonBack=< &Vissza
ButtonNext=&Tovább >
ButtonInstall=&Telepít
ButtonOK=OK
ButtonCancel=Mégse
ButtonYes=&Igen
ButtonYesToAll=&Mindet
ButtonNo=&Nem
ButtonNoToAll=&Egyiket se
ButtonFinish=&Befejezés
ButtonBrowse=&Tallózás...
ButtonWizardBrowse=T&allózás...
ButtonNewFolder=Új &könyvtár
; *** "Select Language" dialog messages
SelectLanguageTitle=Telepítő nyelvi beállítás
SelectLanguageLabel=Válassza ki a telepítés alatt használt nyelvet.
; *** Common wizard text
ClickNext=A folytatáshoz kattintson a 'Tovább'-ra, a kilépéshez a 'Mégse'-re.
BeveledLabel=
BrowseDialogTitle=Válasszon könyvtárt
BrowseDialogLabel=Válasszon egy könyvtárat az alábbi listából, majd kattintson az 'OK'-ra.
NewFolderName=Új könyvtár
; *** "Welcome" wizard page
WelcomeLabel1=Üdvözli a(z) [name] Telepítővarázslója.
WelcomeLabel2=A(z) [name/ver] telepítésre kerül a számítógépén.%n%nAjánlott minden, egyéb futó alkalmazás bezárása a folytatás előtt.
; *** "Password" wizard page
WizardPassword=Jelszó
PasswordLabel1=Ez a telepítés jelszóval védett.
PasswordLabel3=Kérem adja meg a jelszót, majd kattintson a 'Tovább'-ra. A jelszavak kis- és nagy betű érzékenyek lehetnek.
PasswordEditLabel=&Jelszó:
IncorrectPassword=Az ön által megadott jelszó helytelen. Próbálja újra.
; *** "License Agreement" wizard page
WizardLicense=Licencszerződés
LicenseLabel=Olvassa el figyelmesen az információkat folytatás előtt.
LicenseLabel3=Kérem, olvassa el az alábbi licencszerződést. A telepítés folytatásához, el kell fogadnia a szerződést.
LicenseAccepted=&Elfogadom a szerződést
LicenseNotAccepted=&Nem fogadom el a szerződést
; *** "Information" wizard pages
WizardInfoBefore=Információk
InfoBeforeLabel=Olvassa el a következő fontos információkat a folytatás előtt.
InfoBeforeClickLabel=Ha készen áll, kattintson a 'Tovább'-ra.
WizardInfoAfter=Információk
InfoAfterLabel=Olvassa el a következő fontos információkat a folytatás előtt.
InfoAfterClickLabel=Ha készen áll, kattintson a 'Tovább'-ra.
; *** "User Information" wizard page
WizardUserInfo=Felhasználó adatai
UserInfoDesc=Kérem, adja meg az adatait
UserInfoName=&Felhasználónév:
UserInfoOrg=&Szervezet:
UserInfoSerial=&Sorozatszám:
UserInfoNameRequired=Meg kell adnia egy nevet.
; *** "Select Destination Location" wizard page
WizardSelectDir=Válasszon célkönyvtárat
SelectDirDesc=Hova települjön a(z) [name]?
SelectDirLabel3=A(z) [name] az alábbi könyvtárba lesz telepítve.
SelectDirBrowseLabel=A folytatáshoz, kattintson a 'Tovább'-ra. Ha másik könyvtárat választana, kattintson a 'Tallózás'-ra.
DiskSpaceGBLabel=At least [gb] GB szabad területre van szükség.
DiskSpaceMBLabel=Legalább [mb] MB szabad területre van szükség.
CannotInstallToNetworkDrive=A Telepítő nem tud hálózati meghajtóra telepíteni.
CannotInstallToUNCPath=A Telepítő nem tud hálózati UNC elérési útra telepíteni.
InvalidPath=Teljes útvonalat adjon meg, a meghajtó betűjelével; például:%n%nC:\Alkalmazás%n%nvagy egy hálózati útvonalat a következő alakban:%n%n\\kiszolgáló\megosztás
InvalidDrive=A kiválasztott meghajtó vagy hálózati megosztás nem létezik vagy nem elérhető. Válasszon egy másikat.
DiskSpaceWarningTitle=Nincs elég szabad terület
DiskSpaceWarning=A Telepítőnek legalább %1 KB szabad lemezterületre van szüksége, viszont a kiválasztott meghajtón csupán %2 KB áll rendelkezésre.%n%nMindenképpen folytatja?
DirNameTooLong=A könyvtár neve vagy az útvonal túl hosszú.
InvalidDirName=A könyvtár neve érvénytelen.
BadDirName32=A könyvtárak nevei ezen karakterek egyikét sem tartalmazhatják:%n%n%1
DirExistsTitle=A könyvtár már létezik
DirExists=A könyvtár:%n%n%1%n%nmár létezik. Mindenképp ide akar telepíteni?
DirDoesntExistTitle=A könyvtár nem létezik
DirDoesntExist=A könyvtár:%n%n%1%n%nnem létezik. Szeretné létrehozni?
; *** "Select Components" wizard page
WizardSelectComponents=Összetevők kiválasztása
SelectComponentsDesc=Mely összetevők kerüljenek telepítésre?
SelectComponentsLabel2=Jelölje ki a telepítendő összetevőket; törölje a telepíteni nem kívánt összetevőket. Kattintson a 'Tovább'-ra, ha készen áll a folytatásra.
FullInstallation=Teljes telepítés
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Szokásos telepítés
CustomInstallation=Egyéni telepítés
NoUninstallWarningTitle=Létező összetevő
NoUninstallWarning=A telepítő úgy találta, hogy a következő összetevők már telepítve vannak a számítógépre:%n%n%1%n%nEzen összetevők kijelölésének törlése, nem távolítja el azokat a számítógépről.%n%nMindenképpen folytatja?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceMBLabel=A jelenlegi kijelölés legalább [gb] GB lemezterületet igényel.
ComponentsDiskSpaceMBLabel=A jelenlegi kijelölés legalább [mb] MB lemezterületet igényel.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=További feladatok
SelectTasksDesc=Mely kiegészítő feladatok kerüljenek végrehajtásra?
SelectTasksLabel2=Jelölje ki, mely kiegészítő feladatokat hajtsa végre a Telepítő a(z) [name] telepítése során, majd kattintson a 'Tovább'-ra.
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Start Menü könyvtára
SelectStartMenuFolderDesc=Hova helyezze a Telepítő a program parancsikonjait?
SelectStartMenuFolderLabel3=A Telepítő a program parancsikonjait a Start menü következő mappájában fogja létrehozni.
SelectStartMenuFolderBrowseLabel=A folytatáshoz kattintson a 'Tovább'-ra. Ha másik mappát választana, kattintson a 'Tallózás'-ra.
MustEnterGroupName=Meg kell adnia egy mappanevet.
GroupNameTooLong=A könyvtár neve vagy az útvonal túl hosszú.
InvalidGroupName=A könyvtár neve érvénytelen.
BadGroupName=A könyvtárak nevei ezen karakterek egyikét sem tartalmazhatják:%n%n%1
NoProgramGroupCheck2=&Ne hozzon létre mappát a Start menüben
; *** "Ready to Install" wizard page
WizardReady=Készen állunk a telepítésre
ReadyLabel1=A Telepítő készen áll, a(z) [name] számítógépre telepítéshez.
ReadyLabel2a=Kattintson a 'Telepítés'-re a folytatáshoz, vagy a "Vissza"-ra a beállítások áttekintéséhez vagy megváltoztatásához.
ReadyLabel2b=Kattintson a 'Telepítés'-re a folytatáshoz.
ReadyMemoUserInfo=Felhasználó adatai:
ReadyMemoDir=Telepítés célkönyvtára:
ReadyMemoType=Telepítés típusa:
ReadyMemoComponents=Választott összetevők:
ReadyMemoGroup=Start menü mappája:
ReadyMemoTasks=Kiegészítő feladatok:
; *** "Preparing to Install" wizard page
WizardPreparing=Felkészülés a telepítésre
PreparingDesc=A Telepítő felkészül a(z) [name] számítógépre történő telepítéshez.
PreviousInstallNotCompleted=gy korábbi program telepítése/eltávolítása nem fejeződött be. Újra kell indítania a számítógépét a másik telepítés befejezéséhez.%n%nA számítógépe újraindítása után ismét futtassa a Telepítőt a(z) [name] telepítésének befejezéséhez.
CannotContinue=A telepítés nem folytatható. A kilépéshez kattintson a 'Mégse'-re
ApplicationsFound=A következő alkalmazások olyan fájlokat használnak, amelyeket a Telepítőnek frissíteni kell. Ajánlott, hogy engedélyezze a Telepítőnek ezen alkalmazások automatikus bezárását.
ApplicationsFound2=A következő alkalmazások olyan fájlokat használnak, amelyeket a Telepítőnek frissíteni kell. Ajánlott, hogy engedélyezze a Telepítőnek ezen alkalmazások automatikus bezárását. A telepítés befejezése után a Telepítő megkísérli az alkalmazások újraindítását.
CloseApplications=&Alkalmazások automatikus bezárása
DontCloseApplications=&Ne zárja be az alkalmazásokat
ErrorCloseApplications=A Telepítő nem tudott minden alkalmazást automatikusan bezárni. A folytatás előtt ajánlott minden, a Telepítő által frissítendő fájlokat használó alkalmazást bezárni.
PrepareToInstallNeedsRestart=A telepítőnek újra kell indítania a számítógépet. Újraindítást követően, futtassa újból a telepítőt, a [name] telepítésének befejezéséhez .%n%nÚjra szeretné indítani most a számítógépet?
; *** "Installing" wizard page
WizardInstalling=Telepítés
InstallingLabel=Kérem várjon, amíg a(z) [name] telepítése zajlik.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=A(z) [name] telepítésének befejezése
FinishedLabelNoIcons=A Telepítő végzett a(z) [name] telepítésével.
FinishedLabel=A Telepítő végzett a(z) [name] telepítésével. Az alkalmazást a létrehozott ikonok kiválasztásával indíthatja.
ClickFinish=Kattintson a 'Befejezés'-re a kilépéshez.
FinishedRestartLabel=A(z) [name] telepítésének befejezéséhez újra kell indítani a számítógépet. Újraindítja most?
FinishedRestartMessage=A(z) [name] telepítésének befejezéséhez, a Telepítőnek újra kell indítani a számítógépet.%n%nÚjraindítja most?
ShowReadmeCheck=Igen, szeretném elolvasni a FONTOS fájlt
YesRadio=&Igen, újraindítás most
NoRadio=&Nem, később indítom újra
; used for example as 'Run MyProg.exe'
RunEntryExec=%1 futtatása
; used for example as 'View Readme.txt'
RunEntryShellExec=%1 megtekintése
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=A Telepítőnek szüksége van a következő lemezre
SelectDiskLabel2=Helyezze be a(z) %1. lemezt és kattintson az 'OK'-ra.%n%nHa a fájlok a lemez egy a megjelenítettől különböző mappájában találhatók, írja be a helyes útvonalat vagy kattintson a 'Tallózás'-ra.
PathLabel=Ú&tvonal:
FileNotInDir2=A(z) "%1" fájl nem található a következő helyen: "%2". Helyezze be a megfelelő lemezt vagy válasszon egy másik mappát.
SelectDirectoryLabel=Adja meg a következő lemez helyét.
; *** Installation phase messages
SetupAborted=A telepítés nem fejeződött be.%n%nHárítsa el a hibát és futtassa újból a Telepítőt.
AbortRetryIgnoreSelectAction=Válasszon műveletet
AbortRetryIgnoreRetry=&Újra
AbortRetryIgnoreIgnore=&Hiba elvetése és folytatás
AbortRetryIgnoreCancel=Telepítés megszakítása
; *** Installation status messages
StatusClosingApplications=Alkalmazások bezárása...
StatusCreateDirs=Könyvtárak létrehozása...
StatusExtractFiles=Fájlok kibontása...
StatusCreateIcons=Parancsikonok létrehozása...
StatusCreateIniEntries=INI bejegyzések létrehozása...
StatusCreateRegistryEntries=Rendszerleíró bejegyzések létrehozása...
StatusRegisterFiles=Fájlok regisztrálása...
StatusSavingUninstall=Eltávolító információk mentése...
StatusRunProgram=Telepítés befejezése...
StatusRestartingApplications=Alkalmazások újraindítása...
StatusRollback=Változtatások visszavonása...
; *** Misc. errors
ErrorInternal2=Belső hiba: %1
ErrorFunctionFailedNoCode=Sikertelen %1
ErrorFunctionFailed=Sikertelen %1; kód: %2
ErrorFunctionFailedWithMessage=Sikertelen %1; kód: %2.%n%3
ErrorExecutingProgram=Nem hajtható végre a fájl:%n%1
; *** Registry errors
ErrorRegOpenKey=Nem nyitható meg a rendszerleíró kulcs:%n%1\%2
ErrorRegCreateKey=Nem hozható létre a rendszerleíró kulcs:%n%1\%2
ErrorRegWriteKey=Nem módosítható a rendszerleíró kulcs:%n%1\%2
; *** INI errors
ErrorIniEntry=Bejegyzés létrehozása sikertelen a következő INI fájlban: "%1".
; *** File copying errors
FileAbortRetryIgnoreSkipNotRecommended=&Fájl kihagyása (nem ajánlott)
FileAbortRetryIgnoreIgnoreNotRecommended=&Hiba elvetése és folytatás (nem ajánlott)
SourceIsCorrupted=A forrásfájl megsérült
SourceDoesntExist=A(z) "%1" forrásfájl nem létezik
ExistingFileReadOnly2=A fájl csak olvashatóként van jelölve.
ExistingFileReadOnlyRetry=Csak &olvasható tulajdonság eltávolítása és újra próbálkozás
ExistingFileReadOnlyKeepExisting=&Létező fájl megtartása
ErrorReadingExistingDest=Hiba lépett fel a fájl olvasása közben:
FileExists=A fájl már létezik.%n%nFelül kívánja írni?
ExistingFileNewer=A létező fájl újabb a telepítésre kerülőnél. Ajánlott a létező fájl megtartása.%n%nMeg kívánja tartani a létező fájlt?
ErrorChangingAttr=Hiba lépett fel a fájl attribútumának módosítása közben:
ErrorCreatingTemp=Hiba lépett fel a fájl telepítési könyvtárban történő létrehozása közben:
ErrorReadingSource=Hiba lépett fel a forrásfájl olvasása közben:
ErrorCopying=Hiba lépett fel a fájl másolása közben:
ErrorReplacingExistingFile=Hiba lépett fel a létező fájl cseréje közben:
ErrorRestartReplace=A fájl cseréje az újraindítás után sikertelen volt:
ErrorRenamingTemp=Hiba lépett fel fájl telepítési könyvtárban történő átnevezése közben:
ErrorRegisterServer=Nem lehet regisztrálni a DLL-t/OCX-et: %1
ErrorRegSvr32Failed=Sikertelen RegSvr32. A visszaadott kód: %1
ErrorRegisterTypeLib=Nem lehet regisztrálni a típustárat: %1
; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32-bit
UninstallDisplayNameMark64Bit=64-bit
UninstallDisplayNameMarkAllUsers=Minden felhasználó
UninstallDisplayNameMarkCurrentUser=Jelenlegi felhasználó
; *** Post-installation errors
ErrorOpeningReadme=Hiba lépett fel a FONTOS fájl megnyitása közben.
ErrorRestartingComputer=A Telepítő nem tudta újraindítani a számítógépet. Indítsa újra kézileg.
; *** Uninstaller messages
UninstallNotFound=A(z) "%1" fájl nem létezik. Nem távolítható el.
UninstallOpenError=A(z) "%1" fájl nem nyitható meg. Nem távolítható el.
UninstallUnsupportedVer=A(z) "%1" eltávolítási naplófájl formátumát nem tudja felismerni az eltávolító jelen verziója. Az eltávolítás nem folytatható
UninstallUnknownEntry=Egy ismeretlen bejegyzés (%1) található az eltávolítási naplófájlban
ConfirmUninstall=Biztosan el kívánja távolítani a(z) %1 programot és minden összetevőjét?
UninstallOnlyOnWin64=Ezt a telepítést csak 64-bites Windowson lehet eltávolítani.
OnlyAdminCanUninstall=Ezt a telepítést csak adminisztrációs jogokkal rendelkező felhasználó távolíthatja el.
UninstallStatusLabel=Legyen türelemmel, amíg a(z) %1 számítógépéről történő eltávolítása befejeződik.
UninstalledAll=A(z) %1 sikeresen el lett távolítva a számítógépről.
UninstalledMost=A(z) %1 eltávolítása befejeződött.%n%nNéhány elemet nem lehetett eltávolítani. Törölje kézileg.
UninstalledAndNeedsRestart=A(z) %1 eltávolításának befejezéséhez újra kell indítania a számítógépét.%n%nÚjraindítja most?
UninstallDataCorrupted=A(z) "%1" fájl sérült. Nem távolítható el.
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Törli a megosztott fájlt?
ConfirmDeleteSharedFile2=A rendszer azt jelzi, hogy a következő megosztott fájlra már nincs szüksége egyetlen programnak sem. Eltávolítja a megosztott fájlt?%n%nHa más programok még mindig használják a megosztott fájlt, akkor az eltávolítása után lehet, hogy nem fognak megfelelően működni. Ha bizonytalan, válassza a Nemet. A fájl megtartása nem okoz problémát a rendszerben.
SharedFileNameLabel=Fájlnév:
SharedFileLocationLabel=Helye:
WizardUninstalling=Eltávolítás állapota
StatusUninstalling=%1 eltávolítása...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=%1 telepítése.
ShutdownBlockReasonUninstallingApp=%1 eltávolítása.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1, verzió: %2
AdditionalIcons=További parancsikonok:
CreateDesktopIcon=&Asztali ikon létrehozása
CreateQuickLaunchIcon=&Gyorsindító parancsikon létrehozása
ProgramOnTheWeb=%1 az interneten
UninstallProgram=Eltávolítás - %1
LaunchProgram=Indítás %1
AssocFileExtension=A(z) %1 &társítása a(z) %2 fájlkiterjesztéssel
AssocingFileExtension=A(z) %1 társítása a(z) %2 fájlkiterjesztéssel...
AutoStartProgramGroupDescription=Indítópult:
AutoStartProgram=%1 automatikus indítása
AddonHostProgramNotFound=A(z) %1 nem található a kiválasztott könyvtárban.%n%nMindenképpen folytatja?

View File

@@ -1,336 +0,0 @@
; *** Inno Setup version 5.5.3+ English messages ***
;
; To download user-contributed translations of this file, go to:
; http://www.jrsoftware.org/files/istrans/
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=English
LanguageID=$0409
LanguageCodePage=0
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
[Messages]
; *** Application titles
SetupAppTitle=Setup
SetupWindowTitle=Setup - %1
UninstallAppTitle=Uninstall
UninstallAppFullTitle=%1 Uninstall
; *** Misc. common
InformationTitle=Information
ConfirmTitle=Confirm
ErrorTitle=Error
; *** SetupLdr messages
SetupLdrStartupMessage=This will install %1. Do you wish to continue?
LdrCannotCreateTemp=Unable to create a temporary file. Setup aborted
LdrCannotExecTemp=Unable to execute file in the temporary directory. Setup aborted
; *** Startup error messages
LastErrorMessage=%1.%n%nError %2: %3
SetupFileMissing=The file %1 is missing from the installation directory. Please correct the problem or obtain a new copy of the program.
SetupFileCorrupt=The setup files are corrupted. Please obtain a new copy of the program.
SetupFileCorruptOrWrongVer=The setup files are corrupted, or are incompatible with this version of Setup. Please correct the problem or obtain a new copy of the program.
InvalidParameter=An invalid parameter was passed on the command line:%n%n%1
SetupAlreadyRunning=Setup is already running.
WindowsVersionNotSupported=This program does not support the version of Windows your computer is running.
WindowsServicePackRequired=This program requires %1 Service Pack %2 or later.
NotOnThisPlatform=This program will not run on %1.
OnlyOnThisPlatform=This program must be run on %1.
OnlyOnTheseArchitectures=This program can only be installed on versions of Windows designed for the following processor architectures:%n%n%1
MissingWOW64APIs=The version of Windows you are running does not include functionality required by Setup to perform a 64-bit installation. To correct this problem, please install Service Pack %1.
WinVersionTooLowError=This program requires %1 version %2 or later.
WinVersionTooHighError=This program cannot be installed on %1 version %2 or later.
AdminPrivilegesRequired=You must be logged in as an administrator when installing this program.
PowerUserPrivilegesRequired=You must be logged in as an administrator or as a member of the Power Users group when installing this program.
SetupAppRunningError=Setup has detected that %1 is currently running.%n%nPlease close all instances of it now, then click OK to continue, or Cancel to exit.
UninstallAppRunningError=Uninstall has detected that %1 is currently running.%n%nPlease close all instances of it now, then click OK to continue, or Cancel to exit.
; *** Misc. errors
ErrorCreatingDir=Setup was unable to create the directory "%1"
ErrorTooManyFilesInDir=Unable to create a file in the directory "%1" because it contains too many files
; *** Setup common messages
ExitSetupTitle=Exit Setup
ExitSetupMessage=Setup is not complete. If you exit now, the program will not be installed.%n%nYou may run Setup again at another time to complete the installation.%n%nExit Setup?
AboutSetupMenuItem=&About Setup...
AboutSetupTitle=About Setup
AboutSetupMessage=%1 version %2%n%3%n%n%1 home page:%n%4
AboutSetupNote=
TranslatorNote=
; *** Buttons
ButtonBack=< &Back
ButtonNext=&Next >
ButtonInstall=&Install
ButtonOK=OK
ButtonCancel=Cancel
ButtonYes=&Yes
ButtonYesToAll=Yes to &All
ButtonNo=&No
ButtonNoToAll=N&o to All
ButtonFinish=&Finish
ButtonBrowse=&Browse...
ButtonWizardBrowse=B&rowse...
ButtonNewFolder=&Make New Folder
; *** "Select Language" dialog messages
SelectLanguageTitle=Select Setup Language
SelectLanguageLabel=Select the language to use during the installation:
; *** Common wizard text
ClickNext=Click Next to continue, or Cancel to exit Setup.
BeveledLabel=
BrowseDialogTitle=Browse For Folder
BrowseDialogLabel=Select a folder in the list below, then click OK.
NewFolderName=New Folder
; *** "Welcome" wizard page
WelcomeLabel1=Welcome to the [name] Setup Wizard
WelcomeLabel2=This will install [name/ver] on your computer.%n%nIt is recommended that you close all other applications before continuing.
; *** "Password" wizard page
WizardPassword=Password
PasswordLabel1=This installation is password protected.
PasswordLabel3=Please provide the password, then click Next to continue. Passwords are case-sensitive.
PasswordEditLabel=&Password:
IncorrectPassword=The password you entered is not correct. Please try again.
; *** "License Agreement" wizard page
WizardLicense=License Agreement
LicenseLabel=Please read the following important information before continuing.
LicenseLabel3=Please read the following License Agreement. You must accept the terms of this agreement before continuing with the installation.
LicenseAccepted=I &accept the agreement
LicenseNotAccepted=I &do not accept the agreement
; *** "Information" wizard pages
WizardInfoBefore=Information
InfoBeforeLabel=Please read the following important information before continuing.
InfoBeforeClickLabel=When you are ready to continue with Setup, click Next.
WizardInfoAfter=Information
InfoAfterLabel=Please read the following important information before continuing.
InfoAfterClickLabel=When you are ready to continue with Setup, click Next.
; *** "User Information" wizard page
WizardUserInfo=User Information
UserInfoDesc=Please enter your information.
UserInfoName=&User Name:
UserInfoOrg=&Organization:
UserInfoSerial=&Serial Number:
UserInfoNameRequired=You must enter a name.
; *** "Select Destination Location" wizard page
WizardSelectDir=Select Destination Location
SelectDirDesc=Where should [name] be installed?
SelectDirLabel3=Setup will install [name] into the following folder.
SelectDirBrowseLabel=To continue, click Next. If you would like to select a different folder, click Browse.
DiskSpaceMBLabel=At least [mb] MB of free disk space is required.
CannotInstallToNetworkDrive=Setup cannot install to a network drive.
CannotInstallToUNCPath=Setup cannot install to a UNC path.
InvalidPath=You must enter a full path with drive letter; for example:%n%nC:\APP%n%nor a UNC path in the form:%n%n\\server\share
InvalidDrive=The drive or UNC share you selected does not exist or is not accessible. Please select another.
DiskSpaceWarningTitle=Not Enough Disk Space
DiskSpaceWarning=Setup requires at least %1 KB of free space to install, but the selected drive only has %2 KB available.%n%nDo you want to continue anyway?
DirNameTooLong=The folder name or path is too long.
InvalidDirName=The folder name is not valid.
BadDirName32=Folder names cannot include any of the following characters:%n%n%1
DirExistsTitle=Folder Exists
DirExists=The folder:%n%n%1%n%nalready exists. Would you like to install to that folder anyway?
DirDoesntExistTitle=Folder Does Not Exist
DirDoesntExist=The folder:%n%n%1%n%ndoes not exist. Would you like the folder to be created?
; *** "Select Components" wizard page
WizardSelectComponents=Select Components
SelectComponentsDesc=Which components should be installed?
SelectComponentsLabel2=Select the components you want to install; clear the components you do not want to install. Click Next when you are ready to continue.
FullInstallation=Full installation
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Compact installation
CustomInstallation=Custom installation
NoUninstallWarningTitle=Components Exist
NoUninstallWarning=Setup has detected that the following components are already installed on your computer:%n%n%1%n%nDeselecting these components will not uninstall them.%n%nWould you like to continue anyway?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceMBLabel=Current selection requires at least [mb] MB of disk space.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=Select Additional Tasks
SelectTasksDesc=Which additional tasks should be performed?
SelectTasksLabel2=Select the additional tasks you would like Setup to perform while installing [name], then click Next.
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=Select Start Menu Folder
SelectStartMenuFolderDesc=Where should Setup place the program's shortcuts?
SelectStartMenuFolderLabel3=Setup will create the program's shortcuts in the following Start Menu folder.
SelectStartMenuFolderBrowseLabel=To continue, click Next. If you would like to select a different folder, click Browse.
MustEnterGroupName=You must enter a folder name.
GroupNameTooLong=The folder name or path is too long.
InvalidGroupName=The folder name is not valid.
BadGroupName=The folder name cannot include any of the following characters:%n%n%1
NoProgramGroupCheck2=&Don't create a Start Menu folder
; *** "Ready to Install" wizard page
WizardReady=Ready to Install
ReadyLabel1=Setup is now ready to begin installing [name] on your computer.
ReadyLabel2a=Click Install to continue with the installation, or click Back if you want to review or change any settings.
ReadyLabel2b=Click Install to continue with the installation.
ReadyMemoUserInfo=User information:
ReadyMemoDir=Destination location:
ReadyMemoType=Setup type:
ReadyMemoComponents=Selected components:
ReadyMemoGroup=Start Menu folder:
ReadyMemoTasks=Additional tasks:
; *** "Preparing to Install" wizard page
WizardPreparing=Preparing to Install
PreparingDesc=Setup is preparing to install [name] on your computer.
PreviousInstallNotCompleted=The installation/removal of a previous program was not completed. You will need to restart your computer to complete that installation.%n%nAfter restarting your computer, run Setup again to complete the installation of [name].
CannotContinue=Setup cannot continue. Please click Cancel to exit.
ApplicationsFound=The following applications are using files that need to be updated by Setup. It is recommended that you allow Setup to automatically close these applications.
ApplicationsFound2=The following applications are using files that need to be updated by Setup. It is recommended that you allow Setup to automatically close these applications. After the installation has completed, Setup will attempt to restart the applications.
CloseApplications=&Automatically close the applications
DontCloseApplications=&Do not close the applications
ErrorCloseApplications=Setup was unable to automatically close all applications. It is recommended that you close all applications using files that need to be updated by Setup before continuing.
; *** "Installing" wizard page
WizardInstalling=Installing
InstallingLabel=Please wait while Setup installs [name] on your computer.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=Completing the [name] Setup Wizard
FinishedLabelNoIcons=Setup has finished installing [name] on your computer.
FinishedLabel=Setup has finished installing [name] on your computer. The application may be launched by selecting the installed icons.
ClickFinish=Click Finish to exit Setup.
FinishedRestartLabel=To complete the installation of [name], Setup must restart your computer. Would you like to restart now?
FinishedRestartMessage=To complete the installation of [name], Setup must restart your computer.%n%nWould you like to restart now?
ShowReadmeCheck=Yes, I would like to view the README file
YesRadio=&Yes, restart the computer now
NoRadio=&No, I will restart the computer later
; used for example as 'Run MyProg.exe'
RunEntryExec=Run %1
; used for example as 'View Readme.txt'
RunEntryShellExec=View %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=Setup Needs the Next Disk
SelectDiskLabel2=Please insert Disk %1 and click OK.%n%nIf the files on this disk can be found in a folder other than the one displayed below, enter the correct path or click Browse.
PathLabel=&Path:
FileNotInDir2=The file "%1" could not be located in "%2". Please insert the correct disk or select another folder.
SelectDirectoryLabel=Please specify the location of the next disk.
; *** Installation phase messages
SetupAborted=Setup was not completed.%n%nPlease correct the problem and run Setup again.
EntryAbortRetryIgnore=Click Retry to try again, Ignore to proceed anyway, or Abort to cancel installation.
; *** Installation status messages
StatusClosingApplications=Closing applications...
StatusCreateDirs=Creating directories...
StatusExtractFiles=Extracting files...
StatusCreateIcons=Creating shortcuts...
StatusCreateIniEntries=Creating INI entries...
StatusCreateRegistryEntries=Creating registry entries...
StatusRegisterFiles=Registering files...
StatusSavingUninstall=Saving uninstall information...
StatusRunProgram=Finishing installation...
StatusRestartingApplications=Restarting applications...
StatusRollback=Rolling back changes...
; *** Misc. errors
ErrorInternal2=Internal error: %1
ErrorFunctionFailedNoCode=%1 failed
ErrorFunctionFailed=%1 failed; code %2
ErrorFunctionFailedWithMessage=%1 failed; code %2.%n%3
ErrorExecutingProgram=Unable to execute file:%n%1
; *** Registry errors
ErrorRegOpenKey=Error opening registry key:%n%1\%2
ErrorRegCreateKey=Error creating registry key:%n%1\%2
ErrorRegWriteKey=Error writing to registry key:%n%1\%2
; *** INI errors
ErrorIniEntry=Error creating INI entry in file "%1".
; *** File copying errors
FileAbortRetryIgnore=Click Retry to try again, Ignore to skip this file (not recommended), or Abort to cancel installation.
FileAbortRetryIgnore2=Click Retry to try again, Ignore to proceed anyway (not recommended), or Abort to cancel installation.
SourceIsCorrupted=The source file is corrupted
SourceDoesntExist=The source file "%1" does not exist
ExistingFileReadOnly=The existing file is marked as read-only.%n%nClick Retry to remove the read-only attribute and try again, Ignore to skip this file, or Abort to cancel installation.
ErrorReadingExistingDest=An error occurred while trying to read the existing file:
FileExists=The file already exists.%n%nWould you like Setup to overwrite it?
ExistingFileNewer=The existing file is newer than the one Setup is trying to install. It is recommended that you keep the existing file.%n%nDo you want to keep the existing file?
ErrorChangingAttr=An error occurred while trying to change the attributes of the existing file:
ErrorCreatingTemp=An error occurred while trying to create a file in the destination directory:
ErrorReadingSource=An error occurred while trying to read the source file:
ErrorCopying=An error occurred while trying to copy a file:
ErrorReplacingExistingFile=An error occurred while trying to replace the existing file:
ErrorRestartReplace=RestartReplace failed:
ErrorRenamingTemp=An error occurred while trying to rename a file in the destination directory:
ErrorRegisterServer=Unable to register the DLL/OCX: %1
ErrorRegSvr32Failed=RegSvr32 failed with exit code %1
ErrorRegisterTypeLib=Unable to register the type library: %1
; *** Post-installation errors
ErrorOpeningReadme=An error occurred while trying to open the README file.
ErrorRestartingComputer=Setup was unable to restart the computer. Please do this manually.
; *** Uninstaller messages
UninstallNotFound=File "%1" does not exist. Cannot uninstall.
UninstallOpenError=File "%1" could not be opened. Cannot uninstall
UninstallUnsupportedVer=The uninstall log file "%1" is in a format not recognized by this version of the uninstaller. Cannot uninstall
UninstallUnknownEntry=An unknown entry (%1) was encountered in the uninstall log
ConfirmUninstall=Are you sure you want to completely remove %1? Extensions and settings will not be removed.
UninstallOnlyOnWin64=This installation can only be uninstalled on 64-bit Windows.
OnlyAdminCanUninstall=This installation can only be uninstalled by a user with administrative privileges.
UninstallStatusLabel=Please wait while %1 is removed from your computer.
UninstalledAll=%1 was successfully removed from your computer.
UninstalledMost=%1 uninstall complete.%n%nSome elements could not be removed. These can be removed manually.
UninstalledAndNeedsRestart=To complete the uninstallation of %1, your computer must be restarted.%n%nWould you like to restart now?
UninstallDataCorrupted="%1" file is corrupted. Cannot uninstall
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=Remove Shared File?
ConfirmDeleteSharedFile2=The system indicates that the following shared file is no longer in use by any programs. Would you like for Uninstall to remove this shared file?%n%nIf any programs are still using this file and it is removed, those programs may not function properly. If you are unsure, choose No. Leaving the file on your system will not cause any harm.
SharedFileNameLabel=File name:
SharedFileLocationLabel=Location:
WizardUninstalling=Uninstall Status
StatusUninstalling=Uninstalling %1...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=Installing %1.
ShutdownBlockReasonUninstallingApp=Uninstalling %1.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 version %2
AdditionalIcons=Additional icons:
CreateDesktopIcon=Create a &desktop icon
CreateQuickLaunchIcon=Create a &Quick Launch icon
ProgramOnTheWeb=%1 on the Web
UninstallProgram=Uninstall %1
LaunchProgram=Launch %1
AssocFileExtension=&Associate %1 with the %2 file extension
AssocingFileExtension=Associating %1 with the %2 file extension...
AutoStartProgramGroupDescription=Startup:
AutoStartProgram=Automatically start %1
AddonHostProgramNotFound=%1 could not be located in the folder you selected.%n%nDo you want to continue anyway?

View File

@@ -1,12 +1,16 @@
; *** Inno Setup version 5.5.3+ Korean messages ***
;
; To download user-contributed translations of this file, go to:
; http://www.jrsoftware.org/files/istrans/
; *** Inno Setup version 6.0.0+ Korean messages ***
;
; ▒ 6.0.3+ Translator: SungDong Kim (acroedit@gmail.com)
; ▒ 5.5.3+ Translator: Domddol (domddol@gmail.com)
; ▒ Translation date: MAR 04, 2014
; ▒ Contributors: Hansoo KIM (iryna7@gmail.com), Woong-Jae An (a183393@hanmail.net)
; ▒ Storage: http://www.jrsoftware.org/files/istrans/
; ▒ 이 번역은 새로운 한국어 맞춤법 규칙을 준수합니다.
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
@@ -23,50 +27,68 @@ LanguageCodePage=949
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
[Messages]
; *** Application titles
SetupAppTitle=설치
SetupWindowTitle=설치 - %1
SetupWindowTitle=%1 설치
UninstallAppTitle=제거
UninstallAppFullTitle=%1 제거
; *** Misc. common
InformationTitle=정보
ConfirmTitle=확인
ErrorTitle=오류
; *** SetupLdr messages
SetupLdrStartupMessage=그러면 %1이(가) 설치니다. 계속하시겠습니까?
LdrCannotCreateTemp=임시 파일을 만들 수 없습니다. 설치 프로그램이 중단되었습니다.
LdrCannotExecTemp=임시 디렉터리에서 파일을 실행할 수 없습니다. 설치 프로그램이 중단되었습니다.
SetupLdrStartupMessage=%1을(를) 설치니다, 계속하시겠습니까?
LdrCannotCreateTemp=임시 파일을 만들 수 없습니다, 설치를 중단합니다
LdrCannotExecTemp=임시 폴더의 파일을 실행할 수 없습니다, 설치를 중단합니다
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1.%n%n오류 %2: %3
SetupFileMissing=파일 %1이(가) 설치 디렉터리에서 누락되었습니다. 문제를 해결하거나 프로그램을 새로 받으세요.
SetupFileCorrupt=설치 파일이 손상되었습니다. 프로그램을 새로 받으세요.
SetupFileCorruptOrWrongVer=설치 파일 손상되었거나 이 버전의 설치 프로그램과 호환되지 않습니다. 문제를 해결하거나 프로그램을 새로 받으세요.
InvalidParameter=명령줄에 잘못된 매개 변수가 전달됨:%n%n%1
SetupAlreadyRunning=설치 프로그램이 이미 실행 중입니다.
WindowsVersionNotSupported=이 프로그램은 컴퓨터에서 실행 중인 버전의 Windows 지원하지 않습니다.
WindowsServicePackRequired=이 프로그램을 설치하려면 %1 서비스 팩 %2 이상이 필요합니다.
NotOnThisPlatform=이 프로그램은 %1에서 실행되지 않습니다.
SetupFileMissing=%1 파일이 존재하지 않습니다, 문제를 해결해 보거나 새로운 설치 프로그램을 구하시기 바랍니다.
SetupFileCorrupt=설치 파일이 손상되었습니다, 새로운 설치 프로그램을 구하시기 바랍니다.
SetupFileCorruptOrWrongVer=설치 파일 손상거나 이 설치 버전과 호환되지 않습니다, 문제를 해결해 보거나 새로운 설치 프로그램을 구하시기 바랍니다.
InvalidParameter=잘못된 매개 변수입니다:%n%n%1
SetupAlreadyRunning=설치 이미 실행 중입니다.
WindowsVersionNotSupported=이 프로그램은 귀하의 Windows 버전을 지원하지 않습니다.
WindowsServicePackRequired=이 프로그램을 실행하려면 %1 sp%2 이상이어야 합니다.
NotOnThisPlatform=이 프로그램은 %1에서 작동하지 않습니다.
OnlyOnThisPlatform=이 프로그램은 %1에서 실행해야 합니다.
OnlyOnTheseArchitectures=이 프로그램은 프로세서 아키텍처 %n%n%1용으로 설계된 Windows 버전에만 설치할 수 있습니다.
MissingWOW64APIs=실행 중인 Windows 버전에는 설치 프로그램에서 64비트를 설치하는 데 필요한 기능이 없습니다. 이 문제를 해결하려면 서비스 팩 %1을(를) 설치하세요.
WinVersionTooLowError=이 프로그램을 설치하려면 %1 버전 %2 이상이 필요합니다.
WinVersionTooHighError=이 프로그램은 %1 버전 %2 이상에서는 설치할 수 없습니다.
AdminPrivilegesRequired=이 프로그램을 설치할 때는 관리자로 로그인해야 합니다.
PowerUserPrivilegesRequired=이 프로그램을 설치할 때는 관리자나 고급 사용자 그룹의 구성원으로 로그인해야 합니다.
SetupAppRunningError=설치 프로그램에서 %1(이)가 현재 실행 중임을 감지했습니다.%n%n이 항목의 모든 인스턴스를 지금 닫고 계속하려면 [확인]을, 종료하려면 [취소]를 클릭하세요.
UninstallAppRunningError=제거 작업에서 %1(이)가 현재 실행 중임을 감지했습니다.%n%n이 항목의 모든 인스턴스를 지금 닫고 계속하려면 [확인]을, 종료하려면 [취소]를 클릭하세요.
OnlyOnTheseArchitectures=이 프로그램은 아래 처리 구조와 호환되는 Windows 버전에만 설치할 수 있습니다:%n%n%1
WinVersionTooLowError=이 프로그램은 %1 버전 %2 이상이 필요합니다.
WinVersionTooHighError=이 프로그램 %1 버전 %2 이상에서 설치할 수 없습니다.
AdminPrivilegesRequired=이 프로그램을 설치하려면 관리자로 로그인해야 합니다.
PowerUserPrivilegesRequired=이 프로그램을 설치하려면 관리자 또는 고급 사용자로 로그인해야 합니다.
SetupAppRunningError=현재 %1이(가) 실행 중입니다!%n%n지금 그것의 모든 인스턴스를 닫아 주십시오. 그런 다음 계속하려면 "확인"을, 종료하려면 "취소"를 클릭하십시오.
UninstallAppRunningError=현재 %1이(가) 실행 중입니다!%n%n지금 그것의 모든 인스턴스를 닫아 주십시오. 그런 다음 계속하려면 "확인"을, 종료하려면 "취소"를 클릭하십시오.
; *** Startup questions
PrivilegesRequiredOverrideTitle=설치 모드 선택
PrivilegesRequiredOverrideInstruction=설치 모드를 선택해 주십시오
PrivilegesRequiredOverrideText1=%1 은 모든 사용자(관리자 권한 필요) 또는 현재 사용자용으로 설치합니다.
PrivilegesRequiredOverrideText2=%1 은 현재 사용자 또는 모든 사용자(관리자 권한 필요) 용으로 설치합니다.
PrivilegesRequiredOverrideAllUsers=모든 사용자용으로 설치(&A)
PrivilegesRequiredOverrideAllUsersRecommended=모든 사용자용으로 설치(&A) (추천)
PrivilegesRequiredOverrideCurrentUser=현재 사용자용으로 설치(&M)
PrivilegesRequiredOverrideCurrentUserRecommended=현재 사용자용으로 설치(&M) (추천)
; *** Misc. errors
ErrorCreatingDir=설치 프로그램에서 디렉터리 "%1"을(를) 만들 수 없습니다.
ErrorTooManyFilesInDir=디렉터리 "%1"에 파일이 너무 많으므로 이 디렉터리에 파일을 만들 수 없습니다.
ErrorCreatingDir="%1" 폴더를 만들 수 없습니다.
ErrorTooManyFilesInDir="%1" 폴더에 파일이 너무 많기 때문에 파일을 만들 수 없습니다.
; *** Setup common messages
ExitSetupTitle=설치
ExitSetupMessage=설치가 완료되지 않았습니다. 지금 종료하면 프로그램 설치되지 않습니다.%n%n나중에 설치 프로그램을 다시 실행하여 설치를 끝낼 수 있습니다.%n%n설치 프로그램을 종료하시겠습니까?
AboutSetupMenuItem=설치 프로그램 정보(&A)...
AboutSetupTitle=설치 프로그램 정보
AboutSetupMessage=%1 버전 %2%n%3%n%n%1 홈페이지:%n%4
ExitSetupTitle=설치
ExitSetupMessage=설치가 완료되지 않았습니다, 여기서 설치를 종료하면 프로그램 설치되지 않습니다.%n%n설치를 완료하려면 나중에 다시 설치 프로그램을 실행해야 합니다.%n%n그래도 설치를 종료하시겠습니까?
AboutSetupMenuItem=설치 정보(&A)...
AboutSetupTitle=설치 정보
AboutSetupMessage=%1 버전 %2%n%3%n%n%1 홈 페이지:%n%4
AboutSetupNote=
TranslatorNote=
; *** Buttons
ButtonBack=< 뒤로(&B)
ButtonNext=다음(&N) >
@@ -75,224 +97,271 @@ ButtonOK=Ȯ
ButtonCancel=취소
ButtonYes=예(&Y)
ButtonYesToAll=모두 예(&A)
ButtonNo=아니(&N)
ButtonNoToAll=모두 아니(&O)
ButtonFinish=마침(&F)
ButtonNo=아니(&N)
ButtonNoToAll=모두 아니(&O)
ButtonFinish=종료(&F)
ButtonBrowse=찾아보기(&B)...
ButtonWizardBrowse=찾아보기(&R)
ButtonWizardBrowse=찾아보기(&R)...
ButtonNewFolder=새 폴더 만들기(&M)
; *** "Select Language" dialog messages
SelectLanguageTitle=설치 언어 선택
SelectLanguageLabel=설치에 사용할 언어를 선택하세요.
SelectLanguageLabel=설치에 사용할 언어를 선택하십시오.
; *** Common wizard text
ClickNext=계속하려면 [다음]을 클릭하고 설치 프로그램을 종료하려면 [취소]를 클릭하세요.
ClickNext=계속하려면 "다음"을 클릭하고 설치 종료하려면 "취소"를 클릭합니다.
BeveledLabel=
BrowseDialogTitle=폴더 찾아보기
BrowseDialogLabel=아래 목록에서 폴더를 선택한 다음 [확인]을 클릭하세요.
BrowseDialogLabel=아래 목록에서 폴더를 선택한 다음 "확인"을 클릭합니다.
NewFolderName=새 폴더
; *** "Welcome" wizard page
WelcomeLabel1=[name] 설치 마법사 시작
WelcomeLabel2=이 마법사는 컴퓨터에 [name/ver]을(를) 설치니다.%n%n계속하기 전에 다른 모든 응용 프로그램을 닫는 것이 좋습니다.
WelcomeLabel2=이 마법사는 귀하의 컴퓨터에 [name/ver]을(를) 설치할 것입니다.%n%n설치하기 전에 다른 응용프로그램모두 닫으시기 바랍니다.
; *** "Password" wizard page
WizardPassword=
PasswordLabel1=이 설치는 암호로 보호되 있습니다.
PasswordLabel3=계속하려면 암호를 입력한 다음 [다음]을 클릭하세요. 암호는 대소문자를 구분합니다.
PasswordEditLabel=호(&P):
IncorrectPassword=입력한 암호가 잘못되었습니다. 다시 시도하세요.
WizardPassword=비밀 번
PasswordLabel1=이 설치 마법사는 비밀 번호로 보호되 있습니다.
PasswordLabel3=비밀 번호를 입력하고 "다음"을 클릭하십시오. 비밀 번호는 대소문자를 구분해야 합니다.
PasswordEditLabel=비밀 번호(&P):
IncorrectPassword=비밀 번호가 정확하지 않습니다, 다시 입력하십시오.
; *** "License Agreement" wizard page
WizardLicense=사용권 계약
LicenseLabel=계속하기 전에 다음 중요 정보를 읽어 보세요.
LicenseLabel3=다음 사용권 계약을 읽어 주세요. 설치를 계속하려면 먼저 이 계약 조건에 동의해야 합니다.
LicenseAccepted=계약에 동의함(&A)
LicenseNotAccepted=계약에 동의 안 함(&D)
LicenseLabel=계속하기 전에 다음 중요 정보를 읽어보십시오.
LicenseLabel3=다음 사용권 계약을 읽어보십시오, 설치를 계속하려면 이 계약에 동의해야 합니다.
LicenseAccepted=동의합니다(&A)
LicenseNotAccepted=동의하지 않습니다(&D)
; *** "Information" wizard pages
WizardInfoBefore=정보
InfoBeforeLabel=계속하기 전에 다음 중요 정보를 읽어 보세요.
InfoBeforeClickLabel=설치를 계속 진행할 준비가 되[다음]을 클릭합니다.
InfoBeforeLabel=계속하기 전에 다음 중요 정보를 읽어보십시오.
InfoBeforeClickLabel=설치를 계속하려"다음"을 클릭하십시오.
WizardInfoAfter=정보
InfoAfterLabel=계속하기 전에 다음 중요 정보를 읽어 보세요.
InfoAfterClickLabel=설치를 계속 진행할 준비가 되[다음]을 클릭합니다.
InfoAfterLabel=계속하기 전에 다음 중요 정보를 읽어보십시오.
InfoAfterClickLabel=설치를 계속하려"다음"을 클릭하십시오.
; *** "User Information" wizard page
WizardUserInfo=사용자 정보
UserInfoDesc=정보를 입력하세요.
UserInfoDesc=사용자 정보를 입력하십시오.
UserInfoName=사용자 이름(&U):
UserInfoOrg=조직(&O):
UserInfoSerial=일련 번호(&S):
UserInfoNameRequired=이름을 입력해야 합니다.
UserInfoSerial=시리얼 번호(&S):
UserInfoNameRequired=사용자 이름을 입력하십시오.
; *** "Select Destination Location" wizard page
WizardSelectDir=대상 위치 선택
SelectDirDesc=[name]을(를) 어디에 설치하시겠습니까?
SelectDirLabel3=설치 프로그램에서 [name]을(를) 다음 폴더에 설치합니다.
SelectDirBrowseLabel=계속하려면 [다음]을 클릭하세요. 다른 폴더를 선택하려면 [찾아보기]를 클릭하세요.
DiskSpaceMBLabel=적어도 [mb]MB의 여유 디스크 공간이 필요합니다.
CannotInstallToNetworkDrive=설치 프로그램은 네트워크 드라이브에 설치할 수 없습니다.
CannotInstallToUNCPath=설치 프로그램은 UNC 경로에 설치할 수 없습니다.
InvalidPath=드라이브 문자와 함께 전체 경로를 입력해야 합니다. 예:%n%nC:\APP%n%n또는 다음 형태의 UNC 경로:%n%n\\server\share
InvalidDrive=선택한 드라이브나 UNC 공유가 없거나 이 두 항목에 액세스할 수 없습니다. 다른 드라이브나 UNC 공유를 선택하세요.
DiskSpaceWarningTitle=디스크 공간 부족
DiskSpaceWarning=설치 프로그램을 설치하려면 여유 설치 공간이 적어도 %1KB가 필요하지만 선택한 드라이브의 가용 공간은 %2KB밖에 없습니다.%n%n그래도 계속하시겠습니까?
WizardSelectDir=설치 위치 선택
SelectDirDesc=[name]의 설치 위치를 선택하십시오.
SelectDirLabel3=다음 폴더에 [name]을(를) 설치합니다.
SelectDirBrowseLabel=계속하려면 "다음"을, 다른 폴더를 선택하려면 "찾아보기"를 클릭하십시오.
DiskSpaceGBLabel=이 프로그램은 최소 [gb] GB의 디스크 여유 공간이 필요합니다.
DiskSpaceMBLabel=이 프로그램은 최소 [mb] MB의 디스크 여유 공간이 필요합니다.
CannotInstallToNetworkDrive=네트워크 드라이브에 설치할 수 없습니다.
CannotInstallToUNCPath=UNC 경로에 설치할 수 없습니다.
InvalidPath=드라이브 문자를 포함한 전체 경로를 입력하십시오.%n※ 예: C:\APP %n%n또는, UNC 형식의 경로를 입력하십시오.%n※ 예: \\server\share
InvalidDrive=선택한 드라이브 또는 UNC 공유가 존재하지 않거나 액세스할 수 없습니다, 다른 경로를 선택하십시오.
DiskSpaceWarningTitle=디스크 공간이 부족합니다
DiskSpaceWarning=설치 시 최소 %1 KB 디스크 공간이 필요하지만, 선택한 드라이브의 여유 공간은 %2 KB 밖에 없습니다.%n%n그래도 계속하시겠습니까?
DirNameTooLong=폴더 이름 또는 경로가 너무 깁니다.
InvalidDirName=폴더 이름이 잘못되었습니다.
BadDirName32=폴더 이름에는 %n%n%1 문자를 사용할 수 없습니다.
DirExistsTitle=폴더 있음
DirExists=폴더 %n%n%1%n%n이(가) 이미 있습니다. 그래도 해당 폴더에 설치하시겠습니까?
DirDoesntExistTitle=폴더 없음
DirDoesntExist=폴더 %n%n%1%n%n이(가) 없습니다. 폴더를 만드시겠습니까?
InvalidDirName=폴더 이름이 유효하지 않습니다.
BadDirName32=폴더 이름은 다음 문자를 포함할 수 없습니다:%n%n%1
DirExistsTitle=폴더가 존재합니다
DirExists=폴더 %n%n%1%n%n이(가) 이미 존재합니다, 이 폴더에 설치하시겠습니까?
DirDoesntExistTitle=폴더가 존재하지 않습니다
DirDoesntExist=폴더 %n%n%1%n%n이(가) 존재하지 않습니다, 새로 폴더를 만드시겠습니까?
; *** "Select Components" wizard page
WizardSelectComponents=구성 요소 선택
SelectComponentsDesc=어떤 구성 요소를 설치하시겠습니까?
SelectComponentsLabel2=설치할 구성 요소는 선택하고 설치하지 않을 구성 요소는 지우세요. 계속 진행할 준비가 되[다음]을 클릭하세요.
FullInstallation=전체 설치
SelectComponentsDesc=설치할 구성 요소를 선택하십시오.
SelectComponentsLabel2=필요한 구성 요소는 체크하고 불필요한 구성 요소는 체크 해제합니다, 계속하려"다음"을 클릭하십시오.
FullInstallation=모두 설치
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=Compact 설치
CompactInstallation=최소 설치
CustomInstallation=사용자 지정 설치
NoUninstallWarningTitle=구성 요소가 있음
NoUninstallWarning=설치 프로그램에서 구성 요소 %n%n%1%n%n이(가) 컴퓨터에 이미 설치되어 있음을 감지했습니다. 이러한 구성 요소 선택 취소해도 제거되지 않니다.%n%n그래도 계속하시겠습니까?
ComponentSize1=%1KB
ComponentSize2=%1MB
ComponentsDiskSpaceMBLabel=현재 선택을 위해서는 적어도 [mb]MB의 디스크 공간이 필요합니다.
NoUninstallWarningTitle=구성 요소가 존재합니다
NoUninstallWarning=다음 구성 요소가 이미 설치되어 있습니다:%n%n%1%n%n위 구성 요소 선택하지 않으면, 프로그램 제거시 이 구성 요소들은 제거되지 않을 겁니다.%n%n그래도 계속하시겠습니까?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceGBLabel=현재 선택은 최소 [gb] GB의 디스크 여유 공간이 필요합니다.
ComponentsDiskSpaceMBLabel=현재 선택은 최소 [mb] MB의 디스크 여유 공간이 필요합니다.
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=추가 작업 선택
SelectTasksDesc=어떤 작업을 추가로 수행하시겠습니까?
SelectTasksLabel2=설치 프로그램에서 [name]을(를) 설치하는 동안 수행할 추가 작업을 선택한 후 [다음]을 클릭하세요.
SelectTasksDesc=수행할 추가 작업을 선택하십시오.
SelectTasksLabel2=[name] 설치 과정에 포함할 추가 작업을 선택한 후, "다음"을 클릭하십시오.
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=시작 메뉴 폴더 선택
SelectStartMenuFolderDesc=설치 프로그램에서 프로그램 바로 가기를 어디에 만들도록 하시겠습니까?
SelectStartMenuFolderLabel3=설치 프로그램에서 프로그램 바로 가기를 다음 시작 메뉴 폴더에 만듭니다.
SelectStartMenuFolderBrowseLabel=계속하려면 [다음]을 클릭하세요. 다른 폴더를 선택하려면 [찾아보기]를 클릭하세요.
MustEnterGroupName=폴더 이름을 입력해야 합니다.
SelectStartMenuFolderDesc=어디에 프로그램 바로가기를 위치하겠습니까?
SelectStartMenuFolderLabel3=다음 시작 메뉴 폴더에 프로그램 바로가기를 만듭니다.
SelectStartMenuFolderBrowseLabel=계속하려면 "다음"을 클릭하고, 다른 폴더를 선택하려면 "찾아보기"를 클릭하십시오.
MustEnterGroupName=폴더 이름을 입력하십시오.
GroupNameTooLong=폴더 이름 또는 경로가 너무 깁니다.
InvalidGroupName=폴더 이름이 잘못되었습니다.
BadGroupName=폴더 이름에는 %n%n%1 문자를 사용할 수 없습니다.
InvalidGroupName=폴더 이름이 유효하지 않습니다.
BadGroupName=폴더 이름은 다음 문자를 포함할 수 없습니다:%n%n%1
NoProgramGroupCheck2=시작 메뉴 폴더를 만들지 않음(&D)
; *** "Ready to Install" wizard page
WizardReady=설치 준비
ReadyLabel1=이제 설치 프로그램이 컴퓨터에 [name] 설치를 시작할 준비가 되었습니다.
ReadyLabel2a=설치를 계속하려면 [설치]를 클릭하고, 설정을 검토하거나 변경하려면 [뒤로]를 클릭하세요.
ReadyLabel2b=설치를 계속하려면 [설치]를 클릭하세요.
WizardReady=설치 준비 완료
ReadyLabel1=귀하의 컴퓨터에 [name]을(를) 설치할 준비가 되었습니다.
ReadyLabel2a=설치를 계속하려면 "설치"를, 설정을 변경하거나 검토하려면 "뒤로"를 클릭하십시오.
ReadyLabel2b=설치를 계속하려면 "설치"를 클릭하십시오.
ReadyMemoUserInfo=사용자 정보:
ReadyMemoDir=대상 위치:
ReadyMemoDir=설치 위치:
ReadyMemoType=설치 유형:
ReadyMemoComponents=선택한 구성 요소:
ReadyMemoGroup=시작 메뉴 폴더:
ReadyMemoTasks=추가 작업:
; *** "Preparing to Install" wizard page
WizardPreparing=설치 준비 중
PreparingDesc=설치 프로그램에서 컴퓨터에 [name] 설치를 준비하고 있습니다.
PreviousInstallNotCompleted=이전 프로그램의 설치/제거 작업이 완료되지 않았습니다. 해당 설치를 완료하려면 컴퓨터를 다시 시작해야 합니다.%n%n컴퓨터를 다시 시작한 후 [name] 설치를 완료하려면 설치 프로그램을 다시 실행하세요.
CannotContinue=설치 프로그램을 계속할 수 없습니다. 종료하려면 [취소]를 클릭하세요.
ApplicationsFound=설치 프로그램에서 업데이트해야 하는 파일이 다음 응용 프로그램에 사용고 있습니다. 설치 프로그램에서 이러한 응용 프로그램을 자동으로 닫도록 허용하는 것이 좋습니다.
ApplicationsFound2=설치 프로그램에서 업데이트해야 하는 파일이 다음 응용 프로그램에 사용고 있습니다. 설치 프로그램에서 이러한 응용 프로그램을 자동으로 닫도록 허용하는 것이 좋습니다. 설치가 완료되면 설치 프로그램에서 응용 프로그램 다시 시작하려고 시도합니다.
CloseApplications=응용 프로그램 자동 닫기(&A)
DontCloseApplications=응용 프로그램을 지 않음(&D)
ErrorCloseApplications=설치 프로그램에서 일부 응용 프로그램을 자동으로 닫을 수 없습니다. 계속하기 전에 설치 프로그램에서 업데이트해야 하는 파일을 사용하는 응용 프로그램을 모두 닫는 것이 좋습니다.
PreparingDesc=귀하의 컴퓨터에 [name] 설치를 준비하는 중입니다.
PreviousInstallNotCompleted=이전 프로그램의 설치/제거 작업이 완료되지 않았습니다, 완료하려면 컴퓨터를 다시 시작해야 합니다.%n%n컴퓨터를 다시 시작한 후, 설치 마법사를 다시 실행하여 [name] 설치를 완료하시기 바랍니다.
CannotContinue=설치 계속할 수 없습니다, "취소"를 클릭하여 설치를 종료하십시오.
ApplicationsFound=다음 응용프로그램이 설치 업데이트가 필요한 파일을 사용고 있습니다, 설치 마법사가 이런 응용프로그램을 자동으로 종료할 수 있도록 허용하시기 바랍니다.
ApplicationsFound2=다음 응용프로그램이 설치 업데이트가 필요한 파일을 사용고 있습니다, 설치 마법사가 이런 응용프로그램을 자동으로 종료할 수 있도록 허용하시기 바랍니다. 설치가 완료되면, 설치 마법사는 이 응용프로그램 다시 시작되도록 시도할 겁니다.
CloseApplications=자동으로 응용프로그램을 종료함(&A)
DontCloseApplications=응용프로그램을 종료하지 않음(&D)
ErrorCloseApplications=설치 마법사가 응용프로그램을 자동으로 종료할 수 없습니다, 계속하기 전에 설치 업데이트가 필요한 파일을 사용하고 있는 응용프로그램을 모두 종료하시기 바랍니다.
PrepareToInstallNeedsRestart=설치 마법사는 귀하의 컴퓨터를 재시작해야 합니다. [name] 설치를 완료하기 위해 컴퓨터를 다시 시작한 후에 설치 마법사를 다시 실행해 주십시오.%n%n지금 다시 시작하시겠습니까?
; *** "Installing" wizard page
WizardInstalling=설치 중
InstallingLabel=설치 프로그램에서 컴퓨터에 [name]을(를) 설치하는 동안 기다려 주세요.
InstallingLabel=귀하의 컴퓨터에 [name]을(를) 설치하는 중... 잠시 기다려 주십시오.
; *** "Setup Completed" wizard page
FinishedHeadingLabel=[name] 설 마법사 완료하는 중
FinishedLabelNoIcons=설치 프로그램에서 컴퓨터에 [name]을(를) 설치습니다.
FinishedLabel=설치 프로그램에서 컴퓨터에 [name]을(를) 설치습니다. 설치한 바로 가기를 선택하여 해당 응용 프로그램을 시작할 수 있습니다.
ClickFinish=설치 프로그램을 종료하려면 [마침]을 클릭하세요.
FinishedRestartLabel=[name] 설치를 완료하려면 설치 프로그램에서 컴퓨터를 다시 시작해야 합니다. 지금 다시 시작하시겠습니까?
FinishedRestartMessage=[name] 설치를 완료하려면 설치 프로그램에서 컴퓨터를 다시 시작해야 합니다.%n%n지금 다시 시작하시겠습니까?
ShowReadmeCheck=예, README 파일을 보겠습니다.
YesRadio=예, 컴퓨터를 지금 다시 시작하겠습니다(&Y).
NoRadio=아니, 컴퓨터를 나중에 다시 시작하겠습니다(&N).
FinishedHeadingLabel=[name] 설 마법사 완료
FinishedLabelNoIcons=귀하의 컴퓨터에 [name]이(가) 설치되었습니다.
FinishedLabel=귀하의 컴퓨터에 [name]이(가) 설치되었습니다, 응용프로그램은 설치된 아이콘을 선택하여 시작할 수 있습니다.
ClickFinish=설치를 끝내려면 "종료"를 클릭하십시오.
FinishedRestartLabel=[name] 설치를 완료하려면, 컴퓨터를 다시 시작해야 합니다. 지금 다시 시작하시겠습니까?
FinishedRestartMessage=[name] 설치를 완료하려면, 컴퓨터를 다시 시작해야 합니다.%n%n지금 다시 시작하시겠습니까?
ShowReadmeCheck=예, README 파일을 표시합니다
YesRadio=예, 지금 다시 시작니다(&Y)
NoRadio=아니, 나중에 다시 시작니다(&N)
; used for example as 'Run MyProg.exe'
RunEntryExec=%1 실행
; used for example as 'View Readme.txt'
RunEntryShellExec=%1 보기
RunEntryShellExec=%1 표시
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=설치 프로그램에서 다음 디스크가 필요
SelectDiskLabel2=디스크 %1을(를) 삽입한 다음 [확인]을 클릭하세요.%n%n이 디스크의 파일이 아래 표시된 폴더가 아닌 다른 폴더에 있으면 올바른 경로를 입력하거나 [찾아보기]를 클릭하세요.
ChangeDiskTitle=디스크가 필요합니다
SelectDiskLabel2=디스크 %1을(를) 삽입하고 "확인"을 클릭하십시오.%n%n이 디스크의 파일이 아래 경로가 아닌 곳에 있는 경우, 올바른 경로를 입력하거나 "찾아보기"를 클릭하시기 바랍니다.
PathLabel=경로(&P):
FileNotInDir2="%2"에서 파일 "%1"을(를) 찾을 수 없습니다. 올바른 디스크를 삽입하거나 다른 폴더를 선택하세요.
SelectDirectoryLabel=다음 디스크의 위치를 지정하세요.
FileNotInDir2=%2 파일 %1을(를) 위치할 수 없습니다, 올바른 디스크를 삽입하거나 다른 폴더를 선택하십시오.
SelectDirectoryLabel=다음 디스크의 위치를 지정하십시오.
; *** Installation phase messages
SetupAborted=설치 완료못했습니다.%n%n문제를 해결한 다음 설치 프로그램을 다시 실행하세요.
EntryAbortRetryIgnore=다시 시도하려면 [다시 시도]를, 그래도 계속하려면 [무시]를, 설치를 취소하려면 [중단]을 클릭하세요.
SetupAborted=설치 완료않았습니다.%n%n문제를 해결한 후, 다시 설치를 시작하십시오.
AbortRetryIgnoreSelectAction=액션을 선택해 주십시오.
AbortRetryIgnoreRetry=재시도(&T)
AbortRetryIgnoreIgnore=오류를 무시하고 진행(&I)
AbortRetryIgnoreCancel=설치 취소
; *** Installation status messages
StatusClosingApplications=응용 프로그램을 는 중...
StatusCreateDirs=디렉터리를 만드는 중...
StatusClosingApplications=응용프로그램을 종료하는 중...
StatusCreateDirs=폴더를 만드는 중...
StatusExtractFiles=파일을 추출하는 중...
StatusCreateIcons=바로 가기를 만드는 중...
StatusCreateIcons=바로가기를 생성하는 중...
StatusCreateIniEntries=INI 항목을 만드는 중...
StatusCreateRegistryEntries=레지스트리 항목을 만드는 중...
StatusRegisterFiles=파일을 등록하는 중...
StatusSavingUninstall=제거 정보를 저장하는 중...
StatusRunProgram=설치를 완료하는 중...
StatusRestartingApplications=응용 프로그램을 다시 시작하는 중...
StatusRollback=변경 사항을 롤백하는 중...
StatusRestartingApplications=응용프로그램을 다시 시작하는 중...
StatusRollback=변경을 취소하는 중...
; *** Misc. errors
ErrorInternal2=내부 오류: %1
ErrorFunctionFailedNoCode=%1 실패
ErrorFunctionFailed=%1 실패, 코드 %2
ErrorFunctionFailedWithMessage=%1 실패, 코드 %2.%n%3
ErrorExecutingProgram=파일 실행할 수 없음:%n%1
ErrorFunctionFailed=%1 실패; 코드 %2
ErrorFunctionFailedWithMessage=%1 실패, 코드: %2.%n%3
ErrorExecutingProgram=파일 실행 오류:%n%1
; *** Registry errors
ErrorRegOpenKey=레지스트리 키를 여는 중 오류 발생:%n%1\%2
ErrorRegCreateKey=레지스트리 키를 만드는 중 오류 발생:%n%1\%2
ErrorRegWriteKey=레지스트리 키에 기록하는 중 오류 발생:%n%1\%2
ErrorRegOpenKey=레지스트리 키 열기 오류:%n%1\%2
ErrorRegCreateKey=레지스트리 키 생성 오류:%n%1\%2
ErrorRegWriteKey=레지스트리 키 쓰기 오류:%n%1\%2
; *** INI errors
ErrorIniEntry=파일 "%1"에 INI 항목드는 중에 오류가 발생했습니다.
ErrorIniEntry=%1 파일에 INI 항목 만들기 오류입니다.
; *** File copying errors
FileAbortRetryIgnore=다시 시도하려면 [다시 시도]를, 이 파일을 건너뛰려면 [무시](권장지 않음)를, 설치를 취소하려면 [중단]을 클릭하세요.
FileAbortRetryIgnore2=다시 시도하려면 [다시 시도]를, 그래도 계속하려면 [무시](권장지 않음)를, 설치를 취소하려면 [중단]을 클릭하세요.
SourceIsCorrupted=원본 파일이 손상되었습니다.
SourceDoesntExist=원본 파일 "%1"이(가) 없습니다.
ExistingFileReadOnly=기존 파일 읽기 전용으로 표시되어 있습니다.%n%n읽기 전용 특성을 제거하고 다시 시도하려면 [다시 시도]를, 이 파일을 건너뛰려면 [무시]를, 설치를 취소하려면 [중단]을 클릭하세요.
ErrorReadingExistingDest=기존 파일을 읽는 중 오류 발생:
FileExists=해당 파일이 이미 있습니다.%n%n설치 프로그램에서 이 파일을 덮어쓰도록 하시겠습니까?
ExistingFileNewer=기존 파일이 설치 프로그램에서 설치하려는 파일보다 최신입니다. 기존 파일을 유지할 것을 권장합니다.%n%n기존 파일을 유지하시겠습니까?
ErrorChangingAttr=기존 파일의 특성을 변경하는 중 오류 발생:
ErrorCreatingTemp=대상 디렉터리에 파일을 만드는 중 오류 발생:
ErrorReadingSource=원본 파일을 읽는 중 오류 발생:
ErrorCopying=파일을 복사하는 중 오류 발생:
ErrorReplacingExistingFile=기존 파일을 바꾸는 중 오류 발생:
FileAbortRetryIgnoreSkipNotRecommended=이 파일을 건너띔(&S) (권장지 않습니다)
FileAbortRetryIgnoreIgnoreNotRecommended=오류를 무시하고 진행(&I) (권장지 않습니다)
SourceIsCorrupted=원본 파일이 손상
SourceDoesntExist=원본 파일 %1이(가) 존재하지 않음
ExistingFileReadOnly2=기존 파일 읽기 전용이기때문에 대체할 수 없습니다.
ExistingFileReadOnlyRetry=읽기 전용 속성을 해제하고 다시 시도하려면(&R)
ExistingFileReadOnlyKeepExisting=기존 파일을 유지(&K)
ErrorReadingExistingDest=기존 파일을 읽는 동안 오류 발생:
FileExists=파일이 이미 존재합니다.%n%n파일을 덮어쓰시겠습니까?
ExistingFileNewer=기존 파일이 설치하려고 하는 파일보다 새 파일입니다, 기존 파일을 유지하시기 바랍니다.%n%n기존 파일을 유지하시겠습니까?
ErrorChangingAttr=기존 파일의 속성을 변경하는 동안 오류 발생:
ErrorCreatingTemp=대상 폴더에 파일을 만드는 동안 오류 발생:
ErrorReadingSource=원본 파일을 읽는 동안 오류 발생:
ErrorCopying=파일을 복사하는 동안 오류 발생:
ErrorReplacingExistingFile=기존 파일을 교체하는 동안 오류 발생:
ErrorRestartReplace=RestartReplace 실패:
ErrorRenamingTemp=대상 디렉터리에 있는 파일 이름을 바꾸는 오류 발생:
ErrorRegisterServer=DLL/OCX 등록할 수 없음: %1
ErrorRegSvr32Failed=종료 코드 %1과(와) 함께 RegSvr32 실패
ErrorRegisterTypeLib=형식 라이브러리 등록할 수 없음: %1
ErrorRenamingTemp=대상 폴더 내의 파일 이름을 바꾸는 동안 오류 발생:
ErrorRegisterServer=DLL/OCX 등록 실패: %1
ErrorRegSvr32Failed=RegSvr32가 다음 종료 코드로 실패: %1
ErrorRegisterTypeLib=다음 유형의 라이브러리 등록에 실패: %1
; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32비트
UninstallDisplayNameMark64Bit=64비트
UninstallDisplayNameMarkAllUsers=모든 사용자
UninstallDisplayNameMarkCurrentUser=현재 사용자
; *** Post-installation errors
ErrorOpeningReadme=README 파일을 여는 중 오류가 발생했습니다.
ErrorRestartingComputer=설치 프로그램에서 컴퓨터를 다시 시작할 수 없습니다. 수동으로 진행하세요.
ErrorOpeningReadme=README 파일을 여는 중 오류가 발생했습니다.
ErrorRestartingComputer=컴퓨터를 다시 시작할 수 없습니다, 수동으로 다시 시작하십시오.
; *** Uninstaller messages
UninstallNotFound=파일 "%1"이(가) 없습니다. 제거할 수 없습니다.
UninstallOpenError=파일 "%1"을(를) 열 수 없습니다. 제거할 수 없습니다.
UninstallUnsupportedVer=제 로그 파일 "%1"이(가) 이 버전의 제거 프로그램에서 인식하지 못하는 형식입니다. 제거할 수 없습니다.
UninstallUnknownEntry=제거 로그에서 알 수 없는 항목(%1)이 발견되었습니다.
ConfirmUninstall=%1과(와) 해당 구성 요소를 모두 완전히 제거하시겠습니까?
UninstallOnlyOnWin64=이 설치는 64비트 Windows에서만 제거할 수 있습니다.
OnlyAdminCanUninstall=이 설치는 관리자 권한이 있는 사용자만 제거할 수 있습니다.
UninstallStatusLabel=컴퓨터에서 %1을(를) 제거하는 동안 기다려 주세요.
UninstalledAll=컴퓨터에서 %1을(를) 제거했습니다.
UninstalledMost=%1 제거가 완료되었습니다.%n%n일부 요소는 제할 수 없습니다. 이러한 항목은 수동으로 제거할 수 있습니다.
UninstalledAndNeedsRestart=%1 제거를 완료하려면 컴퓨터를 다시 시작해야 합니다.%n%n지금 다시 시작하시겠습니까?
UninstallDataCorrupted="%1" 파일이 손상되었습니다. 제거할 수 없습니다.
UninstallNotFound=파일 %1이(가) 존재하지 않기 때문에, 제거를 실행할 수 없습니다.
UninstallOpenError=파일 %1을(를) 열 수 없기 때문에, 제거를 실행할 수 없습니다.
UninstallUnsupportedVer=제 로그 파일 "%1"은(는) 이 삭제 마법사로 인식할 수 없는 형식이기 때문에, 제거를 실행할 수 없습니다.
UninstallUnknownEntry=알 수 없는 항목 %1이(가) 삭제 로그에 포함되어 있습니다.
ConfirmUninstall=정말 %1와(과) 그 구성 요소를 모두 제거하시겠습니까?
UninstallOnlyOnWin64=이 프로그램은 64비트 Windows에서만 제거할 수 있습니다.
OnlyAdminCanUninstall=이 프로그램을 제거하려면 관리자 권한이 필요합니다.
UninstallStatusLabel=귀하의 컴퓨터에서 %1을(를) 제거하는 중... 잠시 기다려 주십시오.
UninstalledAll=%1이(가) 성공적으로 제거되었습니다!
UninstalledMost=%1 제거가 완료되었습니다.%n%n일부 요소는 제할 수 없으니, 수동으로 제거하시기 바랍니다.
UninstalledAndNeedsRestart=%1 제거를 완료하려면, 컴퓨터를 다시 시작해야 합니다.%n%n지금 다시 시작하시겠습니까?
UninstallDataCorrupted=파일 "%1"이(가) 손상되었기 때문에, 제거를 실행할 수 없습니다.
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=공유 파일을 제거하시겠습니까?
ConfirmDeleteSharedFile2=시스템에서는 이제 다음 공유 파일을 사용하는 프로그램이 없는 것으로 표시됩니다. 제거 작업을 통해 이 공유 파일을 제하시겠습니까?%n%n아직 이 파일을 사용하는 프로그램이 있는데 이 파일을 제거하면 해당 프로그램이 올바르게 작동하지 않을 수 있습니다. 잘 모르는 경우 [아니요]를 선택하세요. 시스템에 파일을 그대로 두어도 아무런 문제가 발생하지 않습니다.
ConfirmDeleteSharedFile2=시스템의 어떤 프로그램도 다음 공유 파일을 사용하지 않습니다, 이 공유 파일을 제하시겠습니까?%n%n이 파일을 다른 프로그램이 공유하고 있는 상태에서 이 파일을 제거할 경우, 해당 프로그램이 제대로 작동하지 않을 수 있으니, 확신이 없으면 "아니오"를 선택하셔도 됩니다. 시스템에 파일이 남아 있어도 문제가 되진 않습니다.
SharedFileNameLabel=파일 이름:
SharedFileLocationLabel=위치:
WizardUninstalling=제거 상태
StatusUninstalling=%1을(를) 제거하는 중...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=%1을(를) 설치하는 중입니다.
ShutdownBlockReasonUninstallingApp=%1을(를) 제거하는 중입니다.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 버전 %2
AdditionalIcons=추가 바로 가기:
CreateDesktopIcon=바탕 화면 바로 가기 만들기(&D)
CreateQuickLaunchIcon=빠른 실행 바로 가기 만들기(&Q)
ProgramOnTheWeb=%1 웹 정보
AdditionalIcons=아이콘 추가:
CreateDesktopIcon=바탕 화면 바로가기 만들기(&D)
CreateQuickLaunchIcon=빠른 실행 아이콘 만들기(&Q)
ProgramOnTheWeb=%1 웹페이지
UninstallProgram=%1 제거
LaunchProgram=%1 시작
AssocFileExtension=%1을(를) %2 파일 확장명과 연결(&A)
AssocingFileExtension=%1을(를) %2 파일 확장명과 연결 중...
LaunchProgram=%1 실행
AssocFileExtension=파일 확장자 %2을(를) %1에 연결합니다.
AssocingFileExtension=파일 확장자 %2을(를) %1에 연결하는 중...
AutoStartProgramGroupDescription=시작:
AutoStartProgram=%1 자동 시작
AddonHostProgramNotFound=선택한 폴더에서 %1을(를) 찾을 수 없습니다.%n%n그래도 계속하시겠습니까?
AutoStartProgram=%1을(를) 자동으로 시작
AddonHostProgramNotFound=%1은(는) 선택한 폴더에 위치할 수 없습니다.%n%n그래도 계속하시겠습니까?

View File

@@ -1,16 +1,17 @@
; *** Inno Setup version 5.5.3+ Simplified Chinese messages ***
; *** Inno Setup version 6.0.3+ Chinese Simplified messages ***
;
; To download user-contributed translations of this file, go to:
; http://www.jrsoftware.org/files/istrans/
; Maintained by Zhenghan Yang
; Email: 847320916@QQ.com
; Translation based on network resource
; The latest Translation is on https://github.com/kira-96/Inno-Setup-Chinese-Simplified-Translation
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=Simplified Chinese
LanguageName=简体中文
; If Language Name display incorrect, uncomment next line
; LanguageName=<7B80><4F53><4E2D><6587>
LanguageID=$0804
LanguageCodePage=936
; If the language you are translating to requires special font faces or
@@ -23,276 +24,342 @@ LanguageCodePage=936
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
[Messages]
; *** Application titles
SetupAppTitle=安装程序
SetupWindowTitle=安装程序 - %1
UninstallAppTitle=卸载
UninstallAppFullTitle=%1 卸载
; *** 应用程序标题
SetupAppTitle=安装
SetupWindowTitle=安装 - %1
UninstallAppTitle=卸载
UninstallAppFullTitle=%1 卸载
; *** Misc. common
InformationTitle=信息
ConfirmTitle=确认
ErrorTitle=错误
InformationTitle=信息
ConfirmTitle=确认
ErrorTitle=错误
; *** SetupLdr messages
SetupLdrStartupMessage=将安装 %1。是否要继续?
LdrCannotCreateTemp=无法创建临时文件。安装程序已中止
LdrCannotExecTemp=无法在临时目录中执行文件。安装程序已中止
; *** Startup error messages
LastErrorMessage=%1。%n%n错误 %2: %3
SetupFileMissing=安装目录缺失文件 %1。请更正该问题或获取该问题的新副本。
SetupFileCorrupt=安装程序文件夹已损坏。请获取该程序的新副本。
SetupFileCorruptOrWrongVer=安装程序文件夹已损坏或与此安装程序版本不兼容。请更正该问题或获取该程序的新副本。
InvalidParameter=命令行 %n%n%1 上传递了一个无效参数
SetupAlreadyRunning=安装程序已在运行
WindowsVersionNotSupported=此程序不支持你计算机正运行的 Windows 版本。
WindowsServicePackRequired=此程序需要 %1 服务包 %2 或更高版本
NotOnThisPlatform=此程序将不在 %1 上运行。
OnlyOnThisPlatform=此程序必须在 %1 上运行
OnlyOnTheseArchitectures=此程序仅可安装在为以下处理器体系结构设计的 Windows 版本上:%n%n%1
MissingWOW64APIs=你正运行的 Windows 版本不包含安装程序执行 64 位安装所需的功能。要更正此问题,请安装服务包 %1。
WinVersionTooLowError=此程序需要 %1 版本 %2 或更高版本。
WinVersionTooHighError=此程序不能安装在 %1 版本 %2 或更高的版本上
AdminPrivilegesRequired=在安装此程序时必须作为管理员登录
PowerUserPrivilegesRequired=安装程序时必须以管理员或 Power User 组成员身份登录。
SetupAppRunningError=安装程序检测到 %1 当前正在运行。%n%n请立即关闭它的所有实例然后单击“确定”以继续或单击“取消”以退出
UninstallAppRunningError=卸载检测到 %1 当前正在运行。%n%n请立即关闭它的所有实例,然后单击“确定”继续或单击“取消”退出。
; *** Misc. errors
ErrorCreatingDir=安装程序无法创建目录“%1”
ErrorTooManyFilesInDir=无法在目录“%1”中创建文件因为它包含太多文件
; *** Setup common messages
ExitSetupTitle=退出安装程序
ExitSetupMessage=安装程序未完成。如果立即退出,将不会安装该程序。%n%n可在其他时间再次运行安装程序以完成安装。%n%n是否退出安装程序?
AboutSetupMenuItem=关于安装程序(&A)...
AboutSetupTitle=关于安装程序
AboutSetupMessage=%1 版本 %2%n%3%n%n%1 主页:%n%4
SetupLdrStartupMessage=现在将安装 %1。您想要继续吗?
LdrCannotCreateTemp=不能创建临时文件。安装中断。
LdrCannotExecTemp=不能执行临时目录中文件。安装中断。
HelpTextNote=
; *** 启动错误消息
LastErrorMessage=%1.%n%n错误 %2: %3
SetupFileMissing=安装目录中的文件 %1 丢失。请修正这个问题或获取一个新的程序副本。
SetupFileCorrupt=安装文件已损坏。请获取一个新的程序副本。
SetupFileCorruptOrWrongVer=安装文件已损坏,或是与这个安装程序的版本不兼容。请修正这个问题或获取新的程序副本
InvalidParameter=无效的命令行参数: %n%n%1
SetupAlreadyRunning=安装程序正在运行
WindowsVersionNotSupported=这个程序不支持该版本的计算机运行。
WindowsServicePackRequired=这个程序要求%1服务包%1或更高
NotOnThisPlatform=这个程序将不能运行于 %1
OnlyOnThisPlatform=这个程序必须运行于 %1。
OnlyOnTheseArchitectures=这个程序只能在为下列处理器结构设计的 Windows 版本中进行安装:%n%n%1
WinVersionTooLowError=这个程序需要 %1 版本 %2 或更高。
WinVersionTooHighError=这个程序不能安装于 %1 版本 %2 或更高
AdminPrivilegesRequired=安装这个程序时必须以管理员身份登录。
PowerUserPrivilegesRequired=在安装这个程序时您必须以管理员身份或有权限的用户组身份登录
SetupAppRunningError=安装程序发现 %1 当前正在运行。%n%n请先关闭所有运行的窗口,然后单击“确定”继续,或按“取消”退出。
UninstallAppRunningError=卸载程序发现 %1 当前正在运行。%n%n请先关闭所有运行的窗口然后单击“确定”继续或按“取消”退出。
; *** 启动问题
PrivilegesRequiredOverrideTitle=选择安装程序模式
PrivilegesRequiredOverrideInstruction=选择安装模式
PrivilegesRequiredOverrideText1=%1 可以为所有用户安装(需要管理员权限),或仅为您安装。
PrivilegesRequiredOverrideText2=%1 只能为您安装,或为所有用户安装(需要管理员权限)。
PrivilegesRequiredOverrideAllUsers=为所有用户安装(&A)
PrivilegesRequiredOverrideAllUsersRecommended=为所有用户安装(建议选项)(&A)
PrivilegesRequiredOverrideCurrentUser=只为我安装(&M)
PrivilegesRequiredOverrideCurrentUserRecommended=只为我安装(建议选项)(&M)
; *** 其它错误
ErrorCreatingDir=安装程序不能创建目录“%1”。
ErrorTooManyFilesInDir=不能在目录“%1”中创建文件因为里面的文件太多
; *** 安装程序公共消息
ExitSetupTitle=退出安装程序
ExitSetupMessage=安装程序未完成安装。如果您现在退出,您的程序将不能安装。%n%n您可以以后再运行安装程序完成安装。%n%n退出安装程序吗
AboutSetupMenuItem=关于安装程序(&A)...
AboutSetupTitle=关于安装程序
AboutSetupMessage=%1 版本 %2%n%3%n%n%1 主页:%n%4
AboutSetupNote=
TranslatorNote=
; *** Buttons
ButtonBack=< 上一步(&B)
ButtonNext=下一步(&N) >
ButtonInstall=安装(&I)
ButtonOK=确定
ButtonCancel=取消
ButtonYes=是(&Y)
ButtonYesToAll=接受全部(&A)
ButtonNo=否(&N)
ButtonNoToAll=否定全部(&O)
ButtonFinish=完成(&F)
ButtonBrowse=浏览(&B)...
ButtonWizardBrowse=浏览(&R)...
ButtonNewFolder=新建文件夹(&M)
; *** "Select Language" dialog messages
SelectLanguageTitle=选择安装程序语言
SelectLanguageLabel=选择安装时要使用的语言:
; *** Common wizard text
ClickNext=单击“下一步”以继续,或单击“取消”以退出安装程序
; *** 按钮
ButtonBack=< 上一步(&B)
ButtonNext=下一步(&N) >
ButtonInstall=安装(&I)
ButtonOK=确定
ButtonCancel=取消
ButtonYes=是(&Y)
ButtonYesToAll=全是(&A)
ButtonNo=否(&N)
ButtonNoToAll=全否(&O)
ButtonFinish=完成(&F)
ButtonBrowse=浏览(&B)...
ButtonWizardBrowse=浏览(&R)...
ButtonNewFolder=新建文件夹(&M)
; *** “选择语言”对话框消息
SelectLanguageTitle=选择安装语言
SelectLanguageLabel=选择安装时要使用的语言
; *** 公共向导文字
ClickNext=单击“下一步”继续,或单击“取消”退出安装程序。
BeveledLabel=
BrowseDialogTitle=浏览查找文件夹
BrowseDialogLabel=在下列表中选择一个文件夹,然后单击“确定”。
NewFolderName=新建文件夹
; *** "Welcome" wizard page
WelcomeLabel1=欢迎使用 [name] 安装向导
WelcomeLabel2=这将在计算机上安装 [name/ver]。%n%n建议关闭所有其他应用程序再继续。
; *** "Password" wizard page
WizardPassword=密码
PasswordLabel1=此安装受密码保护。
PasswordLabel3=请提供密码,然后单击“下一步”以继续。密码区分大小写。
PasswordEditLabel=密码(&P):
IncorrectPassword=输入密码不正确。请重试
; *** "License Agreement" wizard page
WizardLicense=许可协议
LicenseLabel=请在继续操作前阅读以下重要信息。
LicenseLabel3=请阅读以下许可协议。必须接受此协议条款才可继续安装。
LicenseAccepted=我接受协议(&A)
LicenseNotAccepted=我不接受协议(&D)
; *** "Information" wizard pages
WizardInfoBefore=信息
InfoBeforeLabel=请在继续操作前阅读以下重要信息。
InfoBeforeClickLabel=准备好继续安装后,单击“下一步”。
WizardInfoAfter=信息
InfoAfterLabel=请在继续操作前阅读以下重要信息
InfoAfterClickLabel=准备好继续安装后,单击“下一步”
; *** "User Information" wizard page
WizardUserInfo=用户信息
UserInfoDesc=请输入你的信息。
UserInfoName=用户名(&U):
UserInfoOrg=组织(&O):
UserInfoSerial=序列号(&S):
UserInfoNameRequired=必须输入名称。
; *** "Select Destination Location" wizard page
WizardSelectDir=选择目标位置
SelectDirDesc=应将 [name] 安装到哪里?
SelectDirLabel3=安装程序会将 [name] 安装到以下文件夹。
SelectDirBrowseLabel=若要继续,单击“下一步”。如果想选择其他文件夹,单击“浏览”
DiskSpaceMBLabel=需要至少 [mb] MB 可用磁盘空间。
CannotInstallToNetworkDrive=安装程序无法安装到网络驱动器。
CannotInstallToUNCPath=安装程序无法安装到 UNC 路径。
InvalidPath=必须输入带驱动器号的完整路径(例如:%n%nC:\APP%n%n)或以下格式的 UNC 路径:%n%n\\server\share
InvalidDrive=所选驱动器或 UNC 共享不存在或不可访问。请另外选择
DiskSpaceWarningTitle=磁盘空间不足
DiskSpaceWarning=安装程序需要至少 %1 KB 可用空间来安装,但所选驱动器仅有 %2 KB 可用空间。%n%n是否仍要继续?
DirNameTooLong=文件夹名称或路径太长
InvalidDirName=文件夹名称无效
BadDirName32=文件夹名不能包含以下任一字符:%n%n%1
DirExistsTitle=文件夹存在
DirExists=文件夹:%n%n%1%n%n已存在。是否仍要安装到该文件夹?
DirDoesntExistTitle=文件夹不存在
DirDoesntExist=文件夹:%n%n%1%n%n不存在。是否要创建该文件夹?
; *** "Select Components" wizard page
WizardSelectComponents=选择组件
SelectComponentsDesc=应安装哪些组件?
SelectComponentsLabel2=选择希望安装的组件;清除不希望安装的组件。准备就绪后单击“下一步”以继续。
FullInstallation=完全安装
BrowseDialogTitle=浏览文件夹
BrowseDialogLabel=在下列表中选择一个文件夹,然后单击“确定”。
NewFolderName=新建文件夹
; *** “欢迎”向导
WelcomeLabel1=欢迎使用 [name] 安装向导
WelcomeLabel2=现在将安装 [name/ver] 到您的电脑中。%n%n推荐您在继续安装前关闭所有其它应用程序。
; *** “密码”向导页
WizardPassword=密码
PasswordLabel1=这个安装程序有密码保护。
PasswordLabel3=请输入密码,然后单击“下一步”继续。密码区分大小写
PasswordEditLabel=密码(&P):
IncorrectPassword=您输入的密码不正确,请重试。
; *** “许可协议”向导页
WizardLicense=许可协议
LicenseLabel=继续安装前请阅读下列重要信息。
LicenseLabel3=请仔细阅读下列许可协议。您在继续安装前必须同意这些协议条款。
LicenseAccepted=我同意此协议(&A)
LicenseNotAccepted=我不同意此协议(&D)
; *** “信息”向导页
WizardInfoBefore=信息
InfoBeforeLabel=请在继续安装前阅读下列重要信息
InfoBeforeClickLabel=如果您想继续安装,单击“下一步”。
WizardInfoAfter=信息
InfoAfterLabel=请在继续安装前阅读下列重要信息。
InfoAfterClickLabel=如果您想继续安装,单击“下一步”。
; *** “用户信息”向导页
WizardUserInfo=用户信息
UserInfoDesc=请输入您的信息。
UserInfoName=用户名(&U):
UserInfoOrg=组织(&O):
UserInfoSerial=序列号(&S):
UserInfoNameRequired=您必须输入名字
; *** “选择目标目录”向导面
WizardSelectDir=选择目标位置
SelectDirDesc=您想将 [name] 安装在什么地方?
SelectDirLabel3=安装程序将安装 [name] 到下列文件夹中
SelectDirBrowseLabel=单击“下一步”继续。如果您想选择其它文件夹,单击“浏览”。
DiskSpaceGBLabel=至少需要有 [gb] GB 可用磁盘空间。
DiskSpaceMBLabel=至少需要有 [mb] MB 的可用磁盘空间
CannotInstallToNetworkDrive=安装程序无法安装到一个网络驱动器
CannotInstallToUNCPath=安装程序无法安装到一个UNC路径。
InvalidPath=您必须输入一个带驱动器卷标的完整路径,例如:%n%nC:\APP%n%n或下列形式的 UNC 路径:%n%n\\server\share
InvalidDrive=您选定的驱动器或 UNC 共享不存在或不能访问。请选选择其它位置。
DiskSpaceWarningTitle=没有足够的磁盘空间
DiskSpaceWarning=安装程序至少需要 %1 KB 的可用空间才能安装,但选定驱动器只有 %2 KB 的可用空间。%n%n您一定要继续吗
DirNameTooLong=文件夹名或路径太长。
InvalidDirName=文件夹名是无效的。
BadDirName32=文件夹名不能包含下列任何字符:%n%n%1
DirExistsTitle=文件夹存在
DirExists=文件夹:%n%n%1%n%n已经存在。您一定要安装到这个文件夹中吗
DirDoesntExistTitle=文件夹不存在
DirDoesntExist=文件夹:%n%n%1%n%n不存在。您想要创建此目录吗
; *** “选择组件”向导页
WizardSelectComponents=选择组件
SelectComponentsDesc=您想安装哪些程序的组件?
SelectComponentsLabel2=选择您想要安装的组件;清除您不想安装的组件。然后单击“下一步”继续。
FullInstallation=完全安装
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=简洁安装
CustomInstallation=自定义安装
NoUninstallWarningTitle=组件存在
NoUninstallWarning=安装程序测到计算机上已安装以下组件:%n%n%1%n%n取消选这些组件将不卸载它们。%n%n是否仍要继续?
CompactInstallation=简洁安装
CustomInstallation=自定义安装
NoUninstallWarningTitle=组件存在
NoUninstallWarning=安装程序测到下列组件已在您的电脑中安装。:%n%n%1%n%n取消选这些组件将不卸载它们。%n%n您一定要继续吗?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceMBLabel=当前选择需要至少 [mb] MB 磁盘空间。
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=选择其他任务
SelectTasksDesc=应执行哪些其他任务?
SelectTasksLabel2=选择安装 [name] 时希望安装程序来执行的其他任务,然后单击“下一步”。
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=选择开始菜单文件夹
SelectStartMenuFolderDesc=安装程序应将程序的快捷方式放置到哪里?
SelectStartMenuFolderLabel3=安装程序将在以下开始菜单文件夹中创建该程序的快捷方式。
SelectStartMenuFolderBrowseLabel=若要继续,单击“下一步”。如果想选择其他文件夹,单击“浏览”。
MustEnterGroupName=必须输入文件夹名。
GroupNameTooLong=文件夹名称或路径太长
InvalidGroupName=文件夹名称无效
BadGroupName=文件夹名不能保护以下任一字符:%n%n%1
NoProgramGroupCheck2=不创建开始菜单文件夹(&D)
; *** "Ready to Install" wizard page
WizardReady=安装准备就绪
ReadyLabel1=安装程序现已准备好在计算机上安装 [name]。
ReadyLabel2a=单击“安装”以继续安装,如想查看或更改任何设置则单击"返回"。
ReadyLabel2b=单击“安装”以继续安装。
ReadyMemoUserInfo=用户信息:
ReadyMemoDir=目标位置:
ReadyMemoType=安装程序类型:
ReadyMemoComponents=所选组件:
ReadyMemoGroup=开始菜单文件夹:
ReadyMemoTasks=其他任务:
; *** "Preparing to Install" wizard page
WizardPreparing=正在准备安装
PreparingDesc=安装程序正准备在计算机上安装 [name]。
PreviousInstallNotCompleted=上一个程序的安装/删除未完成。需重启计算机以完成该安装。%n%n重启计算机后重新运行安装程序以完成 [name] 的安装。
CannotContinue=安装程序无法继续。请单击"取消"以退出。
ApplicationsFound=以下应用程序正在使用需要通过安装程序进行更新的文件。建议允许安装程序自动关闭这些应用程序。
ApplicationsFound2=以下应用程序正在使用需要通过安装程序进行更新的文件。建议允许安装程序自动关闭这些应用程序。完成安装后,安装程序将尝试重启应用程序。
CloseApplications=自动关闭应用程序(&A)
DontCloseApplications=不关闭应用程序(&D)
ErrorCloseApplications=安装程序无法自动关闭所有应用程序。建议在继续操作之前先关闭所有使用需通过安装程序进行更新的文件的应用程序
; *** "Installing" wizard page
WizardInstalling=正在安装
InstallingLabel=安装程序正在计算机上安装 [name],请稍等。
; *** "Setup Completed" wizard page
FinishedHeadingLabel=完成 [name] 安装向导
FinishedLabelNoIcons=安装程序已在计算机上完成安装 [name]。
FinishedLabel=安装程序已在计算机上完成安装 [name]。通过选择安装的快捷方式可以启动该应用程序。
ClickFinish=单击“完成”以退出安装程序。
FinishedRestartLabel=要完成 [name] 的安装,安装程序必须重启计算机。是否要立即重启?
FinishedRestartMessage=要完成 [name] 的安装,安装程序必须重启计算机。%n%n是否要立即重启?
ShowReadmeCheck=是,我希望查看 README 文件
YesRadio=是,立即重启计算机(&Y)
NoRadio=否,我将稍后重启计算机(&N)
; used for example as 'Run MyProg.exe'
RunEntryExec=运行 %1
; used for example as 'View Readme.txt'
RunEntryShellExec=查看 %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=安装程序需要下一个磁盘
SelectDiskLabel2=请插入磁盘 %1 并点击“确定”。%n%n如果此磁盘上的文件可在以下文件夹外的其他文件夹中找到请输入正确路径或单击“浏览”。
PathLabel=路径(&P):
FileNotInDir2=在“%2”中无法定位文件“%1”。请插入正确的磁盘或选择其他文件夹。
SelectDirectoryLabel=请指定下一个磁盘的位置。
; *** Installation phase messages
SetupAborted=安装程序未完成。%n%n请更正问题并重新运行安装程序。
EntryAbortRetryIgnore=单击“重试”以再次尝试,单击“忽略”以继续,或单击“中止”以取消安装。
; *** Installation status messages
StatusClosingApplications=正在关闭应用程序...
StatusCreateDirs=正在创建目录...
StatusExtractFiles=正在解压缩文件...
StatusCreateIcons=正在创建快捷方式...
StatusCreateIniEntries=正在创建 INI 项...
StatusCreateRegistryEntries=正在创建注册表项...
StatusRegisterFiles=正在注册文件...
StatusSavingUninstall=正在保存卸载信息...
StatusRunProgram=正在完成安装...
StatusRestartingApplications=正在重启应用程序...
StatusRollback=正在回退更改...
; *** Misc. errors
ErrorInternal2=内部错误: %1
ErrorFunctionFailedNoCode=%1 失败
ErrorFunctionFailed=%1 失败;代码 %2
ErrorFunctionFailedWithMessage=%1 失败;代码 %2。%n%3
ErrorExecutingProgram=无法执行文件:%n%1
; *** Registry errors
ErrorRegOpenKey=打开注册表项时出错:%n%1\%2
ErrorRegCreateKey=创建注册表项时出错:%n%1\%2
ErrorRegWriteKey=写入注册表项时出错:%n%1\%2
; *** INI errors
ErrorIniEntry=在文件“%1”中创建 INI 项时出错。
; *** File copying errors
FileAbortRetryIgnore=单击“重试”以再次操作,单击“忽略”以跳过此文件(不建议此操作),或单击“中止”以取消安装。
FileAbortRetryIgnore2=单击“重试”以再次操作,单击“忽略”以继续(不建议此操作),或单击“中止”以取消安装。
SourceIsCorrupted=源文件已损坏
SourceDoesntExist=源文件“%1”不存在
ExistingFileReadOnly=现有文件被标记为只读状态。%n%n单击“重试”以删除只读特性并重试单击“忽略”以跳过此文件或单击“中止”以取消安装。
ErrorReadingExistingDest=尝试读取现有文件时出错:
FileExists=该文件已存在。%n%n是否要安装程序覆盖它?
ExistingFileNewer=现有文件比安装程序正尝试安装的文件更新。建议保留现有文件%n%n是否要保留现有文件?
ErrorChangingAttr=尝试更改现有文件特性出错:
ErrorCreatingTemp=尝试在目标目录创建文件时出错:
ErrorReadingSource=尝试读取源文件时出错:
ErrorCopying=尝试复制文件时出错:
ErrorReplacingExistingFile=尝试替换现有文件时出错:
ErrorRestartReplace=RestartReplace 失败:
ErrorRenamingTemp=尝试在目标目录重命名文件时出错:
ErrorRegisterServer=无法注册 DLL/OCX: %1
ErrorRegSvr32Failed=RegSvr32 失败,退出代码为 %1
ErrorRegisterTypeLib=无法注册类型库: %1
; *** Post-installation errors
ErrorOpeningReadme=尝试打开 README 文件时出错。
ErrorRestartingComputer=安装程序无法重启计算机。请手动执行此操作。
; *** Uninstaller messages
UninstallNotFound=文件“%1”不存在。无法安装
UninstallOpenError=无法打开文件“%1”。无法卸载
UninstallUnsupportedVer=卸载日志“%1”的格式无法被此版本的卸载程序识别。无法卸载
UninstallUnknownEntry=卸载日志中发现未知条目(%1)
ConfirmUninstall=确定要彻底删除 %1 和及其全部组件?
UninstallOnlyOnWin64=仅可在 64 位 Windows 上卸载此安装。
OnlyAdminCanUninstall=仅具有管理权限的用户才可卸载此安装。
UninstallStatusLabel=正从计算机删除 %1请稍等。
UninstalledAll=已成功从计算机上删除 %1。
UninstalledMost=%1 卸载完成。%n%n无法删除一些元素。可将其手动删除。
UninstalledAndNeedsRestart=要完成 %1 的卸载,必须重启计算机。%n%n是否要立即重启?
UninstallDataCorrupted=“%1”文件已损坏。无法卸载
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=删除共享文件?
ConfirmDeleteSharedFile2=系统表示以下共享文件不再被任何程序使用。是否要卸载删除此共享文件?%n%n如果在有程序仍在使用此文件而它被删除则程序可能不会正常运行。如果不确定请选择“否”。将文件留住系统上不会造成任何问题。
SharedFileNameLabel=文件名:
SharedFileLocationLabel=位置:
WizardUninstalling=卸载状态
StatusUninstalling=正在卸载 %1...
ComponentsDiskSpaceGBLabel=当前选择的组件至少需要 [gb] GB 磁盘空间。
ComponentsDiskSpaceMBLabel=当前选择的组件至少需要 [mb] MB 的磁盘空间。
; *** “选择附加任务”向导页
WizardSelectTasks=选择附加任务
SelectTasksDesc=您想要安装程序执行哪些附加任务?
SelectTasksLabel2=选择您想要安装程序在安装 [name] 时执行的附加任务,然后单击“下一步”。
; *** “选择开始菜单文件夹”向导页
WizardSelectProgramGroup=选择开始菜单文件夹
SelectStartMenuFolderDesc=您想在哪里放置程序的快捷方式?
SelectStartMenuFolderLabel3=安装程序现在将在下列开始菜单文件夹中创建程序的快捷方式
SelectStartMenuFolderBrowseLabel=单击“下一步”继续。如果您想选择其它文件夹,单击“浏览”
MustEnterGroupName=您必须输入一个文件夹名。
GroupNameTooLong=文件夹名或路径太长。
InvalidGroupName=文件夹名是无效的。
BadGroupName=文件夹名不能包含下列任何字符:%n%n%1
NoProgramGroupCheck2=不创建开始菜单文件夹(&D)
; *** “准备安装”向导页
WizardReady=准备安装
ReadyLabel1=安装程序现在准备开始安装 [name] 到您的电脑中。
ReadyLabel2a=单击“安装”继续此安装程序。如果您想要回顾或改变设置,请单击“上一步”。
ReadyLabel2b=单击“安装”继续此安装程序?
ReadyMemoUserInfo=用户信息:
ReadyMemoDir=目标位置:
ReadyMemoType=安装类型:
ReadyMemoComponents=选定组件:
ReadyMemoGroup=开始菜单文件夹:
ReadyMemoTasks=附加任务:
; *** “正在准备安装”向导页
WizardPreparing=正在准备安装
PreparingDesc=安装程序正在准备安装 [name] 到您的电脑中。
PreviousInstallNotCompleted=先前程序的安装/卸载未完成。您需要重新启动您的电脑才能完成安装。%n%n在重新启动电脑后再运行安装完成 [name] 的安装。
CannotContinue=安装程序不能继续。请单击“取消”退出
ApplicationsFound=下列应用程序正在使用的文件需要更新设置。它是建议您允许安装程序自动关闭这些应用程序。
ApplicationsFound2=下列应用程序正在使用的文件需要更新设置。它是建议您允许安装程序自动关闭这些应用程序。安装完成后,安装程序将尝试重新启动应用程序。
CloseApplications=自动关闭该应用程序(&A)
DontCloseApplications=不要关闭该应用程序(D)
ErrorCloseApplications=安装程序无法自动关闭所有应用程序。在继续之前,我们建议您关闭所有使用需要更新的安装程序文件。
PrepareToInstallNeedsRestart=安装程序必须重新启动计算机。重新启动计算机后,请再次运行安装程序以完成 [name] 的安装。%n%n是否立即重新启动
; *** “正在安装”向导页
WizardInstalling=正在安装
InstallingLabel=安装程序正在安装 [name] 到您的电脑中,请稍等。
; *** “安装完成”向导页
FinishedHeadingLabel=[name] 安装完成
FinishedLabelNoIcons=安装程序已在您的电脑中安装了 [name]。
FinishedLabel=安装程序已在您的电脑中安装了 [name]。此应用程序可以通过选择安装的快捷方式运行。
ClickFinish=单击“完成”退出安装程序。
FinishedRestartLabel=要完成 [name] 的安装,安装程序必须重新启动您的电脑。您想现在重新启动吗?
FinishedRestartMessage=要完成 [name] 的安装,安装程序必须重新启动您的电脑。%n%n您想现在重新启动吗
ShowReadmeCheck=是,您想查阅自述文件
YesRadio=是,立即重新启动电脑(&Y)
NoRadio=否,稍后重新启动电脑(&N)
; 用于象“运行 MyProg.exe”
RunEntryExec=运行 %1
; 用于象“查阅 Readme.txt”
RunEntryShellExec=查阅 %1
; *** “安装程序需要下一张磁盘”提示
ChangeDiskTitle=安装程序需要下一张磁盘
SelectDiskLabel2=请插入磁盘 %1 并单击“确定”。%n%n如果这个磁盘中的文件不能在不同于下列显示的文件夹中找到输入正确的路径或单击“浏览”。
PathLabel=路径(&P):
FileNotInDir2=文件“%1”不能在“%2”定位。请插入正确的磁盘或选择其它文件夹。
SelectDirectoryLabel=请指定下一张磁盘的位置。
; *** 安装状态消息
SetupAborted=安装程序未完成安装。%n%n请修正这个问题并重新运行安装程序。
AbortRetryIgnoreSelectAction=选项
AbortRetryIgnoreRetry=重试(&T)
AbortRetryIgnoreIgnore=忽略错误并继续(&I)
AbortRetryIgnoreCancel=关闭安装程序
; *** 安装状态消息
StatusClosingApplications=正在关闭应用程序...
StatusCreateDirs=正在创建目录...
StatusExtractFiles=正在解压缩文件...
StatusCreateIcons=正在创建快捷方式...
StatusCreateIniEntries=正在创建 INI 条目...
StatusCreateRegistryEntries=正在创建注册表条目...
StatusRegisterFiles=正在注册文件...
StatusSavingUninstall=正在保存卸载信息...
StatusRunProgram=正在完成安装...
StatusRestartingApplications=正在重启应用程序...
StatusRollback=正在撤销更改...
; *** 其它错误
ErrorInternal2=内部错误: %1
ErrorFunctionFailedNoCode=%1 失败
ErrorFunctionFailed=%1 失败;错误代码 %2
ErrorFunctionFailedWithMessage=%1 失败;错误代码 %2.%n%3
ErrorExecutingProgram=不能执行文件:%n%1
; *** 注册表错误
ErrorRegOpenKey=打开注册表项时出错:%n%1\%2
ErrorRegCreateKey=创建注册表项时出错:%n%1\%2
ErrorRegWriteKey=写入注册表项时出错:%n%1\%2
; *** INI 错误
ErrorIniEntry=在文件“%1”创建 INI 项目错误。
; *** 文件复制错误
FileAbortRetryIgnoreSkipNotRecommended=跳过这个文件 (不推荐)(&S)
FileAbortRetryIgnoreIgnoreNotRecommended=忽略错误并继续 (不推荐)(&I)
SourceIsCorrupted=源文件已损坏
SourceDoesntExist=源文件“%1”不存在
ExistingFileReadOnly2=无法替换现有文件,因为它是只读的
ExistingFileReadOnlyRetry=移除只读属性并重试(&R)
ExistingFileReadOnlyKeepExisting=保留现有文件(&K)
ErrorReadingExistingDest=尝试读取现有文件时发生一个错误:
FileExists=文件已经存在。%n%n您想要安装程序覆盖它吗
ExistingFileNewer=现有的文件新与安装程序要安装的文件。推荐您保留现有文件。%n%n您想要保留现有的文件吗
ErrorChangingAttr=尝试改变下列现有的文件的属性时发生一个错误:
ErrorCreatingTemp=尝试在目标目录创建文件时发生一个错误:
ErrorReadingSource=尝试读取下列源文件时发生一个错误:
ErrorCopying=尝试复制下列文件时发生一个错误:
ErrorReplacingExistingFile=尝试替换现有的文件时发生错误:
ErrorRestartReplace=重启电脑后替换文件失败:
ErrorRenamingTemp=尝试重新命名以下目标目录中的一个文件时发生错误:
ErrorRegisterServer=不能注册 DLL/OCX: %1
ErrorRegSvr32Failed=RegSvr32 失败;退出代码 %1
ErrorRegisterTypeLib=不能注册类型库: %1
; *** 卸载显示名字标记
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32位
UninstallDisplayNameMark64Bit=64位
UninstallDisplayNameMarkAllUsers=所有用户
UninstallDisplayNameMarkCurrentUser=当前用户
; *** 安装后错误
ErrorOpeningReadme=当尝试打开自述文件时发生一个错误。
ErrorRestartingComputer=安装程序不能重新启动电脑,请手动重启。
; *** 卸载消息
UninstallNotFound=文件“%1”不存在。不能卸载。
UninstallOpenError=文件“%1”不能打开。不能卸载。
UninstallUnsupportedVer=卸载日志文件“%1”有未被这个版本的卸载器承认的格式。不能卸载
UninstallUnknownEntry=在卸载日志中遇到一个未知的条目 (%1)
ConfirmUninstall=您确认想要完全删除 %1 及它的所有组件吗?
UninstallOnlyOnWin64=这个安装程序只能在 64 位 Windows 中进行卸载。
OnlyAdminCanUninstall=这个安装的程序只能是有管理员权限的用户才能卸载。
UninstallStatusLabel=正在从您的电脑中删除 %1请等待。
UninstalledAll=%1 已顺利地从您的电脑中删除。
UninstalledMost=%1 卸载完成。%n%n有一些内容不能被删除。您可以手工删除它们。
UninstalledAndNeedsRestart=要完成 %1 的卸载,您的电脑必须重新启动。%n%n您现在想重新启动电脑吗
UninstallDataCorrupted=“%1”文件被破坏不能卸载
; *** 卸载状态消息
ConfirmDeleteSharedFileTitle=删除共享文件吗?
ConfirmDeleteSharedFile2=系统中包含的下列共享文件已经不被其它程序使用。您想要卸载程序删除这些共享文件吗?%n%n如果这些文件被删除但还有程序正在使用这些文件这些程序可能不能正确执行。如果您不能确定选择“否”。把这些文件保留在系统中以免引起问题。
SharedFileNameLabel=文件名:
SharedFileLocationLabel=位置:
WizardUninstalling=卸载状态
StatusUninstalling=正在卸载 %1...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=正在安装 %1
ShutdownBlockReasonUninstallingApp=正在卸载 %1
ShutdownBlockReasonInstallingApp=正在安装 %1.
ShutdownBlockReasonUninstallingApp=正在卸载 %1.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 版本 %2
AdditionalIcons=其他快捷方式:
CreateDesktopIcon=创建桌面快捷方式(&D)
CreateQuickLaunchIcon=创建快速启动快捷方式(&Q)
ProgramOnTheWeb=Web 上的 %1
UninstallProgram=卸载 %1
LaunchProgram=启动 %1
AssocFileExtension=将 %1 与 %2 文件扩展名关联(&A)
AssocingFileExtension= %1 与 %2 文件扩展名关联...
AutoStartProgramGroupDescription=启动:
AutoStartProgram=自动启动 %1
AddonHostProgramNotFound=无法在所选文件夹中定位 %1。%n%n是否仍要继续?
NameAndVersion=%1 版本 %2
AdditionalIcons=附加快捷方式:
CreateDesktopIcon=创建桌面快捷方式(&D)
CreateQuickLaunchIcon=创建快速运行栏快捷方式(&Q)
ProgramOnTheWeb=%1 网站
UninstallProgram=卸载 %1
LaunchProgram=运行 %1
AssocFileExtension=将 %2 文件扩展名与 %1 建立关联(&A)
AssocingFileExtension=正在将 %2 文件扩展名与 %1 建立关联...
AutoStartProgramGroupDescription=启动组:
AutoStartProgram=自动启动 %1
AddonHostProgramNotFound=%1无法找到您所选择的文件夹。%n%n您想要继续吗

View File

@@ -1,298 +1,359 @@
; *** Inno Setup version 5.5.3+ Traditional Chinese messages ***
; *** Inno Setup version 6.0.0+ Chinese Traditional messages ***
;
; To download user-contributed translations of this file, go to:
; http://www.jrsoftware.org/files/istrans/
; Name: John Wu, mr.johnwu@gmail.com
; Base on 5.5.3+ translations by Samuel Lee, Email: 751555749@qq.com
; Translation based on network resource
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).
[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the '[LangOptions] section' topic in the help file.
LanguageName=Traditional Chinese
; If Language Name display incorrect, uncomment next line
LanguageName=<7e41><9ad4><4e2d><6587>
LanguageID=$0404
LanguageCodePage=950
LanguageCodepage=950
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8
DialogFontName=新細明體
DialogFontSize=9
TitleFontName=Arial
TitleFontSize=28
WelcomeFontName=新細明體
WelcomeFontSize=12
CopyrightFontName=新細明體
CopyrightFontSize=9
[Messages]
; *** Application titles
SetupAppTitle=安裝程式
SetupWindowTitle=安裝程式 - %1
UninstallAppTitle=解除安裝
UninstallAppFullTitle=%1 解除安裝
SetupAppTitle=安裝程式
SetupWindowTitle=%1 安裝程式
UninstallAppTitle=解除安裝
UninstallAppFullTitle=解除安裝 %1
; *** Misc. common
InformationTitle=
ConfirmTitle=確認
ErrorTitle=錯誤
InformationTitle=訊
ConfirmTitle=確認
ErrorTitle=錯誤
; *** SetupLdr messages
SetupLdrStartupMessage=這會安裝 %1。要繼續嗎?
LdrCannotCreateTemp=無法建立暫存檔。安裝已中止
LdrCannotExecTemp=無法執行暫存目錄中的檔案。安裝已中止
SetupLdrStartupMessage=這會安裝 %1。您想要繼續嗎?
LdrCannotCreateTemp=無法建立暫存檔。安裝程式將會結束。
LdrCannotExecTemp=無法執行暫存檔案。安裝程式將會結束。
HelpTextNote=
; *** Startup error messages
LastErrorMessage=%1%n%n錯誤 %2: %3
SetupFileMissing=安裝目錄中缺少檔案 %1。請修正問題或重新取得程式的新複本
SetupFileCorrupt=安裝程式檔案已損毀。請重新取得該程式的複本
SetupFileCorruptOrWrongVer=安裝程式檔案已損毀,或不相容於與此版的安裝程式。請修正問題,或重新取得程式的新複本
InvalidParameter=在命令列上傳遞了無效的參數:%n%n%1
SetupAlreadyRunning=安裝程式已在執行
WindowsVersionNotSupported=程式不支援電腦所行的 Windows 版本。
WindowsServicePackRequired=程式需要 %1 Service Pack %2 或更新版本
NotOnThisPlatform=此程式不會在 %1 執行。
OnlyOnThisPlatform=程式必須在 %1 執行。
OnlyOnTheseArchitectures=程式只可安裝在專為下列處理器架構設計的 Windows 版本上:%n%n%1
MissingWOW64APIs=您執行的 Windows 版本不含安裝程式執行 64 位元安裝所需的功能。若要修正此問題,請安裝 Service Pack %1
WinVersionTooLowError=此程式需要 %1 版 %2 或更新版本
WinVersionTooHighError=此程式無法安裝在 %1 版 %2 或更新版本上
AdminPrivilegesRequired=安裝此程式時,必須以系統管理員身分登入
PowerUserPrivilegesRequired=當您安裝程式時,必須以系統管理員或 Power Users 群組的成員身分登入
SetupAppRunningError=安裝時偵測到 %1 目前正在執行。%n%n請立即關閉其所有執行個體。若要繼續,請按一下 [確定]; 若要結束,請按一下 [取消]。
UninstallAppRunningError=解除安裝時偵測到 %1 目前正在執行中。%n%n請立即關閉其所有執行個體。若要繼續請按一下 [確定]; 若要結束,請按一下 [取消]。
LastErrorMessage=%1%n%n錯誤 %2: %3
SetupFileMissing=安裝資料夾中遺失檔案 %1。請修正問題或重新取得此軟體
SetupFileCorrupt=安裝檔案已損毀。請重新取得此軟體
SetupFileCorruptOrWrongVer=安裝檔案已損毀,或與安裝程式的版本不符。請重新取得此軟體
InvalidParameter=某個無效的變量已被傳遞到了命令列:%n%n%1
SetupAlreadyRunning=安裝程式已在執行。
WindowsVersionNotSupported=本安裝程式不支援目前在電腦所行的 Windows 版本。
WindowsServicePackRequired=本安裝程式需要 %1 Service Pack %2 或更新。
NotOnThisPlatform=這個程式無法在 %1 執行。
OnlyOnThisPlatform=這個程式必須在 %1 執行。
OnlyOnTheseArchitectures=這個程式只能在專門為以下處理器架構設計的 Windows 上安裝:%n%n%1
WinVersionTooLowError=這個程式必須在 %1 版本 %2 或以上的系統執行
WinVersionTooHighError=這個程式無法安裝在 %1 版 %2 或以上的系統
AdminPrivilegesRequired=您必須登入成系統管理員以安裝這個程式
PowerUserPrivilegesRequired=您必須登入成具有系統管理員或 Power User 權限的使用者以安裝這個程式
SetupAppRunningError=安裝程式偵測到 %1 正在執行。%n%n請關閉該程式後按 [確定] 繼續,或按 [取消] 離開
UninstallAppRunningError=解除安裝程式偵測到 %1 正在執行。%n%n請關閉該程式後按 [確定] 繼續,或按 [取消] 離開
; *** Startup questions
PrivilegesRequiredOverrideTitle=選擇安裝程式安裝模式
PrivilegesRequiredOverrideInstruction=選擇安裝模式
PrivilegesRequiredOverrideText1=可以為所有使用者安裝 %1 (需要系統管理權限),或是僅為您安裝。
PrivilegesRequiredOverrideText2=可以僅為您安裝 %1或是為所有使用者安裝 (需要系統管理權限)。
PrivilegesRequiredOverrideAllUsers=為所有使用者安裝 (&A)
PrivilegesRequiredOverrideAllUsersRecommended=為所有使用者安裝 (建議選項) (&A)
PrivilegesRequiredOverrideCurrentUser=僅為我安裝 (&M)
PrivilegesRequiredOverrideCurrentUserRecommended=僅為我安裝 (建議選項) (&M)
; *** Misc. errors
ErrorCreatingDir=安裝程式無法建立目錄 "%1"
ErrorTooManyFilesInDir=因為目錄 "%1" 包含太多檔案,所以無法在其中建立檔案
ErrorCreatingDir=安裝程式無法建立資料夾“%1”。
ErrorTooManyFilesInDir=無法在資料夾“%1”內建立檔案因為資料夾內有太多的檔案
; *** Setup common messages
ExitSetupTitle=結束安裝
ExitSetupMessage=安裝未完成。若立即結束,將不會安裝程式。%n%n您可以稍後再執行安裝程式完成安裝。%n%n要結束安裝嗎?
AboutSetupMenuItem=關於安裝程式(&A)...
AboutSetupTitle=關於安裝程式
AboutSetupMessage=%1 版 %2%n%3%n%n%1 首頁:%n%4
ExitSetupTitle=結束安裝程式
ExitSetupMessage=安裝未完成。如果您現在結束安裝程式,這個程式將不會安裝。%n%n您可以稍後再執行安裝程式完成安裝程序。您現在要結束安裝程式嗎?
AboutSetupMenuItem=關於安裝程式(&A)...
AboutSetupTitle=關於安裝程式
AboutSetupMessage=%1 版 %2%n%3%n%n%1 網址:%n%4
AboutSetupNote=
TranslatorNote=
; *** Buttons
ButtonBack=< 上一步(&B)
ButtonNext=下一步(&N) >
ButtonInstall=安裝(&I)
ButtonOK=確定
ButtonCancel=取消
ButtonYes=是(&Y)
ButtonYesToAll=全部皆是(&A)
ButtonNo=否(&N)
ButtonNoToAll=全部皆否(&O)
ButtonFinish=完成(&F)
ButtonBrowse=瀏覽(&B)...
ButtonWizardBrowse=瀏覽(&R)...
ButtonNewFolder=建立新資料夾(&M)
ButtonBack=< 上一步(&B)
ButtonInstall=安裝(&I)
ButtonNext=下一步(&N) >
ButtonOK=確定
ButtonCancel=取消
ButtonYes=是(&Y)
ButtonYesToAll=全部皆是(&A)
ButtonNo=否(&N)
ButtonNoToAll=全部皆否(&O)
ButtonFinish=完成(&F)
ButtonBrowse=瀏覽(&B)...
ButtonWizardBrowse=瀏覽(&R)...
ButtonNewFolder=建立新資料夾(&M)
; *** "Select Language" dialog messages
SelectLanguageTitle=選安裝程式語言
SelectLanguageLabel=選取安裝期間所要使用的語言:
SelectLanguageTitle=選安裝語言
SelectLanguageLabel=選擇在安裝過程中使用的語言:
; *** Common wizard text
ClickNext=若要繼續,請按一下 [下一步]; 若要結束安裝,請按一下 [取消]
ClickNext=按 [下一步] 繼續安裝,或按 [取消] 結束安裝程式
BeveledLabel=
BrowseDialogTitle=瀏覽資料夾
BrowseDialogLabel=請從下列清單中選取資料夾,然後按一下 [確定]。
NewFolderName=新資料夾
BrowseDialogTitle=瀏覽資料夾
BrowseDialogLabel=在下面的資料夾列表中選擇一個資料夾,然後按 [確定]。
NewFolderName=新資料夾
; *** "Welcome" wizard page
WelcomeLabel1=歡迎使用 [name] 安裝精靈
WelcomeLabel2=這會在您的電腦上安裝 [name/ver]。%n%n建議您先關閉所有其他應用程式然後再繼續
WelcomeLabel1=歡迎使用 [name] 安裝程式
WelcomeLabel2=這個安裝程式將會安裝 [name/ver] 到您的電腦。%n%n我們強烈建議您在安裝過程中關閉其它的應用程式以避免與安裝程式發生沖突
; *** "Password" wizard page
WizardPassword=密碼
PasswordLabel1=此安裝受密碼保護。
PasswordLabel3=請提供密碼,然後按一下 [下一步] 繼續。密碼區分大小寫。
PasswordEditLabel=密碼(&P):
IncorrectPassword=輸入的密碼不正確。請再試一次
WizardPassword=密碼
PasswordLabel1=這個安裝程式具有密碼保護。
PasswordLabel3=請輸入密碼,然後按 [下一步] 繼續。密碼區分大小寫
PasswordEditLabel=密碼(&P):
IncorrectPassword=輸入的密碼不正確,請重新輸入
; *** "License Agreement" wizard page
WizardLicense=授權合約
LicenseLabel=請閱讀下列重要資訊再繼續
LicenseLabel3=請閱讀下授權合約您必須接受合約條款才能繼續安裝。
LicenseAccepted=我接受合約(&A)
LicenseNotAccepted=我不接受合約(&D)
WizardLicense=授權合約
LicenseLabel=請閱讀以下授權合約
LicenseLabel3=請閱讀下授權合約您必須接受合約的各項條款才能繼續安裝。
LicenseAccepted=我同意(&A)
LicenseNotAccepted=我不同意(&D)
; *** "Information" wizard pages
WizardInfoBefore=
InfoBeforeLabel=請先閱讀下列重要資訊再繼續
InfoBeforeClickLabel=當您準備好繼續安裝,請按一下 [下一步]。
WizardInfoAfter=
InfoAfterLabel=請先閱讀下列重要資訊再繼續
InfoAfterClickLabel=當您準備好繼續安裝,請按一下 [下一步]。
WizardInfoBefore=訊
InfoBeforeLabel=在繼續安裝之前請閱讀以下重要資訊。
InfoBeforeClickLabel=當您準備好繼續安裝,請按 [下一步]。
WizardInfoAfter=訊
InfoAfterLabel=在繼續安裝之前請閱讀以下重要資訊。
InfoAfterClickLabel=當您準備好繼續安裝,請按 [下一步]。
; *** "User Information" wizard page
WizardUserInfo=使用者資訊
UserInfoDesc=請輸入您的資
UserInfoName=使用者名稱(&U):
UserInfoOrg=組織(&O):
UserInfoSerial=序號(&S):
UserInfoNameRequired=必須輸入名稱。
WizardUserInfo=使用者資訊
UserInfoDesc=請輸入您的資
UserInfoName=使用者名稱(&U):
UserInfoOrg=組織(&O):
UserInfoSerial=序號(&S):
UserInfoNameRequired=必須輸入您的名稱。
; *** "Select Destination Location" wizard page
WizardSelectDir=選目的地位置
SelectDirDesc=應將 [name] 安裝在何處?
SelectDirLabel3=安裝程式將 [name] 安裝在下列資料夾
SelectDirBrowseLabel=若要繼續,請按一下 [下一步]。若您想選取不同的資料夾,請按一下 [瀏覽]。
DiskSpaceMBLabel=至少須有 [mb] MB 的可用磁碟空間。
CannotInstallToNetworkDrive=安裝程式無法安裝到網路磁碟機。
CannotInstallToUNCPath=安裝程式無法安裝 UNC 路徑。
InvalidPath=必須輸入包含磁碟機代號的完整路徑,例如:%n%nC:\APP%n%n或輸入下列格式的 UNC 路徑:%n%n\\伺服器\共用
InvalidDrive=選取的磁碟機或 UNC 共用不存在或無法存取請選其他磁碟機或 UNC 共用
DiskSpaceWarningTitle=磁碟空間不足
DiskSpaceWarning=安裝程式至少需要 %1 KB 的可用空間才能安裝,但所選磁碟機的可用空間只有 %2 KB。%n%n要繼續嗎?
DirNameTooLong=資料夾名稱或路徑長。
InvalidDirName=資料夾名稱無效
BadDirName32=資料夾名稱不得包含下列任一字元:%n%n%1
DirExistsTitle=資料夾已存在
DirExists=已有資料夾 %n%n%1%n%n。仍要安裝到該資料夾嗎?
DirDoesntExistTitle=資料夾不存在
DirDoesntExist=資料夾 %n%n%1%n%n 不存在。要建立該資料夾嗎?
WizardSelectDir=選目的資料夾
SelectDirDesc=選擇安裝程式安裝 [name] 的位置。
SelectDirLabel3=安裝程式將會把 [name] 安裝到下面的資料夾。
SelectDirBrowseLabel=按 [下一步] 繼續,如果您想選擇另一個資料夾,請按 [瀏覽]。
DiskSpaceMBLabel=最少需要 [mb] MB 磁碟空間。
CannotInstallToNetworkDrive=安裝程式無法安裝於網絡磁碟機。
CannotInstallToUNCPath=安裝程式無法安裝 UNC 路徑。
InvalidPath=必須輸入完整的路徑名稱及磁碟機代碼。%n%n例如 C:\App 或 UNC 路徑格式 \\伺服器\共用資料夾。
InvalidDrive=選取的磁碟機或 UNC 名稱不存在或無法存取請選其他的目的地
DiskSpaceWarningTitle=磁碟空間不足
DiskSpaceWarning=安裝程式需要至少 %1 KB 的磁碟空間,您所選取的磁碟只有 %2 KB 可用空間。%n%n要繼續安裝嗎?
DirNameTooLong=資料夾名稱或路徑長。
InvalidDirName=資料夾名稱不正確
BadDirName32=資料夾名稱不得包含以下特殊字元:%n%n%1
DirExistsTitle=資料夾已存在
DirExists=資料夾%n%n%1%n%n 已經存在。仍要安裝到該資料夾嗎
DirDoesntExistTitle=資料夾不存在
DirDoesntExist=資料夾%n%n%1%n%n 不存在。要建立該資料夾嗎
; *** "Select Components" wizard page
WizardSelectComponents=選元件
SelectComponentsDesc=應安裝哪些元件?
SelectComponentsLabel2=選取您要安裝的元件; 清除您不安裝的元件。當您準備好要繼續時,請按一下 [下一步]。
FullInstallation=完整安裝
WizardSelectComponents=選元件
SelectComponentsDesc=選擇將會被安裝的元件
SelectComponentsLabel2=選擇您想要安裝的元件清除您不安裝的元件。然後按 [下一步] 繼續安裝
FullInstallation=完整安裝
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
CompactInstallation=精簡安裝
CustomInstallation=自訂安裝
NoUninstallWarningTitle=已有此元件
NoUninstallWarning=安裝程式偵測到您的電腦已安裝了下列元件:%n%n%1%n%n將這些元件取消選取並不會使元件解除安裝。%n%n要繼續嗎?
CompactInstallation=最小安裝
CustomInstallation=自訂安裝
NoUninstallWarningTitle=元件已存在
NoUninstallWarning=安裝程式偵測到以下元件已經安裝在您的電腦上:%n%n%1%n%n取消選擇這些元件將不會移除它們。%n%n您仍然要繼續嗎?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceMBLabel=目前的選擇至少需要 [mb] MB 磁碟空間。
ComponentsDiskSpaceMBLabel=目前的選擇需要至少 [mb] MB 磁碟空間。
; *** "Select Additional Tasks" wizard page
WizardSelectTasks=選取其他工作
SelectTasksDesc=還須執行哪些其他工作?
SelectTasksLabel2=請選取安裝程式在安裝 [name] 時,須額外執行的其他工作,然後按一下 [下一步]。
WizardSelectTasks=選擇附加的工作
SelectTasksDesc=選擇要執行的附加工作
SelectTasksLabel2=選擇安裝程式在安裝 [name] 時執行的附加工作,然後按 [下一步]。
; *** "Select Start Menu Folder" wizard page
WizardSelectProgramGroup=選取 [開始] 功能表資料夾
SelectStartMenuFolderDesc=安裝程式應將程式捷徑置於何處?
SelectStartMenuFolderLabel3=安裝程式將在下列 [開始] 功能表資料夾中建立程式捷徑
SelectStartMenuFolderBrowseLabel=若要繼續,請按一下 [下一步]。若您想選取不同的資料夾,請按一下 [瀏覽]。
MustEnterGroupName=必須輸入資料夾名稱。
GroupNameTooLong=資料夾名稱或路徑長。
InvalidGroupName=資料夾名稱無效
BadGroupName=資料夾名稱不得包含下列任一字元:%n%n%1
NoProgramGroupCheck2=不要建立 [開始] 功能表資料夾(&D)
WizardSelectProgramGroup=選擇「開始」功能表資料夾
SelectStartMenuFolderDesc=選擇安裝程式建立程式捷徑的位置。
SelectStartMenuFolderLabel3=安裝程式將會把程式的捷徑建立在下面的「開始」功能表資料夾
SelectStartMenuFolderBrowseLabel=按 [下一步] 繼續,如果您想選擇另一個資料夾,請按 [瀏覽]。
MustEnterGroupName=必須輸入一個資料夾名稱。
GroupNameTooLong=資料夾名稱或路徑長。
InvalidGroupName=資料夾名稱不正確
BadGroupName=資料夾名稱不得包含下列字元:%n%n%1
NoProgramGroupCheck2=不要在「開始」功能表中建立資料夾(&D)
; *** "Ready to Install" wizard page
WizardReady=已可開始安裝
ReadyLabel1=安裝程式現在已可開始將 [name] 安裝到您的電腦
ReadyLabel2a=若要繼續安裝,請按一下 [安裝]; 若要檢閱或變更任何設定,請按一下 [上一步]
ReadyLabel2b=若要繼續安裝,請按一下 [安裝]。
ReadyMemoUserInfo=使用者資訊:
ReadyMemoDir=目的地位置:
ReadyMemoType=安裝型:
ReadyMemoComponents=選的元件:
ReadyMemoGroup=[開始] 功能表資料夾:
ReadyMemoTasks=其他工作:
WizardReady=準備安裝
ReadyLabel1=安裝程式將開始安裝 [name] 到您的電腦
ReadyLabel2a=按下 [安裝] 繼續安裝,或按 [上一步] 重新檢視或設定各選項的內容
ReadyLabel2b=下 [安裝] 繼續安裝
ReadyMemoUserInfo=使用者資訊
ReadyMemoDir=目的資料夾:
ReadyMemoType=安裝型:
ReadyMemoComponents=選的元件:
ReadyMemoGroup=開始功能表資料夾:
ReadyMemoTasks=附加工作:
; *** "Preparing to Install" wizard page
WizardPreparing=正在準備安裝
PreparingDesc=安裝程式正在準備將 [name] 安裝到您的電腦上。
PreviousInstallNotCompleted=上一個程式的安裝/移除尚未完成必須重新啟動電腦,才能完成該安裝。%n%n在重新啟動電腦之後,重新執行安裝程式,以完成 [name] 的安裝
CannotContinue=安裝程式無法繼續。請按一下 [取消] 以結束
ApplicationsFound=安裝程式必須更新下列應用程式正在使用的一些檔案。建議您允許安裝程式自動關閉這些應用程式。
ApplicationsFound2=安裝程式必須更新下列應用程式正在使用的一些檔案。建議您允許安裝程式自動關閉這些應用程式。當安裝完成之後,安裝程式將會嘗試重新啟動這些應用程式。
CloseApplications=自動關閉應用程式(&A)
DontCloseApplications=不要關閉應用程式(&D)
ErrorCloseApplications=安裝程式無法自動關閉所有應用程式。建議您關閉所有正在使用安裝程式必須更新之檔案的應用程式,然後再繼續
WizardPreparing=準備安裝程式
PreparingDesc=安裝程式準備將 [name] 安裝到您的電腦上。
PreviousInstallNotCompleted=先前的安裝/ 解除安裝尚未完成,您必須重新啟動電腦完成該安裝。%n%n在重新啟動電腦之後請再執行這個程式來安裝 [name]。
CannotContinue=安裝程式無法繼續。請按 [取消] 離開
ApplicationsFound=下面的應用程式正在使用安裝程式所需要更新的文檔。建議您允許安裝程式自動關閉這些應用程式。
ApplicationsFound2=下面的應用程式正在使用安裝程式所需要更新的文檔。建議您允許安裝程式自動關閉這些應用程式。當安裝過程結束後,安裝程式將會嘗試重新開啟該應用程式。
CloseApplications=關閉應用程式(&A)
DontCloseApplications=不要關閉應用程式 (&D)
ErrorCloseApplications=安裝程式無法自動關閉所有應用程式。建議您在繼續前先關閉所有應用程式使用的檔案
; *** "Installing" wizard page
WizardInstalling=安裝
InstallingLabel=請稍候,安裝程式正在將 [name] 安裝到您的電腦上
WizardInstalling=正在安裝
InstallingLabel=請稍候,安裝程式正在將 [name] 安裝到您的電腦上
; *** "Setup Completed" wizard page
FinishedHeadingLabel=正在完成 [name] 安裝精靈
FinishedLabelNoIcons=安裝程式已完成您電腦上 [name] 安裝。
FinishedLabel=安裝程式已完成您電腦上 [name] 安裝。您可以選取所安裝的捷徑來啟動應用程式。
ClickFinish=請按一下 [完成]以結束安裝。
FinishedRestartLabel=安裝程式必須重新啟動您的電腦,才能完成 [name] 的安裝。要立即重新啟動嗎?
FinishedRestartMessage=安裝程式必須重新啟動您的電腦,才能完成 [name] 的安裝。%n%n要立即重新啟動嗎?
ShowReadmeCheck=是,我要檢視讀我檔案
YesRadio=是,立即重新啟動電腦(&Y)
NoRadio=否,稍候再重新啟動電腦(&N)
FinishedHeadingLabel=安裝完成
FinishedLabelNoIcons=安裝程式已經將 [name] 安裝在您的電腦上
FinishedLabel=安裝程式已經將 [name] 安裝在您的電腦中,您可以選擇程式的圖示來執行該應用程式。
ClickFinish= [完成] 以結束安裝程式
FinishedRestartLabel=要完成 [name] 的安裝,安裝程式必須重新啟動您的電腦。您想要現在重新啟動電腦嗎?
FinishedRestartMessage=要完成 [name] 的安裝,安裝程式必須重新啟動您的電腦。%n%n您想要現在重新啟動電腦嗎?
ShowReadmeCheck=是,我要閱讀讀我檔案
YesRadio=是,立即重新啟動電腦(&Y)
NoRadio=否,我稍後重新啟動電腦(&N)
; used for example as 'Run MyProg.exe'
RunEntryExec=執行 %1
RunEntryExec=執行 %1
; used for example as 'View Readme.txt'
RunEntryShellExec=檢視 %1
; *** "Setup Needs the Next Disk" stuff
ChangeDiskTitle=安裝程式需要下一張磁片。
SelectDiskLabel2=請插入磁片 %1然後按一下 [確定]。%n%n若此磁片上的檔案可以在下列顯示之資料夾以外的資料夾中找到請輸入正確的路徑或按一下 [瀏覽]。
PathLabel=路徑(&P):
FileNotInDir2=在 "%2" 中找不到檔案 "%1"。請插入正確的磁片,或選取其他資料夾。
SelectDirectoryLabel=請指定下一張磁片的位置
RunEntryShellExec=檢視 %1
; *** "Setup Needs the Next Disk"
ChangeDiskTitle=安裝程式需要下一張磁片
SelectDiskLabel2=請插入磁片 %1然後按 [確定]。%n%n如果檔案不在以下所顯示的資料夾之中請輸入正確的資料夾名稱或按 [瀏覽] 選取。
PathLabel=路徑(&P):
FileNotInDir2=檔案“%1”無法在“%2”找到。請插入正確的磁片或選擇其它的資料夾
SelectDirectoryLabel=請指定下一張磁片的位置。
; *** Installation phase messages
SetupAborted=安裝未安成。%n%n請正問題,再重新執行安裝程式
EntryAbortRetryIgnore=若要再試一次,請按一下 [重試]; 若要繼續,請按一下 [忽略]; 若要取消安裝,請按一下 [中止]。
SetupAborted=安裝沒有完成。%n%n請正問題後重新安裝一次
AbortRetryIgnoreSelectAction=選取動作
AbortRetryIgnoreRetry=請再試一次 (&T)
AbortRetryIgnoreIgnore=略過錯誤並繼續 (&I)
AbortRetryIgnoreCancel=取消安裝
; *** Installation status messages
StatusClosingApplications=正在關閉應用程式...
StatusCreateDirs=正在建立目錄...
StatusExtractFiles=正在解壓縮檔案...
StatusCreateIcons=正在建立捷徑...
StatusCreateIniEntries=正在建立 INI 項目...
StatusCreateRegistryEntries=正在建立登錄項目...
StatusRegisterFiles=正在登錄檔案...
StatusSavingUninstall=正在儲存解除安裝資訊...
StatusRunProgram=正在完成安裝...
StatusRestartingApplications=正在重新啟應用程式...
StatusRollback=正在復原變更...
StatusClosingApplications=正在關閉應用程式...
StatusCreateDirs=正在建立資料夾...
StatusExtractFiles=正在解壓縮檔案...
StatusCreateIcons=正在建立程式集圖示...
StatusCreateIniEntries=寫入 INI 檔案的項目...
StatusCreateRegistryEntries=正在更新系統登錄...
StatusRegisterFiles=正在登錄檔案...
StatusSavingUninstall=儲存解除安裝資訊...
StatusRunProgram=正在完成安裝...
StatusRestartingApplications=正在重新啟應用程式...
StatusRollback=正在復原變更...
; *** Misc. errors
ErrorInternal2=內部錯誤: %1
ErrorFunctionFailedNoCode=%1 失敗
ErrorFunctionFailed=%1 失敗; 代碼 %2
ErrorFunctionFailedWithMessage=%1 失敗; 代碼 %2%n%3
ErrorExecutingProgram=無法執行檔案:%n%1
ErrorInternal2=內部錯誤: %1
ErrorFunctionFailedNoCode=%1 失敗
ErrorFunctionFailed=%1 失敗代碼 %2
ErrorFunctionFailedWithMessage=%1 失敗代碼 %2.%n%3
ErrorExecutingProgram=無法執行檔案:%n%1
; *** Registry errors
ErrorRegOpenKey=開啟登錄機碼時發生錯誤:%n%1\%2
ErrorRegCreateKey=建立登錄機碼時發生錯誤:%n%1\%2
ErrorRegWriteKey=寫入登錄機碼時發生錯誤:%n%1\%2
ErrorRegOpenKey=無法開啟登錄:%n%1\%2
ErrorRegCreateKey=無法建立登錄項目:%n%1\%2
ErrorRegWriteKey=無法變更登錄項目:%n%1\%2
; *** INI errors
ErrorIniEntry=在檔案 "%1" 中建立 INI 項目時發生錯誤。
ErrorIniEntry=在檔案“%1”建立 INI 項目錯誤。
; *** File copying errors
FileAbortRetryIgnore=若要再試一次,請按一下 [重試]; 若要略過此檔案,請按一下 [忽略] (不建議使用); 若要取消安裝,請按一下 [中止]。
FileAbortRetryIgnore2=若要再試一次,請按一下 [重試]; 若要繼續,請按一下 [忽略] (不建議使用); 若要取消安裝,請按一下 [中止]。
SourceIsCorrupted=原始程式檔已損毀
SourceDoesntExist=原始程式檔 "%1" 不存在
ExistingFileReadOnly=現有檔案已標為唯讀。%n%n若要移除唯讀屬性然後再試一次請按一下 [重試]; 若要略過此檔案,請按一下 [忽略]; 若要取消安裝,請按一下 [中止]。
ErrorReadingExistingDest=嘗試讀取現有檔案時發生錯誤:
FileExists=已有此檔案。%n%n要由安裝程式加以覆寫嗎?
ExistingFileNewer=現有檔案較安裝程式嘗試安裝的檔案新。建議您保留現有檔案。%n%n要保留現有的檔案嗎?
ErrorChangingAttr=嘗試變更現有檔案的屬性時發生錯誤:
ErrorCreatingTemp=嘗試在目的地目錄中建立檔案時發生錯誤:
ErrorReadingSource=嘗試讀取原始程式檔時發生錯誤:
ErrorCopying=嘗試複製檔案時發生錯誤:
ErrorReplacingExistingFile=嘗試取代現有檔案時發生錯誤:
ErrorRestartReplace=RestartReplace 失敗:
ErrorRenamingTemp=嘗試重新命名目的地目錄中的檔案時發生錯誤:
ErrorRegisterServer=無法登錄 DLL/OCX: %1
ErrorRegSvr32Failed=RegSvr32 失敗,結束代碼為 %1
ErrorRegisterTypeLib=無法登錄類型程式庫: %1
FileAbortRetryIgnoreSkipNotRecommended=略過這個檔案 (不建議) (&S)
FileAbortRetryIgnoreIgnoreNotRecommended=略過錯誤並繼續 (不建議) (&I)
SourceDoesntExist=來源檔案“%1”不存在。
SourceIsCorrupted=來源檔案已經損毀。
ExistingFileReadOnly2=無法取代現有檔案,因為檔案已標為唯讀。
ExistingFileReadOnlyRetry=移除唯讀屬性並重試 (&R)
ExistingFileReadOnlyKeepExisting=保留現有檔案 (&K)
ErrorReadingExistingDest=讀取一個已存在的檔案時發生錯誤:
FileExists=檔案已經存在。%n%n 要讓安裝程式加以覆寫嗎?
ExistingFileNewer=存在的檔案版本比較新,建議您保留目前已存在的檔案。%n%n您要保留目前已存在的檔案嗎?
ErrorChangingAttr=在變更檔案屬性時發生錯誤:
ErrorCreatingTemp=在目的資料夾中建立檔案時發生錯誤:
ErrorReadingSource=讀取原始檔案時發生錯誤:
ErrorCopying=復制檔案時發生錯誤:
ErrorReplacingExistingFile=取代檔案時發生錯誤:
ErrorRestartReplace=重新啟動電腦後取代檔案失敗:
ErrorRenamingTemp=在目的資料夾變更檔案名稱時發生錯誤:
ErrorRegisterServer=無法注冊 DLL/OCX 檔案: %1
ErrorRegSvr32Failed=RegSvr32 失敗;退出代碼 %1
ErrorRegisterTypeLib=無法注冊類型庫: %1。
; *** Uninstall display name markings
; used for example as 'My Program (32-bit)'
UninstallDisplayNameMark=%1 (%2)
; used for example as 'My Program (32-bit, All users)'
UninstallDisplayNameMarks=%1 (%2, %3)
UninstallDisplayNameMark32Bit=32-bit
UninstallDisplayNameMark64Bit=64-bit
UninstallDisplayNameMarkAllUsers=所有使用者
UninstallDisplayNameMarkCurrentUser=目前使用者
; *** Post-installation errors
ErrorOpeningReadme=嘗試開啟讀我檔案時發生錯誤。
ErrorRestartingComputer=安裝程式無法重新啟動電腦。請手動執行此作業
ErrorOpeningReadme=開啟讀我檔案時發生錯誤。
ErrorRestartingComputer=安裝程式無法重新啟動電腦,請以手動方式自行重新啟動電腦
; *** Uninstaller messages
UninstallNotFound=沒有檔案 "%1"。無法解除安裝
UninstallOpenError=無法開啟檔案 "%1"。無法解除安裝
UninstallUnsupportedVer=此版解除安裝程式無法辨識解除安裝記錄檔 "%1" 的格式無法解除安裝
UninstallUnknownEntry=解除安裝記錄中找到不明的項目 (%1)
ConfirmUninstall=確定要完全移除 %1 及其所有元件嗎?
UninstallOnlyOnWin64=只可在 64 位元 Windows 上解除安裝此安裝
OnlyAdminCanUninstall=只有具備系統管理權限的使用者,才能解除安裝此安裝。
UninstallStatusLabel=正在從您的電腦移除 %1請稍候
UninstalledAll=成功從您的電腦移除 %1
UninstalledMost=解除安裝 %1 已完成。%n%n有部分項目無法移除您可以手動加以移除
UninstalledAndNeedsRestart=要完成 %1 的解除安裝必須重新啟動您的電腦。%n%n要立即重新啟動嗎?
UninstallDataCorrupted="%1" 檔案已損毀無法解除安裝
UninstallNotFound=檔案“%1”不存在無法移除程式
UninstallOpenError=無法開啟檔案“%1”無法移除程式。
UninstallUnsupportedVer=這個版本的解除安裝程式無法辨識記錄檔 %1” 之格式無法解除安裝
UninstallUnknownEntry=解除安裝記錄檔中發現未知的記錄 (%1)
ConfirmUninstall=確定要完全移除 %1 及其相關的檔案嗎?
UninstallOnlyOnWin64=這個程式只能在 64 位元 Windows 上解除安裝。
OnlyAdminCanUninstall=這個程式要具備系統管理權限的使用者方可解除安裝。
UninstallStatusLabel=正在從您的電腦移除 %1,請稍候...
UninstalledAll=%1 已經成功從您的電腦移除。
UninstalledMost=%1 解除安裝完成。%n%n某些檔案及元件無法移除您可以自行刪除這些檔案
UninstalledAndNeedsRestart=要完成 %1 的解除安裝程序,您必須重新啟動電腦。%n%n您想要現在重新啟動電腦嗎?
UninstallDataCorrupted=檔案“%1”已經損毀無法解除安裝
; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=移除共用檔案嗎?
ConfirmDeleteSharedFile2=系統指出已無任何程式使用下列共用檔案。您要解除安裝,以移除此共用檔案嗎?%n%n如有任何程式仍在使用此檔案而將該檔案移除這些程式可能無法正常運作。若不確定請選擇 [否]。將檔案保留在系統上並不會造成任何不良影響
SharedFileNameLabel=檔案名稱:
SharedFileLocationLabel=位置:
WizardUninstalling=解除安裝狀態
StatusUninstalling=正在解除安裝 %1...
ConfirmDeleteSharedFileTitle=移除共用檔案
ConfirmDeleteSharedFile2=系統顯示下列共用檔案已不再被任何程式使用,您要移除這些檔案嗎?%n%n%1%n%n倘若您移除了以上檔案但仍有程式需要使用它們將造成這些程式無法正常執行,因此您若無法確定請選擇 [否]。保留這些檔案在您的系統中不會造成任何損害
SharedFileNameLabel=檔案名稱:
SharedFileLocationLabel=位置:
WizardUninstalling=解除安裝狀態
StatusUninstalling=正在解除安裝 %1...
; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=正在安裝 %1
ShutdownBlockReasonUninstallingApp=正在解除安裝 %1
ShutdownBlockReasonInstallingApp=正在安裝 %1.
ShutdownBlockReasonUninstallingApp=正在解除安裝 %1.
; The custom messages below aren't used by Setup itself, but if you make
; use of them in your scripts, you'll want to translate them.
[CustomMessages]
NameAndVersion=%1 版 %2
AdditionalIcons=其他捷徑:
CreateDesktopIcon=建立桌面捷徑(&D)
CreateQuickLaunchIcon=建立快速啟動捷徑(&Q)
ProgramOnTheWeb=Web 上的 %1
UninstallProgram=解除安裝 %1
LaunchProgram=啟動 %1
AssocFileExtension=關聯 %1 與 %2 副檔名(&A)
AssocingFileExtension=正在建立 %1 與 %2 副檔名的關聯…
AutoStartProgramGroupDescription=啟動:
AutoStartProgram=自動啟動 %1
AddonHostProgramNotFound=在選取的資料夾中找不到 %1。%n%n仍要繼續嗎?
NameAndVersion=%1 版本 %2
AdditionalIcons=附加圖示:
CreateDesktopIcon=建立桌面圖示(&D)
CreateQuickLaunchIcon=建立快速啟動圖示(&Q)
ProgramOnTheWeb=%1 的網站
UninstallProgram=解除安裝 %1
LaunchProgram=啟動 %1
AssocFileExtension= %1 與檔案副檔名 %2 產生關聯(&A)
AssocingFileExtension=正在將 %1 與檔案副檔名 %2 產生關聯...
AutoStartProgramGroupDescription=開啟:
AutoStartProgram=自動開啟 %1
AddonHostProgramNotFound=%1 無法在您所選的資料夾中找到。%n%n您是否還要繼續

View File

@@ -1,4 +1,11 @@
[Messages]
FinishedLabel=Setup has finished installing [name] on your computer. The application may be launched by selecting the installed shortcuts.
ConfirmUninstall=Are you sure you want to completely remove %1 and all of its components?
[CustomMessages]
AdditionalIcons=Additional icons:
CreateDesktopIcon=Create a &desktop icon
CreateQuickLaunchIcon=Create a &Quick Launch icon
AddContextMenuFiles=Add "Open with %1" action to Windows Explorer file context menu
AddContextMenuFolders=Add "Open with %1" action to Windows Explorer directory context menu
AssociateWithFiles=Register %1 as an editor for supported file types

View File

@@ -1817,10 +1817,10 @@ https-proxy-agent@^4.0.0:
agent-base "5"
debug "4"
iconv-lite-umd@0.6.7:
version "0.6.7"
resolved "https://registry.yarnpkg.com/iconv-lite-umd/-/iconv-lite-umd-0.6.7.tgz#ee437e34b30f15dc00ec93ea65065e672770777c"
integrity sha512-DT90zb7wL1B3I6DmYUMcfJeVdY19XigzDj5AtXbXEw9Jfi0+AVAxfn7ytvY7Xhr+GFn7nd7hPonapC37oo7iAQ==
iconv-lite-umd@0.6.8:
version "0.6.8"
resolved "https://registry.yarnpkg.com/iconv-lite-umd/-/iconv-lite-umd-0.6.8.tgz#5ad310ec126b260621471a2d586f7f37b9958ec0"
integrity sha512-zvXJ5gSwMC9JD3wDzH8CoZGc1pbiJn12Tqjk8BXYCnYz3hYL5GRjHW8LEykjXhV9WgNGI4rgpgHcbIiBfrRq6A==
iconv-lite@^0.4.4:
version "0.4.24"
@@ -2123,6 +2123,11 @@ json-stringify-safe@~5.0.1:
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
jsonc-parser@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.0.tgz#7c7fc988ee1486d35734faaaa866fadb00fa91ee"
integrity sha512-b0EBt8SWFNnixVdvoR2ZtEGa9ZqLhbJnOjezn+WP+8kspFm+PFYDN8Z4Bc7pRlDjvuVcADSUkroIuTWWn/YiIA==
jsonfile@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
@@ -2296,9 +2301,9 @@ lodash.unescape@4.0.1:
integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=
lodash@^4.15.0, lodash@^4.17.10:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
version "4.17.19"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
macos-release@^2.2.0:
version "2.3.0"
@@ -2548,9 +2553,9 @@ node-abort-controller@^1.0.4:
integrity sha512-7cNtLKTAg0LrW3ViS2C7UfIzbL3rZd8L0++5MidbKqQVJ8yrH6+1VRSHl33P0ZjBTbOJd37d9EYekvHyKkB0QQ==
node-fetch@^2.6.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
version "2.6.1"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
node-pre-gyp@^0.10.0:
version "0.10.3"
@@ -3539,10 +3544,10 @@ typescript@^3.0.1:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977"
integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==
typescript@^4.0.0-dev.20200629:
version "4.0.0-dev.20200629"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.0-dev.20200629.tgz#4631667ebffe3a340beee885a4bebe3a73b6f18e"
integrity sha512-c4DUu7KvTcx4x7V8sBWexYNkCfioiH1huOJL6WFAA8Oot0Gr/+PlKKDBS9fYjsadEv1JI1qboJKobwLQn0kQXw==
typescript@^4.1.0-dev.20200824:
version "4.1.0-dev.20200824"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.0-dev.20200824.tgz#34c92d9b6e5124600658c0d4e9b8c125beaf577d"
integrity sha512-hTJfocmebnMKoqRw/xs3bL61z87XXtvOUwYtM7zaCX9mAvnfdo1x1bzQlLZAsvdzRIgAHPJQYbqYHKygWkDw6g==
typical@^4.0.0:
version "4.0.0"

View File

@@ -330,5 +330,34 @@
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE",
"SOFTWARE."
]
},
{
// Reason: The license at https://github.com/colorjs/color-name/blob/master/LICENSE
// cannot be found by the OSS tool automatically.
"name": "color-name",
"fullLicenseText": [
"The MIT License (MIT)",
"Copyright (c) 2015 Dmitry Ivanov",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
// Reason: The license cannot be found by the tool due to access controls on the repository
"name": "tas-client",
"fullLicenseText": [
"MIT License",
"Copyright (c) 2020 - present Microsoft Corporation",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
}
]

View File

@@ -6,7 +6,7 @@
"git": {
"name": "chromium",
"repositoryUrl": "https://chromium.googlesource.com/chromium/src",
"commitHash": "e4745133a1d3745f066e068b8033c6a269b59caf"
"commitHash": "894fb9eb56c6cbda65e3c3ae9ada6d4cb5850cc9"
}
},
"licenseDetail": [
@@ -40,7 +40,7 @@
"SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
],
"isOnlyProductionDependency": true,
"version": "78.0.3904.130"
"version": "83.0.4103.122"
},
{
"component": {
@@ -48,11 +48,11 @@
"git": {
"name": "nodejs",
"repositoryUrl": "https://github.com/nodejs/node",
"commitHash": "787378879acfb212ed4ff824bf9f767a24a5cb43a"
"commitHash": "9622fed3fb2cffcea9efff6c8cb4cc2def99d75d"
}
},
"isOnlyProductionDependency": true,
"version": "12.8.1"
"version": "12.14.1"
},
{
"component": {
@@ -60,12 +60,12 @@
"git": {
"name": "electron",
"repositoryUrl": "https://github.com/electron/electron",
"commitHash": "5f93e889020d279d5a9cd1ecab080ab467312447"
"commitHash": "03c7a54dc534ce1867d4393b9b1a6989d4a7e005"
}
},
"isOnlyProductionDependency": true,
"license": "MIT",
"version": "7.3.2"
"version": "9.2.1"
},
{
"component": {

View File

@@ -67,6 +67,23 @@
"when": "isWindows && connectionProvider == MSSQL && serverInfo && nodeType && mssql:engineedition != 11 && nodeType =~ /^(Database|Table|Column|Index|Statistic|View|ServerLevelLogin|ServerLevelServerRole|ServerLevelCredential|ServerLevelServerAudit|ServerLevelServerAuditSpecification|StoredProcedure|ScalarValuedFunction|TableValuedFunction|AggregateFunction|Synonym|Assembly|UserDefinedDataType|UserDefinedType|UserDefinedTableType|Sequence|User|DatabaseRole|ApplicationRole|Schema|SecurityPolicy|ServerLevelLinkedServer)$/",
"group": "z-AdminToolExt@2"
}
],
"dataExplorer/context": [
{
"command": "adminToolExtWin.launchSsmsMinGswDialog",
"when": "isWindows && connectionProvider == MSSQL && nodeType && nodeType == Database && mssql:engineedition != 11",
"group": "z-AdminToolExt@1"
},
{
"command": "adminToolExtWin.launchSsmsMinPropertiesDialog",
"when": "isWindows && connectionProvider == MSSQL && !isCloud && nodeType && nodeType == Server && mssql:engineedition != 11",
"group": "z-AdminToolExt@2"
},
{
"command": "adminToolExtWin.launchSsmsMinPropertiesDialog",
"when": "isWindows && connectionProvider == MSSQL && nodeType && mssql:engineedition != 11 && nodeType =~ /^(Database|Table|Column|Index|Statistic|View|ServerLevelLogin|ServerLevelServerRole|ServerLevelCredential|ServerLevelServerAudit|ServerLevelServerAuditSpecification|StoredProcedure|ScalarValuedFunction|TableValuedFunction|AggregateFunction|Synonym|Assembly|UserDefinedDataType|UserDefinedType|UserDefinedTableType|Sequence|User|DatabaseRole|ApplicationRole|Schema|SecurityPolicy|ServerLevelLinkedServer)$/",
"group": "z-AdminToolExt@2"
}
]
},
"outputChannels": [
@@ -85,7 +102,7 @@
"mocha-junit-reporter": "^1.17.0",
"mocha-multi-reporters": "^1.1.7",
"should": "^13.2.3",
"vscodetestcover": "^1.0.9"
"vscodetestcover": "^1.1.0"
},
"__metadata": {
"id": "41",

View File

@@ -643,9 +643,9 @@ json5@^2.1.2:
minimist "^1.2.5"
lodash@^4.16.4, lodash@^4.17.13:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
version "4.17.19"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
make-dir@^2.1.0:
version "2.1.0"
@@ -986,10 +986,10 @@ vscode-nls@^3.2.1:
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.5.tgz#25520c1955108036dec607c85e00a522f247f1a4"
integrity sha512-ITtoh3V4AkWXMmp3TB97vsMaHRgHhsSFPsUdzlueSL+dRZbSNTZeOmdQv60kjCV306ghPxhDeoNUEm3+EZMuyw==
vscodetestcover@^1.0.9:
version "1.0.9"
resolved "https://registry.yarnpkg.com/vscodetestcover/-/vscodetestcover-1.0.9.tgz#0191f403dd59ba1153fc57979e281e992ce63731"
integrity sha512-8z2961KF9Tuz5XdHAC6RMV3CrzAoUcfIK7wLYjLIXD4dbHIT7ceZMhoxToW1olyi3pFnThlS4lRXtx8Q5iyMMQ==
vscodetestcover@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/vscodetestcover/-/vscodetestcover-1.1.0.tgz#ea2bc2fb0c54ca4084057883e7e1614a20533e14"
integrity sha512-b/5mYqWC4yPxPUM1G8MD8ZnRt7eYd1IxAg/vdTE6JiNZlpGtxkDv91eXbF4TbQVlOPoqTzfhpY5GxbZbHVv+DQ==
dependencies:
decache "^4.4.0"
glob "^7.1.2"

View File

@@ -90,7 +90,7 @@
"mocha-multi-reporters": "^1.1.7",
"should": "^13.2.1",
"typemoq": "^2.1.0",
"vscodetestcover": "^1.0.9"
"vscodetestcover": "^1.1.0"
},
"__metadata": {
"id": "10",

View File

@@ -509,9 +509,9 @@ json5@^2.1.2:
minimist "^1.2.5"
lodash@^4.16.4, lodash@^4.17.13, lodash@^4.17.4:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
version "4.17.19"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
make-dir@^2.1.0:
version "2.1.0"
@@ -769,10 +769,10 @@ vscode-nls@^3.2.1:
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.5.tgz#25520c1955108036dec607c85e00a522f247f1a4"
integrity sha512-ITtoh3V4AkWXMmp3TB97vsMaHRgHhsSFPsUdzlueSL+dRZbSNTZeOmdQv60kjCV306ghPxhDeoNUEm3+EZMuyw==
vscodetestcover@^1.0.9:
version "1.0.9"
resolved "https://registry.yarnpkg.com/vscodetestcover/-/vscodetestcover-1.0.9.tgz#0191f403dd59ba1153fc57979e281e992ce63731"
integrity sha512-8z2961KF9Tuz5XdHAC6RMV3CrzAoUcfIK7wLYjLIXD4dbHIT7ceZMhoxToW1olyi3pFnThlS4lRXtx8Q5iyMMQ==
vscodetestcover@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/vscodetestcover/-/vscodetestcover-1.1.0.tgz#ea2bc2fb0c54ca4084057883e7e1614a20533e14"
integrity sha512-b/5mYqWC4yPxPUM1G8MD8ZnRt7eYd1IxAg/vdTE6JiNZlpGtxkDv91eXbF4TbQVlOPoqTzfhpY5GxbZbHVv+DQ==
dependencies:
decache "^4.4.0"
glob "^7.1.2"

View File

@@ -2,7 +2,7 @@
Welcome to Microsoft Azure Arc Extension for Azure Data Studio!
**This extension is only applicable to customers in the Azure Arc data services private preview.**
**This extension is only applicable to customers in the Azure Arc data services public preview.**
## Overview

View File

@@ -8,5 +8,5 @@
not_numbered: true
expand_sections: true
sections:
- title: TSG100 - The Azure Arc Postgres troubleshooter
- title: TSG100 - The Azure Arc enabled PostgreSQL Hyperscale troubleshooter
url: postgres/tsg100-troubleshoot-postgres

View File

@@ -3,5 +3,5 @@
- This chapter contains notebooks for troubleshooting Postgres on Azure Arc
## Notebooks in this Chapter
- [TSG100 - The Azure Arc Postgres troubleshooter](tsg100-troubleshoot-postgres.ipynb)
- [TSG100 - The Azure Arc enabled PostgreSQL Hyperscale troubleshooter](tsg100-troubleshoot-postgres.ipynb)

View File

@@ -3,5 +3,5 @@
not_numbered: true
expand_sections: true
sections:
- title: TSG100 - The Azure Arc Postgres troubleshooter
- title: TSG100 - The Azure Arc enabled PostgreSQL Hyperscale troubleshooter
url: postgres/tsg100-troubleshoot-postgres

View File

@@ -4,13 +4,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"TSG100 - The Azure Arc Postgres troubleshooter\n",
"==============================================\n",
"TSG100 - The Azure Arc enabled PostgreSQL Hyperscale troubleshooter\n",
"===================================================================\n",
"\n",
"Description\n",
"-----------\n",
"\n",
"Follow these steps to troubleshoot an Azure Arc Postgres Server.\n",
"Follow these steps to troubleshoot an Azure Arc enabled PostgreSQL\n",
"Hyperscale Server.\n",
"\n",
"Steps\n",
"-----\n",
@@ -34,6 +35,7 @@
"# the user will be prompted to select a server.\n",
"namespace = os.environ.get('POSTGRES_SERVER_NAMESPACE')\n",
"name = os.environ.get('POSTGRES_SERVER_NAME')\n",
"version = os.environ.get('POSTGRES_SERVER_VERSION')\n",
"\n",
"tail_lines = 50"
]
@@ -143,7 +145,7 @@
" if cmd.startswith(\"kubectl \") and \"AZDATA_OPENSHIFT\" in os.environ:\n",
" cmd_actual[0] = cmd_actual[0].replace(\"kubectl\", \"oc\")\n",
"\n",
" # To aid supportabilty, determine which binary file will actually be executed on the machine\n",
" # To aid supportability, determine which binary file will actually be executed on the machine\n",
" #\n",
" which_binary = None\n",
"\n",
@@ -400,11 +402,11 @@
"import math\n",
"\n",
"# If a server was provided, get it\n",
"if namespace and name:\n",
" server = json.loads(run(f'kubectl get dbs -n {namespace} {name} -o json', return_output=True))\n",
"if namespace and name and version:\n",
" server = json.loads(run(f'kubectl get postgresql-{version} -n {namespace} {name} -o json', return_output=True))\n",
"else:\n",
" # Otherwise prompt the user to select a server\n",
" servers = json.loads(run(f'kubectl get dbs --all-namespaces -o json', return_output=True))['items']\n",
" servers = json.loads(run(f'kubectl get postgresqls --all-namespaces -o json', return_output=True))['items']\n",
" if not servers:\n",
" raise Exception('No Postgres servers found')\n",
"\n",
@@ -425,6 +427,7 @@
" server = servers[i-1]\n",
" namespace = server['metadata']['namespace']\n",
" name = server['metadata']['name']\n",
" version = server['kind'][len('postgresql-'):]\n",
" break\n",
"\n",
"display(Markdown(f'#### Got server {namespace}.{name}'))"
@@ -446,10 +449,10 @@
"uid = server['metadata']['uid']\n",
"\n",
"display(Markdown(f'#### Server summary'))\n",
"run(f'kubectl get dbs -n {namespace} {name}')\n",
"run(f'kubectl get postgresql-{version} -n {namespace} {name}')\n",
"\n",
"display(Markdown(f'#### Resource summary'))\n",
"run(f'kubectl get pods,pvc,svc,ep -n {namespace} -l dusky.microsoft.com/serviceId={uid}')"
"run(f'kubectl get sts,pods,pvc,svc,ep -n {namespace} -l postgresqls.arcdata.microsoft.com/cluster-id={uid}')"
]
},
{
@@ -466,7 +469,7 @@
"outputs": [],
"source": [
"display(Markdown(f'#### Troubleshooting server {namespace}.{name}'))\n",
"run(f'kubectl describe dbs -n {namespace} {name}')"
"run(f'kubectl describe postgresql-{version} -n {namespace} {name}')"
]
},
{
@@ -482,7 +485,7 @@
"metadata": {},
"outputs": [],
"source": [
"pods = json.loads(run(f'kubectl get pods -n {namespace} -l dusky.microsoft.com/serviceId={uid} -o json', return_output=True))['items']\n",
"pods = json.loads(run(f'kubectl get pods -n {namespace} -l postgresqls.arcdata.microsoft.com/cluster-id={uid} -o json', return_output=True))['items']\n",
"\n",
"# Summarize and describe each pod\n",
"for pod in pods:\n",
@@ -529,8 +532,7 @@
" con_restarts = con_status.get('restartCount', 0)\n",
"\n",
" display(Markdown(f'#### Troubleshooting container {namespace}.{pod_name}/{con_name} ({i+1}/{len(cons)})\\n'\n",
" f'#### {\"S\" if con_started else \"Not s\"}tarted and '\n",
" f'{\"\" if con_ready else \"not \"}ready with {con_restarts} restarts'))\n",
" f'#### {\"R\" if con_ready else \"Not r\"}eady with {con_restarts} restarts'))\n",
"\n",
" run(f'kubectl logs -n {namespace} {pod_name} {con_name} --tail {tail_lines}')\n",
"\n",
@@ -554,7 +556,7 @@
"outputs": [],
"source": [
"display(Markdown(f'#### Troubleshooting PersistentVolumeClaims'))\n",
"run(f'kubectl describe pvc -n {namespace} -l dusky.microsoft.com/serviceId={uid}')"
"run(f'kubectl describe pvc -n {namespace} -l postgresqls.arcdata.microsoft.com/cluster-id={uid}')"
]
},
{

View File

@@ -47,7 +47,7 @@
"|Tools|Description|Installation|\n",
"|---|---|---|\n",
"|kubectl | Command-line tool for monitoring the underlying Kubernetes cluster | [Installation](https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-binary-using-native-package-management) |\n",
"|azdata | Command-line tool for installing and managing resources in an Azure Arc cluster |[Installation](https://github.com/microsoft/Azure-data-services-on-Azure-Arc/blob/master/scenarios/001-install-client-tools.md) |"
"|Azure Data CLI (azdata) | Command-line tool for installing and managing resources in an Azure Arc cluster |[Installation](https://docs.microsoft.com/sql/azdata/install/deploy-install-azdata) |"
],
"metadata": {
"azdata_cell_guid": "714582b9-10ee-409e-ab12-15a4825c9471"
@@ -90,7 +90,7 @@
"cell_type": "markdown",
"source": [
"### **Set variables**\n",
"Generated by Azure Data Studio using the values collected in the Azure Arc Data controller create wizard"
"Generated by Azure Data Studio using the values collected in the 'Create Azure Arc data controller' wizard."
],
"metadata": {
"azdata_cell_guid": "4b266b2d-bd1b-4565-92c9-3fc146cdce6d"
@@ -129,13 +129,11 @@
{
"cell_type": "code",
"source": [
"if \"AZDATA_NB_VAR_ARC_DOCKER_PASSWORD\" in os.environ:\n",
" arc_docker_password = os.environ[\"AZDATA_NB_VAR_ARC_DOCKER_PASSWORD\"]\n",
"if \"AZDATA_NB_VAR_ARC_ADMIN_PASSWORD\" in os.environ:\n",
" arc_admin_password = os.environ[\"AZDATA_NB_VAR_ARC_ADMIN_PASSWORD\"]\n",
"else:\n",
" if arc_admin_password == \"\":\n",
" arc_admin_password = getpass.getpass(prompt = 'Azure Arc Data controller password')\n",
" arc_admin_password = getpass.getpass(prompt = 'Azure Arc Data Controller password')\n",
" if arc_admin_password == \"\":\n",
" sys.exit(f'Password is required.')\n",
" confirm_password = getpass.getpass(prompt = 'Confirm password')\n",
@@ -175,7 +173,7 @@
{
"cell_type": "markdown",
"source": [
"### **Create Azure Arc Data controller**"
"### **Create Azure Arc Data Controller**"
],
"metadata": {
"azdata_cell_guid": "efe78cd3-ed73-4c9b-b586-fdd6c07dd37f"
@@ -184,16 +182,14 @@
{
"cell_type": "code",
"source": [
"print (f'Creating Azure Arc controller: {arc_data_controller_name} using configuration {arc_cluster_context}')\n",
"print (f'Creating Azure Arc Data Controller: {arc_data_controller_name} using configuration {arc_cluster_context}')\n",
"os.environ[\"ACCEPT_EULA\"] = 'yes'\n",
"os.environ[\"AZDATA_USERNAME\"] = arc_admin_username\n",
"os.environ[\"AZDATA_PASSWORD\"] = arc_admin_password\n",
"os.environ[\"DOCKER_USERNAME\"] = arc_docker_username\n",
"os.environ[\"DOCKER_PASSWORD\"] = arc_docker_password\n",
"if os.name == 'nt':\n",
" print(f'If you don\\'t see output produced by azdata, you can run the following command in a terminal window to check the deployment status:\\n\\t {os.environ[\"AZDATA_NB_VAR_KUBECTL\"]} get pods -A')\n",
"run_command(f'azdata arc dc create --connectivity-mode {arc_data_controller_connectivity_mode} -n {arc_data_controller_name} -ns {arc_data_controller_namespace} -s {arc_subscription} -g {arc_resource_group} -l {arc_data_controller_location} -p {arc_profile}')\n",
"print(f'Azure Arc Data controller cluster: {arc_data_controller_name} created.') "
" print(f'If you don\\'t see output produced by azdata, you can run the following command in a terminal window to check the deployment status:\\n\\t {os.environ[\"AZDATA_NB_VAR_KUBECTL\"]} get pods -n {arc_data_controller_namespace}')\n",
"run_command(f'azdata arc dc create --connectivity-mode Indirect -n {arc_data_controller_name} -ns {arc_data_controller_namespace} -s {arc_subscription} -g {arc_resource_group} -l {arc_data_controller_location} -sc {arc_data_controller_storage_class} --profile-name {arc_profile}')\n",
"print(f'Azure Arc Data Controller: {arc_data_controller_name} created.') "
],
"metadata": {
"azdata_cell_guid": "373947a1-90b9-49ee-86f4-17a4c7d4ca76",
@@ -205,7 +201,7 @@
{
"cell_type": "markdown",
"source": [
"### **Setting context to created Azure Arc Data controller**"
"### **Setting context to created Azure Arc Data Controller**"
],
"metadata": {
"azdata_cell_guid": "a3ddc701-811d-4058-b3fb-b7295fcf50ae"
@@ -214,7 +210,7 @@
{
"cell_type": "code",
"source": [
"# Setting context to data controller.\n",
"# Setting context to Data Controller.\n",
"#\n",
"run_command(f'kubectl config set-context --current --namespace {arc_data_controller_namespace}')"
],
@@ -227,7 +223,7 @@
{
"cell_type": "markdown",
"source": [
"### **Login to the data controller.**\n"
"### **Login to the Data Controller.**\n"
],
"metadata": {
"azdata_cell_guid": "9376b2ab-0edf-478f-9e3c-5ff46ae3501a"
@@ -236,9 +232,9 @@
{
"cell_type": "code",
"source": [
"# Login to the data controller.\n",
"# Login to the Data Controller.\n",
"#\n",
"run_command(f'azdata login -n {arc_data_controller_namespace}')"
"run_command(f'azdata login --namespace {arc_data_controller_namespace}')"
],
"metadata": {
"azdata_cell_guid": "9aed0c5a-2c8a-4ad7-becb-60281923a196"
@@ -247,4 +243,4 @@
"execution_count": null
}
]
}
}

View File

@@ -25,12 +25,12 @@
"source": [
"![Microsoft](https://raw.githubusercontent.com/microsoft/azuredatastudio/main/extensions/arc/images/microsoft-small-logo.png)\n",
" \n",
"## Deploy a PostgreSQL server group on an existing Azure Arc data cluster\n",
"## Create a PostgreSQL Hyperscale - Azure Arc on an existing Azure Arc Data Controller\n",
" \n",
"This notebook walks through the process of deploying a PostgreSQL server group on an existing Azure Arc data cluster.\n",
"This notebook walks through the process of creating a PostgreSQL Hyperscale - Azure Arc on an existing Azure Arc Data Controller.\n",
" \n",
"* Follow the instructions in the **Prerequisites** cell to install the tools if not already installed.\n",
"* Make sure you have the target Azure Arc data cluster already created.\n",
"* Make sure you have the target Azure Arc Data Controller already created.\n",
"\n",
"<span style=\"color:red\"><font size=\"3\">Please press the \"Run All\" button to run the notebook</font></span>"
],
@@ -41,7 +41,21 @@
{
"cell_type": "markdown",
"source": [
"### **Check prerequisites**"
"### **Prerequisites** \n",
"Ensure the following tools are installed and added to PATH before proceeding.\n",
" \n",
"|Tools|Description|Installation|\n",
"|---|---|---|\n",
"|Azure Data CLI (azdata) | Command-line tool for installing and managing resources in an Azure Arc cluster |[Installation](https://docs.microsoft.com/sql/azdata/install/deploy-install-azdata) |"
],
"metadata": {
"azdata_cell_guid": "20fe3985-a01e-461c-bce0-235f7606cc3c"
}
},
{
"cell_type": "markdown",
"source": [
"### **Setup and Check Prerequisites**"
],
"metadata": {
"azdata_cell_guid": "68531b91-ddce-47d7-a1d8-2ddc3d17f3e7"
@@ -75,50 +89,20 @@
{
"cell_type": "markdown",
"source": [
"#### **Ensure PostgreSQL server group name, subscription id and resource group name**"
"### **Set variables**\n",
"\n",
"#### \n",
"\n",
"Generated by Azure Data Studio using the values collected in the 'Deploy PostgreSQL Hyperscale - Azure Arc instance' wizard"
],
"metadata": {
"azdata_cell_guid": "68ec0760-27d1-4ded-9a9f-89077c40b8bb"
}
},
{
"cell_type": "code",
"source": [
"# Required Values\n",
"subscription = os.environ[\"AZDATA_NB_VAR_ARC_SUBSCRIPTION\"]\n",
"resource_group_name = os.environ[\"AZDATA_NB_VAR_ARC_RESOURCE_GROUP_NAME\"]\n",
"server_group_name = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_NAME\"]\n",
"server_group_namespace = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_NAMESPACE\"]\n",
"server_group_workers = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_WORKERS\"]\n",
"server_group_service_type = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_SERVICE_TYPE\"]\n",
"server_group_data_size = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_DATA_SIZE\"]\n",
"\n",
"# Optional Values\n",
"server_group_data_class = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_DATA_CLASS\")\n",
"server_group_port = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PORT\")\n",
"server_group_extensions = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_EXTENSIONS\")\n",
"server_group_cpu_min = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_CPU_MIN\")\n",
"server_group_cpu_max = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_CPU_MAX\")\n",
"server_group_memory_min = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_MEMORY_MIN\")\n",
"server_group_memory_max = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_MEMORY_MAX\")\n",
"server_group_backup_classes = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_CLASSES\")\n",
"server_group_backup_sizes = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_SIZES\")\n",
"server_group_backup_full_interval = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_FULL_INTERVAL\")\n",
"server_group_backup_delta_interval = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_DELTA_INTERVAL\")\n",
"server_group_backup_retention_min = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_RETENTION_MIN\")\n",
"server_group_backup_retention_max = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_RETENTION_MAX\")"
],
"metadata": {
"azdata_cell_guid": "53769960-e1f8-4477-b4cf-3ab1ea34348b",
"tags": []
},
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
"source": [
"### **Installing PostgreSQL server group**"
"### **Creating the PostgreSQL Hyperscale - Azure Arc instance**"
],
"metadata": {
"azdata_cell_guid": "90b0e162-2987-463f-9ce6-12dda1267189"
@@ -127,22 +111,37 @@
{
"cell_type": "code",
"source": [
"print (f'Creating a PostgreSQL server group on Azure Arc')\n",
"# Login to the data controller.\n",
"#\n",
"os.environ[\"AZDATA_PASSWORD\"] = os.environ[\"AZDATA_NB_VAR_CONTROLLER_PASSWORD\"]\n",
"cmd = f'azdata login -e {controller_endpoint} -u {controller_username}'\n",
"out=run_command()"
],
"metadata": {
"azdata_cell_guid": "71366399-5963-4e24-b2f2-6bb5bffba4ec"
},
"outputs": [],
"execution_count": null
},
{
"cell_type": "code",
"source": [
"print (f'Creating the PostgreSQL Hyperscale - Azure Arc instance')\n",
"\n",
"data_class_option = f' --dataClass \"{server_group_data_class}\"' if server_group_data_class else \"\"\n",
"port_option = f' --port \"{server_group_port}\"' if server_group_port else \"\"\n",
"extensions_option = f' --extensions \"{server_group_extensions}\"' if server_group_extensions else \"\"\n",
"cpu_min_option = f' --minCpu \"{server_group_cpu_min}\"' if server_group_cpu_min else \"\"\n",
"cpu_max_option = f' --maxCpu \"{server_group_cpu_max}\"' if server_group_cpu_max else \"\"\n",
"memory_min_option = f' --minMemoryMb \"{server_group_memory_min}\"' if server_group_memory_min else \"\"\n",
"memory_max_option = f' --maxMemoryMb \"{server_group_memory_max}\"' if server_group_memory_max else \"\"\n",
"backup_classes_option = f' --backupClasses \"{server_group_backup_classes}\"' if server_group_backup_classes else \"\"\n",
"backup_sizes_option = f' --backupSizesMb \"{server_group_backup_sizes}\"' if server_group_backup_sizes else \"\"\n",
"backup_full_interval_option = f' --fullBackupInterval \"{server_group_backup_full_interval}\"' if server_group_backup_full_interval else \"\"\n",
"backup_delta_interval_option = f' --deltaBackupInterval \"{server_group_backup_delta_interval}\"' if server_group_backup_delta_interval else \"\"\n",
"backup_retention_min_option = f' --retentionMin \"{server_group_backup_retention_min}\"' if server_group_backup_retention_min else \"\"\n",
"backup_retention_max_option = f' --retentionMax \"{server_group_backup_retention_max}\"' if server_group_backup_retention_max else \"\"\n",
"cmd = f'azdata postgres server create --subscription {subscription} --rg {resource_group_name} --name {server_group_name} --namespace {server_group_namespace} --workers {server_group_workers} --serviceType {server_group_service_type} --dataSizeMb {server_group_data_size}{data_class_option}{port_option}{extensions_option}{cpu_min_option}{cpu_max_option}{memory_min_option}{memory_max_option}{backup_classes_option}{backup_sizes_option}{backup_full_interval_option}{backup_delta_interval_option}{backup_retention_min_option}{backup_retention_max_option}'\n",
"workers_option = f' -w {postgres_server_group_workers}' if postgres_server_group_workers else \"\"\n",
"port_option = f' --port \"{postgres_server_group_port}\"' if postgres_server_group_port else \"\"\n",
"engine_version_option = f' -ev {postgres_server_group_engine_version}' if postgres_server_group_engine_version else \"\"\n",
"extensions_option = f' --extensions \"{postgres_server_group_extensions}\"' if postgres_server_group_extensions else \"\"\n",
"volume_size_data_option = f' -vsd {postgres_server_group_volume_size_data}Gi' if postgres_server_group_volume_size_data else \"\"\n",
"volume_size_logs_option = f' -vsl {postgres_server_group_volume_size_logs}Gi' if postgres_server_group_volume_size_logs else \"\"\n",
"volume_size_backups_option = f' -vsb {postgres_server_group_volume_size_backups}Gi' if postgres_server_group_volume_size_backups else \"\"\n",
"cores_request_option = f' -cr \"{postgres_server_group_cores_request}\"' if postgres_server_group_cores_request else \"\"\n",
"cores_limit_option = f' -cl \"{postgres_server_group_cores_limit}\"' if postgres_server_group_cores_limit else \"\"\n",
"memory_request_option = f' -mr \"{postgres_server_group_memory_request}Gi\"' if postgres_server_group_memory_request else \"\"\n",
"memory_limit_option = f' -ml \"{postgres_server_group_memory_limit}Gi\"' if postgres_server_group_memory_limit else \"\"\n",
"\n",
"os.environ[\"AZDATA_PASSWORD\"] = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PASSWORD\"]\n",
"cmd = f'azdata arc postgres server create -n {postgres_server_group_name} -scd {postgres_storage_class_data} -scl {postgres_storage_class_logs} -scb {postgres_storage_class_backups}{workers_option}{port_option}{engine_version_option}{extensions_option}{volume_size_data_option}{volume_size_logs_option}{volume_size_backups_option}{cores_request_option}{cores_limit_option}{memory_request_option}{memory_limit_option}'\n",
"out=run_command()"
],
"metadata": {
@@ -152,4 +151,4 @@
"execution_count": null
}
]
}
}

View File

@@ -25,12 +25,12 @@
"source": [
"![Microsoft](https://raw.githubusercontent.com/microsoft/azuredatastudio/main/extensions/arc/images/microsoft-small-logo.png)\n",
" \n",
"## Deploy Azure SQL managed instance on an existing Azure Arc data cluster\n",
"## Create SQL managed instance - Azure Arc on an existing Azure Arc Data Controller\n",
" \n",
"This notebook walks through the process of deploying a <a href=\"https://docs.microsoft.com/azure/sql-database/sql-database-managed-instance\">Azure SQL managed instance</a> on an existing Azure Arc data cluster.\n",
"This notebook walks through the process of creating a <a href=\"https://docs.microsoft.com/azure/sql-database/sql-database-managed-instance\">SQL managed instance - Azure Arc</a> on an existing Azure Arc Data Controller.\n",
" \n",
"* Follow the instructions in the **Prerequisites** cell to install the tools if not already installed.\n",
"* Make sure you have the target Azure Arc data cluster already created.\n",
"* Make sure you have the target Azure Arc Data Controller already created.\n",
"\n",
"<span style=\"color:red\"><font size=\"3\">Please press the \"Run All\" button to run the notebook</font></span>"
],
@@ -41,7 +41,21 @@
{
"cell_type": "markdown",
"source": [
"### **Check prerequisites**"
"### **Prerequisites** \n",
"Ensure the following tools are installed and added to PATH before proceeding.\n",
" \n",
"|Tools|Description|Installation|\n",
"|---|---|---|\n",
"|Azure Data CLI (azdata) | Command-line tool for installing and managing resources in an Azure Arc cluster |[Installation](https://docs.microsoft.com/sql/azdata/install/deploy-install-azdata) |"
],
"metadata": {
"azdata_cell_guid": "d1c8258e-9efd-4380-a48c-cd675423ed2f"
}
},
{
"cell_type": "markdown",
"source": [
"### **Setup and Check Prerequisites**"
],
"metadata": {
"azdata_cell_guid": "68531b91-ddce-47d7-a1d8-2ddc3d17f3e7"
@@ -75,42 +89,20 @@
{
"cell_type": "markdown",
"source": [
"#### **Ensure SQL instance name, username, password, subscription id and resource group name**"
"### **Set variables**\n",
"\n",
"#### \n",
"\n",
"Generated by Azure Data Studio using the values collected in the 'Deploy Azure SQL managed instance - Azure Arc' wizard"
],
"metadata": {
"azdata_cell_guid": "68ec0760-27d1-4ded-9a9f-89077c40b8bb"
}
},
{
"cell_type": "code",
"source": [
"# Required Values\n",
"env_var = \"AZDATA_NB_VAR_SQL_INSTANCE_NAME\" in os.environ\n",
"if env_var:\n",
" mssql_instance_name = os.environ[\"AZDATA_NB_VAR_SQL_INSTANCE_NAME\"]\n",
"else:\n",
" sys.exit(f'environment variable: AZDATA_NB_VAR_SQL_INSTANCE_NAME was not defined. Exiting\\n')\n",
"env_var = \"AZDATA_NB_VAR_SQL_PASSWORD\" in os.environ\n",
"if env_var:\n",
" mssql_password = os.environ[\"AZDATA_NB_VAR_SQL_PASSWORD\"]\n",
"else:\n",
" sys.exit(f'environment variable: AZDATA_NB_VAR_SQL_PASSWORD was not defined. Exiting\\n') \n",
"\n",
"# Optional Values\n",
"subscription = os.environ[\"AZDATA_NB_VAR_ARC_SUBSCRIPTION\"] \n",
"resource_group_name = os.environ[\"AZDATA_NB_VAR_ARC_RESOURCE_GROUP_NAME\"]\n"
],
"metadata": {
"azdata_cell_guid": "53769960-e1f8-4477-b4cf-3ab1ea34348b",
"tags": []
},
"outputs": [],
"execution_count": null
},
{
"cell_type": "markdown",
"source": [
"### **Installing Managed SQL Instance**"
"### **Creating the SQL managed instance - Azure Arc instance**"
],
"metadata": {
"azdata_cell_guid": "90b0e162-2987-463f-9ce6-12dda1267189"
@@ -119,12 +111,31 @@
{
"cell_type": "code",
"source": [
"print (f'Creating Managed SQL Server instance on Azure Arc')\n",
"# Login to the data controller.\n",
"#\n",
"os.environ[\"AZDATA_PASSWORD\"] = os.environ[\"AZDATA_NB_VAR_CONTROLLER_PASSWORD\"]\n",
"cmd = f'azdata login -e {controller_endpoint} -u {controller_username}'\n",
"out=run_command()"
],
"metadata": {
"azdata_cell_guid": "1437c536-17e8-4a7f-80c1-aa43ad02686c"
},
"outputs": [],
"execution_count": null
},
{
"cell_type": "code",
"source": [
"print (f'Creating the SQL managed instance - Azure Arc instance')\n",
"\n",
"os.environ[\"MSSQL_SA_PASSWORD\"] = mssql_password\n",
"subscription_option = f' -s \"{subscription}\"' if subscription else \"\"\n",
"resource_group_option = f' -r \"{resource_group_name}\"' if resource_group_name else \"\"\n",
"cmd = f'azdata sql instance create -n {mssql_instance_name}{subscription_option}{resource_group_option}'\n",
"cores_request_option = f' -cr \"{sql_cores_request}\"' if sql_cores_request else \"\"\n",
"cores_limit_option = f' -cl \"{sql_cores_limit}\"' if sql_cores_limit else \"\"\n",
"memory_request_option = f' -mr \"{sql_memory_request}Gi\"' if sql_memory_request else \"\"\n",
"memory_limit_option = f' -ml \"{sql_memory_limit}Gi\"' if sql_memory_limit else \"\"\n",
"\n",
"os.environ[\"AZDATA_USERNAME\"] = sql_username\n",
"os.environ[\"AZDATA_PASSWORD\"] = os.environ[\"AZDATA_NB_VAR_SQL_PASSWORD\"]\n",
"cmd = f'azdata arc sql mi create -n {sql_instance_name} -scd {sql_storage_class_data} -scl {sql_storage_class_logs}{cores_request_option}{cores_limit_option}{memory_request_option}{memory_limit_option}'\n",
"out=run_command()"
],
"metadata": {
@@ -134,4 +145,4 @@
"execution_count": null
}
]
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -2,131 +2,133 @@
"arc.displayName": "Azure Arc",
"arc.description": "Support for Azure Arc",
"arc.configuration.title": "Azure Arc",
"arc.ignoreSslVerification.desc" : "Ignore SSL verification errors against the controller endpoint if true",
"arc.manageMiaa": "Manage MIAA",
"arc.managePostgres": "Manage Postgres",
"arc.manageArcController": "Manage Arc Controller",
"arc.view.title" : "Azure Arc Controllers",
"arc.view.welcome.connect" : "No Azure Arc controllers registered. [Learn More](https://azure.microsoft.com/services/azure-arc/)\n[Connect Controller](command:arc.connectToController)",
"arc.view.welcome.loading" : "Loading controllers...",
"command.createController.title" : "Create New Controller",
"command.connectToController.title": "Connect to Existing Controller",
"command.createController.title" : "Create New Azure Arc Controller",
"command.connectToController.title": "Connect to Existing Azure Arc Controller",
"command.removeController.title": "Remove Controller",
"command.refresh.title": "Refresh",
"command.editConnection.title": "Edit Connection",
"arc.openDashboard": "Manage",
"resource.type.azure.arc.display.name": "Azure Arc data controller",
"resource.type.azure.arc.display.name": "Azure Arc data controller (preview)",
"resource.type.azure.arc.description": "Creates an Azure Arc data controller",
"arc.control.plane.new.wizard.title": "Create Azure Arc data controller",
"arc.control.plane.cluster.environment.title": "What is your target existing Kubernetes cluster environment?",
"arc.control.plane.select.cluster.title": "Select from installed existing Kubernetes clusters",
"arc.control.plane.kube.cluster.context": "Cluster context",
"arc.control.plane.container.registry.title": "Container registry details",
"arc.control.plane.container.registry.name": "Container registry login",
"arc.control.plane.container.registry.password": "Container registry password",
"arc.control.plane.cluster.config.profile.title": "Choose the config profile",
"arc.control.plane.cluster.config.profile": "Config profile",
"arc.control.plane.data.controller.create.title": "Provide details to create Azure Arc data controller and register it with Azure",
"arc.control.plane.project.details.title": "Project details",
"arc.control.plane.project.details.description": "Select the subscription to manage deployed resources and costs. Use resource groups like folders to organize and manage all your resources.",
"arc.control.plane.data.controller.details.title": "Data controller details",
"arc.control.plane.data.controller.details.description": "Provide an Azure region and a name for your Azure Arc data controller. This name will be used to identify your Arc location for remote management and monitoring.",
"arc.control.plane.arc.data.controller.connectivity.mode": "Data controller connectivity mode",
"arc.control.plane.arc.data.controller.namespace": "Data controller namespace",
"arc.control.plane.arc.data.controller.namespace.validation.description": "Data controller namespace (lower case letters, digits and - only)",
"arc.control.plane.arc.data.controller.name": "Data controller name",
"arc.control.plane.arc.data.controller.name.validation.description": "Data controller name (lower case letters, digits and - only)",
"arc.control.plane.arc.data.controller.location": "Location",
"arc.control.plane.admin.account.title": "Administrator account",
"arc.control.plane.admin.account.name": "Data controller login",
"arc.control.plane.admin.account.password": "Password",
"arc.control.plane.admin.account.confirm.password": "Confirm password",
"arc.control.plane.data.controller.create.summary.title": "Review your configuration",
"arc.control.plane.summary.arc.data.controller": "Azure Arc data controller",
"arc.control.plane.summary.estimated.cost.per.month": "Estimated cost per month",
"arc.control.plane.summary.arc.by.microsoft" : "by Microsoft",
"arc.control.plane.summary.free" : "Free",
"arc.control.plane.summary.arc.terms.of.use" : "Terms of use",
"arc.control.plane.summary.arc.terms.separator" : "|",
"arc.control.plane.summary.arc.terms.privacy.policy" : "Privacy policy",
"arc.control.plane.summary.terms" : "Terms",
"arc.control.plane.summary.terms.description": "By clicking 'Script to notebook', I (a) agree to the legal terms and privacy statement(s) associated with the Marketplace offering(s) listed above; (b) authorize Microsoft to bill my current payment method for the fees associated with the offering(s), with the same billing frequency as my Azure subscription; and (c) agree that Microsoft may share my contact, usage and transactional information with the provider(s) of the offering(s) for support, billing and other transactional activities. Microsoft does not provide rights for third-party offerings. For additional details see {0}.",
"arc.control.plane.summary.terms.link.text": "Azure Marketplace Terms",
"arc.control.plane.summary.kubernetes": "Kubernetes",
"arc.control.plane.summary.kube.config.file.path": "Kube config file path",
"arc.control.plane.summary.cluster.context": "Cluster context",
"arc.control.plane.summary.profile": "Config profile",
"arc.control.plane.summary.username": "Username",
"arc.control.plane.summary.docker.username": "Docker username",
"arc.control.plane.summary.azure": "Azure",
"arc.control.plane.summary.subscription": "Subscription",
"arc.control.plane.summary.resource.group": "Resource group",
"arc.control.plane.summary.data.controller.connectivity.mode": "Data controller connectivity mode",
"arc.control.plane.summary.data.controller.name": "Data controller name",
"arc.control.plane.summary.data.controller.namespace": "Data controller namespace",
"arc.control.plane.summary.location": "Location",
"arc.control.plane.arc.data.controller.agreement": "I accept {0} and {1}.",
"arc.data.controller.new.wizard.title": "Create Azure Arc data controller",
"arc.data.controller.cluster.environment.title": "What is your target existing Kubernetes cluster environment?",
"arc.data.controller.select.cluster.title": "Select from existing Kubernetes clusters",
"arc.data.controller.kube.cluster.context": "Cluster context",
"arc.data.controller.cluster.config.profile.title": "Choose the config profile",
"arc.data.controller.cluster.config.profile": "Config profile",
"arc.data.controller.data.controller.create.title": "Provide details to create Azure Arc data controller",
"arc.data.controller.project.details.title": "Project details",
"arc.data.controller.project.details.description": "Select the subscription to manage deployed resources and costs. Use resource groups like folders to organize and manage all your resources.",
"arc.data.controller.data.controller.details.title": "Data controller details",
"arc.data.controller.data.controller.details.description": "Provide an Azure region and a name for your Azure Arc data controller. This name will be used to identify your Arc location for remote management and monitoring.",
"arc.data.controller.arc.data.controller.namespace": "Data controller namespace",
"arc.data.controller.arc.data.controller.namespace.validation.description": "Namespace must consist of lower case alphanumeric characters or '-', start/end with an alphanumeric character, and be 63 characters or fewer in length.",
"arc.data.controller.arc.data.controller.name": "Data controller name",
"arc.data.controller.arc.data.controller.name.validation.description": "Name must consist of lower case alphanumeric characters, '-' or '.', start/end with an alphanumeric character and be 253 characters or less in length.",
"arc.data.controller.arc.data.controller.location": "Location",
"arc.data.controller.admin.account.title": "Administrator account",
"arc.data.controller.admin.account.name": "Data controller login",
"arc.data.controller.admin.account.password": "Password",
"arc.data.controller.admin.account.confirm.password": "Confirm password",
"arc.data.controller.data.controller.create.summary.title": "Review your configuration",
"arc.data.controller.summary.arc.data.controller": "Azure Arc data controller",
"arc.data.controller.summary.estimated.cost.per.month": "Estimated cost per month",
"arc.data.controller.summary.arc.by.microsoft" : "by Microsoft",
"arc.data.controller.summary.free" : "Free",
"arc.data.controller.summary.arc.terms.of.use" : "Terms of use",
"arc.data.controller.summary.arc.terms.separator" : "|",
"arc.data.controller.summary.arc.terms.privacy.policy" : "Privacy policy",
"arc.data.controller.summary.terms" : "Terms",
"arc.data.controller.summary.terms.description": "By clicking 'Script to notebook', I (a) agree to the legal terms and privacy statement(s) associated with the Marketplace offering(s) listed above; (b) authorize Microsoft to bill my current payment method for the fees associated with the offering(s), with the same billing frequency as my Azure subscription; and (c) agree that Microsoft may share my contact, usage and transactional information with the provider(s) of the offering(s) for support, billing and other transactional activities. Microsoft does not provide rights for third-party offerings. For additional details see {0}.",
"arc.data.controller.summary.terms.link.text": "Azure Marketplace Terms",
"arc.data.controller.summary.kubernetes": "Kubernetes",
"arc.data.controller.summary.kube.config.file.path": "Kube config file path",
"arc.data.controller.summary.cluster.context": "Cluster context",
"arc.data.controller.summary.profile": "Config profile",
"arc.data.controller.summary.username": "Username",
"arc.data.controller.summary.azure": "Azure",
"arc.data.controller.summary.subscription": "Subscription",
"arc.data.controller.summary.resource.group": "Resource group",
"arc.data.controller.summary.data.controller.name": "Data controller name",
"arc.data.controller.summary.data.controller.namespace": "Data controller namespace",
"arc.data.controller.summary.location": "Location",
"arc.data.controller.arc.data.controller.agreement": "I accept {0} and {1}.",
"microsoft.agreement.privacy.statement":"Microsoft Privacy Statement",
"arc.agreement.azdata.eula":"azdata license terms",
"deploy.arc.control.plane.action":"Script to notebook",
"deploy.script.action":"Script to notebook",
"deploy.done.action":"Deploy",
"resource.type.arc.sql.display.name": "Azure SQL managed instance - Azure Arc (preview)",
"resource.type.arc.postgres.display.name": "PostgreSQL server groups - Azure Arc (preview)",
"resource.type.arc.postgres.display.name": "PostgreSQL Hyperscale server groups - Azure Arc (preview)",
"resource.type.arc.sql.description": "Managed SQL Instance service for app developers in a customer-managed environment",
"resource.type.arc.postgres.description": "Deploy PostgreSQL server groups into an Azure Arc environment",
"resource.type.picker.display.name": "Resource Type",
"sql.managed.instance.display.name": "Azure SQL managed instance - Azure Arc",
"postgres.server.group.display.name": "PostgreSQL server groups - Azure Arc",
"arc.sql.new.dialog.title": "Deploy Azure SQL managed instance - Azure Arc (preview)",
"arc.sql.settings.section.title": "SQL Connection information",
"resource.type.arc.postgres.description": "Deploy PostgreSQL Hyperscale server groups into an Azure Arc environment",
"arc.controller": "Target Azure Arc Controller",
"arc.sql.wizard.title": "Deploy Azure SQL managed instance - Azure Arc (preview)",
"arc.sql.wizard.page1.title": "Provide Azure SQL managed instance parameters",
"arc.sql.connection.settings.section.title": "SQL Connection information",
"arc.sql.instance.settings.section.title": "SQL Instance settings",
"arc.azure.section.title": "Azure information",
"arc.sql.instance.name": "Instance name (lower case letters and digits only)",
"arc.sql.instance.name": "Instance name",
"arc.sql.username": "Username",
"arc.sql.password": "Password",
"arc.sql.invalid.username": "sa username is disabled, please choose another username",
"arc.sql.invalid.instance.name": "Instance name must consist of lower case alphanumeric characters or '-', start with a letter, end with an alphanumeric character, and be 13 characters or fewer in length.",
"arc.storage-class.dc.label": "Storage Class",
"arc.sql.storage-class.dc.description": "The storage class to be used for all data and logs persistent volumes for all data controller pods that require them.",
"arc.storage-class.data.label": "Storage Class (Data)",
"arc.sql.storage-class.data.description": "The storage class to be used for data (.mdf)",
"arc.postgres.storage-class.data.description": "The storage class to be used for data persistent volumes",
"arc.storage-class.logs.label": "Storage Class (Logs)",
"arc.sql.storage-class.logs.description": "The storage class to be used for logs (/var/log)",
"arc.postgres.storage-class.logs.description": "The storage class to be used for logs persistent volumes",
"arc.storage-class.backups.label": "Storage Class (Backups)",
"arc.cores-limit.label": "Cores Limit",
"arc.sql.cores-limit.description": "The cores limit of the managed instance as an integer.",
"arc.cores-request.label": "Cores Request",
"arc.sql.cores-request.description": "The request for cores of the managed instance as an integer.",
"arc.memory-limit.label": "Memory Limit",
"arc.sql.memory-limit.description": "The limit of the capacity of the managed instance as an integer.",
"arc.memory-request.label": "Memory Request",
"arc.sql.memory-request.description": "The request for the capacity of the managed instance as an integer amount of memory in GBs.",
"arc.postgres.storage-class.backups.description": "The storage class to be used for backup persistent volumes",
"arc.password": "Password",
"arc.confirm.password": "Confirm password",
"arc.azure.account": "Azure account",
"arc.azure.subscription": "Azure subscription",
"arc.azure.resource.group": "Azure resource group",
"arc.azure.location": "Azure location",
"arc.postgres.new.dialog.title": "Deploy a PostgreSQL server group on Azure Arc (preview)",
"arc.postgres.settings.section.title": "PostgreSQL server group settings",
"arc.postgres.settings.backups.title": "PostgreSQL server group backup settings",
"arc.postgres.settings.scheduling.title": "PostgreSQL server group scheduling settings",
"arc.postgres.wizard.title": "Deploy an Azure Arc enabled PostgreSQL Hyperscale server group (Preview)",
"arc.postgres.wizard.page1.title": "Provide Azure enabled PostgreSQL Hyperscale server group parameters",
"arc.postgres.settings.section.title": "General settings",
"arc.postgres.settings.resource.title": "Resource settings",
"arc.postgres.settings.storage.title": "Storage settings",
"arc.postgres.server.group.name": "Server group name",
"arc.postgres.server.group.name.validation.description": "Server group name must consist of lower case alphanumeric characters or '-', start with a letter, end with an alphanumeric character, and be 10 characters or fewer in length.",
"arc.postgres.server.group.namespace": "Kubernetes namespace",
"arc.postgres.server.group.workers": "Number of workers",
"arc.postgres.server.group.service.type": "Kubernetes service type",
"arc.postgres.server.group.data.size": "Data volume size (MB)",
"arc.postgres.server.group.data.size.description": "The number of megabytes (per node) that will be requested for the PostgreSQL server group's data volumes.",
"arc.postgres.server.group.data.class": "Data volume storage class",
"arc.postgres.server.group.data.class.description": "The Kubernetes storage class to use for the PostgreSQL server group's data volumes, or empty to use the default storage class.",
"arc.postgres.server.group.name.validation.description": "Server group name must consist of lower case alphanumeric characters or '-', start with a letter, end with an alphanumeric character, and be 12 characters or fewer in length.",
"arc.postgres.server.group.workers.label": "Number of workers",
"arc.postgres.server.group.workers.description": "The number of worker nodes to provision in a sharded cluster, or zero (the default) for single-node Postgres.",
"arc.postgres.server.group.port": "Port",
"arc.postgres.server.group.extensions": "PostgreSQL extensions",
"arc.postgres.server.group.extensions.description": "A comma-separated list of the PostgreSQL extensions that should be added. Supported values: pg_cron, postgis, postgis_raster, postgis_topology.",
"arc.postgres.server.group.extensions.validation.description": "Supported PostgreSQL extensions: pg_cron, postgis, postgis_raster, postgis_topology.",
"arc.postgres.server.group.cpu.min": "Min CPU cores (per node) to reserve",
"arc.postgres.server.group.cpu.max": "Max CPU cores (per node) to allow",
"arc.postgres.server.group.memory.min": "Min memory MB (per node) to reserve",
"arc.postgres.server.group.memory.max": "Max memory MB (per node) to allow",
"arc.postgres.server.group.backup.classes": "Backup volume storage classes",
"arc.postgres.server.group.backup.classes.description": "A comma-separated list of existing Kubernetes storage classes to use for the PostgreSQL server group's backup volumes, one per backup tier. If provided, backup volume sizes must also be provided.",
"arc.postgres.server.group.backup.sizes": "Backup volume sizes (MB)",
"arc.postgres.server.group.backup.sizes.description": "A comma-separated list of the number of megabytes (per node) that will be requested for the PostgreSQL server group's backup volumes, one per backup tier. If specified, backups will be enabled. In this configuration a separate backup volume is used for each node.",
"arc.postgres.server.group.backup.claims": "Backup volume claims",
"arc.postgres.server.group.backup.claims.description": "A comma-separated list of existing Kubernetes persistent volume claims (in the same namespace) to use for the PostgreSQL server group's backups, one per backup tier. If specified, backups will be enabled. In this configuration the backup volumes are shared across all nodes.",
"arc.postgres.server.group.backup.full.interval": "Minutes between full backups",
"arc.postgres.server.group.backup.delta.interval": "Minutes between delta backups",
"arc.postgres.server.group.backup.retention.min": "Minimum trim settings",
"arc.postgres.server.group.backup.retention.min.description": "A list of trim settings that specifies the minimum number of days/size/counts of backups to preserve per tier. Each trim setting contains 1 or more trim values separated by commas and each tier is separated by a semicolon. Possible trim values include '7d', '10GB', or '50'.",
"arc.postgres.server.group.backup.retention.min.validation.description": "Minimum trim settings must contain 1 or more trim values separated by commas with each tier separated by a semicolon.",
"arc.postgres.server.group.backup.retention.max": "Maximum trim settings",
"arc.postgres.server.group.backup.retention.max.description": "A list of trim settings that specifies the maximum number of days/size/counts of backups to preserve per tier. Each trim setting contains 1 or more trim values separated by commas and each tier is separated by a semicolon. Possible trim values include '7d', '10GB', or '50'.",
"arc.postgres.server.group.backup.retention.max.validation.description": "Maximum trim settings must contain 1 or more trim values separated by commas with each tier separated by a semicolon.",
"arc.agreement": "I accept {0}, {1} and {2}.",
"arc.postgres.server.group.engine.version": "Engine Version",
"arc.postgres.server.group.extensions.label": "Extensions",
"arc.postgres.server.group.extensions.description": "A comma-separated list of the Postgres extensions that should be loaded on startup. Please refer to the postgres documentation for supported values.",
"arc.postgres.server.group.volume.size.data.label": "Volume Size GB (Data)",
"arc.postgres.server.group.volume.size.data.description": "The size of the storage volume to be used for data in GB.",
"arc.postgres.server.group.volume.size.logs.label": "Volume Size GB (Logs)",
"arc.postgres.server.group.volume.size.logs.description": "The size of the storage volume to be used for logs in GB.",
"arc.postgres.server.group.volume.size.backups.label": "Volume Size GB (Backups)",
"arc.postgres.server.group.volume.size.backups.description": "The size of the storage volume to be used for backups in GB.",
"arc.postgres.server.group.cores.request.label": "CPU request (cores per node)",
"arc.postgres.server.group.cores.request.description": "The minimum number of CPU cores that must be available per node to schedule the service. Fractional cores are supported.",
"arc.postgres.server.group.cores.limit.label": "CPU limit (cores per node)",
"arc.postgres.server.group.cores.limit.description": "The maximum number of CPU cores for the Postgres instance that can be used per node. Fractional cores are supported.",
"arc.postgres.server.group.memory.request.label": "Memory request (GB per node)",
"arc.postgres.server.group.memory.request.description": "The memory request of the Postgres instance per node in GB.",
"arc.postgres.server.group.memory.limit.label": "Memory limit (GB per node)",
"arc.postgres.server.group.memory.limit.description": "The memory limit of the Postgres instance per node in GB.",
"arc.agreement": "I accept {0} and {1}.",
"arc.agreement.sql.terms.conditions":"Azure SQL managed instance - Azure Arc terms and conditions",
"arc.agreement.postgres.terms.conditions":"PostgreSQL server groups - Azure Arc terms and conditions",
"arc.deploy.action":"Deploy"
"arc.agreement.postgres.terms.conditions":"Azure Arc enabled PostgreSQL Hyperscale terms and conditions"
}

View File

@@ -0,0 +1,41 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as arc from 'arc';
import { PasswordToControllerDialog } from '../ui/dialogs/connectControllerDialog';
import { AzureArcTreeDataProvider } from '../ui/tree/azureArcTreeDataProvider';
import { ControllerTreeNode } from '../ui/tree/controllerTreeNode';
import { UserCancelledError } from './utils';
export function arcApi(treeDataProvider: AzureArcTreeDataProvider): arc.IExtension {
return {
getRegisteredDataControllers: () => getRegisteredDataControllers(treeDataProvider),
getControllerPassword: (controllerInfo: arc.ControllerInfo) => getControllerPassword(treeDataProvider, controllerInfo),
reacquireControllerPassword: (controllerInfo: arc.ControllerInfo) => reacquireControllerPassword(treeDataProvider, controllerInfo)
};
}
export async function reacquireControllerPassword(treeDataProvider: AzureArcTreeDataProvider, controllerInfo: arc.ControllerInfo): Promise<string> {
const dialog = new PasswordToControllerDialog(treeDataProvider);
dialog.showDialog(controllerInfo);
const model = await dialog.waitForClose();
if (!model) {
throw new UserCancelledError();
}
return model.password;
}
export async function getControllerPassword(treeDataProvider: AzureArcTreeDataProvider, controllerInfo: arc.ControllerInfo): Promise<string> {
return await treeDataProvider.getPassword(controllerInfo);
}
export async function getRegisteredDataControllers(treeDataProvider: AzureArcTreeDataProvider): Promise<arc.DataController[]> {
return (await treeDataProvider.getChildren())
.filter(node => node instanceof ControllerTreeNode)
.map(node => ({
label: (node as ControllerTreeNode).model.label,
info: (node as ControllerTreeNode).model.info
}));
}

View File

@@ -0,0 +1,83 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { Deferred } from './promise';
const enum Status {
notStarted,
inProgress,
done
}
interface State<T> {
entry?: T,
error?: Error,
status: Status,
id: number,
pendingOperation: Deferred<void>
}
/**
* An implementation of Cache Manager which ensures that only one call to populate cache miss is pending at a given time.
* All remaining calls for retrieval are awaited until the one in progress finishes and then all awaited calls are resolved with the value
* from the cache.
*/
export class CacheManager<K, T> {
private _cache = new Map<K, State<T>>();
private _id = 0;
public async getCacheEntry(key: K, retrieveEntry: (key: K) => Promise<T>): Promise<T> {
const cacheHit: State<T> | undefined = this._cache.get(key);
// each branch either throws or returns the password.
if (cacheHit === undefined) {
// populate a new state entry and add it to the cache
const state: State<T> = {
status: Status.notStarted,
id: this._id++,
pendingOperation: new Deferred<void>()
};
this._cache.set(key, state);
// now that we have the state entry initialized, retry to fetch the cacheEntry
let returnValue: T = await this.getCacheEntry(key, retrieveEntry);
await state.pendingOperation;
return returnValue!;
} else {
switch (cacheHit.status) {
case Status.notStarted: {
cacheHit.status = Status.inProgress;
// retrieve and populate the missed cache hit.
try {
cacheHit.entry = await retrieveEntry(key);
} catch (error) {
cacheHit.error = error;
} finally {
cacheHit.status = Status.done;
// we do not reject here even in error case because we do not want our awaits on pendingOperation to throw
// We track our own error state and when all done we throw if an error had happened. This results
// in the rejection of the promised returned by this method.
cacheHit.pendingOperation.resolve();
}
return await this.getCacheEntry(key, retrieveEntry);
}
case Status.inProgress: {
await cacheHit.pendingOperation;
return await this.getCacheEntry(key, retrieveEntry);
}
case Status.done: {
if (cacheHit.error !== undefined) {
await cacheHit.pendingOperation;
throw cacheHit.error;
}
else {
await cacheHit.pendingOperation;
return cacheHit.entry!;
}
}
}
}
}
}

View File

@@ -3,10 +3,11 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { ResourceType } from 'arc';
import * as azurecore from 'azurecore';
import * as vscode from 'vscode';
import * as azurecore from '../../../azurecore/src/azurecore';
import { ConnectionMode, IconPath, IconPathHelper } from '../constants';
import * as loc from '../localizedConstants';
import { IconPathHelper, IconPath, ResourceType, Connectionmode } from '../constants';
export class UserCancelledError extends Error { }
@@ -71,10 +72,10 @@ export function getResourceTypeIcon(resourceType: string | undefined): IconPath
export function getConnectionModeDisplayText(connectionMode: string | undefined): string {
connectionMode = connectionMode ?? '';
switch (connectionMode) {
case Connectionmode.connected:
return loc.connected;
case Connectionmode.disconnected:
return loc.disconnected;
case ConnectionMode.direct:
return loc.direct;
case ConnectionMode.indirect:
return loc.indirect;
}
return connectionMode;
}
@@ -98,7 +99,7 @@ export function getDatabaseStateDisplayText(state: string): string {
case 'SUSPECT':
return loc.suspect;
case 'EMERGENCY':
return loc.emergecy;
return loc.emergency;
}
return state;
}
@@ -147,16 +148,15 @@ async function promptInputBox(title: string, options: vscode.InputBoxOptions): P
}
/**
* Opens an input box prompting the user to enter in the name of a resource to delete
* @param namespace The namespace of the resource to delete
* @param name The name of the resource to delete
* Opens an input box prompting the user to enter in the name of an instance to delete
* @param name The name of the instance to delete
* @returns Promise resolving to true if the user confirmed the name, false if the input box was closed for any other reason
*/
export async function promptForResourceDeletion(namespace: string, name: string): Promise<boolean> {
const title = loc.resourceDeletionWarning(namespace, name);
export async function promptForInstanceDeletion(name: string): Promise<boolean> {
const title = loc.instanceDeletionWarning(name);
const options: vscode.InputBoxOptions = {
placeHolder: name,
validateInput: input => input !== name ? loc.invalidResourceDeletionName(name) : ''
validateInput: input => input !== name ? loc.invalidInstanceDeletionName(name) : ''
};
return await promptInputBox(title, options) !== undefined;
@@ -189,36 +189,44 @@ export async function promptAndConfirmPassword(validate: (input: string) => stri
/**
* Gets the message to display for a given error object that may be a variety of types.
* @param error The error object
* @param useMessageWithLink Whether to use the messageWithLink - if available
*/
export function getErrorMessage(error: any): string {
if (error.body?.reason) {
// For HTTP Errors with a body pull out the reason message since that's usually the most helpful
return error.body.reason;
} else if (error.message) {
if (error.response?.statusMessage) {
// Some Http errors just have a status message as additional detail, but it's not enough on its
// own to be useful so append to the message as well
return `${error.message} (${error.response.statusMessage})`;
}
return error.message;
} else {
return error;
export function getErrorMessage(error: any, useMessageWithLink: boolean = false): string {
if (useMessageWithLink && error.messageWithLink) {
return error.messageWithLink;
}
return error.message ?? error;
}
/**
* Parses an instance name from the controller. An instance name will either be just its name
* e.g. myinstance or namespace_name e.g. mynamespace_my-instance.
* @param instanceName The instance name in one of the formats described
* Parses an address into its separate ip and port values. Address must be in the form <ip>:<port>
* @param address The address to parse
*/
export function parseInstanceName(instanceName: string | undefined): string {
instanceName = instanceName ?? '';
const parts: string[] = instanceName.split('_');
if (parts.length === 2) {
instanceName = parts[1];
export function parseIpAndPort(address: string): { ip: string, port: string } {
const sections = address.split(':');
if (sections.length !== 2) {
throw new Error(`Invalid address format for ${address}. Address must be in the form <ip>:<port>`);
}
return {
ip: sections[0],
port: sections[1]
};
}
export function createCredentialId(controllerId: string, resourceType: string, instanceName: string): string {
return `${controllerId}::${resourceType}::${instanceName}`;
}
/**
* Throws an Error with given {@link message} unless {@link condition} is true.
* This also tells the typescript compiler that the condition is 'truthy' in the remainder of the scope
* where this function was called.
*
* @param condition
* @param message
*/
export function throwUnless(condition: boolean, message?: string): asserts condition {
if (!condition) {
throw new Error(message);
}
else if (parts.length > 2) {
throw new Error(`Cannot parse resource '${instanceName}'. Acceptable formats are 'namespace_name' or 'name'.`);
}
return instanceName;
}

View File

@@ -7,6 +7,11 @@ import * as vscode from 'vscode';
export const refreshActionId = 'arc.refresh';
export const credentialNamespace = 'arcCredentials';
export const controllerTroubleshootDocsUrl = 'https://aka.ms/arc-data-tsg';
export const miaaTroubleshootDocsUrl = 'https://aka.ms/miaa-tsg';
export interface IconPath {
dark: string;
light: string;
@@ -118,11 +123,6 @@ export class IconPathHelper {
}
}
export const enum ResourceType {
dataControllers = 'dataControllers',
postgresInstances = 'postgresInstances',
sqlManagedInstances = 'sqlManagedInstances'
}
export const enum Endpoints {
mgmtproxy = 'mgmtproxy',
@@ -131,9 +131,9 @@ export const enum Endpoints {
controller = 'controller'
}
export const enum Connectionmode {
connected = 'connected',
disconnected = 'disconnected'
export const enum ConnectionMode {
direct = 'direct',
indirect = 'indirect'
}
export namespace cssStyles {

View File

@@ -1,20 +0,0 @@
# Updating the Swagger generated clients
The TypeScript clients used to communicate with the controller are generated from the controller's Swagger specification. To update the clients:
1. Get the Swagger specification from a running controller, and save it locally:
* `https://<controller_ip>:30080/api/<api_name>/swagger.json`
2. Generate the clients:
* At the time of writing, [editor.swagger.io](https://editor.swagger.io) does not support typescript-node client generation from OpenAPI 3.x specifications. So we'll use [openapi-generator.tech](https://openapi-generator.tech) instead.
* Run openapi-generator:
* Either by [installing it](https://openapi-generator.tech/docs/installation) (requires Java) and running:
* `openapi-generator generate -i swagger.json -g typescript-node -o out --additional-properties supportsES6=true`
* Or by running the Docker image (works in Linux or PowerShell):
* `docker run --rm -v ${PWD}:/local openapitools/openapi-generator-cli generate -i /local/swagger.json -g typescript-node -o /local/out --additional-properties supportsES6=true`
3. Copy the generated clients (api.ts, api/, model/) to ./generated/<api_name>.
4. The generated clients have some unused imports. This will not compile. VS Code has an "Organize Imports" command (Shift + Alt + O) that fixes this, but it fixes a single file. To organize imports for all files in a folder, you can use the [Folder Source Actions extension](https://marketplace.visualstudio.com/items?itemName=bierner.folder-source-actions). Followed by File -> Save All.

View File

@@ -1,48 +0,0 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as request from 'request';
import * as vscode from 'vscode';
export interface Authentication {
applyToRequest(requestOptions: request.Options): Promise<void> | void;
}
class SslAuth implements Authentication {
constructor() { }
applyToRequest(requestOptions: request.Options): void {
requestOptions['agentOptions'] = {
rejectUnauthorized: !getIgnoreSslVerificationConfigSetting()
};
}
}
export class BasicAuth extends SslAuth implements Authentication {
constructor(public username: string, public password: string) {
super();
}
applyToRequest(requestOptions: request.Options): void {
super.applyToRequest(requestOptions);
requestOptions.auth = {
username: this.username, password: this.password
};
}
}
/* Retrieves the current setting for whether to ignore SSL verification errors */
export function getIgnoreSslVerificationConfigSetting(): boolean {
const arcConfigSectionName = 'arc';
const ignoreSslConfigName = 'ignoreSslVerification';
try {
const config = vscode.workspace.getConfiguration(arcConfigSectionName);
return config.get<boolean>(ignoreSslConfigName, true);
} catch (error) {
console.error(`Unexpected error retrieving ${arcConfigSectionName}.${ignoreSslConfigName} setting : ${error}`);
}
return true;
}

View File

@@ -1,3 +0,0 @@
// This is the entrypoint for the package
export * from './api/apis';
export * from './model/models';

View File

@@ -1,31 +0,0 @@
export * from './databaseRouterApi';
export * from './databaseValidateRouterApi';
export * from './logsRouterApi';
export * from './metricRouterApi';
export * from './operatorRouterApi';
import * as fs from 'fs';
import * as http from 'http';
import { DatabaseRouterApi } from './databaseRouterApi';
import { DatabaseValidateRouterApi } from './databaseValidateRouterApi';
import { LogsRouterApi } from './logsRouterApi';
import { MetricRouterApi } from './metricRouterApi';
import { OperatorRouterApi } from './operatorRouterApi';
export class HttpError extends Error {
constructor (public response: http.IncomingMessage, public body: any, public statusCode?: number) {
super('HTTP request failed');
this.name = 'HttpError';
}
}
export interface RequestDetailedFile {
value: Buffer;
options?: {
filename?: string;
contentType?: string;
}
}
export type RequestFile = string | Buffer | fs.ReadStream | RequestDetailedFile;
export const APIS = [DatabaseRouterApi, DatabaseValidateRouterApi, LogsRouterApi, MetricRouterApi, OperatorRouterApi];

View File

@@ -1,260 +0,0 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import localVarRequest = require('request');
import http = require('http');
/* tslint:disable:no-unused-locals */
import { DuskyObjectModelsDatabaseService } from '../model/duskyObjectModelsDatabaseService';
import { DuskyObjectModelsDuskyValidationResult } from '../model/duskyObjectModelsDuskyValidationResult';
import { Authentication, HttpBasicAuth, HttpBearerAuth, Interceptor, ObjectSerializer, VoidAuth } from '../model/models';
import { HttpError } from './apis';
let defaultBasePath = 'https://10.135.16.138:30080';
// ===============================================
// This file is autogenerated - Please do not edit
// ===============================================
export enum DatabaseValidateRouterApiApiKeys {
}
export class DatabaseValidateRouterApi {
protected _basePath = defaultBasePath;
protected _defaultHeaders : any = {};
protected _useQuerystring : boolean = false;
protected authentications = {
'default': <Authentication>new VoidAuth(),
'BasicAuth': new HttpBasicAuth(),
'BearerAuth': new HttpBearerAuth(),
}
protected interceptors: Interceptor[] = [];
constructor(basePath?: string);
constructor(username: string, password: string, basePath?: string);
constructor(basePathOrUsername: string, password?: string, basePath?: string) {
if (password) {
this.username = basePathOrUsername;
this.password = password
if (basePath) {
this.basePath = basePath;
}
} else {
if (basePathOrUsername) {
this.basePath = basePathOrUsername
}
}
}
set useQuerystring(value: boolean) {
this._useQuerystring = value;
}
set basePath(basePath: string) {
this._basePath = basePath;
}
set defaultHeaders(defaultHeaders: any) {
this._defaultHeaders = defaultHeaders;
}
get defaultHeaders() {
return this._defaultHeaders;
}
get basePath() {
return this._basePath;
}
public setDefaultAuthentication(auth: Authentication) {
this.authentications.default = auth;
}
public setApiKey(key: DatabaseValidateRouterApiApiKeys, value: string) {
(this.authentications as any)[DatabaseValidateRouterApiApiKeys[key]].apiKey = value;
}
set username(username: string) {
this.authentications.BasicAuth.username = username;
}
set password(password: string) {
this.authentications.BasicAuth.password = password;
}
set accessToken(accessToken: string | (() => string)) {
this.authentications.BearerAuth.accessToken = accessToken;
}
public addInterceptor(interceptor: Interceptor) {
this.interceptors.push(interceptor);
}
/**
*
* @summary Validate database service creation.
* @param duskyObjectModelsDatabaseService
*/
public async validateCreateDatabaseService (duskyObjectModelsDatabaseService?: DuskyObjectModelsDatabaseService, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: DuskyObjectModelsDuskyValidationResult; }> {
const localVarPath = this.basePath + '/dusky/databases/validate';
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
const produces = ['application/json'];
// give precedence to 'application/json'
if (produces.indexOf('application/json') >= 0) {
localVarHeaderParams.Accept = 'application/json';
} else {
localVarHeaderParams.Accept = produces.join(',');
}
let localVarFormParams: any = {};
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
let localVarRequestOptions: localVarRequest.Options = {
method: 'POST',
qs: localVarQueryParameters,
headers: localVarHeaderParams,
uri: localVarPath,
useQuerystring: this._useQuerystring,
json: true,
body: ObjectSerializer.serialize(duskyObjectModelsDatabaseService, "DuskyObjectModelsDatabaseService")
};
let authenticationPromise = Promise.resolve();
if (this.authentications.BasicAuth.username && this.authentications.BasicAuth.password) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BasicAuth.applyToRequest(localVarRequestOptions));
}
if (this.authentications.BearerAuth.accessToken) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BearerAuth.applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
if (Object.keys(localVarFormParams).length) {
if (localVarUseFormData) {
(<any>localVarRequestOptions).formData = localVarFormParams;
} else {
localVarRequestOptions.form = localVarFormParams;
}
}
return new Promise<{ response: http.IncomingMessage; body: DuskyObjectModelsDuskyValidationResult; }>((resolve, reject) => {
localVarRequest(localVarRequestOptions, (error, response, body) => {
if (error) {
reject(error);
} else {
body = ObjectSerializer.deserialize(body, "DuskyObjectModelsDuskyValidationResult");
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
resolve({ response: response, body: body });
} else {
reject(new HttpError(response, body, response.statusCode));
}
}
});
});
});
}
/**
*
* @summary Validate database service update.
* @param ns The namespace of the database service.
* @param name The name of the database service to update.
* @param duskyObjectModelsDatabaseService
*/
public async validateUpdateDatabaseService (ns: string, name: string, duskyObjectModelsDatabaseService?: DuskyObjectModelsDatabaseService, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: DuskyObjectModelsDuskyValidationResult; }> {
const localVarPath = this.basePath + '/dusky/databases/validate/{ns}/{name}'
.replace('{' + 'ns' + '}', encodeURIComponent(String(ns)))
.replace('{' + 'name' + '}', encodeURIComponent(String(name)));
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
const produces = ['application/json'];
// give precedence to 'application/json'
if (produces.indexOf('application/json') >= 0) {
localVarHeaderParams.Accept = 'application/json';
} else {
localVarHeaderParams.Accept = produces.join(',');
}
let localVarFormParams: any = {};
// verify required parameter 'ns' is not null or undefined
if (ns === null || ns === undefined) {
throw new Error('Required parameter ns was null or undefined when calling validateUpdateDatabaseService.');
}
// verify required parameter 'name' is not null or undefined
if (name === null || name === undefined) {
throw new Error('Required parameter name was null or undefined when calling validateUpdateDatabaseService.');
}
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
let localVarRequestOptions: localVarRequest.Options = {
method: 'POST',
qs: localVarQueryParameters,
headers: localVarHeaderParams,
uri: localVarPath,
useQuerystring: this._useQuerystring,
json: true,
body: ObjectSerializer.serialize(duskyObjectModelsDatabaseService, "DuskyObjectModelsDatabaseService")
};
let authenticationPromise = Promise.resolve();
if (this.authentications.BasicAuth.username && this.authentications.BasicAuth.password) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BasicAuth.applyToRequest(localVarRequestOptions));
}
if (this.authentications.BearerAuth.accessToken) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BearerAuth.applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
if (Object.keys(localVarFormParams).length) {
if (localVarUseFormData) {
(<any>localVarRequestOptions).formData = localVarFormParams;
} else {
localVarRequestOptions.form = localVarFormParams;
}
}
return new Promise<{ response: http.IncomingMessage; body: DuskyObjectModelsDuskyValidationResult; }>((resolve, reject) => {
localVarRequest(localVarRequestOptions, (error, response, body) => {
if (error) {
reject(error);
} else {
body = ObjectSerializer.deserialize(body, "DuskyObjectModelsDuskyValidationResult");
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
resolve({ response: response, body: body });
} else {
reject(new HttpError(response, body, response.statusCode));
}
}
});
});
});
}
}

View File

@@ -1,175 +0,0 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import localVarRequest = require('request');
import http = require('http');
/* tslint:disable:no-unused-locals */
import { LogsRequest } from '../model/logsRequest';
import { Authentication, HttpBasicAuth, HttpBearerAuth, Interceptor, ObjectSerializer, VoidAuth } from '../model/models';
import { HttpError } from './apis';
let defaultBasePath = 'https://10.135.16.138:30080';
// ===============================================
// This file is autogenerated - Please do not edit
// ===============================================
export enum LogsRouterApiApiKeys {
}
export class LogsRouterApi {
protected _basePath = defaultBasePath;
protected _defaultHeaders : any = {};
protected _useQuerystring : boolean = false;
protected authentications = {
'default': <Authentication>new VoidAuth(),
'BasicAuth': new HttpBasicAuth(),
'BearerAuth': new HttpBearerAuth(),
}
protected interceptors: Interceptor[] = [];
constructor(basePath?: string);
constructor(username: string, password: string, basePath?: string);
constructor(basePathOrUsername: string, password?: string, basePath?: string) {
if (password) {
this.username = basePathOrUsername;
this.password = password
if (basePath) {
this.basePath = basePath;
}
} else {
if (basePathOrUsername) {
this.basePath = basePathOrUsername
}
}
}
set useQuerystring(value: boolean) {
this._useQuerystring = value;
}
set basePath(basePath: string) {
this._basePath = basePath;
}
set defaultHeaders(defaultHeaders: any) {
this._defaultHeaders = defaultHeaders;
}
get defaultHeaders() {
return this._defaultHeaders;
}
get basePath() {
return this._basePath;
}
public setDefaultAuthentication(auth: Authentication) {
this.authentications.default = auth;
}
public setApiKey(key: LogsRouterApiApiKeys, value: string) {
(this.authentications as any)[LogsRouterApiApiKeys[key]].apiKey = value;
}
set username(username: string) {
this.authentications.BasicAuth.username = username;
}
set password(password: string) {
this.authentications.BasicAuth.password = password;
}
set accessToken(accessToken: string | (() => string)) {
this.authentications.BearerAuth.accessToken = accessToken;
}
public addInterceptor(interceptor: Interceptor) {
this.interceptors.push(interceptor);
}
/**
*
* @summary Gets logs from Elasticsearch.
* @param logsRequest
*/
public async apiV1LogsPost (logsRequest?: LogsRequest, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: object; }> {
const localVarPath = this.basePath + '/api/v1/logs';
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
const produces = ['application/json'];
// give precedence to 'application/json'
if (produces.indexOf('application/json') >= 0) {
localVarHeaderParams.Accept = 'application/json';
} else {
localVarHeaderParams.Accept = produces.join(',');
}
let localVarFormParams: any = {};
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
let localVarRequestOptions: localVarRequest.Options = {
method: 'POST',
qs: localVarQueryParameters,
headers: localVarHeaderParams,
uri: localVarPath,
useQuerystring: this._useQuerystring,
json: true,
body: ObjectSerializer.serialize(logsRequest, "LogsRequest")
};
let authenticationPromise = Promise.resolve();
if (this.authentications.BasicAuth.username && this.authentications.BasicAuth.password) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BasicAuth.applyToRequest(localVarRequestOptions));
}
if (this.authentications.BearerAuth.accessToken) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BearerAuth.applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
if (Object.keys(localVarFormParams).length) {
if (localVarUseFormData) {
(<any>localVarRequestOptions).formData = localVarFormParams;
} else {
localVarRequestOptions.form = localVarFormParams;
}
}
return new Promise<{ response: http.IncomingMessage; body: object; }>((resolve, reject) => {
localVarRequest(localVarRequestOptions, (error, response, body) => {
if (error) {
reject(error);
} else {
body = ObjectSerializer.deserialize(body, "object");
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
resolve({ response: response, body: body });
} else {
reject(new HttpError(response, body, response.statusCode));
}
}
});
});
});
}
}

View File

@@ -1,171 +0,0 @@
/**
* Dusky API
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: v1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import localVarRequest = require('request');
import http = require('http');
/* tslint:disable:no-unused-locals */
import { Authentication, HttpBasicAuth, HttpBearerAuth, Interceptor, ObjectSerializer, VoidAuth } from '../model/models';
import { HttpError } from './apis';
let defaultBasePath = 'https://10.135.16.138:30080';
// ===============================================
// This file is autogenerated - Please do not edit
// ===============================================
export enum MetricRouterApiApiKeys {
}
export class MetricRouterApi {
protected _basePath = defaultBasePath;
protected _defaultHeaders : any = {};
protected _useQuerystring : boolean = false;
protected authentications = {
'default': <Authentication>new VoidAuth(),
'BasicAuth': new HttpBasicAuth(),
'BearerAuth': new HttpBearerAuth(),
}
protected interceptors: Interceptor[] = [];
constructor(basePath?: string);
constructor(username: string, password: string, basePath?: string);
constructor(basePathOrUsername: string, password?: string, basePath?: string) {
if (password) {
this.username = basePathOrUsername;
this.password = password
if (basePath) {
this.basePath = basePath;
}
} else {
if (basePathOrUsername) {
this.basePath = basePathOrUsername
}
}
}
set useQuerystring(value: boolean) {
this._useQuerystring = value;
}
set basePath(basePath: string) {
this._basePath = basePath;
}
set defaultHeaders(defaultHeaders: any) {
this._defaultHeaders = defaultHeaders;
}
get defaultHeaders() {
return this._defaultHeaders;
}
get basePath() {
return this._basePath;
}
public setDefaultAuthentication(auth: Authentication) {
this.authentications.default = auth;
}
public setApiKey(key: MetricRouterApiApiKeys, value: string) {
(this.authentications as any)[MetricRouterApiApiKeys[key]].apiKey = value;
}
set username(username: string) {
this.authentications.BasicAuth.username = username;
}
set password(password: string) {
this.authentications.BasicAuth.password = password;
}
set accessToken(accessToken: string | (() => string)) {
this.authentications.BearerAuth.accessToken = accessToken;
}
public addInterceptor(interceptor: Interceptor) {
this.interceptors.push(interceptor);
}
/**
*
*/
public async apiV1MetricsPost (options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: object; }> {
const localVarPath = this.basePath + '/api/v1/metrics';
let localVarQueryParameters: any = {};
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
const produces = ['application/json'];
// give precedence to 'application/json'
if (produces.indexOf('application/json') >= 0) {
localVarHeaderParams.Accept = 'application/json';
} else {
localVarHeaderParams.Accept = produces.join(',');
}
let localVarFormParams: any = {};
(<any>Object).assign(localVarHeaderParams, options.headers);
let localVarUseFormData = false;
let localVarRequestOptions: localVarRequest.Options = {
method: 'POST',
qs: localVarQueryParameters,
headers: localVarHeaderParams,
uri: localVarPath,
useQuerystring: this._useQuerystring,
json: true,
};
let authenticationPromise = Promise.resolve();
if (this.authentications.BasicAuth.username && this.authentications.BasicAuth.password) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BasicAuth.applyToRequest(localVarRequestOptions));
}
if (this.authentications.BearerAuth.accessToken) {
authenticationPromise = authenticationPromise.then(() => this.authentications.BearerAuth.applyToRequest(localVarRequestOptions));
}
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
let interceptorPromise = authenticationPromise;
for (const interceptor of this.interceptors) {
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
}
return interceptorPromise.then(() => {
if (Object.keys(localVarFormParams).length) {
if (localVarUseFormData) {
(<any>localVarRequestOptions).formData = localVarFormParams;
} else {
localVarRequestOptions.form = localVarFormParams;
}
}
return new Promise<{ response: http.IncomingMessage; body: object; }>((resolve, reject) => {
localVarRequest(localVarRequestOptions, (error, response, body) => {
if (error) {
reject(error);
} else {
body = ObjectSerializer.deserialize(body, "object");
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
resolve({ response: response, body: body });
} else {
reject(new HttpError(response, body, response.statusCode));
}
}
});
});
});
}
}

Some files were not shown because too many files have changed in this diff Show More