@adminide-stack/core 12.0.4-alpha.4 → 12.0.4-alpha.402

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.
Files changed (123) hide show
  1. package/lib/constants/configuration.d.ts +4 -0
  2. package/lib/constants/configuration.js +5 -1
  3. package/lib/constants/configuration.js.map +1 -1
  4. package/lib/constants/defaultIds.d.ts +4 -0
  5. package/lib/constants/defaultIds.js +6 -0
  6. package/lib/constants/defaultIds.js.map +1 -0
  7. package/lib/constants/index.d.ts +1 -0
  8. package/lib/constants/routes.d.ts +8 -0
  9. package/lib/constants/routes.js +16 -1
  10. package/lib/constants/routes.js.map +1 -1
  11. package/lib/constants/urls.d.ts +2 -1
  12. package/lib/constants/urls.js +1 -0
  13. package/lib/constants/urls.js.map +1 -1
  14. package/lib/core/BaseDisposable.d.ts +91 -0
  15. package/lib/core/BaseDisposable.js +97 -0
  16. package/lib/core/BaseDisposable.js.map +1 -0
  17. package/lib/core/configurations/configuration.d.ts +2 -1
  18. package/lib/core/configurations/configuration.js.map +1 -1
  19. package/lib/core/configurations/events/ConfigurationChangeEvent.js.map +1 -1
  20. package/lib/core/configurations/examples/configuration-wrapper-example.d.ts +67 -0
  21. package/lib/core/configurations/examples/configuration-wrapper.test.d.ts +1 -0
  22. package/lib/core/configurations/helpers/configuration.d.ts +1 -1
  23. package/lib/core/configurations/helpers/configuration.js.map +1 -1
  24. package/lib/core/configurations/index.d.ts +2 -0
  25. package/lib/core/configurations/models/ConfigurationModel.d.ts +26 -1
  26. package/lib/core/configurations/models/ConfigurationModel.js +123 -8
  27. package/lib/core/configurations/models/ConfigurationModel.js.map +1 -1
  28. package/lib/core/configurations/models/ConfigurationModel.multi-identifier.test.d.ts +1 -0
  29. package/lib/core/configurations/models/ConfigurationModelWrapper.d.ts +47 -0
  30. package/lib/core/configurations/models/ConfigurationModelWrapper.js +130 -0
  31. package/lib/core/configurations/models/ConfigurationModelWrapper.js.map +1 -0
  32. package/lib/core/configurations/models/ConfigurationModelWrapper.spec.d.ts +1 -0
  33. package/lib/core/configurations/models/ConfigurationModelWrapper.test.d.ts +1 -0
  34. package/lib/core/configurations/models/index.d.ts +1 -0
  35. package/lib/core/configurations/models/override.compound.test.d.ts +1 -0
  36. package/lib/core/configurations/models/override.edgecase.test.d.ts +1 -0
  37. package/lib/core/configurations/models/override.keys.test.d.ts +1 -0
  38. package/lib/core/configurations/models/override.strict.test.d.ts +1 -0
  39. package/lib/core/configurations/parser/configurationParser.d.ts +23 -0
  40. package/lib/core/configurations/parser/configurationParser.js +209 -0
  41. package/lib/core/configurations/parser/configurationParser.js.map +1 -0
  42. package/lib/core/configurations/parser/index.d.ts +1 -0
  43. package/lib/core/configurations/utils/QUICK_REFERENCE.d.ts +103 -0
  44. package/lib/core/configurations/utils/configurationExtractor.d.ts +224 -0
  45. package/lib/core/configurations/utils/configurationExtractor.js +315 -0
  46. package/lib/core/configurations/utils/configurationExtractor.js.map +1 -0
  47. package/lib/core/configurations/utils/configurationExtractor.test.d.ts +1 -0
  48. package/lib/core/configurations/utils/index.d.ts +5 -0
  49. package/lib/core/configurations/utils/model-creation-examples.d.ts +36 -0
  50. package/lib/core/configurations/utils/preferences-service-integration.d.ts +54 -0
  51. package/lib/core/configurations/utils/usage-examples.d.ts +39 -0
  52. package/lib/core/disposable.js +4 -2
  53. package/lib/core/disposable.js.map +1 -1
  54. package/lib/core/event.js.map +1 -1
  55. package/lib/core/in-memory-providers/cde-code-provider.js.map +1 -1
  56. package/lib/core/in-memory-providers/in-memory-value-store.js.map +1 -1
  57. package/lib/core/index.d.ts +1 -0
  58. package/lib/core/organization/configuration.js +1 -1
  59. package/lib/core/organization/configuration.js.map +1 -1
  60. package/lib/core/organization/helpers/organization-helpers.js.map +1 -1
  61. package/lib/core/organization/organization.d.ts +3 -1
  62. package/lib/core/organization/organization.js +8 -1
  63. package/lib/core/organization/organization.js.map +1 -1
  64. package/lib/core/path.js.map +1 -1
  65. package/lib/errors/auth-error.js.map +1 -1
  66. package/lib/index.js +1 -1
  67. package/lib/interfaces/configuration/configuration.js.map +1 -1
  68. package/lib/interfaces/configuration/configurationRegistry.d.ts +5 -0
  69. package/lib/interfaces/configuration/configuraton-service.d.ts +10 -2
  70. package/lib/interfaces/epicDependencies.d.ts +14 -0
  71. package/lib/interfaces/index.d.ts +1 -0
  72. package/lib/interfaces/organization/organization-context-service.d.ts +1 -1
  73. package/lib/interfaces/organization/organization-context.js +4 -1
  74. package/lib/interfaces/organization/organization-context.js.map +1 -1
  75. package/lib/interfaces/organization/organizations-context.d.ts +1 -0
  76. package/lib/interfaces/organization-key-context.d.ts +1 -1
  77. package/lib/interfaces/permissions.d.ts +2 -2
  78. package/lib/interfaces/permissions.js.map +1 -1
  79. package/lib/modules/account-api/enums/index.js.map +1 -1
  80. package/lib/modules/billing-api/enums/index.js.map +1 -1
  81. package/lib/modules/index.d.ts +0 -1
  82. package/lib/services/abstract-configuration.d.ts +9 -1
  83. package/lib/services/abstract-configuration.js +24 -1
  84. package/lib/services/abstract-configuration.js.map +1 -1
  85. package/lib/services/abstract-organization-context-service.js +2 -2
  86. package/lib/services/abstract-organization-context-service.js.map +1 -1
  87. package/lib/utils/cdecodeUri.d.ts +18 -1
  88. package/lib/utils/cdecodeUri.js +156 -25
  89. package/lib/utils/cdecodeUri.js.map +1 -1
  90. package/lib/utils/configuration-utils.js.map +1 -1
  91. package/lib/utils/date-utils.js.map +1 -1
  92. package/lib/utils/flatten-utils.js.map +1 -1
  93. package/lib/utils/generate-uri.js.map +1 -1
  94. package/lib/utils/generatePath.js.map +1 -1
  95. package/lib/utils/generateUserAlias.js.map +1 -1
  96. package/lib/utils/generated-settings-id.d.ts +1 -1
  97. package/lib/utils/generated-settings-id.js +4 -6
  98. package/lib/utils/generated-settings-id.js.map +1 -1
  99. package/lib/utils/getLogger.js.map +1 -1
  100. package/lib/utils/getUserAlias.js.map +1 -1
  101. package/lib/utils/index.d.ts +1 -0
  102. package/lib/utils/nodeContext.d.ts +18 -3
  103. package/lib/utils/nodeContext.js +28 -6
  104. package/lib/utils/nodeContext.js.map +1 -1
  105. package/lib/utils/omit-deep.js.map +1 -1
  106. package/lib/utils/preferenceUri.d.ts +13 -6
  107. package/lib/utils/preferenceUri.js +199 -19
  108. package/lib/utils/preferenceUri.js.map +1 -1
  109. package/lib/utils/resourceUriConversion.d.ts +11 -1
  110. package/lib/utils/resourceUriConversion.js +19 -13
  111. package/lib/utils/resourceUriConversion.js.map +1 -1
  112. package/lib/utils/reviveUri.js.map +1 -1
  113. package/lib/utils/roles-utils.js.map +1 -1
  114. package/lib/utils/slug-utils.d.ts +87 -0
  115. package/lib/utils/slug-utils.js +95 -0
  116. package/lib/utils/slug-utils.js.map +1 -0
  117. package/lib/utils/splitCdecodeUri.js +30 -12
  118. package/lib/utils/splitCdecodeUri.js.map +1 -1
  119. package/lib/utils/utils.js.map +1 -1
  120. package/lib/utils/validations.js.map +1 -1
  121. package/package.json +3 -3
  122. package/lib/modules/inbox/enums/index.js +0 -26
  123. package/lib/modules/inbox/enums/index.js.map +0 -1
