@adminide-stack/core 9.2.1-alpha.26 → 9.2.1-alpha.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@ export type IPrefFragment = {
7
7
  };
8
8
  export interface IPreferencesService {
9
9
  initiateSettingsFile(resource: URI): Promise<any>;
10
- defaultViewerSettingsSubject(target: ConfigurationTarget): ISettingsSubject;
10
+ defaultViewerSettingsSubject(target: ConfigurationTarget, options: IPreferencesOpenOptions): ISettingsSubject;
11
11
  /**
12
12
  * Viewer Settings for an Organization and its resources.
13
13
  * @param params
@@ -1,5 +1,5 @@
1
1
  import { URI } from '@vscode-alt/monaco-editor/esm/vs/base/common/uri';
2
- import { ICdecodeUriPathSegment, IAuthorityComponent } from '../interfaces/generated';
2
+ import { ICdecodeUriPathSegment, IAuthorityComponent, ConfigurationTarget } from '../interfaces/generated';
3
3
  import { ICdecodeParsedUri } from '../interfaces/generated';
4
4
  export declare const generateCdecodeUri: (authority: string | IAuthorityComponent, params: ICdecodeUriPathSegment, query?: {
5
5
  [key: string]: string | number;
@@ -24,3 +24,8 @@ export declare const generateCdecodeUri: (authority: string | IAuthorityComponen
24
24
  * @returns
25
25
  */
26
26
  export declare function parseCdecodeUri(uriString: string | URI): ICdecodeParsedUri;
27
+ /**
28
+ * Decide a ConfigurationTarget based on whether the cdecode URI
29
+ * includes an organization name, resourceGroup/resourceType, etc.
30
+ */
31
+ export declare function determineConfigurationTarget(parsedUri: ICdecodeParsedUri): ConfigurationTarget;
@@ -1,5 +1,17 @@
1
1
  import {URI}from'@vscode-alt/monaco-editor/esm/vs/base/common/uri.js';import {Schemas}from'@workbench-stack/core/lib/core/network.js';import sortKeys from'sort-keys';import queryString from'query-string';import {IConfigCollectionName}from'../interfaces/generated/generated-models.js';/* eslint-disable prefer-destructuring */
2
2
  /* eslint-disable default-param-last */
3
+ /**
4
+ * Extracts tenantId from the authority string.
5
+ * Adjust this function based on how tenantId is represented in the authority.
6
+ * For example, if authority is 'myApp.us-west-2.cdecode.com', tenantId could be 'myApp'.
7
+ * @param authority - The authority part of the URI.
8
+ * @returns The extracted tenantId.
9
+ */
10
+ function extractTenantId(authority) {
11
+ // Example extraction logic: assuming tenantId is the first subdomain
12
+ const parts = authority.split('.');
13
+ return parts[0]; // 'myApp' from 'myApp.us-west-2.cdecode.com'
14
+ }
3
15
  const generateCdecodeUri = (authority, params, query = {}, fragment) => {
4
16
  let authorityString;
5
17
  // Determine if authority is a string or an object
@@ -80,6 +92,7 @@ function parseCdecodeUri(uriString) {
80
92
  // Handle the case with no path segments (e.g., `cdecode://us-west-2/`)
81
93
  return {
82
94
  scheme: uri.scheme,
95
+ tenantId: extractTenantId(uri.authority),
83
96
  authority: uri.authority,
84
97
  pathSegments,
85
98
  queryData: queryString.parse(uri.query),
@@ -132,8 +145,32 @@ function parseCdecodeUri(uriString) {
132
145
  return {
133
146
  scheme: uri.scheme,
134
147
  authority: uri.authority,
148
+ tenantId: extractTenantId(uri.authority),
135
149
  pathSegments,
136
150
  queryData,
137
151
  fragmentData
138
152
  };
139
- }export{generateCdecodeUri,parseCdecodeUri};//# sourceMappingURL=cdecodeUri.js.map
153
+ }
154
+ /**
155
+ * Decide a ConfigurationTarget based on whether the cdecode URI
156
+ * includes an organization name, resourceGroup/resourceType, etc.
157
+ */
158
+ function determineConfigurationTarget(parsedUri) {
159
+ const {
160
+ organization,
161
+ resourceType
162
+ } = parsedUri.pathSegments;
163
+ // If resourceType is present, it implies ORGANIZATION_RESOURCE
164
+ if (resourceType) {
165
+ return 5 /* ConfigurationTarget.ORGANIZATION_RESOURCE */;
166
+ }
167
+ // If there's an organization but no resourceType, treat it as ORGANIZATION
168
+ if (organization) {
169
+ return 4 /* ConfigurationTarget.ORGANIZATION */;
170
+ }
171
+ // Otherwise, no organization => fallback to USER or APPLICATION
172
+ // You can add logic here to differentiate user vs. application
173
+ // For example, if you have a special authority or naming convention for applications
174
+ // For now, default to USER
175
+ return 1 /* ConfigurationTarget.USER */;
176
+ }export{determineConfigurationTarget,generateCdecodeUri,parseCdecodeUri};//# sourceMappingURL=cdecodeUri.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cdecodeUri.js","sources":["../../src/utils/cdecodeUri.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cdecodeUri.js","sources":["../../src/utils/cdecodeUri.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -31,6 +31,8 @@ export declare const generateResourceUri: (collectionName: IConfigCollectionName
31
31
  [key: string]: any;
32
32
  name?: string;
33
33
  orgName: string;
34
- }, fragment: string, authority?: string) => URI;
35
- export declare const generateOrgUri: (name: any, fragment: string, authority?: string) => URI;
36
- export declare const generateMachineUri: (name: any, fragment: string, authority?: string) => URI;
34
+ }, fragment: string, authority?: string, options?: {
35
+ flatten: boolean;
36
+ }) => URI;
37
+ export declare const generateOrgUri: (name: string, fragment: string, authority?: string) => URI;
38
+ export declare const generateMachineUri: (name: string, fragment: string, authority?: string) => URI;
@@ -1,4 +1,18 @@
1
- import {Schemas}from'@workbench-stack/core/lib/core/network.js';import {URI}from'@vscode-alt/monaco-editor/esm/vs/base/common/uri.js';import sortKeys from'sort-keys';import queryString from'query-string';import {IConfigCollectionName,IConfigFragmentName}from'../interfaces/generated/generated-models.js';import'../interfaces/configuration/configuration.js';import'../interfaces/organization/organization-context.js';import'@workbench-stack/core/lib/constants/extensions.js';import'@workbench-stack/core/lib/interfaces/lifecycle/lifecycle.js';import'../interfaces/permissions.js';import {flatten}from'./flatten-utils.js';/**
1
+ import {Schemas}from'@workbench-stack/core/lib/core/network.js';import {URI}from'@vscode-alt/monaco-editor/esm/vs/base/common/uri.js';import sortKeys from'sort-keys';import queryString from'query-string';import {IConfigCollectionName,IConfigFragmentName}from'../interfaces/generated/generated-models.js';import'../interfaces/configuration/configuration.js';import'../interfaces/organization/organization-context.js';import'@workbench-stack/core/lib/constants/extensions.js';import'@workbench-stack/core/lib/interfaces/lifecycle/lifecycle.js';import'../interfaces/permissions.js';import {flatten}from'./flatten-utils.js';function hasNestedObject(obj) {
2
+ // Not an object or null? No nesting to worry about.
3
+ if (typeof obj !== 'object' || obj === null) {
4
+ return false;
5
+ }
6
+ // Treat arrays as acceptable—e.g., { alias: ["some"] } is fine.
7
+ if (Array.isArray(obj)) {
8
+ return false;
9
+ }
10
+ // If any direct property is itself an object (and not an array), we have nesting.
11
+ // For deeper checks, this could recurse further, but for now we only forbid
12
+ // direct child objects. E.g. { name: { name: 'tet' } } triggers an error.
13
+ return Object.values(obj).some(val => typeof val === 'object' && val !== null && !Array.isArray(val));
14
+ }
15
+ /**
2
16
  * Generate URI, it sorts the params in order to generate URI.
3
17
  * @param collectionName Schema Name to be used
4
18
  * @param params Params to use as query
@@ -8,6 +22,10 @@ import {Schemas}from'@workbench-stack/core/lib/core/network.js';import {URI}from
8
22
  const generateUri = (collectionName, params, fragment, authority = '', options = {
9
23
  flatten: false
10
24
  }) => {
25
+ // If we are NOT flattening, but detect nested objects, throw an error
26
+ if (!options.flatten && hasNestedObject(params)) {
27
+ throw new Error(`generateUri: "params: ${JSON.stringify(params)}" contains nested object(s), but "options.flatten" is false. Please flatten your data or enable flatten.`);
28
+ }
11
29
  params = options.flatten ? flatten(params) : params;
12
30
  const orderedParams = sortKeys(params);
13
31
  const queryString$1 = queryString.stringify(orderedParams);
@@ -40,7 +58,9 @@ const generateUserUri = (params, fragment = IConfigFragmentName.Settings, author
40
58
  const generateApplicationUri = (orgName, fragment = IConfigFragmentName.Settings, authority = '') => generateUri(IConfigCollectionName.Organizations, {
41
59
  orgName
42
60
  }, fragment, authority);
43
- const generateResourceUri = (collectionName, params, fragment, authority = '') => generateUri(collectionName, params, fragment, authority);
61
+ const generateResourceUri = (collectionName, params, fragment, authority = '', options = {
62
+ flatten: false
63
+ }) => generateUri(collectionName, params, fragment, authority, options);
44
64
  const generateOrgUri = (name, fragment, authority = '') => generateUri(IConfigCollectionName.Organizations, {
45
65
  name
46
66
  }, fragment, authority);
@@ -1 +1 @@
1
- {"version":3,"file":"generate-uri.js","sources":["../../src/utils/generate-uri.ts"],"sourcesContent":[null],"names":["queryString","querystring"],"mappings":"4mBAOA;;;;;;AAMG;MACU,WAAW,GAAG,CACvB,cAAqC,EACrC,MAA8B,EAC9B,QAAgB,EAChB,SAAS,GAAG,EAAE,EACd,OAAO,GAAG;AAEV,EAAA,OAAA,EAAS;AACT,CAAA,KAAA;QACM,GAAA,OAAA,CAAA,OAAyB,GAAA,OAAC,WAAU,MAAA;QAEnC,aAAS,GAAI,eAAgB,CAAA;QAChCA,aAAe,GAAAC,WAAY,CAAA,SAAA,CAAA,aAAA,CAAA;SAClB,GAAA,CAAA,IAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA;UACD,EAAA,OAAA,CAAA,WAAA;AACR,IAAA,SAAK;AACR,IAAA,QAAE;AACP,IAAE,KAAA,EAAAD;AAEF,GAAA,CAAA;;AAEG;AACH;AAMA;;AAEG,EAAA,GAAA,EAAA;AACH,CAAA,EAAA,QAAa,EAAA,SAAA;AAKT;;;AAGC,MAAA,eAAA,GAAA,CAAA,MAAA,EAAA,QAAA,GAAA,mBAAA,CAAA,QAAA,EAAA,SAAA,GAAA,EAAA,KAAA;AACD,EAAA,IAAA,MAAkB,CAAA,SAAA,EAAsB;AAC5C,IAAE,MAAA,CAAA,KAAA,GAAA,CAAA,MAAA,CAAA,SAAA,CAAA;AAEF,IAAA,OAAA,MAAA,CAAA,SAAA;;AAEG,EAAA,OAAA,WAAA,CAAA,qBAAA,CAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,CAAA;AACH;AAGA;AAOA;AAGA;;;;;;;;;;"}
1
+ {"version":3,"file":"generate-uri.js","sources":["../../src/utils/generate-uri.ts"],"sourcesContent":[null],"names":["queryString","querystring"],"mappings":"4mBAOA,SAAS,eAAe,CAAC,GAAQ,EAAA;;MAEzB,OAAA,QAAe,QAAA,OAAe,KAAA,IAAS,EAAA;AACvC,IAAA,OAAA;;;AAGJ,EAAA,IAAA,aAAU,CAAA,GAAW,CAAA,EAAC;AAClB,IAAA,OAAA;;;;;AAKJ,EAAA,OAAA,MAAa,CAAA,MAAO,CAAA,GAAI,CAAA,CAAA,IAAE,CAAA,GAAM,IAAG,OAAK,GAAA,KAAU,QAAa,IAAA,GAAA,KAAO,IAAK,IAAI,CAAI,KAAM,CAAA,OAAQ,CAAA,GAAA,CAAC,CAAG;AACzG;AACA;;;;;;AAMG;MACU,WAAW,GAAG,CACvB,cAAqC,EACrC,MAA8B,EAC9B,QAAgB,EAChB,SAAS,GAAG,EAAE,EACd,OAAO,GAAG;SAE4D,EAAA;MAClE;AACA;MAKH,CAAA,OAAA,CAAA,OAAA,IAAA,eAAA,CAAA,MAAA,CAAA,EAAA;AACD,IAAA,MAAM,IAAG,KAAA,CAAO,CAAC,wBAAwB,IAAI,UAAO,CAAA,MAAA,CAAA,CAAA,wGAAA,CAAA,CAAA;AACpD;QACM,GAAA,OAAA,CAAA,OAAyB,GAAA,OAAC,WAAU,MAAA;QAEnC,aAAS,GAAI,eAAgB,CAAA;QAChCA,aAAe,GAAAC,WAAY,CAAA,SAAA,CAAA,aAAA,CAAA;SAClB,GAAA,CAAA,IAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA;UACD,EAAA,OAAA,CAAA,WAAA;AACR,IAAA,SAAK;AACR,IAAA,QAAE;AACP,IAAE,KAAA,EAAAD;AAEF,GAAA,CAAA;;AAEG;AACH;AAMA;;AAEG,EAAA,GAAA,EAAA;AACH,CAAA,EAAA,QAAa,EAAA,SAAA;AAKT;;;AAGC,MAAA,eAAA,GAAA,CAAA,MAAA,EAAA,QAAA,GAAA,mBAAA,CAAA,QAAA,EAAA,SAAA,GAAA,EAAA,KAAA;AACD,EAAA,IAAA,MAAkB,CAAA,SAAA,EAAsB;AAC5C,IAAE,MAAA,CAAA,KAAA,GAAA,CAAA,MAAA,CAAA,SAAA,CAAA;AAEF,IAAA,OAAA,MAAA,CAAA,SAAA;;AAEG,EAAA,OAAA,WAAA,CAAA,qBAAA,CAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,CAAA;AACH;AAGA;AAQA;AAGA;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,7 +1,7 @@
1
1
  import {IConfigurationContributionNames}from'../interfaces/generated/generated-models.js';import'../interfaces/configuration/configuration.js';import'../interfaces/organization/organization-context.js';import'@workbench-stack/core/lib/constants/extensions.js';import'@workbench-stack/core/lib/interfaces/lifecycle/lifecycle.js';import'../interfaces/permissions.js';// not used anymore
2
- const generateSettingsId = (target, nativeId = IConfigurationContributionNames.DefaultSettings) => {
2
+ const generateSettingsId = (target, nativeId = IConfigurationContributionNames.Settings) => {
3
3
  if (!nativeId) {
4
- nativeId = IConfigurationContributionNames.DefaultSettings;
4
+ nativeId = IConfigurationContributionNames.Settings;
5
5
  }
6
6
  return `${nativeId}_${target}`;
7
7
  };export{generateSettingsId};//# sourceMappingURL=generated-settings-id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generated-settings-id.js","sources":["../../src/utils/generated-settings-id.ts"],"sourcesContent":[null],"names":[],"mappings":"6WAEA;AACO,MAAM,kBAAkB,GAAG,CAC9B,MAA2B,EAC3B,QAAA,GAAmB,+BAA+B,CAAC,eAAe,KAClE;MACI,CAAA,QAAS,EAAA;AACT,IAAA,QAAA,GAAA,+BAAW,CAAA,eAAgC;;AAE/C,EAAA,OAAA,CAAA,EAAU,QAAA,CAAA,CAAQ,EAAI,MAAA,CAAA,CAAM;AAChC"}
1
+ {"version":3,"file":"generated-settings-id.js","sources":["../../src/utils/generated-settings-id.ts"],"sourcesContent":[null],"names":[],"mappings":"6WAEA;AACO,MAAM,kBAAkB,GAAG,CAC9B,MAA2B,EAC3B,QAAA,GAAmB,+BAA+B,CAAC,QAAQ,KAC3D;MACI,CAAA,QAAS,EAAA;AACT,IAAA,QAAA,GAAA,+BAAW,CAAA,QAAgC;;AAE/C,EAAA,OAAA,CAAA,EAAU,QAAA,CAAA,CAAQ,EAAI,MAAA,CAAA,CAAM;AAChC"}
@@ -11,3 +11,5 @@ export * from './date-utils';
11
11
  export * from './flatten-utils';
12
12
  export * from './generateUserAlias';
13
13
  export * from './getLogger';
14
+ export * from './preferenceUri';
15
+ export * from './reviveUri';
@@ -0,0 +1,18 @@
1
+ import { URI } from '@vscode-alt/monaco-editor/esm/vs/base/common/uri';
2
+ import { ConfigurationTarget, IPreferencesOpenOptionsInput } from '../interfaces';
3
+ export declare function getOpenSettings(target: ConfigurationTarget, resource: URI, options: IPreferencesOpenOptionsInput): {
4
+ editableSettingsInput: URI;
5
+ defaultPreferencesInput: URI;
6
+ };
7
+ /**
8
+ * Tries to parse the “extension name” from a URI path that might look like:
9
+ * /myExtension/settings.json
10
+ * /defaultsettings/resourceSettings.json
11
+ * /someFolder/myExtension/organizationSettings.json
12
+ *
13
+ * If the last path segment is one of the “known” settings files, return
14
+ * the second-to-last segment as the extension name. Otherwise, return “settings” by default.
15
+ */
16
+ export declare function parseExtensionFromDefaultSettingsUri(resource: URI): string;
17
+ export declare function getDefaultSettingsURI(target: ConfigurationTarget, options: IPreferencesOpenOptionsInput): URI;
18
+ export declare function getEditableSettingsURI(resource: URI, options?: IPreferencesOpenOptionsInput): URI;
@@ -0,0 +1,107 @@
1
+ import {URI}from'@vscode-alt/monaco-editor/esm/vs/base/common/uri.js';import {IConfigurationContributionNames}from'../interfaces/generated/generated-models.js';import'../interfaces/configuration/configuration.js';import'../interfaces/organization/organization-context.js';import'@workbench-stack/core/lib/constants/extensions.js';import'@workbench-stack/core/lib/interfaces/lifecycle/lifecycle.js';import'../interfaces/permissions.js';import {convertToResourceUri}from'./resourceUriConversion.js';const KNOWN_SETTINGS_FILES = new Set(['settings.json', 'organizationSettings.json', 'resourceSettings.json', 'machineSettings.json', 'applicationSettings.json', 'organizationsettings.json', 'resourcesettings.json', 'machinesettings.json', 'applicationsettings.json']);
2
+ function getOpenSettings(target, resource, options) {
3
+ const editableSettingsResource = getEditableSettingsURI(resource, options);
4
+ const mergedOptions = {
5
+ ...options,
6
+ authority: editableSettingsResource.authority,
7
+ query: editableSettingsResource.query,
8
+ // Use editableSettingsResource.fragment if none was explicitly set.
9
+ defaultFragment: options?.defaultFragment ?? editableSettingsResource.fragment,
10
+ // Use the provided extensionName, or derive it from the resource’s path
11
+ extensionName: options?.extensionName ?? parseExtensionFromDefaultSettingsUri(editableSettingsResource)
12
+ };
13
+ const defaultPreferencesResource = getDefaultSettingsURI(target, mergedOptions);
14
+ return {
15
+ editableSettingsInput: editableSettingsResource,
16
+ defaultPreferencesInput: defaultPreferencesResource
17
+ };
18
+ }
19
+ /**
20
+ * Tries to parse the “extension name” from a URI path that might look like:
21
+ * /myExtension/settings.json
22
+ * /defaultsettings/resourceSettings.json
23
+ * /someFolder/myExtension/organizationSettings.json
24
+ *
25
+ * If the last path segment is one of the “known” settings files, return
26
+ * the second-to-last segment as the extension name. Otherwise, return “settings” by default.
27
+ */
28
+ function parseExtensionFromDefaultSettingsUri(resource) {
29
+ const pathSegments = resource.path.split('/').filter(Boolean);
30
+ if (pathSegments.length === 0) {
31
+ return 'settings';
32
+ }
33
+ const lastSegment = pathSegments[pathSegments.length - 1].toLowerCase();
34
+ // 1) If the last segment is among the known settings files (ends with .json)
35
+ if (KNOWN_SETTINGS_FILES.has(lastSegment)) {
36
+ // We expect the extension name to be the second-to-last segment
37
+ // e.g. "/myExtension/settings.json" or "/some/folder/ext/organizationSettings.json"
38
+ if (pathSegments.length >= 2) {
39
+ return pathSegments[pathSegments.length - 2];
40
+ }
41
+ // If there's only one segment overall, fallback
42
+ return IConfigurationContributionNames.Settings;
43
+ }
44
+ // 2) If it still ends with .json but not a standard settings file, just remove ".json"
45
+ // and treat that as the extension name. (Optional logic)
46
+ if (lastSegment.endsWith('.json')) {
47
+ // e.g. "/myExtension/otherFile.json" → extension = "otherFile" (or 2nd to last segment?)
48
+ // This snippet assumes you want "otherFile" from the last segment. If you instead want
49
+ // the second-to-last segment as an “extensionName,” just adjust accordingly.
50
+ const trimmed = lastSegment.replace(/\.json$/, '');
51
+ return trimmed || IConfigurationContributionNames.Settings;
52
+ }
53
+ // 3) If no recognized .json file, just fallback
54
+ return IConfigurationContributionNames.Settings;
55
+ }
56
+ function getDefaultSettingsURI(target, options) {
57
+ const extension = options.extensionName || IConfigurationContributionNames.Settings;
58
+ switch (target) {
59
+ case 4 /* ConfigurationTarget.ORGANIZATION */:
60
+ return URI.from({
61
+ scheme: 'cdecode',
62
+ authority: options.authority,
63
+ path: `/${extension}/organizationSettings.json`,
64
+ query: options.query,
65
+ fragment: options.defaultFragment
66
+ });
67
+ case 5 /* ConfigurationTarget.ORGANIZATION_RESOURCE */:
68
+ return URI.from({
69
+ scheme: 'cdecode',
70
+ authority: options.authority,
71
+ path: `/${extension}/resourceSettings.json`,
72
+ query: options.query,
73
+ fragment: options.defaultFragment
74
+ });
75
+ default:
76
+ return URI.from({
77
+ scheme: 'cdecode',
78
+ authority: options.authority,
79
+ path: `/${extension}/settings.json`,
80
+ query: options.query,
81
+ fragment: options.defaultFragment
82
+ });
83
+ }
84
+ }
85
+ function getEditableSettingsURI(resource, options = {
86
+ forceExist: false
87
+ }) {
88
+ // Grab the existing or new fragment from options
89
+ let {
90
+ fragment
91
+ } = options;
92
+ if (options?.subFragment) {
93
+ // If there’s a subFragment, stitch it into the main fragment
94
+ fragment = fragment ? fragment.concat(`.${options.subFragment}`) : options.subFragment;
95
+ }
96
+ // Fall back to the resource’s existing fragment if neither fragment nor subFragment is provided
97
+ const finalFragment = fragment ?? resource.fragment;
98
+ // Create a new URI with the possibly updated fragment
99
+ const newResource = URI.from({
100
+ scheme: resource.scheme,
101
+ path: resource.path,
102
+ query: resource.query,
103
+ fragment: finalFragment
104
+ });
105
+ // Always convert to resource-based URI
106
+ return convertToResourceUri(newResource);
107
+ }export{getDefaultSettingsURI,getEditableSettingsURI,getOpenSettings,parseExtensionFromDefaultSettingsUri};//# sourceMappingURL=preferenceUri.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preferenceUri.js","sources":["../../src/utils/preferenceUri.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import { URI, UriComponents } from '@vscode-alt/monaco-editor/esm/vs/base/common/uri';
2
+ export declare function reviveUri(resource: URI | string | UriComponents): URI;
@@ -0,0 +1,10 @@
1
+ import {URI}from'@vscode-alt/monaco-editor/esm/vs/base/common/uri.js';function reviveUri(resource) {
2
+ if (resource instanceof URI) {
3
+ return resource;
4
+ } else if (typeof resource === 'string') {
5
+ // default resource
6
+ return URI.parse(resource);
7
+ } else if (typeof resource === 'object') {
8
+ return URI.revive(resource);
9
+ }
10
+ }export{reviveUri};//# sourceMappingURL=reviveUri.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviveUri.js","sources":["../../src/utils/reviveUri.ts"],"sourcesContent":[null],"names":[],"mappings":"sEAEM,SAAU,SAAS,CAAC,QAAsC,EAAA;AAC5D,EAAA,IAAA,QAAY,YAAA,GAAe,EAAA;AACvB,IAAA,OAAA;SACH,IAAA,OAAA,QAAA,KAAA,QAAA,EAAA;AAAM;WACgB,GAAA,CAAA,KAAA,CAAA,QAAA,CAAA;AACnB,GAAA,MAAA,IAAA,OAAW,QAAM,KAAQ,QAAE,EAAA;IAC/B,OAAC,GAAA,CAAA,MAAA,CAAA,QAAA,CAAA;AAAM;AACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adminide-stack/core",
3
- "version": "9.2.1-alpha.26",
3
+ "version": "9.2.1-alpha.33",
4
4
  "description": "AdminIDE core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -34,7 +34,7 @@
34
34
  "publishConfig": {
35
35
  "access": "public"
36
36
  },
37
- "gitHead": "ec9acaa9f2f5cfc7fceee2cf93598b8822039905",
37
+ "gitHead": "6de0ec0442362d49adf1ff406f9b14f9d4f7480a",
38
38
  "typescript": {
39
39
  "definition": "lib/index.d.ts"
40
40
  }