Skip to content

Commit a763410

Browse files
Merge pull request #342 from contentstack/staging
DX | 09-03-2026 | Release
2 parents 165c68d + 7d2b228 commit a763410

File tree

15 files changed

+34
-21
lines changed

15 files changed

+34
-21
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
### Version: 5.1.1
2+
#### Date: Mar-09-2026
3+
Fix: Added support of special symbols in regex method with safe pattern.
4+
15
### Version: 5.1.0
26
#### Date: Mar-02-2026
37
Fix: Added support of asset fields in assets & entries class.

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@contentstack/delivery-sdk",
3-
"version": "5.1.0",
3+
"version": "5.1.1",
44
"type": "module",
55
"license": "MIT",
66
"engines": {

src/assets/asset.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,14 @@ export class Asset {
133133
* @method assetFields
134134
* @memberof Asset
135135
* @description Include specific asset fields in the response (CDA getAssets - single asset).
136-
* Use with asset_fields[]: user_defined_fields, embedded, ai_suggested, visual_markups.
136+
* Use with asset_fields[]: user_defined_fields, embedded_metadata, ai_generated_metadata, visual_markups.
137137
* @example
138138
* import contentstack from '@contentstack/delivery-sdk'
139139
*
140140
* const stack = contentstack.stack({ apiKey: "apiKey", deliveryToken: "deliveryToken", environment: "environment" });
141141
* const result = await stack.asset("assetUid").assetFields("user_defined_fields", "embedded_metadata").fetch();
142142
*
143-
* @param {...string} fields - Asset field names to include (e.g. user_defined_fields, embedded, ai_suggested, visual_markups)
143+
* @param {...string} fields - Asset field names to include (e.g. user_defined_fields, embedded_metadata, ai_generated_metadata, visual_markups)
144144
* @returns {Asset} - Returns the Asset instance for chaining.
145145
*/
146146
assetFields(...fields: string[]): this {

src/common/types.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,9 +337,10 @@ export interface BaseContentType {
337337
schema: any;
338338
}
339339

340-
export interface FindResponse<T> {
340+
export interface FindResponse<T, TContentType = unknown> {
341341
entries?: T[];
342-
content_types?: T[];
342+
content_type?: TContentType;
343+
content_types?: TContentType[];
343344
assets?: T[];
344345
global_fields?: T[];
345346
count?: number;

src/entries/entries.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,14 +281,14 @@ export class Entries extends BaseQuery {
281281
* @method assetFields
282282
* @memberof Entries
283283
* @description Include specific asset fields in the response (CDA getEntry/entries).
284-
* Use with asset_fields[]: user_defined_fields, embedded, ai_suggested, visual_markups.
284+
* Use with asset_fields[]: user_defined_fields, embedded_metadata, ai_generated_metadata, visual_markups.
285285
* @example
286286
* import contentstack from '@contentstack/delivery-sdk'
287287
*
288288
* const stack = contentstack.stack({ apiKey: "apiKey", deliveryToken: "deliveryToken", environment: "environment" });
289289
* const result = await stack.contentType("contentTypeUid").entry().assetFields("user_defined_fields", "embedded_metadata").find();
290290
*
291-
* @param {...string} fields - Asset field names to include (e.g. user_defined_fields, embedded, ai_suggested, visual_markups)
291+
* @param {...string} fields - Asset field names to include (e.g. user_defined_fields, embedded_metadata, ai_generated_metadata, visual_markups)
292292
* @returns {Entries} - Returns the Entries instance for chaining.
293293
*/
294294
assetFields(...fields: string[]): this {

src/entries/entry.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,14 +278,14 @@ export class Entry {
278278
* @method assetFields
279279
* @memberof Entry
280280
* @description Include specific asset fields in the response (CDA getEntry).
281-
* Use with asset_fields[]: user_defined_fields, embedded, ai_suggested, visual_markups.
281+
* Use with asset_fields[]: user_defined_fields, embedded_metadata, ai_generated_metadata, visual_markups.
282282
* @example
283283
* import contentstack from '@contentstack/delivery-sdk'
284284
*
285285
* const stack = contentstack.stack({ apiKey: "apiKey", deliveryToken: "deliveryToken", environment: "environment" });
286286
* const result = await stack.contentType("contentTypeUid").entry("entryUid").assetFields("user_defined_fields", "embedded_metadata").fetch();
287287
*
288-
* @param {...string} fields - Asset field names to include (e.g. user_defined_fields, embedded, ai_suggested, visual_markups)
288+
* @param {...string} fields - Asset field names to include (e.g. user_defined_fields, embedded_metadata, ai_generated_metadata, visual_markups)
289289
* @returns {Entry} - Returns the Entry instance for chaining.
290290
*/
291291
assetFields(...fields: string[]): this {

src/query/asset-query.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,14 +131,14 @@ export class AssetQuery extends BaseQuery {
131131
* @method assetFields
132132
* @memberof AssetQuery
133133
* @description Include specific asset fields in the response (CDA getAssets).
134-
* Use with asset_fields[]: user_defined_fields, embedded, ai_suggested, visual_markups.
134+
* Use with asset_fields[]: user_defined_fields, embedded_metadata, ai_generated_metadata, visual_markups.
135135
* @example
136136
* import contentstack from '@contentstack/delivery-sdk'
137137
*
138138
* const stack = contentstack.stack({ apiKey: "apiKey", deliveryToken: "deliveryToken", environment: "environment" });
139139
* const result = await stack.asset().assetFields("user_defined_fields", "embedded_metadata").find();
140140
*
141-
* @param {...string} fields - Asset field names to include (e.g. user_defined_fields, embedded, ai_suggested, visual_markups)
141+
* @param {...string} fields - Asset field names to include (e.g. user_defined_fields, embedded_metadata, ai_generated_metadata, visual_markups)
142142
* @returns {AssetQuery} - Returns the AssetQuery instance for chaining.
143143
*/
144144
assetFields(...fields: string[]): this {

src/query/query.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export class Query extends BaseQuery {
3434
// Expanded whitelist: includes spaces and common safe special characters
3535
// Allows: alphanumeric, regex metacharacters, regular spaces, and common punctuation
3636
// Blocks: control characters (newlines, tabs, null bytes), backticks, and other dangerous chars
37-
const validRegex = /^[a-zA-Z0-9|^$.*+?()[\]{}:,;&@#%=/!'"_~<> -]+$/;
37+
const validRegex = /^[a-zA-Z0-9|^$.*+?()[\]{}\\:,;&@#%=/!'"_~<>` -]+$/;
3838
if (!validRegex.test(input)) {
3939
return false;
4040
}

test/api/asset-query.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ describe("AssetQuery API tests", () => {
132132
});
133133
it("should query assets with asset_fields[] CDA param (user_defined_fields, embedded, ai_suggested, visual_markups)", async () => {
134134
const result = await makeAssetQuery()
135-
.assetFields("user_defined_fields", "embedded_metadata", "ai_suggested", "visual_markups")
135+
.assetFields("user_defined_fields", "embedded_metadata", "ai_generated_metadata", "visual_markups")
136136
.limit(2)
137137
.find<TAsset>();
138138
if (result.assets) {

0 commit comments

Comments
 (0)