@adminide-stack/core 12.0.4-alpha.95 → 13.0.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/constants/configuration.d.ts +4 -0
- package/lib/constants/configuration.js +5 -1
- package/lib/constants/configuration.js.map +1 -1
- package/lib/constants/defaultIds.d.ts +10 -0
- package/lib/constants/defaultIds.js +14 -0
- package/lib/constants/defaultIds.js.map +1 -0
- package/lib/constants/index.d.ts +1 -0
- package/lib/constants/routes.js.map +1 -1
- package/lib/constants/urls.d.ts +3 -1
- package/lib/constants/urls.js +2 -0
- package/lib/constants/urls.js.map +1 -1
- package/lib/core/BaseDisposable.js.map +1 -1
- package/lib/core/configurations/configuration.js.map +1 -1
- package/lib/core/configurations/events/ConfigurationChangeEvent.js.map +1 -1
- package/lib/core/configurations/examples/configuration-wrapper-example.d.ts +67 -0
- package/lib/core/configurations/examples/configuration-wrapper.test.d.ts +1 -0
- package/lib/core/configurations/helpers/configuration.js.map +1 -1
- package/lib/core/configurations/index.d.ts +2 -0
- package/lib/core/configurations/models/ConfigurationModel.d.ts +26 -1
- package/lib/core/configurations/models/ConfigurationModel.js +123 -8
- package/lib/core/configurations/models/ConfigurationModel.js.map +1 -1
- package/lib/core/configurations/models/ConfigurationModel.multi-identifier.test.d.ts +1 -0
- package/lib/core/configurations/models/ConfigurationModelWrapper.d.ts +47 -0
- package/lib/core/configurations/models/ConfigurationModelWrapper.js +130 -0
- package/lib/core/configurations/models/ConfigurationModelWrapper.js.map +1 -0
- package/lib/core/configurations/models/ConfigurationModelWrapper.spec.d.ts +1 -0
- package/lib/core/configurations/models/ConfigurationModelWrapper.test.d.ts +1 -0
- package/lib/core/configurations/models/index.d.ts +1 -0
- package/lib/core/configurations/models/override.compound.test.d.ts +1 -0
- package/lib/core/configurations/models/override.edgecase.test.d.ts +1 -0
- package/lib/core/configurations/models/override.keys.test.d.ts +1 -0
- package/lib/core/configurations/models/override.strict.test.d.ts +1 -0
- package/lib/core/configurations/parser/configurationParser.d.ts +23 -0
- package/lib/core/configurations/parser/configurationParser.js +209 -0
- package/lib/core/configurations/parser/configurationParser.js.map +1 -0
- package/lib/core/configurations/parser/index.d.ts +1 -0
- package/lib/core/configurations/utils/QUICK_REFERENCE.d.ts +103 -0
- package/lib/core/configurations/utils/configurationExtractor.d.ts +224 -0
- package/lib/core/configurations/utils/configurationExtractor.js +315 -0
- package/lib/core/configurations/utils/configurationExtractor.js.map +1 -0
- package/lib/core/configurations/utils/configurationExtractor.test.d.ts +1 -0
- package/lib/core/configurations/utils/index.d.ts +5 -0
- package/lib/core/configurations/utils/model-creation-examples.d.ts +36 -0
- package/lib/core/configurations/utils/preferences-service-integration.d.ts +54 -0
- package/lib/core/configurations/utils/usage-examples.d.ts +39 -0
- package/lib/core/disposable.js.map +1 -1
- package/lib/core/event.js.map +1 -1
- package/lib/core/in-memory-providers/cde-code-provider.js.map +1 -1
- package/lib/core/in-memory-providers/in-memory-value-store.js.map +1 -1
- package/lib/core/organization/configuration.js +1 -1
- package/lib/core/organization/configuration.js.map +1 -1
- package/lib/core/organization/helpers/organization-helpers.js.map +1 -1
- package/lib/core/organization/organization.js.map +1 -1
- package/lib/core/path.js.map +1 -1
- package/lib/errors/auth-error.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/interfaces/configuration/configuration.js.map +1 -1
- package/lib/interfaces/configuration/configurationRegistry.d.ts +5 -0
- package/lib/interfaces/organization/organization-context.js.map +1 -1
- package/lib/interfaces/permissions.d.ts +2 -2
- package/lib/interfaces/permissions.js.map +1 -1
- package/lib/modules/account-api/enums/index.js.map +1 -1
- package/lib/modules/billing-api/enums/index.js.map +1 -1
- package/lib/modules/index.d.ts +0 -1
- package/lib/services/abstract-configuration.js +1 -1
- package/lib/services/abstract-configuration.js.map +1 -1
- package/lib/services/abstract-organization-context-service.js +1 -1
- package/lib/services/abstract-organization-context-service.js.map +1 -1
- package/lib/utils/cdecodeUri.d.ts +1 -1
- package/lib/utils/cdecodeUri.js +40 -7
- package/lib/utils/cdecodeUri.js.map +1 -1
- package/lib/utils/configuration-utils.js.map +1 -1
- package/lib/utils/date-utils.js.map +1 -1
- package/lib/utils/flatten-utils.js.map +1 -1
- package/lib/utils/generate-uri.js.map +1 -1
- package/lib/utils/generatePath.js.map +1 -1
- package/lib/utils/generateUserAlias.js.map +1 -1
- package/lib/utils/generated-settings-id.js +3 -5
- package/lib/utils/generated-settings-id.js.map +1 -1
- package/lib/utils/getLogger.js.map +1 -1
- package/lib/utils/getUserAlias.js.map +1 -1
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/nodeContext.d.ts +3 -1
- package/lib/utils/nodeContext.js +6 -5
- package/lib/utils/nodeContext.js.map +1 -1
- package/lib/utils/omit-deep.js.map +1 -1
- package/lib/utils/preferenceUri.d.ts +6 -5
- package/lib/utils/preferenceUri.js +145 -13
- package/lib/utils/preferenceUri.js.map +1 -1
- package/lib/utils/resourceUriConversion.d.ts +11 -1
- package/lib/utils/resourceUriConversion.js +19 -13
- package/lib/utils/resourceUriConversion.js.map +1 -1
- package/lib/utils/reviveUri.js.map +1 -1
- package/lib/utils/roles-utils.js.map +1 -1
- package/lib/utils/slug-utils.d.ts +87 -0
- package/lib/utils/slug-utils.js +95 -0
- package/lib/utils/slug-utils.js.map +1 -0
- package/lib/utils/splitCdecodeUri.js.map +1 -1
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils/validations.js +2 -2
- package/lib/utils/validations.js.map +1 -1
- package/lib/utils/validations.test.d.ts +1 -0
- package/package.json +3 -3
- package/lib/modules/inbox/enums/index.js +0 -26
- package/lib/modules/inbox/enums/index.js.map +0 -1
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import {SystemContributionExtensionNames}from'common';// not used anymore
|
|
2
|
-
const generateSettingsId = (target, nativeId = SystemContributionExtensionNames.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
return `${nativeId}_${target}`;
|
|
2
|
+
const generateSettingsId = (target, nativeId = SystemContributionExtensionNames.All) => {
|
|
3
|
+
const finalNativeId = nativeId || SystemContributionExtensionNames.All;
|
|
4
|
+
return `${finalNativeId}_${target}`;
|
|
7
5
|
};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":"sDAEA;AACO,MAAM,kBAAkB,GAAG,CAC9B,MAA2B,EAC3B,QAAA,GAAmB,gCAAgC,CAAC,
|
|
1
|
+
{"version":3,"file":"generated-settings-id.js","sources":["../../src/utils/generated-settings-id.ts"],"sourcesContent":[null],"names":[],"mappings":"sDAEA;AACO,MAAM,kBAAkB,GAAG,CAC9B,MAA2B,EAC3B,QAAA,GAAmB,gCAAgC,CAAC,GAAG,KACvD;AACA,EAAA,MAAA,gBAAmB,QAAG,oCAAY,CAAA;AAClC,EAAA,OAAA,CAAA,EAAO,aAAG,CAAA,CAAa,EAAA,MAAI,CAAA,CAAM;AACrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLogger.js","sources":["../../src/utils/getLogger.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAO,MAAM,SAAS,GAAG,GAAC,IAAU,GAChC,EAAG,MAAE,
|
|
1
|
+
{"version":3,"file":"getLogger.js","sources":["../../src/utils/getLogger.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAO,MAAM,SAAS,GAAG,GAAC,IAAU,GAChC,EAAG,MAAE,IAAM;MACP,EAAI,OAAE,CAAA,GAAQ;MACd,EAAI,OAAE,CAAA,IAAQ;OACd,EAAK,OAAE,CAAA,KAAQ;AACf,EAAA,KAAA,EAAK,OAAE,CAAA,GAAQ;AACf;EACF,KAAA,EAAA,OAAA,CAAA,KAAA;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUserAlias.js","sources":["../../src/utils/getUserAlias.ts"],"sourcesContent":[null],"names":[],"mappings":"wCAEa,YAAY,GAAG,CAAC,KAAe,EAAE,QAAsB,KAAI;AACpE,EAAA,IAAA,EAAI;AACJ,EAAA,IAAA,
|
|
1
|
+
{"version":3,"file":"getUserAlias.js","sources":["../../src/utils/getUserAlias.ts"],"sourcesContent":[null],"names":[],"mappings":"wCAEa,YAAY,GAAG,CAAC,KAAe,EAAE,QAAsB,KAAI;AACpE,EAAA,IAAA,EAAI;AACJ,EAAA,IAAA,aAAY,YAAK,CAAA,QAAa,EAAQ;AAClC,IAAA,EAAA,GAAA,KAAK,CAAA,IAAM,MAAM,CAAC,CAAA,qBAAgB,CAAA,QAAa,CAAA,CAAA;AAC/C,IAAA,OAAA,EAAA,CAAA,KAAU,CAAA,CAAA,EAAK,YAAI,CAAA,QAAa,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG;;IAE/C,GAAE,UAAS,CAAA,CAAI,KAAK,CAAA,CAAE,qBAAa,CAAA,QAAa,CAAA,CAAA;AAChD,EAAA,OAAA,EAAO,CAAA,KAAG,CAAA,CAAK,EAAC,YAAG,CAAA,KAAa,CAAA,CAAK,CAAA,CAAA,CAAG,CAAC,CAAC;AAC9C"}
|
package/lib/utils/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { IConfigurationNodeContextInput, ContributionSchemaId, ServerContext, SystemContributionExtensionNames } from 'common';
|
|
2
|
-
type UserContext = Pick<ServerContext['userContext'], 'userAlias' | 'orgId' | 'tenantId'
|
|
2
|
+
type UserContext = Pick<ServerContext['userContext'], 'userAlias' | 'orgId' | 'tenantId'> & {
|
|
3
|
+
tenantName?: string;
|
|
4
|
+
};
|
|
3
5
|
export declare function buildNodeContext(userContext: UserContext, schemaId?: ContributionSchemaId, extensionName?: SystemContributionExtensionNames | string): IConfigurationNodeContextInput;
|
|
4
6
|
export declare function buildPermissionNodeContext(userContext: UserContext): IConfigurationNodeContextInput;
|
|
5
7
|
export declare function buildPolicyNodeContext(userContext: UserContext): IConfigurationNodeContextInput;
|
package/lib/utils/nodeContext.js
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import {ContributionSchemaId,SystemContributionExtensionNames}from'common';function buildNodeContext(userContext, schemaId = ContributionSchemaId.Configuration, extensionName = SystemContributionExtensionNames.
|
|
1
|
+
import {ContributionSchemaId,SystemContributionExtensionNames}from'common';function buildNodeContext(userContext, schemaId = ContributionSchemaId.Configuration, extensionName = SystemContributionExtensionNames.All) {
|
|
2
2
|
return {
|
|
3
3
|
schemaId,
|
|
4
4
|
tenantId: userContext?.tenantId,
|
|
5
5
|
extensionName,
|
|
6
|
+
tenantName: userContext?.tenantName,
|
|
6
7
|
orgId: userContext?.orgId,
|
|
7
8
|
userAlias: userContext?.userAlias
|
|
8
9
|
};
|
|
9
10
|
}
|
|
10
11
|
function buildPermissionNodeContext(userContext) {
|
|
11
|
-
return buildNodeContext(userContext, ContributionSchemaId.Permission, SystemContributionExtensionNames.
|
|
12
|
+
return buildNodeContext(userContext, ContributionSchemaId.Permission, SystemContributionExtensionNames.All);
|
|
12
13
|
}
|
|
13
14
|
function buildPolicyNodeContext(userContext) {
|
|
14
|
-
return buildNodeContext(userContext, ContributionSchemaId.Policy, SystemContributionExtensionNames.
|
|
15
|
+
return buildNodeContext(userContext, ContributionSchemaId.Policy, SystemContributionExtensionNames.All);
|
|
15
16
|
}
|
|
16
17
|
function buildRoleNodeContext(userContext) {
|
|
17
|
-
return buildNodeContext(userContext, ContributionSchemaId.UserRole, SystemContributionExtensionNames.
|
|
18
|
+
return buildNodeContext(userContext, ContributionSchemaId.UserRole, SystemContributionExtensionNames.All);
|
|
18
19
|
}
|
|
19
20
|
function buildUiLayoutNodeContext(userContext) {
|
|
20
|
-
return buildNodeContext(userContext, ContributionSchemaId.UiLayout, SystemContributionExtensionNames.
|
|
21
|
+
return buildNodeContext(userContext, ContributionSchemaId.UiLayout, SystemContributionExtensionNames.All);
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
23
24
|
* Build context for a dynamic extension by extension ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeContext.js","sources":["../../src/utils/nodeContext.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nodeContext.js","sources":["../../src/utils/nodeContext.ts"],"sourcesContent":[null],"names":[],"mappings":"2EAUM,SAAU,gBAAgB,CAC5B,WAAwB,EACxB,QAAA,GAAiC,oBAAoB,CAAC,aAAa,EACnE,aAAA,GAA2D,gCAAgC,CAAC,GAAG,EAAA;SAE/F;YACI;YACA,EAAA,WAAU,EAAA,QAAa;iBACvB;cACA,EAAA,WAAY,EAAA,UAAa;SACzB,EAAA,WAAO,EAAA,KAAa;aACpB,EAAA,WAAW,EAAA;;AAEnB;AAEM,SAAU,0BAA0B,CAAC,WAAwB,EAAA;AAC/D,EAAA,OAAA,gBAAO,CAAA,WAAiB,EAAW,oBAAE,CAAA,UAAqB,EAAU,gCAAE,CAAA,GAAiC,CAAA;AAC3G;AACM,SAAU,sBAAsB,CAAC,WAAwB,EAAA;AAC3D,EAAA,OAAA,gBAAO,CAAA,WAAiB,EAAW,oBAAE,CAAA,MAAqB,EAAM,gCAAE,CAAA,GAAiC,CAAA;AACvG;AAEM,SAAU,oBAAoB,CAAC,WAAwB,EAAA;AACzD,EAAA,OAAA,gBAAO,CAAA,WAAiB,EAAW,oBAAE,CAAA,QAAqB,EAAQ,gCAAE,CAAA,GAAiC,CAAA;AACzG;AAEM,SAAU,wBAAwB,CAAC,WAAwB,EAAA;AAC7D,EAAA,OAAA,gBAAO,CAAA,WAAiB,EAAW,oBAAE,CAAA,QAAqB,EAAQ,gCAAE,CAAA,GAAiC,CAAA;AACzG;AAEA;;AAEG;AACG,SAAU,yBAAyB,CACrC,WAAwB,EACxB,aAAqB,EACrB,QAAA,GAAiC,oBAAoB,CAAC,aAAa,EAAA;SAEnE,gBAAO,CAAA,WAAiB,EAAW,UAAU,aAAE,CAAA;AACnD;AAEA;;AAEG;AACG,SAAU,iCAAiC,CAAC,WAAwB,EAAA;AACtE,EAAA,OAAA,gBAAO,CAAA,WACH,EAAW,oBACX,CAAA,aAAqB,EAAa,gCAClC,CAAA,SAAiC,CAAA;AAEzC;AAEA;;AAEG;AACG,SAAU,oBAAoB,CAAC,aAAqB,EAAA;SACtD,MAAO,CAAA,MAAO,CAAA,gCAAO,CAAA,CAAgC,QAAE,CAAA,aAAS,CAAA;AACpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omit-deep.js","sources":["../../src/utils/omit-deep.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"omit-deep.js","sources":["../../src/utils/omit-deep.ts"],"sourcesContent":[null],"names":[],"mappings":"sCACM,SAAU,QAAQ,CAAC,UAAe,EAAE,WAAqB,EAAA;WAC3D,MAAS,CAAA,KAAO,EAAK;AACjB,IAAA,IAAA,SAAS,OAAI,UAAY,QAAK,EAAA;AAC1B,MAAA,WAAA,CAAA,OAAY,CAAA,GAAA,IAAS;AACjB,QAAA,OAAA,KAAA,CAAA,GAAO,CAAA;AACX,MAAA,CAAA,CAAA;;;AAIR,EAAA,OAAA,wBAAqB,EAAU,MAAE,CAAA;AACrC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { URI } from '@vscode-alt/monaco-editor/esm/vs/base/common/uri';
|
|
2
|
-
import { IPreferencesOpenOptionsInput, ConfigurationTarget } from 'common';
|
|
2
|
+
import { IPreferencesOpenOptionsInput, ConfigurationTarget, ContributionSchemaId } from 'common';
|
|
3
3
|
export interface IExtendedPreferencesOpenOptionsInput extends IPreferencesOpenOptionsInput {
|
|
4
4
|
/** Schema ID for configuration schema validation */
|
|
5
|
-
schemaId?: string;
|
|
5
|
+
schemaId?: string | ContributionSchemaId;
|
|
6
6
|
/** Array of extension names for multi-extension configurations */
|
|
7
7
|
extensionNames?: string[];
|
|
8
8
|
}
|
|
@@ -12,11 +12,12 @@ export interface IExtendedPreferencesOpenOptionsInput extends IPreferencesOpenOp
|
|
|
12
12
|
* /defaultsettings/resourceSettings.json
|
|
13
13
|
* /someFolder/myExtension/organizationSettings.json
|
|
14
14
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
15
|
+
* Priority-based detection:
|
|
16
|
+
* 1. Authority-based schema detection (primary)
|
|
17
|
+
* 2. Path-based parsing (fallback)
|
|
17
18
|
*/
|
|
18
19
|
export declare function parseExtensionFromDefaultSettingsUri(resource: URI): string;
|
|
19
|
-
export declare function getDefaultSettingsURI(target: ConfigurationTarget, options:
|
|
20
|
+
export declare function getDefaultSettingsURI(target: ConfigurationTarget, options: IExtendedPreferencesOpenOptionsInput): URI;
|
|
20
21
|
export declare function getEditableSettingsURI(resource: URI, options?: IExtendedPreferencesOpenOptionsInput): URI;
|
|
21
22
|
export declare function getOpenSettings(target: ConfigurationTarget, resource: URI, options: IExtendedPreferencesOpenOptionsInput): {
|
|
22
23
|
editableSettingsInput: URI;
|
|
@@ -1,5 +1,90 @@
|
|
|
1
|
-
import {URI}from'@vscode-alt/monaco-editor/esm/vs/base/common/uri.js';import {SystemContributionExtensionNames}from'common';import {isReservedCdecodeParam}from'./cdecodeUri.js';/* eslint-disable import/no-extraneous-dependencies */
|
|
1
|
+
import {URI}from'@vscode-alt/monaco-editor/esm/vs/base/common/uri.js';import {ContributionSchemaId,SystemContributionExtensionNames,ResourceAuthority}from'common';import {isReservedCdecodeParam}from'./cdecodeUri.js';/* eslint-disable import/no-extraneous-dependencies */
|
|
2
2
|
const KNOWN_SETTINGS_FILES = new Set(['settings.json', 'organizationSettings.json', 'resourceSettings.json', 'machineSettings.json', 'applicationSettings.json', 'organizationsettings.json', 'resourcesettings.json', 'machinesettings.json', 'applicationsettings.json']);
|
|
3
|
+
/**
|
|
4
|
+
* Maps URI authority to ContributionSchemaId (primary detection method)
|
|
5
|
+
* Follows VS Code pattern of using different authorities for different schema types
|
|
6
|
+
*/
|
|
7
|
+
function mapAuthorityToSchemaId(authority) {
|
|
8
|
+
switch (authority) {
|
|
9
|
+
case ResourceAuthority.Defaultsettings:
|
|
10
|
+
return ContributionSchemaId.Configuration;
|
|
11
|
+
case ResourceAuthority.Defaultpermissions:
|
|
12
|
+
return ContributionSchemaId.Permission;
|
|
13
|
+
case ResourceAuthority.Defaultpolicies:
|
|
14
|
+
return ContributionSchemaId.Policy;
|
|
15
|
+
case ResourceAuthority.Applicationrole:
|
|
16
|
+
case ResourceAuthority.Organizationrole:
|
|
17
|
+
case ResourceAuthority.Resourcerole:
|
|
18
|
+
case ResourceAuthority.Userrole:
|
|
19
|
+
return ContributionSchemaId.UserRole;
|
|
20
|
+
default:
|
|
21
|
+
return null;
|
|
22
|
+
// Unknown authority, fall back to other detection methods
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Maps ContributionSchemaId to appropriate ResourceAuthority for URI generation
|
|
27
|
+
*/
|
|
28
|
+
function mapSchemaIdToAuthority(schemaId) {
|
|
29
|
+
switch (schemaId) {
|
|
30
|
+
case ContributionSchemaId.Configuration:
|
|
31
|
+
return ResourceAuthority.Defaultsettings;
|
|
32
|
+
case ContributionSchemaId.Permission:
|
|
33
|
+
return ResourceAuthority.Defaultpermissions;
|
|
34
|
+
case ContributionSchemaId.Policy:
|
|
35
|
+
return ResourceAuthority.Defaultpolicies;
|
|
36
|
+
case ContributionSchemaId.UserRole:
|
|
37
|
+
return ResourceAuthority.Userrole;
|
|
38
|
+
default:
|
|
39
|
+
return ResourceAuthority.Defaultsettings;
|
|
40
|
+
// Default fallback
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Determines the schema type from URI using authority-based detection (primary)
|
|
45
|
+
* with fallbacks to fragment and query parameters for compatibility
|
|
46
|
+
*/
|
|
47
|
+
function determineSchemaFromUri(resource) {
|
|
48
|
+
// PRIORITY 1: Check authority for schema type (VS Code pattern)
|
|
49
|
+
const schemaFromAuthority = mapAuthorityToSchemaId(resource.authority);
|
|
50
|
+
if (schemaFromAuthority) {
|
|
51
|
+
return schemaFromAuthority;
|
|
52
|
+
}
|
|
53
|
+
// PRIORITY 2: Check query parameters for explicit schema ID
|
|
54
|
+
if (resource.query) {
|
|
55
|
+
const queryParams = new URLSearchParams(resource.query);
|
|
56
|
+
const metaSchemaId = queryParams.get('meta_schemaId');
|
|
57
|
+
if (metaSchemaId) {
|
|
58
|
+
switch (metaSchemaId.toLowerCase()) {
|
|
59
|
+
case 'policy':
|
|
60
|
+
return ContributionSchemaId.Policy;
|
|
61
|
+
case 'permission':
|
|
62
|
+
return ContributionSchemaId.Permission;
|
|
63
|
+
case 'configuration':
|
|
64
|
+
return ContributionSchemaId.Configuration;
|
|
65
|
+
case 'userrole':
|
|
66
|
+
return ContributionSchemaId.UserRole;
|
|
67
|
+
default:
|
|
68
|
+
return ContributionSchemaId.Configuration;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// PRIORITY 3: Check fragment for schema indicators
|
|
73
|
+
if (resource.fragment) {
|
|
74
|
+
const lowerFragment = resource.fragment.toLowerCase();
|
|
75
|
+
if (lowerFragment.includes('polic')) {
|
|
76
|
+
return ContributionSchemaId.Policy;
|
|
77
|
+
}
|
|
78
|
+
if (lowerFragment.includes('permission')) {
|
|
79
|
+
return ContributionSchemaId.Permission;
|
|
80
|
+
}
|
|
81
|
+
if (lowerFragment.includes('role')) {
|
|
82
|
+
return ContributionSchemaId.UserRole;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Default to configuration schema
|
|
86
|
+
return ContributionSchemaId.Configuration;
|
|
87
|
+
}
|
|
3
88
|
/**
|
|
4
89
|
* Filter out meta-related parameters from a query string.
|
|
5
90
|
* Meta parameters should not appear in defaultPreferencesInput URIs.
|
|
@@ -25,13 +110,24 @@ function filterMetaParametersFromQuery(queryString) {
|
|
|
25
110
|
* /defaultsettings/resourceSettings.json
|
|
26
111
|
* /someFolder/myExtension/organizationSettings.json
|
|
27
112
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
113
|
+
* Priority-based detection:
|
|
114
|
+
* 1. Authority-based schema detection (primary)
|
|
115
|
+
* 2. Path-based parsing (fallback)
|
|
30
116
|
*/
|
|
31
117
|
function parseExtensionFromDefaultSettingsUri(resource) {
|
|
118
|
+
// PRIORITY 1: Check if authority indicates a schema-specific URI
|
|
119
|
+
const schemaFromAuthority = mapAuthorityToSchemaId(resource.authority);
|
|
120
|
+
if (schemaFromAuthority) {
|
|
121
|
+
// For schema-specific authorities, only return system extension names for known system schemas
|
|
122
|
+
switch (schemaFromAuthority) {
|
|
123
|
+
case ContributionSchemaId.Configuration:
|
|
124
|
+
return SystemContributionExtensionNames.All;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// PRIORITY 2: Fall back to path-based parsing for legacy URIs or non-system schemas
|
|
32
128
|
const pathSegments = resource.path.split('/').filter(Boolean);
|
|
33
129
|
if (pathSegments.length === 0) {
|
|
34
|
-
return
|
|
130
|
+
return SystemContributionExtensionNames.All;
|
|
35
131
|
}
|
|
36
132
|
const lastSegment = pathSegments[pathSegments.length - 1].toLowerCase();
|
|
37
133
|
// 1) If the last segment is among the known settings files (ends with .json)
|
|
@@ -42,7 +138,7 @@ function parseExtensionFromDefaultSettingsUri(resource) {
|
|
|
42
138
|
return pathSegments[pathSegments.length - 2];
|
|
43
139
|
}
|
|
44
140
|
// If there's only one segment overall, fallback
|
|
45
|
-
return SystemContributionExtensionNames.
|
|
141
|
+
return SystemContributionExtensionNames.All;
|
|
46
142
|
}
|
|
47
143
|
// 2) If it still ends with .json but not a standard settings file, just remove ".json"
|
|
48
144
|
// and treat that as the extension name. (Optional logic)
|
|
@@ -51,20 +147,47 @@ function parseExtensionFromDefaultSettingsUri(resource) {
|
|
|
51
147
|
// This snippet assumes you want "otherFile" from the last segment. If you instead want
|
|
52
148
|
// the second-to-last segment as an "extensionName," just adjust accordingly.
|
|
53
149
|
const trimmed = lastSegment.replace(/\.json$/, '');
|
|
54
|
-
return trimmed || SystemContributionExtensionNames.
|
|
150
|
+
return trimmed || SystemContributionExtensionNames.All;
|
|
55
151
|
}
|
|
56
152
|
// 3) If no recognized .json file, just fallback
|
|
57
|
-
return SystemContributionExtensionNames.
|
|
153
|
+
return SystemContributionExtensionNames.All;
|
|
58
154
|
}
|
|
59
155
|
function getDefaultSettingsURI(target, options) {
|
|
60
|
-
|
|
156
|
+
// Determine schema type from options or default to configuration
|
|
157
|
+
let schemaId = ContributionSchemaId.Configuration;
|
|
158
|
+
if (options.schemaId) {
|
|
159
|
+
if (typeof options.schemaId === 'string') {
|
|
160
|
+
switch (options.schemaId.toLowerCase()) {
|
|
161
|
+
case 'policy':
|
|
162
|
+
schemaId = ContributionSchemaId.Policy;
|
|
163
|
+
break;
|
|
164
|
+
case 'permission':
|
|
165
|
+
schemaId = ContributionSchemaId.Permission;
|
|
166
|
+
break;
|
|
167
|
+
case 'configuration':
|
|
168
|
+
schemaId = ContributionSchemaId.Configuration;
|
|
169
|
+
break;
|
|
170
|
+
case 'userrole':
|
|
171
|
+
schemaId = ContributionSchemaId.UserRole;
|
|
172
|
+
break;
|
|
173
|
+
default:
|
|
174
|
+
schemaId = ContributionSchemaId.Configuration;
|
|
175
|
+
}
|
|
176
|
+
} else {
|
|
177
|
+
schemaId = options.schemaId;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// Use schema-specific authority instead of generic authority
|
|
181
|
+
const schemaAuthority = mapSchemaIdToAuthority(schemaId);
|
|
182
|
+
const authority = options.authority || schemaAuthority;
|
|
183
|
+
const extension = options.extensionName || SystemContributionExtensionNames.All;
|
|
61
184
|
// Filter out meta parameters from the query since we don't want them in defaultPreferencesInput
|
|
62
185
|
const filteredQuery = filterMetaParametersFromQuery(options.query);
|
|
63
186
|
switch (target) {
|
|
64
187
|
case 4 /* ConfigurationTarget.ORGANIZATION */:
|
|
65
188
|
return URI.from({
|
|
66
189
|
scheme: 'cdecode',
|
|
67
|
-
authority
|
|
190
|
+
authority,
|
|
68
191
|
path: `/${extension}/organizationSettings.json`,
|
|
69
192
|
query: filteredQuery,
|
|
70
193
|
fragment: options.defaultFragment
|
|
@@ -72,7 +195,7 @@ function getDefaultSettingsURI(target, options) {
|
|
|
72
195
|
case 5 /* ConfigurationTarget.ORGANIZATION_RESOURCE */:
|
|
73
196
|
return URI.from({
|
|
74
197
|
scheme: 'cdecode',
|
|
75
|
-
authority
|
|
198
|
+
authority,
|
|
76
199
|
path: `/${extension}/resourceSettings.json`,
|
|
77
200
|
query: filteredQuery,
|
|
78
201
|
fragment: options.defaultFragment
|
|
@@ -80,7 +203,7 @@ function getDefaultSettingsURI(target, options) {
|
|
|
80
203
|
default:
|
|
81
204
|
return URI.from({
|
|
82
205
|
scheme: 'cdecode',
|
|
83
|
-
authority
|
|
206
|
+
authority,
|
|
84
207
|
path: `/${extension}/settings.json`,
|
|
85
208
|
query: filteredQuery,
|
|
86
209
|
fragment: options.defaultFragment
|
|
@@ -128,10 +251,13 @@ function getEditableSettingsURI(resource, options = {
|
|
|
128
251
|
}
|
|
129
252
|
// Fall back to the resource's existing fragment if neither fragment nor subFragment is provided
|
|
130
253
|
const finalFragment = fragment ?? resource.fragment;
|
|
254
|
+
// Use schema-specific authority from options if provided, otherwise fall back to resource authority
|
|
255
|
+
const finalAuthority = resource.authority;
|
|
131
256
|
// Create a new URI with the possibly updated fragment and query, make sure to include authority.
|
|
132
257
|
const newResource = URI.from({
|
|
133
258
|
scheme: resource.scheme,
|
|
134
|
-
authority:
|
|
259
|
+
authority: finalAuthority,
|
|
260
|
+
// Use schema-specific authority
|
|
135
261
|
path: resource.path,
|
|
136
262
|
query: queryString,
|
|
137
263
|
fragment: finalFragment
|
|
@@ -141,10 +267,16 @@ function getEditableSettingsURI(resource, options = {
|
|
|
141
267
|
return newResource;
|
|
142
268
|
}
|
|
143
269
|
function getOpenSettings(target, resource, options) {
|
|
270
|
+
// Determine schema from URI using authority-based detection
|
|
271
|
+
const detectedSchema = determineSchemaFromUri(resource);
|
|
272
|
+
// Use provided schemaId or detected schema
|
|
273
|
+
const finalSchemaId = options.schemaId || detectedSchema;
|
|
144
274
|
const editableSettingsResource = getEditableSettingsURI(resource, options);
|
|
145
275
|
const mergedOptions = {
|
|
146
276
|
...options,
|
|
147
|
-
|
|
277
|
+
schemaId: finalSchemaId,
|
|
278
|
+
// PRESERVE provided authority (schema-specific) instead of overriding with resource authority
|
|
279
|
+
authority: options.authority || editableSettingsResource.authority,
|
|
148
280
|
query: editableSettingsResource.query,
|
|
149
281
|
// Use editableSettingsResource.fragment if none was explicitly set.
|
|
150
282
|
defaultFragment: options?.defaultFragment ?? editableSettingsResource.fragment,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preferenceUri.js","sources":["../../src/utils/preferenceUri.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"preferenceUri.js","sources":["../../src/utils/preferenceUri.ts"],"sourcesContent":[null],"names":[],"mappings":"wNAAA;AAqBA,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAA,eAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,0BAAA,CAAA,CAAA;;;;;SAKjC,sBAA0B,CAAA,SAAA,EAAA;UAC1B,SAAA;IACA,KAAA,iBAAA,CAAuB,eAAA;MACvB,OAAA,oBAAsB,CAAA,aAAA;IACtB,KAAA,iBAAA,CAAA,kBAA0B;AAC7B,MAAE,OAAA,oBAAA,CAAA,UAAA;AAEH,IAAA,KAAA,iBAAA,CAAA,eAAA;;;AAGG,IAAA,KAAA,iBAAA,CAAA,gBAAA;AACH,IAAA,KAAS,iBAAA,CAAA,YAAuB;IAC5B,KAAA,iBAAoB,CAAA,QAAA;aACX,oBAAkB,CAAA,QAAA;;aAElB,IAAA;;;;;;;SAOL,sBAAuB,CAAA,QAAQ,EAAA;kBAC3B;AACJ,IAAA,KAAA,oBAAA,CAAA,aAAA;aACI,iBAAa,CAAA,eAAA;IACrB,KAAC,oBAAA,CAAA,UAAA;AACL,MAAC,OAAA,iBAAA,CAAA,kBAAA;AAED,IAAA,KAAA,oBAAA,CAAA,MAAA;;AAEG,IAAA,KAAA,oBAAA,CAAA,QAAA;AACH,MAAA,OAAS,iBAAA,CAAsB,QAAC;IAC5B;aACS,iBAAA,CAAA,eAAqB;;;;;;;;AAQ1B,SAAA,sBAAA,CAAA,QAAA,EAAA;AACI;QACP,mBAAA,GAAA,sBAAA,CAAA,QAAA,CAAA,SAAA,CAAA;AACL,EAAC,IAAA,mBAAA,EAAA;AAED,IAAA,OAAA,mBAAA;;;AAGG,EAAA,IAAA,QAAA,CAAA,KAAA,EAAA;AACH,IAAA,MAAS,WAAA,GAAA,IAAA,eAAoC,CAAA,QAAA,CAAA,KAAA,CAAA;IACzC,MAAA,YAAA,GAAA,WAAA,CAAA,GAAA,CAAA,eAAA,CAAA;IACA,IAAA,YAAM,EAAA;MACN,QAAI,YAAA,CAAmB,WAAG,EAAA;AACtB,QAAA,KAAA;UACH,OAAA,oBAAA,CAAA,MAAA;QAED,KAAA,YAAA;AACA,UAAI,OAAS,oBAAQ,CAAA,UAAA;QACjB,KAAA,eAAoB;UACpB,OAAM,oBAAe,CAAA,aAAgB;QACrC,KAAI,UAAA;AACA,UAAA,OAAA,oBAAqB,CAAA,QAAa;AAC9B,QAAA;qCACW,CAAA,aAAqB;AAChC;;AAEA,EAAA;;AAEA,EAAA,IAAA,QAAA,CAAA,QAAK,EAAA;uBACD,GAAA,QAAO,CAAA,QAAA,CAAA,WAAqB,EAAS;AACzC,IAAA,IAAA,aAAA,CAAA,QAAA,CAAA,OAAA,CAAA,EAAA;iCACW,CAAA,MAAA;;QAEnB,aAAC,CAAA,QAAA,CAAA,YAAA,CAAA,EAAA;MACJ,OAAA,oBAAA,CAAA,UAAA;IAED;AACA,IAAA,IAAI,aAAS,CAAA,QAAW,CAAA,MAAA,CAAA,EAAA;aACpB,oBAAsB,CAAA;AACtB,IAAA;;;AAGA,EAAA,OAAA,oBAAkB,CAAA,aAAS;;;AAG3B;;;SAGH,6BAAA,CAAA,WAAA,EAAA;MAED,CAAA,WAAA,EAAA;IACA,OAAO,EAAA;AACX,EAAC;AAED;;;AAGG;AACH,EAAA,KAAA,MAAS,CAAA,GAAA,EAAA,KAAA,CAAA,IAAA,MAAA,CAAA,OAA8B,EAAA,EAAA;IACnC,IAAI,CAAC,sBAAc,CAAA,GAAA,CAAA,EAAA;AACf,MAAA,cAAU,CAAA,MAAA,CAAA,GAAA,EAAA,KAAA,CAAA;IACd;;AAGA,EAAA,OAAA,cAAmB;AACnB;;AAGA;AACI;AACI;;;AAIR;AACJ;AAEA;;;;;;;;;AASG,QAAA,OAAA,gCAAA,CAAA,GAAA;;;;oBAOc,GAAA,QAAA,CAAA,IAAA,CAAoB,KAAC,CAAA,GAAA,CAAA,CAAA,MAAa,CAAA,OAAA,CAAA;kBACnC,CAAA,MAAO,KAAA,CAAA,EAAA;AACX,IAAA,OAAA,gCAAA,CAAA,GAAA;;mBAEI,GAAM,YAAA,CAAA,YAAA,CAAA,MAAA,GAAA,CAAA,CAAA,CAAA,WAAA,EAAA;;MAEjB,oBAAA,CAAA,GAAA,CAAA,WAAA,CAAA,EAAA;;AAGD;AACA,IAAA,IAAI,YAAY,CAAC,MAAM,IAAA,CAAK;aACxB,YAAO,CAAA,YAAA,CAAA,MAAA,GAAiC,CAAA,CAAA;IAC5C;AAEA;IAEA,OAAA,gCAAA,CAAA,GAAA;AACA,EAAA;;;AAGI,EAAA,IAAA,oBAAiB,CAAA,OAAM,CAAI;;;;UAI3B,OAAO,GAAA,WAAA,CAAA,OAAA,CAAA,SAAiC,EAAG,EAAC,CAAA;IAChD,OAAC,OAAA,IAAA,gCAAA,CAAA,GAAA;;;AAID,EAAA,uCAAoC,CAAA,GAAA;;SAEhC,qBAAA,CAAA,MAAA,EAAA,OAAA,EAAA;;cAEM,GAAA,oBAAsB,CAAA,aAAQ;AACpC,EAAA,IAAA,OAAA,CAAA,QAAc,EAAA;IAClB,IAAC,OAAA,OAAA,CAAA,QAAA,KAAA,QAAA,EAAA;MAED,QAAA,OAAA,CAAA,QAAA,CAAA,WAAA,EAAA;QACA,KAAO,QAAA;AACX,UAAC,QAAA,GAAA,oBAAA,CAAA,MAAA;AAED,UAAM;QACF,KAAA,YAAA;AACA,UAAI,QAAQ,GAAyB;AAErC,UAAI;AACA,QAAA;AACI,UAAA,QAAA,uBAAyB,CAAA,aAAgB;AACrC,UAAA;AACI,QAAA,KAAA,UAAA;qBACA,oBAAM,CAAA,QAAA;AACV,UAAA;AACI,QAAA;qBACA,oBAAM,CAAA,aAAA;AACV;AACI,IAAA,CAAA,MAAA;wBACA,CAAA,QAAM;AACV,IAAA;AACI,EAAA;;AAEJ,EAAA,MAAA,eAAA,GAAA,sBAAA,CAAA,QAAA,CAAA;AACI,EAAA,MAAA,SAAA,GAAA,OAAA,CAAQ,SAAG,IAAA,eAAqB;iBACvC,GAAA,OAAA,CAAA,aAAA,IAAA,gCAAA,CAAA,GAAA;;qBACG,GAAA,6BAAA,CAAA,OAAA,CAAA,KAAA,CAAA;AACJ,EAAA,QAAA,MAAA;SACH,CAAA;MACJ,OAAA,GAAA,CAAA,IAAA,CAAA;QAED,MAAA,EAAA,SAAA;AACA,QAAA;AACA,QAAA,mBAAkB,CAAA;QAElB,KAAM,EAAA,aAAY;QAClB,QAAA,EAAA,OAAA,CAAA;OACA,CAAA;IAEA,KAAA,CAAA;AACI,MAAA,OAAA,GAAA,CAAA,IAAA,CAAA;cACI,EAAA,SAAW;AACP,QAAA,SAAA;gBACA,EAAA,SAAS,CAAA,sBAAA,CAAA;4BACC;AACV,QAAA,QAAA,EAAA,OAAO,CAAA;;AAEV,IAAA;AACL,MAAA,OAAA,GAAA,CAAA,IAAA,CAAA;cACI,EAAA,SAAW;AACP,QAAA,SAAA;gBACA,EAAA,SAAS,CAAA,cAAA,CAAA;4BACC;AACV,QAAA,QAAA,EAAA,OAAO,CAAA;;AAEV;AACL;SACI,sBAAgB,CAAA,QAAA,EAAA,OAAA,GAAA;AACZ,EAAA,UAAA,EAAA;;;AAGA,EAAA,IAAA;;AAEH,GAAA,GAAA,OAAA;MACR,OAAA,EAAA,WAAA,EAAA;AACL;AAEA,IAAA,QAAM,GAAA,QAAU,GAAA,QAAA,CAAA,MACZ,CAAA,CAAA,CAAA,EAAA,mBACkD,CAAA,CAAA,CAAA,GAAU,OAAO,CAAA,WAAE;;AAGrE;AACA,EAAA,IAAA,WAAa,GAAA,OAAA,CAAW,KAAG,IAAA,QAAA,CAAA,KAAA,IAAA,EAAA;;QAEvB,UAAQ;MACX,OAAA,CAAA,QAAA,EAAA;IAED,UAAA,CAAA,IAAA,CAAA,CAAA,cAAA,EAAA,kBAAA,CAAA,OAAsD,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA;;MAGtD,OAAA,CAAA,cAAA,IAAA,OAAA,CAAA,cAAkD,CAAA,MAAA,GAAA,CAAA,EAAA;;AAElD,IAAA,MAAI,mBAAmB,GAAA,OAAA,CAAA,cAAA,CAAA,IAAA,CAAA,GAAA,CAAA;AACnB,IAAA,UAAA,CAAA,IAAW,CAAA,CAAA,oBAAsB,EAAA,kBAAmB,CAAA,mBAAqB,CAAA,CAAA,CAAA,CAAA;;AAE7E;gBACI,CAAA,MAAA,GAAA,CAAA,EAAA;UACA,eAAM,GAAA,UAAsB,CAAA,IAAO,CAAC,GAAA,CAAA;QACpC,WAAW,EAAA;;MAGf,IAAA;AACA,QAAI,mBAAiB,qBAAO,CAAA,WAAA,CAAA;QACxB,WAAM,GAAA,kBAAkB,CAAA,CAAU,eAAW,CAAA,CAAA,EAAA,eAAA,CAAA,CAAA,CAAA;QAC7C,MAAI;;AAEA,QAAA,WAAK,GAAA,kBAAA,CAAA,CAAA,EAAA,WAAA,CAAA,CAAA,EAAA,eAAA,CAAA,CAAA,CAAA;AACD,MAAA;;iBAEH,GAAA,kBAAA,CAAA,eAAA,CAAA;AAAC,IAAA;;;qBAGD,GAAA,QAAA,IAAA,QAAA,CAAA,QAAA;;sBACG,GAAA,QAAA,CAAA,SAAA;AACJ;QACJ,WAAC,GAAA,GAAA,CAAA,IAAA,CAAA;IACL,MAAC,EAAA,QAAA,CAAA,MAAA;IAED,SAAA,EAAA,cAAA;AACA;IAEA,IAAA,EAAA,QAAA,CAAA,IAAA;AACA,IAAA,KAAA,EAAM,WAAA;IAEN,QAAA,EAAA;AACA,GAAA,CAAA;;;SAGI,WAAM;AACN;AACA,SAAQ,eAAe,CAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA;AAC1B;QACD,cAAA,GAAA,sBAAuC,CAAA,QAAA,CAAA;;AAEvC,EAAA,MAAA,gBAAmB,OAAA,CAAA,QAAA,IAAA,cAAA;AACvB,EAAC,MAAA,wBAAA,GAAA,sBAAA,CAAA,QAAA,EAAA,OAAA,CAAA;AAED,EAAA,mBAAgB,GAAA;IAKZ,GAAA,OAAA;AACA,IAAA,uBAAuB;;AAGvB,IAAA,mBAAmB,SAAG,IAAQ,wBAA0B,CAAC,SAAA;IAEzD,KAAA,EAAM,8BAA2B;AACjC;AACI,IAAA,eAAU,EAAA,OAAA,EAAA,eAAA,IAAA,wBAAA,CAAA,QAAA;AACV;iBACA,EAAA,OAAA,EAAA,aAAA,IAAA,oCAAA,CAAA,wBAA8F;AAC9F,GAAA;QACA,0BAAO,GAAA,qBAA8B,CAAA,MAAA,EAAA,aAAA,CAAA;SACrC;AACA,IAAA,qBAAiB,EAAA,wBAAwB;2BACzC,EAAA;;"}
|
|
@@ -14,6 +14,12 @@ export declare const resourcePath: (resource: (URI | UriComponents) | string) =>
|
|
|
14
14
|
export type ResourceUriParams = {
|
|
15
15
|
resourceType: string;
|
|
16
16
|
resourceId: string;
|
|
17
|
+
/**
|
|
18
|
+
* Optional field name to use instead of '_id' when converting to database query.
|
|
19
|
+
* Examples: 'appId', 'email', 'slug', 'name', etc.
|
|
20
|
+
* If not provided, defaults to '_id'
|
|
21
|
+
*/
|
|
22
|
+
idField?: string;
|
|
17
23
|
};
|
|
18
24
|
/**
|
|
19
25
|
* Generate a consistent hash ID for a resource
|
|
@@ -60,12 +66,14 @@ export declare function normalizeResourceUri(uri: URI): URI;
|
|
|
60
66
|
* @param resourceId The resource ID
|
|
61
67
|
* @param organizationId Organization ID or name (optional, not needed for organization resources)
|
|
62
68
|
* @param options Additional options for URI creation
|
|
63
|
-
* @returns A properly formatted resource URI with
|
|
69
|
+
* @returns A properly formatted resource URI with the specified ID field and _hashId in query
|
|
64
70
|
*/
|
|
65
71
|
export declare function createStandardResourceUri(resourceType: string, resourceId: string, organizationId?: string, options?: {
|
|
66
72
|
tenantId?: string;
|
|
67
73
|
fragment?: string;
|
|
68
74
|
additionalParams?: Record<string, string>;
|
|
75
|
+
/** Field name to use instead of '_id' (e.g., 'appId', 'email', 'slug') */
|
|
76
|
+
idField?: string;
|
|
69
77
|
}): URI;
|
|
70
78
|
/**
|
|
71
79
|
* Creates a direct resource URI without needing to create and convert a cdecode URI
|
|
@@ -76,4 +84,6 @@ export declare function createDirectResourceUri(resourceType: string, resourceId
|
|
|
76
84
|
fragment?: string;
|
|
77
85
|
useOrgNameParam?: boolean;
|
|
78
86
|
additionalParams?: Record<string, string>;
|
|
87
|
+
/** Field name to use instead of '_id' (e.g., 'appId', 'email', 'slug') */
|
|
88
|
+
idField?: string;
|
|
79
89
|
}): URI;
|
|
@@ -27,12 +27,13 @@ const resourcePath = resource => {
|
|
|
27
27
|
*
|
|
28
28
|
* @param resourceId The resource ID to include in the query
|
|
29
29
|
* @param hashId The hash ID to include in the query
|
|
30
|
-
* @
|
|
30
|
+
* @param idField The field name to use for the resource ID (defaults to '_id')
|
|
31
|
+
* @returns A sorted query string with the specified ID field and _hashId parameters
|
|
31
32
|
*/
|
|
32
|
-
function createConsistentQueryString(resourceId, hashId) {
|
|
33
|
+
function createConsistentQueryString(resourceId, hashId, idField = '_id') {
|
|
33
34
|
// Create an array of parameters and sort them alphabetically to ensure consistent ordering
|
|
34
35
|
// mongo-queryfilter preserves query string parameter order, which affects the hash
|
|
35
|
-
const sortedParams = [`_hashId=${encodeURIComponent(hashId)}`,
|
|
36
|
+
const sortedParams = [`_hashId=${encodeURIComponent(hashId)}`, `${idField}=${encodeURIComponent(resourceId)}`].sort().join('&');
|
|
36
37
|
return sortedParams;
|
|
37
38
|
}
|
|
38
39
|
/**
|
|
@@ -75,7 +76,9 @@ function strictConvertToResourceUri(resource, params) {
|
|
|
75
76
|
// If params are not provided, extract them from the URI
|
|
76
77
|
const resourceParams = params || {
|
|
77
78
|
resourceType: parsedUri.pathSegments.resourceType || '',
|
|
78
|
-
resourceId: parsedUri.pathSegments.resourceId || ''
|
|
79
|
+
resourceId: parsedUri.pathSegments.resourceId || '',
|
|
80
|
+
// Check for detected field information from the parsed URI
|
|
81
|
+
idField: parsedUri.pathSegments.detectedIdField || parsedUri.queryData?.meta_idField || '_id'
|
|
79
82
|
};
|
|
80
83
|
// If we don't have the required parameters, return the original URI
|
|
81
84
|
if (!resourceParams.resourceType || !resourceParams.resourceId) {
|
|
@@ -84,7 +87,8 @@ function strictConvertToResourceUri(resource, params) {
|
|
|
84
87
|
// Get the resource type and ID from params
|
|
85
88
|
const {
|
|
86
89
|
resourceType,
|
|
87
|
-
resourceId
|
|
90
|
+
resourceId,
|
|
91
|
+
idField = '_id'
|
|
88
92
|
} = resourceParams;
|
|
89
93
|
const path = `/${resourceType}`;
|
|
90
94
|
// Extract context for hash generation
|
|
@@ -95,9 +99,9 @@ function strictConvertToResourceUri(resource, params) {
|
|
|
95
99
|
}
|
|
96
100
|
// Generate the hash ID using the provided resource ID and type
|
|
97
101
|
const hashId = generateHashId(resourceType, resourceId, contextData, parsedUri.fragmentData);
|
|
98
|
-
// Create a consistently ordered query string
|
|
99
|
-
const query = createConsistentQueryString(resourceId, hashId);
|
|
100
|
-
// Return URI with
|
|
102
|
+
// Create a consistently ordered query string with the specified field name
|
|
103
|
+
const query = createConsistentQueryString(resourceId, hashId, idField);
|
|
104
|
+
// Return URI with the specified ID field and _hashId in query
|
|
101
105
|
return URI.from({
|
|
102
106
|
scheme: Scheme.CDECODE_RESOURCE,
|
|
103
107
|
authority: parsedUri.authority || 'default',
|
|
@@ -170,7 +174,7 @@ function normalizeResourceUri(uri) {
|
|
|
170
174
|
* @param resourceId The resource ID
|
|
171
175
|
* @param organizationId Organization ID or name (optional, not needed for organization resources)
|
|
172
176
|
* @param options Additional options for URI creation
|
|
173
|
-
* @returns A properly formatted resource URI with
|
|
177
|
+
* @returns A properly formatted resource URI with the specified ID field and _hashId in query
|
|
174
178
|
*/
|
|
175
179
|
function createStandardResourceUri(resourceType, resourceId, organizationId, options) {
|
|
176
180
|
// Normalize resource type to lowercase for consistent lookups
|
|
@@ -179,6 +183,7 @@ function createStandardResourceUri(resourceType, resourceId, organizationId, opt
|
|
|
179
183
|
const tenantId = options?.tenantId || 'default';
|
|
180
184
|
const fragment = options?.fragment || '';
|
|
181
185
|
const additionalParams = options?.additionalParams || {};
|
|
186
|
+
const idField = options?.idField || '_id';
|
|
182
187
|
// Build the path
|
|
183
188
|
const path = `/${resourceType}`;
|
|
184
189
|
// Create context for hash generation
|
|
@@ -191,9 +196,9 @@ function createStandardResourceUri(resourceType, resourceId, organizationId, opt
|
|
|
191
196
|
}
|
|
192
197
|
// Generate the hash ID
|
|
193
198
|
const hashId = generateHashId(normalizedType, resourceId, context, fragment);
|
|
194
|
-
// Create a consistently ordered query string
|
|
195
|
-
const query = createConsistentQueryString(resourceId, hashId);
|
|
196
|
-
// Create the URI with
|
|
199
|
+
// Create a consistently ordered query string with the specified field name
|
|
200
|
+
const query = createConsistentQueryString(resourceId, hashId, idField);
|
|
201
|
+
// Create the URI with the specified ID field and _hashId in the query
|
|
197
202
|
return URI.from({
|
|
198
203
|
scheme: Scheme.CDECODE_RESOURCE,
|
|
199
204
|
authority: tenantId,
|
|
@@ -211,6 +216,7 @@ function createDirectResourceUri(resourceType, resourceId, organizationId, optio
|
|
|
211
216
|
return createStandardResourceUri(resourceType, resourceId, organizationId, {
|
|
212
217
|
tenantId: options?.tenantId,
|
|
213
218
|
fragment: options?.fragment,
|
|
214
|
-
additionalParams: options?.additionalParams
|
|
219
|
+
additionalParams: options?.additionalParams,
|
|
220
|
+
idField: options?.idField
|
|
215
221
|
});
|
|
216
222
|
}export{configureForCurrentBranch,configureForUpcomingBranch,convertToResourceUri,createDirectResourceUri,createStandardResourceUri,generateHashId,normalizeResourceUri,resourcePath,setupResourceUriConfiguration,strictConvertToResourceUri};//# sourceMappingURL=resourceUriConversion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceUriConversion.js","sources":["../../src/utils/resourceUriConversion.ts"],"sourcesContent":[null],"names":[],"mappings":"sNAAA;
|
|
1
|
+
{"version":3,"file":"resourceUriConversion.js","sources":["../../src/utils/resourceUriConversion.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"reviveUri.js","sources":["../../src/utils/reviveUri.ts"],"sourcesContent":[null],"names":[],"mappings":"sEAEM,SAAU,SAAS,CAAC,QAAsC,EAAA;AAC5D,EAAA,IAAA,QAAI,YAAQ,GAAY,EAAG;AACvB,IAAA,OAAA;SACH,IAAA,OAAA,QAAA,KAAA,QAAA,EAAA;AAAM;WACH,GAAA,CAAA,KAAA,CAAA,QAAmB,CAAA;AACnB,EAAA,CAAA,MAAA,IAAA,OAAW,QAAM,KAAQ,QAAE,EAAA;;AACxB,IAAA,OAAA,GAAI,CAAA,MAAO,CAAA;SACd;;;AAGR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles-utils.js","sources":["../../src/utils/roles-utils.ts"],"sourcesContent":[null],"names":[],"mappings":"+MAKM,SAAU,+BAA+B,CAAC,QAAgB,EAAA;
|
|
1
|
+
{"version":3,"file":"roles-utils.js","sources":["../../src/utils/roles-utils.ts"],"sourcesContent":[null],"names":[],"mappings":"+MAKM,SAAU,+BAA+B,CAAC,QAAgB,EAAA;SAC5D,GAAO,CAAA,IAAI,CAAA;AACf,IAAC,MAAA,EAAA,OAAA,CAAA,OAAA;AAED,IAAA,SAAM,EAAA,iBAAU;AAIZ,IAAA,IAAI,eAAkB,CAAA,QAAA,CAAA,CAAA,KAAA;IAEtB;AACI;AACI,SAAA,yBAA6B,CAAC,QAAA,EAAA,MAAgB,GAAA,CAAA,wCAAA;eAC9C;AACJ,EAAA,QAAA,MAAA;AACI,IAAA,KAAA,CAAA;eACA,GAAM,iBAAA,CAAA,eAAA;AACV,MAAA;AACI,IAAA,KAAA,CAAA;eACA,GAAM,iBAAA,CAAA,gBAAA;AACV,MAAA;AACI,IAAA,KAAA,CAAA;eACA,GAAM,iBAAA,CAAA,YAAA;AACV,MAAA;AACI,IAAA,KAAA,CAAA;MACP,SAAA,GAAA,iBAAA,CAAA,QAAA;MAED;;YAEI,IAAA,KAAW,CAAA,CAAA,gBAAkB,EAAA,MAAA,CAAA,CAAA,CAAA;AAC7B;AACH,EAAA,OAAE,GAAA,CAAA,IAAA,CAAA;AACP,IAAC,MAAA,EAAA,OAAA,CAAA,OAAA;;;;"}
|