onboardingTypes.ts ×3

Frontier kind: Code frontier

unlabeled · c_01fd4038e0c3

13 tests · 3516 LOC · 19 files · introduces 0 tests · 122 LOC · 1 file

Introduces — evidence that enters the hierarchy at this concept

Code
3 ranges122 lines · 1 files
Tests
0 tests

Contains — complete concept membership

All code (extent)
491 ranges3516 lines · 19 files · Browse complete extent
All tests (intent)
13 testsBrowse complete intent

Neighbourhood graph

The orange circle is the focus. Violet and green circles are every ancestor and descendant, broader and narrower, at any distance; blue squares and pink diamonds are the introduced files and exact introduced tests of every visible concept, not only the focus's. Arrows point from broader to narrower concepts and bridge only concepts omitted from this view. Undirected links show source or test introduction. Concept and file size follows LOC; exact test nodes use test-count units.

Introduced files, introduced tests, and structurally relevant concept specialization

In the embedded map, ordinary wheel input scrolls the page; use the visible controls to zoom and drag to pan. Open the full-screen map for canvas navigation: wheel pans, Ctrl/Command plus wheel zooms, and arrow keys pan when this region is focused. On touch screens, open the full-screen map to pan or pinch. If JavaScript or WebGL is unavailable, use the native relationship evidence on this page.