@@ -1,7 +1,22 @@
1
- import { IConfigurationNodeContextInput, RegistryExtensions, ConfigurationSchemaId, ServerContext } from 'common';
2
- type UserContext = Pick<ServerContext['userContext'], 'userAlias' | 'orgId' | 'tenantId'>;
3
- export declare function buildNodeContext(userContext: UserContext, schemaId?: ConfigurationSchemaId, extensionName?: RegistryExtensions): IConfigurationNodeContextInput;
1
+ import { IConfigurationNodeContextInput, ContributionSchemaId, ServerContext, SystemContributionExtensionNames } from 'common';
2
+ type UserContext = Pick<ServerContext['userContext'], 'userAlias' | 'orgId' | 'tenantId'> & {
3
+ tenantName?: string;
4
+ };
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;
6
8
  export declare function buildRoleNodeContext(userContext: UserContext): IConfigurationNodeContextInput;
9
+ export declare function buildUiLayoutNodeContext(userContext: UserContext): IConfigurationNodeContextInput;
10
+ /**
11
+ * Build context for a dynamic extension by extension ID
12
+ */
13
+ export declare function buildExtensionNodeContext(userContext: UserContext, extensionName: string, schemaId?: ContributionSchemaId): IConfigurationNodeContextInput;
14
+ /**
15
+ * Build context for extension settings registry
16
+ */
17
+ export declare function buildExtensionSettingsNodeContext(userContext: UserContext): IConfigurationNodeContextInput;
18
+ /**
19
+ * Helper to check if an extension name is a system contribution
20
+ */
21
+ export declare function isSystemContribution(extensionName: string): boolean;
7
22
  export {};
