') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Added the version info in generated types for both content type and global field. Version bump by cs-raj · Pull Request #44 · contentstack/contentstack-cli-tsgen · GitHub
Skip to content
This repository was archived by the owner on Aug 21, 2026. It is now read-only.

Added the version info in generated types for both content type and global field. Version bump - #44

Merged
netrajpatel merged 3 commits into
developmentfrom
bugfix/CS-41248
Oct 4, 2023
Merged

Added the version info in generated types for both content type and global field. Version bump#44
netrajpatel merged 3 commits into
developmentfrom
bugfix/CS-41248

Conversation

@cs-raj

@cs-rajcs-raj commented Sep 25, 2023

Copy link
Copy Markdown
Contributor

Version Bump: 2.1.7
This PR is for issue: #7

@cs-raj
cs-raj marked this pull request as ready for review September 26, 2023 12:05
@petedegraw

Copy link
Copy Markdown

Hi @cs-raj, is it possible to update this to include all the properties that come through from the API response?

I'm seeing more than _content_type_uid and _version`. Maybe these are unique to our content but we're already needing to convert undefined to null in order to serialize for JSON on static page builds (could be a future improvement to the TSGen script). In addition, we have to add these types, not sure why they aren't included in the type definitions.

_content_type_uid: string,
_version: number,
locale: string,
uid: TUID,
ACL: Record<string, any>,
_in_progress: boolean,
created_at: string,
created_by: TUID,
updated_at: string,
updated_by: TUID,
publish_details: {
environment: TUID,
locale: string,
time: string,
user: TUID
},
tags: TTags,
title: string

@antonyagustine

Copy link
Copy Markdown
Contributor

Hi @cs-raj, is it possible to update this to include all the properties that come through from the API response?

I'm seeing more than _content_type_uid and _version`. Maybe these are unique to our content but we're already needing to convert undefined to null in order to serialize for JSON on static page builds (could be a future improvement to the TSGen script). In addition, we have to add these types, not sure why they aren't included in the type definitions.

_content_type_uid: string,
_version: number,
locale: string,
uid: TUID,
ACL: Record<string, any>,
_in_progress: boolean,
created_at: string,
created_by: TUID,
updated_at: string,
updated_by: TUID,
publish_details: {
environment: TUID,
locale: string,
time: string,
user: TUID
},
tags: TTags,
title: string

Hi @petedegraw,

Thank you for bringing this to our attention. We have already taken this as a task, and our team is currently working on enhancing it to include the system fields. We will do our best to roll it out as soon as possible.

@petedegraw

Copy link
Copy Markdown

@antonyagustine that's fantastic! The code gen has proven quite useful. Thanks for the reply.

@netrajpatel
netrajpatel changed the base branch from master to developmentOctober 4, 2023 13:42
@netrajpatel
netrajpatel merged commit e09a77c into developmentOct 4, 2023
@netrajpatel
netrajpatel deleted the bugfix/CS-41248 branch October 4, 2023 13:43
@AniketDev7

Copy link
Copy Markdown

Hi @petedegraw We have now added support in tsgen plugin to include system fields in typings. You can use --include-system-fields flag for system fields.

@petedegraw

petedegraw commented Oct 31, 2023

Copy link
Copy Markdown

This is great! Thanks @AniketDev7

Should publish_details be ICSPublishDetails instead ICSPublishDetails[]

@abhinav-from-contentstack

Copy link
Copy Markdown
Contributor

Hi @petedegraw , publish_details is always an array of objects. That's why it's type is always <prefix>PublishDetails[].

cs-raj pushed a commit that referenced this pull request Aug 10, 2026
Added the version info in generated types for both content type and global field. Version bump
cs-raj pushed a commit that referenced this pull request Aug 10, 2026
Added the version info in generated types for both content type and global field. Version bump
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@cs-raj@petedegraw@antonyagustine@AniketDev7@abhinav-from-contentstack@aman19K@netrajpatel