Introduced files, introduced tests, and structurally relevant concept specializationonboardingTypes.ts ×1 · 3 introduced LOConboardingTypes.ts ×1onboardingTypes.ts ×1 · 3 introduced LOConboardingTypes.ts ×1onboardingTypes.ts ×1 · 2 introduced LOConboardingTypes.ts ×1onboardingTypes.ts ×1 · 2 introduced LOConboardingTypes.ts ×1onboardingTypes.ts ×1 · 2 introduced LOConboardingTypes.ts ×1onboardingTypes.ts ×1 · 2 introduced LOConboardingTypes.ts ×1uri.test|title=URI URI#file, win-speciale|occurrence=1, charCode.test|title=CharCode has good values|occurrence=1, +2 · 0 introduced LOCuri.test|title=URI URI#f…utils.ts ×3 · 9 introduced LOCutils.ts ×3nls.ts ×1 · 1 introduced LOCnls.ts ×1nls.ts ×6 · 13 introduced LOCnls.ts ×6lifecycle.ts ×2 · 4 introduced LOClifecycle.ts ×2lifecycle.ts ×1 · 2 introduced LOClifecycle.ts ×1lifecycle.ts ×4 · 8 introduced LOClifecycle.ts ×4lifecycle.ts ×6 · 16 introduced LOClifecycle.ts ×6lifecycle.ts ×1 · 2 introduced LOClifecycle.ts ×1lifecycle.ts ×1 · 2 introduced LOClifecycle.ts ×1lifecycle.ts ×1 · 3 introduced LOClifecycle.ts ×1map.ts ×97 · 3334 introduced LOCmap.ts ×97src/vs/base/common/arrays.ts · 949 LOCcommon/arrays.tssrc/vs/base/common/arraysFind.ts · 226 LOCcommon/arraysFind.tssrc/vs/base/common/assert.ts · 91 LOCcommon/assert.tssrc/vs/base/common/charCode.ts · 450 LOCcommon/charCode.tssrc/vs/base/common/collections.ts · 176 LOCcommon/collections.tssrc/vs/base/common/errors.ts · 357 LOCcommon/errors.tssrc/vs/base/common/functional.ts · 32 LOCcommon/functional.tssrc/vs/base/common/iterator.ts · 194 LOCcommon/iterator.tssrc/vs/base/common/lifecycle.ts · 974 LOCcommon/lifecycle.tssrc/vs/base/common/map.ts · 1016 LOCcommon/map.tssrc/vs/base/common/marshallingIds.ts · 33 LOCcommon/marshallingIds.tssrc/vs/base/common/path.ts · 1589 LOCcommon/path.tssrc/vs/base/common/platform.ts · 281 LOCcommon/platform.tssrc/vs/base/common/process.ts · 76 LOCcommon/process.tssrc/vs/base/common/types.ts · 410 LOCcommon/types.tssrc/vs/base/common/uri.ts · 754 LOCcommon/uri.tssrc/vs/base/test/common/utils.ts · 107 LOCcommon/utils.tssrc/vs/nls.ts · 244 LOCvs/nls.tssrc/vs/workbench/contrib/welcomeOnboarding/common/onboardingTypes.ts · 158 LOCcommon/onboardingTypes.t…charCode.test|title=CharCode has good values|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/charCode.test|title=CharCode has good values|occurrence=1charCode.test|title=Char…path.test|title=Paths (Node Implementation) path|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/path.test|title=Paths (Node Implementation) path|occurrence=1path.test|title=Paths (N…uri.test|title=URI File paths containing apostrophes break URI parsing and cannot be opened #276075|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/uri.test|title=URI File paths containing apostrophes break URI parsing and cannot be opened #276075|occurrence=1uri.test|title=URI File …uri.test|title=URI URI#file, win-speciale|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/base/test/common/uri.test|title=URI URI#file, win-speciale|occurrence=1uri.test|title=URI URI#f…onboardingTypes.test|title=parseGheInstanceInput URI with path segments is invalid|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/welcomeOnboarding/test/common/onboardingTypes.test|title=parseGheInstanceInput URI with path segments is invalid|occurrence=1onboardingTypes.test|tit…onboardingTypes.test|title=parseGheInstanceInput URI with trailing slash is valid|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/welcomeOnboarding/test/common/onboardingTypes.test|title=parseGheInstanceInput URI with trailing slash is valid|occurrence=1onboardingTypes.test|tit…onboardingTypes.test|title=parseGheInstanceInput empty input returns Empty|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/welcomeOnboarding/test/common/onboardingTypes.test|title=parseGheInstanceInput empty input returns Empty|occurrence=1onboardingTypes.test|tit…onboardingTypes.test|title=parseGheInstanceInput full URI with https prefix returns FullUri|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/welcomeOnboarding/test/common/onboardingTypes.test|title=parseGheInstanceInput full URI with https prefix returns FullUri|occurrence=1onboardingTypes.test|tit…onboardingTypes.test|title=parseGheInstanceInput full URI with subdomain returns FullUri|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/welcomeOnboarding/test/common/onboardingTypes.test|title=parseGheInstanceInput full URI with subdomain returns FullUri|occurrence=1onboardingTypes.test|tit…onboardingTypes.test|title=parseGheInstanceInput full URI without https prefix gets it prepended|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/welcomeOnboarding/test/common/onboardingTypes.test|title=parseGheInstanceInput full URI without https prefix gets it prepended|occurrence=1onboardingTypes.test|tit…onboardingTypes.test|title=parseGheInstanceInput input with numbers in domain is valid|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/welcomeOnboarding/test/common/onboardingTypes.test|title=parseGheInstanceInput input with numbers in domain is valid|occurrence=1onboardingTypes.test|tit…onboardingTypes.test|title=parseGheInstanceInput invalid input returns Invalid|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/welcomeOnboarding/test/common/onboardingTypes.test|title=parseGheInstanceInput invalid input returns Invalid|occurrence=1onboardingTypes.test|tit…onboardingTypes.test|title=parseGheInstanceInput single word returns SingleWord with resolved URI|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/welcomeOnboarding/test/common/onboardingTypes.test|title=parseGheInstanceInput single word returns SingleWord with resolved URI|occurrence=1onboardingTypes.test|tit…onboardingTypes.test|title=parseGheInstanceInput single word with numbers returns SingleWord|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/welcomeOnboarding/test/common/onboardingTypes.test|title=parseGheInstanceInput single word with numbers returns SingleWord|occurrence=1onboardingTypes.test|tit…onboardingTypes.test|title=parseGheInstanceInput single word with only hyphens returns SingleWord|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/welcomeOnboarding/test/common/onboardingTypes.test|title=parseGheInstanceInput single word with only hyphens returns SingleWord|occurrence=1onboardingTypes.test|tit…onboardingTypes.test|title=parseGheInstanceInput single word with surrounding whitespace is trimmed|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/welcomeOnboarding/test/common/onboardingTypes.test|title=parseGheInstanceInput single word with surrounding whitespace is trimmed|occurrence=1onboardingTypes.test|tit…onboardingTypes.test|title=parseGheInstanceInput single word with underscores is invalid (not valid DNS)|occurrence=1 · introduced test · mocha:v1|namespace=vscode@05c208e9e28d8c1c723fa08f85e2b7a96092e8e5|file=vs/workbench/contrib/welcomeOnboarding/test/common/onboardingTypes.test|title=parseGheInstanceInput single word with underscores is invalid (not valid DNS)|occurrence=1onboardingTypes.test|tit…Focused concept · onboardingTypes.ts ×3 · 122 introduced LOConboardingTypes.ts ×3

Graph controls are ready.

Interactive rendering requires JavaScript and WebGL. Use the native relationship evidence on this page while the interactive map is unavailable.

Native relationship evidence

Every exact file and test below is linked only from the concept that introduces it.

Introduced tests

Every collected test enters the hierarchy at exactly one concept.

No tests are introduced at this concept. Its intent tests are introduced by other concepts.

Introduced code

Every collected source range enters the hierarchy at exactly one concept.

1 file ranked by introduced lines: 122 introduced LOC across 3 ranges. Expand a file to inspect source; the > gutter marks introduced lines.

src/vs/workbench/contrib/welcomeOnboarding/common/onboardingTypes.ts 122 introduced LOC · 3 ranges

Open complete file