@@ -1,18 +1,40 @@
1
- import {ConfigurationSchemaId,RegistryExtensions}from'common';function buildNodeContext(userContext, schemaId = ConfigurationSchemaId.Configuration, extensionName = RegistryExtensions.DefaultConfiguration) {
1
+ import {ContributionSchemaId,SystemContributionExtensionNames}from'common';function buildNodeContext(userContext, schemaId = ContributionSchemaId.Configuration, extensionName = SystemContributionExtensionNames.All) {
2
2
  return {
3
- schemaId: schemaId,
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, ConfigurationSchemaId.Permission, RegistryExtensions.DefaultConfiguration);
12
+ return buildNodeContext(userContext, ContributionSchemaId.Permission, SystemContributionExtensionNames.All);
12
13
  }
13
14
  function buildPolicyNodeContext(userContext) {
14
- return buildNodeContext(userContext, ConfigurationSchemaId.Policy, RegistryExtensions.DefaultConfiguration);
15
+ return buildNodeContext(userContext, ContributionSchemaId.Policy, SystemContributionExtensionNames.All);
15
16
  }
16
17
  function buildRoleNodeContext(userContext) {
17
- return buildNodeContext(userContext, ConfigurationSchemaId.UserRole, RegistryExtensions.DefaultConfiguration);
18
- }export{buildNodeContext,buildPermissionNodeContext,buildPolicyNodeContext,buildRoleNodeContext};//# sourceMappingURL=nodeContext.js.map
18
+ return buildNodeContext(userContext, ContributionSchemaId.UserRole, SystemContributionExtensionNames.All);
19
+ }
20
+ function buildUiLayoutNodeContext(userContext) {
21
+ return buildNodeContext(userContext, ContributionSchemaId.UiLayout, SystemContributionExtensionNames.All);
22
+ }
23
+ /**
24
+ * Build context for a dynamic extension by extension ID
25
+ */
26
+ function buildExtensionNodeContext(userContext, extensionName, schemaId = ContributionSchemaId.Configuration) {
27
+ return buildNodeContext(userContext, schemaId, extensionName);
28
+ }
29
+ /**
30
+ * Build context for extension settings registry
31
+ */
32
+ function buildExtensionSettingsNodeContext(userContext) {
33
+ return buildNodeContext(userContext, ContributionSchemaId.Configuration, SystemContributionExtensionNames.Extension);
34
+ }
35
+ /**
36
+ * Helper to check if an extension name is a system contribution
37
+ */
38
+ function isSystemContribution(extensionName) {
39
+ return Object.values(SystemContributionExtensionNames).includes(extensionName);
40
+ }export{buildExtensionNodeContext,buildExtensionSettingsNodeContext,buildNodeContext,buildPermissionNodeContext,buildPolicyNodeContext,buildRoleNodeContext,buildUiLayoutNodeContext,isSystemContribution};//# sourceMappingURL=nodeContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodeContext.js","sources":["../../src/utils/nodeContext.ts"],"sourcesContent":[null],"names":[],"mappings":"8DAGgB,SAAA,gBAAgB,CAC5B,WAAwB,EACxB,QAAQ,GAAG,qBAAqB,CAAC,aAAa,EAC9C,aAAoC,GAAA,kBAAkB,CAAC,oBAAoB,EAAA;SAEpE;AACH,IAAA,QAAA,EAAA,QAAkB;YACV,EAAA,WAAa,EAAA,QAAU;iBAClB;SACR,EAAA,WAAa,EAAA,KAAO;aAChB,EAAA,WAAa,EAAA;;AAE9B;AAEM,SAAU,0BAA0B,CAAC,WAAwB,EAAA;AAC/D,EAAA,OAAA,gBAAuB,CAAA,WAAY,EAAA,qBAAuB,CAAA,UAAW,EAAA,kBAAoB,CAAA,oBAAqB,CAAA;AAClH;AACM,SAAU,sBAAsB,CAAC,WAAwB,EAAA;AAC3D,EAAA,OAAA,gBAAuB,CAAA,WAAY,EAAA,qBAAuB,CAAA,MAAO,EAAA,kBAAoB,CAAA,oBAAqB,CAAA;AAC9G;AAEM,SAAU,oBAAoB,CAAC,WAAwB,EAAA;AACzD,EAAA,OAAA,gBAAuB,CAAA,WAAY,EAAA,qBAAuB,CAAA,QAAS,EAAA,kBAAoB,CAAA,oBAAqB,CAAA;AAChH"}
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":"sCACgB,SAAA,QAAQ,CAAC,UAAe,EAAE,WAAqB,EAAA;WAClD,MAAA,CAAA,KAAY,EAAA;AACjB,IAAA,IAAA,SAAS,OAAI,UAAiB,QAAA,EAAA;AAC1B,MAAA,WAAA,CAAA,OAAmB,CAAA,GAAA,IAAE;AACjB,QAAA,OAAA,KAAA,CAAA,GAAY,CAAA;AAChB,OAAA,CAAA;;;AAIR,EAAA,OAAA,wBAAqB,EAAU,MAAE,CAAA;AACrC"}
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,18 +1,25 @@
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
+ export interface IExtendedPreferencesOpenOptionsInput extends IPreferencesOpenOptionsInput {
4
+ /** Schema ID for configuration schema validation */
5
+ schemaId?: string | ContributionSchemaId;
6
+ /** Array of extension names for multi-extension configurations */
7
+ extensionNames?: string[];
8
+ }
3
9
  /**
4
10
  * Tries to parse the "extension name" from a URI path that might look like:
5
11
  * /myExtension/settings.json
6
12
  * /defaultsettings/resourceSettings.json
7
13
  * /someFolder/myExtension/organizationSettings.json
8
14
  *
9
- * If the last path segment is one of the "known" settings files, return
10
- * the second-to-last segment as the extension name. Otherwise, return "settings" by default.
15
+ * Priority-based detection:
16
+ * 1. Authority-based schema detection (primary)
17
+ * 2. Path-based parsing (fallback)
11
18
  */
