@adminide-stack/core 12.0.4-alpha.243 → 12.0.4-alpha.246
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/utils/cdecodeUri.d.ts +1 -1
- package/lib/utils/cdecodeUri.js +40 -7
- package/lib/utils/cdecodeUri.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/package.json +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { URI } from '@vscode-alt/monaco-editor/esm/vs/base/common/uri';
|
|
2
2
|
import { ICdecodeUriPathSegment, IAuthorityComponent, ConfigurationTarget, ICdecodeParsedUri } from 'common';
|
|
3
|
-
export declare const RESERVED_CDECODE_PARAMS: readonly ["meta_schemaId", "meta_extensionNames"];
|
|
3
|
+
export declare const RESERVED_CDECODE_PARAMS: readonly ["meta_schemaId", "meta_extensionNames", "meta_idField"];
|
|
4
4
|
export declare const generateCdecodeUri: (authority: string | IAuthorityComponent, params: ICdecodeUriPathSegment, query?: {
|
|
5
5
|
[key: string]: string | number | string[];
|
|
6
6
|
}, fragment?: string) => URI;
|
package/lib/utils/cdecodeUri.js
CHANGED
|
@@ -2,13 +2,13 @@ import {URI}from'@vscode-alt/monaco-editor/esm/vs/base/common/uri.js';import sor
|
|
|
2
2
|
/* eslint-disable prefer-destructuring */
|
|
3
3
|
/* eslint-disable default-param-last */
|
|
4
4
|
// Reserved parameter names for CDECODE scheme
|
|
5
|
-
const RESERVED_CDECODE_PARAMS = ['meta_schemaId', 'meta_extensionNames'];
|
|
5
|
+
const RESERVED_CDECODE_PARAMS = ['meta_schemaId', 'meta_extensionNames', 'meta_idField'];
|
|
6
6
|
// Helper function to validate query parameters and warn about reserved parameter usage
|
|
7
7
|
const validateQueryParams = (query, scheme) => {
|
|
8
8
|
if (scheme !== Scheme.CDECODE || !query) return;
|
|
9
9
|
const conflicts = Object.keys(query).filter(key => RESERVED_CDECODE_PARAMS.includes(key) && typeof query[key] !== 'undefined');
|
|
10
10
|
if (conflicts.length > 0) {
|
|
11
|
-
console.warn(`CDECODE URI: The following query parameters are reserved and will be processed specially: ${conflicts.join(', ')}. meta_schemaId should be a string, meta_extensionNames should be an array of strings.`);
|
|
11
|
+
console.warn(`CDECODE URI: The following query parameters are reserved and will be processed specially: ${conflicts.join(', ')}. meta_schemaId should be a string, meta_extensionNames should be an array of strings, meta_idField should be a string.`);
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
14
|
const generateCdecodeUri = (authority, params, query = {}, fragment) => {
|
|
@@ -38,6 +38,10 @@ const generateCdecodeUri = (authority, params, query = {}, fragment) => {
|
|
|
38
38
|
// Use special marker to represent empty array
|
|
39
39
|
processedQuery.meta_extensionNames = ['__EMPTY_ARRAY__'];
|
|
40
40
|
}
|
|
41
|
+
// Add idField information to query if provided
|
|
42
|
+
if (params.idField && params.idField !== '_id') {
|
|
43
|
+
processedQuery.meta_idField = params.idField;
|
|
44
|
+
}
|
|
41
45
|
// Sort query parameters for consistent ordering
|
|
42
46
|
const orderedParams = sortKeys(processedQuery ?? {});
|
|
43
47
|
const queryInString = queryString.stringify(orderedParams, {
|
|
@@ -111,6 +115,9 @@ const processQueryData = (queryData, scheme) => {
|
|
|
111
115
|
} else if (scheme === Scheme.CDECODE && key === 'meta_schemaId') {
|
|
112
116
|
// Ensure meta_schemaId is always a string for CDECODE scheme
|
|
113
117
|
processedQuery[key] = getStringValue(value);
|
|
118
|
+
} else if (scheme === Scheme.CDECODE && key === 'meta_idField') {
|
|
119
|
+
// Ensure meta_idField is always a string for CDECODE scheme
|
|
120
|
+
processedQuery[key] = getStringValue(value);
|
|
114
121
|
} else {
|
|
115
122
|
// Keep other parameters as they are
|
|
116
123
|
processedQuery[key] = value;
|
|
@@ -173,12 +180,38 @@ function parseCdecodeUri(uriString) {
|
|
|
173
180
|
// or: /resourceType?field=value&orgName=org
|
|
174
181
|
pathSegments.resourceType = resourceType;
|
|
175
182
|
pathSegments.organization = getStringValue(queryData.orgName);
|
|
176
|
-
// Handle different ID fields (_id, name, email, etc)
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
183
|
+
// Handle different ID fields (_id, name, email, appId, slug, etc)
|
|
184
|
+
// Look for explicit meta_idField first
|
|
185
|
+
const explicitIdField = getStringValue(queryData.meta_idField);
|
|
186
|
+
let detectedIdField = '_id'; // default
|
|
187
|
+
let resourceId = '';
|
|
188
|
+
if (explicitIdField && queryData[explicitIdField]) {
|
|
189
|
+
// Use explicitly specified field
|
|
190
|
+
detectedIdField = explicitIdField;
|
|
191
|
+
resourceId = getStringValue(queryData[explicitIdField]);
|
|
192
|
+
} else if (queryData._id) {
|
|
193
|
+
detectedIdField = '_id';
|
|
194
|
+
resourceId = getStringValue(queryData._id);
|
|
195
|
+
} else {
|
|
196
|
+
// Auto-detect field type based on available query parameters
|
|
197
|
+
const commonFields = ['name', 'email', 'appId', 'slug', 'username', 'phoneNumber', 'externalId'];
|
|
198
|
+
for (const field of commonFields) {
|
|
199
|
+
if (queryData[field]) {
|
|
200
|
+
detectedIdField = field;
|
|
201
|
+
resourceId = getStringValue(queryData[field]);
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// Store the resource ID with field prefix if not _id
|
|
207
|
+
if (detectedIdField !== '_id') {
|
|
208
|
+
pathSegments.resourceId = `${detectedIdField}:${resourceId}`;
|
|
209
|
+
} else {
|
|
210
|
+
pathSegments.resourceId = resourceId;
|
|
181
211
|
}
|
|
212
|
+
// Store the detected field type for use in conversion
|
|
213
|
+
// Note: Adding detectedIdField as additional property for internal use
|
|
214
|
+
pathSegments.detectedIdField = detectedIdField;
|
|
182
215
|
}
|
|
183
216
|
return {
|
|
184
217
|
scheme: uri.scheme,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdecodeUri.js","sources":["../../src/utils/cdecodeUri.ts"],"sourcesContent":[null],"names":[],"mappings":"6LAAA;AACA;AACA;AAaA;
|
|
1
|
+
{"version":3,"file":"cdecodeUri.js","sources":["../../src/utils/cdecodeUri.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
|
|
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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adminide-stack/core",
|
|
3
|
-
"version": "12.0.4-alpha.
|
|
3
|
+
"version": "12.0.4-alpha.246",
|
|
4
4
|
"description": "AdminIDE core for higher packages to depend on",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"vscode-uri": "^3.0.8"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"common": "12.0.4-alpha.
|
|
33
|
+
"common": "12.0.4-alpha.246"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"@common-stack/server-core": ">=0.5.21",
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"typescript": {
|
|
43
43
|
"definition": "lib/index.d.ts"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "a6d5dab5c154357b6135db6fb8b37550f9ebf356"
|
|
46
46
|
}
|