1 > /*--------------------------------------------------------------------------------------------- onboardingTypes.ts
2 > * Copyright (c) Microsoft Corporation. All rights reserved.
3 > * Licensed under the MIT License. See License.txt in the project root for license information.
4 > *--------------------------------------------------------------------------------------------*/
5 >
6 > import { localize } from '../../../../nls.js';
7 > import { isMacintosh } from '../../../../base/common/platform.js';
8 > import { IProductOnboardingTheme } from '../../../../base/common/product.js';
9 >
10 > /**
11 > * Step identifiers for the onboarding walkthrough.
12 > */
13 > export const enum OnboardingStepId {
14 > SignIn = 'onboarding.signIn',
15 > Personalize = 'onboarding.personalize',
16 > AiPreference = 'onboarding.aiPreference',
17 > AgentSessions = 'onboarding.agentSessions',
18 > }
19 >
20 > /**
21 > * Returns a localized title for each step.
22 > */
23 > export function getOnboardingStepTitle(stepId: OnboardingStepId): string {
24 switch (stepId) {
25 case OnboardingStepId.SignIn:
33 }
34 }
36 > /**
37 > * Returns a localized subtitle for each step.
38 > */
39 > export function getOnboardingStepSubtitle(stepId: OnboardingStepId): string {
40 switch (stepId) {
41 case OnboardingStepId.SignIn:
49 }
50 }
52 > /**
53 > * Ordered step IDs for the onboarding flow.
54 > */
55 > export const ONBOARDING_STEPS: readonly OnboardingStepId[] = [
56 > OnboardingStepId.SignIn,
57 > OnboardingStepId.Personalize,
58 > OnboardingStepId.AgentSessions,
59 > ];
60 >
61 > /**
62 > * Theme option for the onboarding personalization step.
63 > * Sourced from product.json via `onboardingThemes`.
64 > */
65 > export type IOnboardingThemeOption = IProductOnboardingTheme;
66 >
67 > /**
68 > * AI collaboration preference for the AI style step.
69 > */
70 > export const enum AiCollaborationMode {
71 > CodeFirst = 'code-first',
72 > Balanced = 'balanced',
73 > AgentForward = 'agent-forward',
74 > }
75 >
76 > /**
77 > * AI collaboration preference option.
78 > */
79 > export interface IAiPreferenceOption {
80 > readonly id: AiCollaborationMode;
81 > readonly label: string;
82 > readonly description: string;
83 > readonly icon: string;
84 > }
85 >
86 > /**
87 > * AI collaboration preference options shown in the AI style step.
88 > */
89 > export const ONBOARDING_AI_PREFERENCE_OPTIONS: readonly IAiPreferenceOption[] = [
90 > {
91 > id: AiCollaborationMode.CodeFirst,
92 > label: localize('onboarding.aiPref.codeFirst', "I Write the Code"),
93 > description: localize('onboarding.aiPref.codeFirst.desc', "AI assists with suggestions and answers questions when you ask. You stay in control of every edit."),
94 > icon: 'edit',
95 > },
96 > {
97 > id: AiCollaborationMode.Balanced,
98 > label: localize('onboarding.aiPref.balanced', "Side by Side"),
99 > description: localize('onboarding.aiPref.balanced.desc', "Inline suggestions plus a chat panel for deeper collaboration. A balance of writing and delegating."),
100 > icon: 'layoutSidebarRight',
101 > },
102 > {
103 > id: AiCollaborationMode.AgentForward,
104 > label: localize('onboarding.aiPref.agentForward', "AI Takes the Lead"),
105 > description: localize('onboarding.aiPref.agentForward.desc', "Let the agent drive — describe what you want and review the result. Great for scaffolding and exploration."),
106 > icon: 'copilot',
107 > },
108 > ];
109 >
110 > /**
111 > * Storage key for persisting onboarding completion state.
112 > */
113 > export const ONBOARDING_STORAGE_KEY = 'welcomeOnboarding.state';
114 >
115 > /**
116 > * Regex matching a single-word GHE instance slug (e.g. "octocat").
117 > * Only allows characters valid in DNS hostnames (letters, digits, hyphens).
118 > */
119 > export const GHE_DOMAIN_REGEX = /^[a-zA-Z0-9-]+$/;
120 >
121 > /**
122 > * Regex matching a full GHE instance URI (e.g. "https://octocat.ghe.com").
123 > */
124 > export const GHE_FULL_URI_REGEX = /^(https:\/\/)?([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.ghe\.com\/?$/;
125 >
126 > export const enum GheParseResultKind {
127 > Empty = 'empty',
128 > SingleWord = 'singleWord',
129 > FullUri = 'fullUri',
130 > Invalid = 'invalid',
131 > }
132 >
133 > export type GheParseResult =
134 > | { readonly kind: GheParseResultKind.Empty }
135 > | { readonly kind: GheParseResultKind.SingleWord; readonly resolvedUri: string }
136 > | { readonly kind: GheParseResultKind.FullUri; readonly resolvedUri: string }
137 > | { readonly kind: GheParseResultKind.Invalid };
138 >
139 > /**
140 > * Parses a GHE instance input value and returns the result kind and resolved URI.
141 > */
142 > export function parseGheInstanceInput(value: string): GheParseResult {
143 > const trimmed = value.trim();
144 > if (!trimmed) {
145 return { kind: GheParseResultKind.Empty };
146 }