12
19
  export declare function parseExtensionFromDefaultSettingsUri(resource: URI): string;
13
- export declare function getDefaultSettingsURI(target: ConfigurationTarget, options: IPreferencesOpenOptionsInput): URI;
14
- export declare function getEditableSettingsURI(resource: URI, options?: IPreferencesOpenOptionsInput): URI;
15
- export declare function getOpenSettings(target: ConfigurationTarget, resource: URI, options: IPreferencesOpenOptionsInput): {
20
+ export declare function getDefaultSettingsURI(target: ConfigurationTarget, options: IExtendedPreferencesOpenOptionsInput): URI;
21
+ export declare function getEditableSettingsURI(resource: URI, options?: IExtendedPreferencesOpenOptionsInput): URI;
22
+ export declare function getOpenSettings(target: ConfigurationTarget, resource: URI, options: IExtendedPreferencesOpenOptionsInput): {
16
23
  editableSettingsInput: URI;
17
24
  defaultPreferencesInput: URI;
18
25
  };
@@ -1,18 +1,133 @@
1
- import {URI}from'@vscode-alt/monaco-editor/esm/vs/base/common/uri.js';import {ConfigurationContributionNames}from'common';/* 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
+ }
88
+ /**
89
+ * Filter out meta-related parameters from a query string.
90
+ * Meta parameters should not appear in defaultPreferencesInput URIs.
91
+ */
92
+ function filterMetaParametersFromQuery(queryString) {
93
+ if (!queryString) {
94
+ return '';
95
+ }
96
+ // Parse the query string into parameters
97
+ const params = new URLSearchParams(queryString);
98
+ const filteredParams = new URLSearchParams();
99
+ // Keep only non-meta parameters
100
+ for (const [key, value] of params.entries()) {
101
+ if (!isReservedCdecodeParam(key)) {
102
+ filteredParams.append(key, value);
103
+ }
104
+ }
105
+ return filteredParams.toString();
106
+ }
3
107
  /**
4
108
  * Tries to parse the "extension name" from a URI path that might look like:
5
109
  * /myExtension/settings.json
6
110
  * /defaultsettings/resourceSettings.json
7
111
  * /someFolder/myExtension/organizationSettings.json
8
112
  *
9
- * If the last path segment is one of the "known" settings files, return
10
- * the second-to-last segment as the extension name. Otherwise, return "settings" by default.
113
+ * Priority-based detection:
114
+ * 1. Authority-based schema detection (primary)
115
+ * 2. Path-based parsing (fallback)
11
116
  */
12
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
13
128
  const pathSegments = resource.path.split('/').filter(Boolean);
14
129
  if (pathSegments.length === 0) {
15
- return 'settings';
130
+ return SystemContributionExtensionNames.All;
16
131
  }
17
132
  const lastSegment = pathSegments[pathSegments.length - 1].toLowerCase();
18
133
  // 1) If the last segment is among the known settings files (ends with .json)
@@ -23,7 +138,7 @@ function parseExtensionFromDefaultSettingsUri(resource) {
23
138
  return pathSegments[pathSegments.length - 2];
24
139
  }
25
140
  // If there's only one segment overall, fallback
26
- return ConfigurationContributionNames.Settings;
141
+ return SystemContributionExtensionNames.All;
27
142
  }
28
143
  // 2) If it still ends with .json but not a standard settings file, just remove ".json"
29
144
  // and treat that as the extension name. (Optional logic)
@@ -32,36 +147,65 @@ function parseExtensionFromDefaultSettingsUri(resource) {
32
147
  // This snippet assumes you want "otherFile" from the last segment. If you instead want
33
148
  // the second-to-last segment as an "extensionName," just adjust accordingly.
34
149
  const trimmed = lastSegment.replace(/\.json$/, '');
35
- return trimmed || ConfigurationContributionNames.Settings;
150
+ return trimmed || SystemContributionExtensionNames.All;
36
151
  }
37
152
  // 3) If no recognized .json file, just fallback
38
- return ConfigurationContributionNames.Settings;
153
+ return SystemContributionExtensionNames.All;
39
154
  }
40
155
  function getDefaultSettingsURI(target, options) {
41
- const extension = options.extensionName || ConfigurationContributionNames.Settings;
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;
184
+ // Filter out meta parameters from the query since we don't want them in defaultPreferencesInput
185
+ const filteredQuery = filterMetaParametersFromQuery(options.query);
42
186
  switch (target) {
43
187
  case 4 /* ConfigurationTarget.ORGANIZATION */:
44
188
  return URI.from({
45
189
  scheme: 'cdecode',
46
- authority: options.authority,
190
+ authority,
47
191
  path: `/${extension}/organizationSettings.json`,
48
- query: options.query,
192
+ query: filteredQuery,
49
193
  fragment: options.defaultFragment
50
194
  });
51
195
  case 5 /* ConfigurationTarget.ORGANIZATION_RESOURCE */:
52
196
  return URI.from({
53
197
  scheme: 'cdecode',
54
- authority: options.authority,
198
+ authority,
55
199
  path: `/${extension}/resourceSettings.json`,
56
- query: options.query,
200
+ query: filteredQuery,
57
201
  fragment: options.defaultFragment
58
202
  });
59
203
  default:
60
204
  return URI.from({
61
205
  scheme: 'cdecode',
62
- authority: options.authority,
206
+ authority,
63
207
  path: `/${extension}/settings.json`,
64
- query: options.query,
208
+ query: filteredQuery,
65
209
  fragment: options.defaultFragment
66
210
  });
67
211
  }
@@ -77,15 +221,45 @@ function getEditableSettingsURI(resource, options = {
77
221
  // If there's a subFragment, stitch it into the main fragment
78
222
  fragment = fragment ? fragment.concat(`.${options.subFragment}`) : options.subFragment;
79
223
  }
80
- if (!options.query) ;
224
+ // Build query string with meta parameters if provided
225
+ let queryString = options.query || resource.query || '';
226
+ // Add meta parameters to query string if provided
227
+ const metaParams = [];
228
+ if (options.schemaId) {
229
+ metaParams.push(`meta_schemaId=${encodeURIComponent(options.schemaId)}`);
230
+ }
231
+ if (options.extensionNames && options.extensionNames.length > 0) {
232
+ // Join multiple extension names with commas and encode
233
+ const extensionNamesValue = options.extensionNames.join(',');
234
+ metaParams.push(`meta_extensionNames=${encodeURIComponent(extensionNamesValue)}`);
235
+ }
236
+ // Combine existing query with meta parameters
237
+ if (metaParams.length > 0) {
238
+ const metaQueryString = metaParams.join('&');
239
+ if (queryString) {
240
+ // If there's existing query, decode it first, add meta params, then re-encode
241
+ try {
242
+ const existingQuery = decodeURIComponent(queryString);
243
+ queryString = encodeURIComponent(`${existingQuery}&${metaQueryString}`);
244
+ } catch {
245
+ // If decoding fails, just append
246
+ queryString = encodeURIComponent(`${queryString}&${metaQueryString}`);
247
+ }
248
+ } else {
249
+ queryString = encodeURIComponent(metaQueryString);
250
+ }
251
+ }
81
252
  // Fall back to the resource's existing fragment if neither fragment nor subFragment is provided
82
253
  const finalFragment = fragment ?? resource.fragment;
83
- // Create a new URI with the possibly updated fragment, make sure to include authority.
254
+ // Use schema-specific authority from options if provided, otherwise fall back to resource authority
255
+ const finalAuthority = resource.authority;
256
+ // Create a new URI with the possibly updated fragment and query, make sure to include authority.
84
257
  const newResource = URI.from({
85
258
  scheme: resource.scheme,
86
- authority: resource.authority,
259
+ authority: finalAuthority,
260
+ // Use schema-specific authority
87
261
  path: resource.path,
88
- query: resource.query,
262
+ query: queryString,
89
263
  fragment: finalFragment
90
264
  });
91
265
  // Always convert to resource-based URI
@@ -93,10 +267,16 @@ function getEditableSettingsURI(resource, options = {
93
267
  return newResource;
94
268
  }
95
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;
96
274
  const editableSettingsResource = getEditableSettingsURI(resource, options);
97
275
  const mergedOptions = {
98
276
  ...options,
99
- authority: editableSettingsResource.authority,
277
+ schemaId: finalSchemaId,
278
+ // PRESERVE provided authority (schema-specific) instead of overriding with resource authority
279
+ authority: options.authority || editableSettingsResource.authority,
100
280
  query: editableSettingsResource.query,
101
281
  // Use editableSettingsResource.fragment if none was explicitly set.
102
282
  defaultFragment: options?.defaultFragment ?? editableSettingsResource.fragment,
@@ -1 +1 @@
1
- {"version":3,"file":"preferenceUri.js","sources":["../../src/utils/preferenceUri.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preferenceUri.js","sources":["../../src/utils/preferenceUri.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -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 _id and _hashId in query
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
- * @returns A sorted query string with _id and _hashId parameters
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)}`, `_id=${encodeURIComponent(resourceId)}`].sort().join('&');
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 _id and _hashId in query
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 _id and _hashId in query
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 _id and _hashId in the query
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":"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"}
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,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;;AACxB,IAAA,OAAA,GAAW,CAAA,MAAA,CAAA;SAC4C;;;AAGlE"}
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;SACrD,GAAA,CAAA,IAAI,CAAA;AACf,IAAC,MAAA,EAAA,OAAA,CAAA,OAAA;AAED,IAAA,SAAgB,EAAA,iBAAA;AAIZ,IAAA,IAAI,eAAkB,CAAA,QAAA,CAAA,CAAA,KAAA;IAEtB;AACI;AACI,SAAA,yBAA6B,CAAC,QAAA,EAAA,MAAgB,GAAA,CAAA,wCAAA;eACxC;AACV,EAAA,QAAA,MAAA;AACI,IAAA,KAAA,CAAA;eACM,GAAA,iBAAA,CAAA,eAAA;AACV,MAAA;AACI,IAAA,KAAA,CAAA;eACM,GAAA,iBAAA,CAAA,gBAAA;AACV,MAAA;AACI,IAAA,KAAA,CAAA;eACM,GAAA,iBAAA,CAAA,YAAA;AACV,MAAA;AACI,IAAA,KAAA,CAAA;MACP,SAAA,GAAA,iBAAA,CAAA,QAAA;MAEM;;YAEM,IAAA,KAAmB,CAAA,CAAA,gBAAmB,EAAA,MAAA,CAAA,CAAA,CAAA;AAC/C;AACH,EAAA,OAAE,GAAA,CAAA,IAAA,CAAA;AACP,IAAC,MAAA,EAAA,OAAA,CAAA,OAAA;;;;"}
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;;;;"}