feat(universes): Add place-level user restriction support - #9

Open
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main
Open

feat(universes): Add place-level user restriction support#9
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main

Conversation

@commonly-ts

@commonly-tscommonly-ts commented Nov 20, 2025

Copy link
Copy Markdown
Contributor

Description

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.

Type of Change

  • ✨ New feature (non-breaking change which adds functionality)
  • ✅ Test update

Changes Made

  • Adds placeId parameter to universes.updateUserRestriction
  • Updates universes.updateUserRestriction to use an options object for universeId, placeId and body.
  • Adds placeId check to the updateUserRestriction test.

Testing

  • All existing tests pass (pnpm test)
  • Added new tests for new functionality
  • Tested manually (describe below)

Manual Testing

Simple string concatenation so no manual testing needed

Code Quality

  • My code follows the project's coding style
  • I have run pnpm lint and fixed any issues
  • I have run pnpm format to format my code
  • I have run pnpm typecheck and there are no type errors
  • I have reviewed my own code

Documentation

  • I have updated the relevant documentation (if applicable)
  • I have added/updated JSDoc comments for new/modified code

Screenshots/Recordings

image

Checklist

  • I have read the CONTRIBUTING.md guide
  • My PR title follows the Conventional Commits format
  • I have rebased my branch on the latest main branch
  • I have tested my changes against the Roblox Open Cloud API (if applicable)
  • This PR is ready for review

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.
@codecov

codecovBot commented Nov 20, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.66667% with 1 line in your changes missing coverage. Please review.

Files with missing linesPatch %Lines
src/resources/universes.ts91.66%1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@commonly-ts

Copy link
Copy Markdown
ContributorAuthor

I would agree if the method's parameters are a bit icky now, I'm fine with changing it into options typed with an interface if you'd like

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, let's make this into an options object so we can re-use
There are a couple of other methods that have this feature as well, you can integrate the options object into that as well if you're feeling up for it 🙂

Make sure to add this to a test or create a new one so coverage can pass

@marinofranzmarinofranz added the enhancement New feature or request label Nov 20, 2025
Prevents API errors by setting 'duration' to undefined if it is an empty string when updating user restrictions. This avoids sending invalid data that would result in a 400 response from the API.
Refactored Universes.updateUserRestriction to set duration as undefined if an empty string is provided, preventing API 400 errors. Updated related test to verify correct handling of empty duration values.

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a few changes that I want to address regarding the code style, the logic is perfectly fine 🙂

Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts
Comment threadsrc/resources/universes.ts Outdated
@commonly-ts

commonly-ts commented Nov 23, 2025

Copy link
Copy Markdown
ContributorAuthor

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

Swapped the order of universeId and userRestrictionId in updateUserRestriction to match API expectations. Updated related type definitions, documentation, and tests for consistency.
@marinofranz

Copy link
Copy Markdown
Member

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

We try to stick to just the API reference but we can eventually figure out a helper function for that, this will do for now 🙂
There's just one missing test that should test if duration is an empty string to pass coverage

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@commonly-ts@marinofranz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat(universes): Add place-level user restriction support - #9

Open
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main
Open

feat(universes): Add place-level user restriction support#9
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main

Conversation

@commonly-ts

@commonly-tscommonly-ts commented Nov 20, 2025

Copy link
Copy Markdown
Contributor

Description

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.

Type of Change

  • ✨ New feature (non-breaking change which adds functionality)
  • ✅ Test update

Changes Made

  • Adds placeId parameter to universes.updateUserRestriction
  • Updates universes.updateUserRestriction to use an options object for universeId, placeId and body.
  • Adds placeId check to the updateUserRestriction test.

Testing

  • All existing tests pass (pnpm test)
  • Added new tests for new functionality
  • Tested manually (describe below)

Manual Testing

Simple string concatenation so no manual testing needed

Code Quality

  • My code follows the project's coding style
  • I have run pnpm lint and fixed any issues
  • I have run pnpm format to format my code
  • I have run pnpm typecheck and there are no type errors
  • I have reviewed my own code

Documentation

  • I have updated the relevant documentation (if applicable)
  • I have added/updated JSDoc comments for new/modified code

Screenshots/Recordings

image

Checklist

  • I have read the CONTRIBUTING.md guide
  • My PR title follows the Conventional Commits format
  • I have rebased my branch on the latest main branch
  • I have tested my changes against the Roblox Open Cloud API (if applicable)
  • This PR is ready for review

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.
@codecov

codecovBot commented Nov 20, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.66667% with 1 line in your changes missing coverage. Please review.

Files with missing linesPatch %Lines
src/resources/universes.ts91.66%1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@commonly-ts

Copy link
Copy Markdown
ContributorAuthor

I would agree if the method's parameters are a bit icky now, I'm fine with changing it into options typed with an interface if you'd like

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, let's make this into an options object so we can re-use
There are a couple of other methods that have this feature as well, you can integrate the options object into that as well if you're feeling up for it 🙂

Make sure to add this to a test or create a new one so coverage can pass

@marinofranzmarinofranz added the enhancement New feature or request label Nov 20, 2025
Prevents API errors by setting 'duration' to undefined if it is an empty string when updating user restrictions. This avoids sending invalid data that would result in a 400 response from the API.
Refactored Universes.updateUserRestriction to set duration as undefined if an empty string is provided, preventing API 400 errors. Updated related test to verify correct handling of empty duration values.

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a few changes that I want to address regarding the code style, the logic is perfectly fine 🙂

Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts
Comment threadsrc/resources/universes.ts Outdated
@commonly-ts

commonly-ts commented Nov 23, 2025

Copy link
Copy Markdown
ContributorAuthor

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

Swapped the order of universeId and userRestrictionId in updateUserRestriction to match API expectations. Updated related type definitions, documentation, and tests for consistency.
@marinofranz

Copy link
Copy Markdown
Member

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

We try to stick to just the API reference but we can eventually figure out a helper function for that, this will do for now 🙂
There's just one missing test that should test if duration is an empty string to pass coverage

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@commonly-ts@marinofranz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(universes): Add place-level user restriction support - #9

Open
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main
Open

feat(universes): Add place-level user restriction support#9
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main

Conversation

@commonly-ts

@commonly-tscommonly-ts commented Nov 20, 2025

Copy link
Copy Markdown
Contributor

Description

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.

Type of Change

  • ✨ New feature (non-breaking change which adds functionality)
  • ✅ Test update

Changes Made

  • Adds placeId parameter to universes.updateUserRestriction
  • Updates universes.updateUserRestriction to use an options object for universeId, placeId and body.
  • Adds placeId check to the updateUserRestriction test.

Testing

  • All existing tests pass (pnpm test)
  • Added new tests for new functionality
  • Tested manually (describe below)

Manual Testing

Simple string concatenation so no manual testing needed

Code Quality

  • My code follows the project's coding style
  • I have run pnpm lint and fixed any issues
  • I have run pnpm format to format my code
  • I have run pnpm typecheck and there are no type errors
  • I have reviewed my own code

Documentation

  • I have updated the relevant documentation (if applicable)
  • I have added/updated JSDoc comments for new/modified code

Screenshots/Recordings

image

Checklist

  • I have read the CONTRIBUTING.md guide
  • My PR title follows the Conventional Commits format
  • I have rebased my branch on the latest main branch
  • I have tested my changes against the Roblox Open Cloud API (if applicable)
  • This PR is ready for review

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.
@codecov

codecovBot commented Nov 20, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.66667% with 1 line in your changes missing coverage. Please review.

Files with missing linesPatch %Lines
src/resources/universes.ts91.66%1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@commonly-ts

Copy link
Copy Markdown
ContributorAuthor

I would agree if the method's parameters are a bit icky now, I'm fine with changing it into options typed with an interface if you'd like

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, let's make this into an options object so we can re-use
There are a couple of other methods that have this feature as well, you can integrate the options object into that as well if you're feeling up for it 🙂

Make sure to add this to a test or create a new one so coverage can pass

@marinofranzmarinofranz added the enhancement New feature or request label Nov 20, 2025
Prevents API errors by setting 'duration' to undefined if it is an empty string when updating user restrictions. This avoids sending invalid data that would result in a 400 response from the API.
Refactored Universes.updateUserRestriction to set duration as undefined if an empty string is provided, preventing API 400 errors. Updated related test to verify correct handling of empty duration values.

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a few changes that I want to address regarding the code style, the logic is perfectly fine 🙂

Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts
Comment threadsrc/resources/universes.ts Outdated
@commonly-ts

commonly-ts commented Nov 23, 2025

Copy link
Copy Markdown
ContributorAuthor

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

Swapped the order of universeId and userRestrictionId in updateUserRestriction to match API expectations. Updated related type definitions, documentation, and tests for consistency.
@marinofranz

Copy link
Copy Markdown
Member

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

We try to stick to just the API reference but we can eventually figure out a helper function for that, this will do for now 🙂
There's just one missing test that should test if duration is an empty string to pass coverage

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@commonly-ts@marinofranz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(universes): Add place-level user restriction support - #9

Open
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main
Open

feat(universes): Add place-level user restriction support#9
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main

Conversation

@commonly-ts

@commonly-tscommonly-ts commented Nov 20, 2025

Copy link
Copy Markdown
Contributor

Description

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.

Type of Change

  • ✨ New feature (non-breaking change which adds functionality)
  • ✅ Test update

Changes Made

  • Adds placeId parameter to universes.updateUserRestriction
  • Updates universes.updateUserRestriction to use an options object for universeId, placeId and body.
  • Adds placeId check to the updateUserRestriction test.

Testing

  • All existing tests pass (pnpm test)
  • Added new tests for new functionality
  • Tested manually (describe below)

Manual Testing

Simple string concatenation so no manual testing needed

Code Quality

  • My code follows the project's coding style
  • I have run pnpm lint and fixed any issues
  • I have run pnpm format to format my code
  • I have run pnpm typecheck and there are no type errors
  • I have reviewed my own code

Documentation

  • I have updated the relevant documentation (if applicable)
  • I have added/updated JSDoc comments for new/modified code

Screenshots/Recordings

image

Checklist

  • I have read the CONTRIBUTING.md guide
  • My PR title follows the Conventional Commits format
  • I have rebased my branch on the latest main branch
  • I have tested my changes against the Roblox Open Cloud API (if applicable)
  • This PR is ready for review

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.
@codecov

codecovBot commented Nov 20, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.66667% with 1 line in your changes missing coverage. Please review.

Files with missing linesPatch %Lines
src/resources/universes.ts91.66%1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@commonly-ts

Copy link
Copy Markdown
ContributorAuthor

I would agree if the method's parameters are a bit icky now, I'm fine with changing it into options typed with an interface if you'd like

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, let's make this into an options object so we can re-use
There are a couple of other methods that have this feature as well, you can integrate the options object into that as well if you're feeling up for it 🙂

Make sure to add this to a test or create a new one so coverage can pass

@marinofranzmarinofranz added the enhancement New feature or request label Nov 20, 2025
Prevents API errors by setting 'duration' to undefined if it is an empty string when updating user restrictions. This avoids sending invalid data that would result in a 400 response from the API.
Refactored Universes.updateUserRestriction to set duration as undefined if an empty string is provided, preventing API 400 errors. Updated related test to verify correct handling of empty duration values.

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a few changes that I want to address regarding the code style, the logic is perfectly fine 🙂

Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts
Comment threadsrc/resources/universes.ts Outdated
@commonly-ts

commonly-ts commented Nov 23, 2025

Copy link
Copy Markdown
ContributorAuthor

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

Swapped the order of universeId and userRestrictionId in updateUserRestriction to match API expectations. Updated related type definitions, documentation, and tests for consistency.
@marinofranz

Copy link
Copy Markdown
Member

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

We try to stick to just the API reference but we can eventually figure out a helper function for that, this will do for now 🙂
There's just one missing test that should test if duration is an empty string to pass coverage

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@commonly-ts@marinofranz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat(universes): Add place-level user restriction support - #9

Open
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main
Open

feat(universes): Add place-level user restriction support#9
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main

Conversation

@commonly-ts

@commonly-tscommonly-ts commented Nov 20, 2025

Copy link
Copy Markdown
Contributor

Description

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.

Type of Change

  • ✨ New feature (non-breaking change which adds functionality)
  • ✅ Test update

Changes Made

  • Adds placeId parameter to universes.updateUserRestriction
  • Updates universes.updateUserRestriction to use an options object for universeId, placeId and body.
  • Adds placeId check to the updateUserRestriction test.

Testing

  • All existing tests pass (pnpm test)
  • Added new tests for new functionality
  • Tested manually (describe below)

Manual Testing

Simple string concatenation so no manual testing needed

Code Quality

  • My code follows the project's coding style
  • I have run pnpm lint and fixed any issues
  • I have run pnpm format to format my code
  • I have run pnpm typecheck and there are no type errors
  • I have reviewed my own code

Documentation

  • I have updated the relevant documentation (if applicable)
  • I have added/updated JSDoc comments for new/modified code

Screenshots/Recordings

image

Checklist

  • I have read the CONTRIBUTING.md guide
  • My PR title follows the Conventional Commits format
  • I have rebased my branch on the latest main branch
  • I have tested my changes against the Roblox Open Cloud API (if applicable)
  • This PR is ready for review

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.
@codecov

codecovBot commented Nov 20, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.66667% with 1 line in your changes missing coverage. Please review.

Files with missing linesPatch %Lines
src/resources/universes.ts91.66%1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@commonly-ts

Copy link
Copy Markdown
ContributorAuthor

I would agree if the method's parameters are a bit icky now, I'm fine with changing it into options typed with an interface if you'd like

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, let's make this into an options object so we can re-use
There are a couple of other methods that have this feature as well, you can integrate the options object into that as well if you're feeling up for it 🙂

Make sure to add this to a test or create a new one so coverage can pass

@marinofranzmarinofranz added the enhancement New feature or request label Nov 20, 2025
Prevents API errors by setting 'duration' to undefined if it is an empty string when updating user restrictions. This avoids sending invalid data that would result in a 400 response from the API.
Refactored Universes.updateUserRestriction to set duration as undefined if an empty string is provided, preventing API 400 errors. Updated related test to verify correct handling of empty duration values.

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a few changes that I want to address regarding the code style, the logic is perfectly fine 🙂

Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts
Comment threadsrc/resources/universes.ts Outdated
@commonly-ts

commonly-ts commented Nov 23, 2025

Copy link
Copy Markdown
ContributorAuthor

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

Swapped the order of universeId and userRestrictionId in updateUserRestriction to match API expectations. Updated related type definitions, documentation, and tests for consistency.
@marinofranz

Copy link
Copy Markdown
Member

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

We try to stick to just the API reference but we can eventually figure out a helper function for that, this will do for now 🙂
There's just one missing test that should test if duration is an empty string to pass coverage

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@commonly-ts@marinofranz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(universes): Add place-level user restriction support - #9

Open
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main
Open

feat(universes): Add place-level user restriction support#9
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main

Conversation

@commonly-ts

@commonly-tscommonly-ts commented Nov 20, 2025

Copy link
Copy Markdown
Contributor

Description

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.

Type of Change

  • ✨ New feature (non-breaking change which adds functionality)
  • ✅ Test update

Changes Made

  • Adds placeId parameter to universes.updateUserRestriction
  • Updates universes.updateUserRestriction to use an options object for universeId, placeId and body.
  • Adds placeId check to the updateUserRestriction test.

Testing

  • All existing tests pass (pnpm test)
  • Added new tests for new functionality
  • Tested manually (describe below)

Manual Testing

Simple string concatenation so no manual testing needed

Code Quality

  • My code follows the project's coding style
  • I have run pnpm lint and fixed any issues
  • I have run pnpm format to format my code
  • I have run pnpm typecheck and there are no type errors
  • I have reviewed my own code

Documentation

  • I have updated the relevant documentation (if applicable)
  • I have added/updated JSDoc comments for new/modified code

Screenshots/Recordings

image

Checklist

  • I have read the CONTRIBUTING.md guide
  • My PR title follows the Conventional Commits format
  • I have rebased my branch on the latest main branch
  • I have tested my changes against the Roblox Open Cloud API (if applicable)
  • This PR is ready for review

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.
@codecov

codecovBot commented Nov 20, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.66667% with 1 line in your changes missing coverage. Please review.

Files with missing linesPatch %Lines
src/resources/universes.ts91.66%1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@commonly-ts

Copy link
Copy Markdown
ContributorAuthor

I would agree if the method's parameters are a bit icky now, I'm fine with changing it into options typed with an interface if you'd like

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, let's make this into an options object so we can re-use
There are a couple of other methods that have this feature as well, you can integrate the options object into that as well if you're feeling up for it 🙂

Make sure to add this to a test or create a new one so coverage can pass

@marinofranzmarinofranz added the enhancement New feature or request label Nov 20, 2025
Prevents API errors by setting 'duration' to undefined if it is an empty string when updating user restrictions. This avoids sending invalid data that would result in a 400 response from the API.
Refactored Universes.updateUserRestriction to set duration as undefined if an empty string is provided, preventing API 400 errors. Updated related test to verify correct handling of empty duration values.

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a few changes that I want to address regarding the code style, the logic is perfectly fine 🙂

Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts
Comment threadsrc/resources/universes.ts Outdated
@commonly-ts

commonly-ts commented Nov 23, 2025

Copy link
Copy Markdown
ContributorAuthor

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

Swapped the order of universeId and userRestrictionId in updateUserRestriction to match API expectations. Updated related type definitions, documentation, and tests for consistency.
@marinofranz

Copy link
Copy Markdown
Member

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

We try to stick to just the API reference but we can eventually figure out a helper function for that, this will do for now 🙂
There's just one missing test that should test if duration is an empty string to pass coverage

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@commonly-ts@marinofranz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(universes): Add place-level user restriction support - #9

Open
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main
Open

feat(universes): Add place-level user restriction support#9
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main

Conversation

@commonly-ts

@commonly-tscommonly-ts commented Nov 20, 2025

Copy link
Copy Markdown
Contributor

Description

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.

Type of Change

  • ✨ New feature (non-breaking change which adds functionality)
  • ✅ Test update

Changes Made

  • Adds placeId parameter to universes.updateUserRestriction
  • Updates universes.updateUserRestriction to use an options object for universeId, placeId and body.
  • Adds placeId check to the updateUserRestriction test.

Testing

  • All existing tests pass (pnpm test)
  • Added new tests for new functionality
  • Tested manually (describe below)

Manual Testing

Simple string concatenation so no manual testing needed

Code Quality

  • My code follows the project's coding style
  • I have run pnpm lint and fixed any issues
  • I have run pnpm format to format my code
  • I have run pnpm typecheck and there are no type errors
  • I have reviewed my own code

Documentation

  • I have updated the relevant documentation (if applicable)
  • I have added/updated JSDoc comments for new/modified code

Screenshots/Recordings

image

Checklist

  • I have read the CONTRIBUTING.md guide
  • My PR title follows the Conventional Commits format
  • I have rebased my branch on the latest main branch
  • I have tested my changes against the Roblox Open Cloud API (if applicable)
  • This PR is ready for review

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.
@codecov

codecovBot commented Nov 20, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.66667% with 1 line in your changes missing coverage. Please review.

Files with missing linesPatch %Lines
src/resources/universes.ts91.66%1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@commonly-ts

Copy link
Copy Markdown
ContributorAuthor

I would agree if the method's parameters are a bit icky now, I'm fine with changing it into options typed with an interface if you'd like

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, let's make this into an options object so we can re-use
There are a couple of other methods that have this feature as well, you can integrate the options object into that as well if you're feeling up for it 🙂

Make sure to add this to a test or create a new one so coverage can pass

@marinofranzmarinofranz added the enhancement New feature or request label Nov 20, 2025
Prevents API errors by setting 'duration' to undefined if it is an empty string when updating user restrictions. This avoids sending invalid data that would result in a 400 response from the API.
Refactored Universes.updateUserRestriction to set duration as undefined if an empty string is provided, preventing API 400 errors. Updated related test to verify correct handling of empty duration values.

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a few changes that I want to address regarding the code style, the logic is perfectly fine 🙂

Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts
Comment threadsrc/resources/universes.ts Outdated
@commonly-ts

commonly-ts commented Nov 23, 2025

Copy link
Copy Markdown
ContributorAuthor

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

Swapped the order of universeId and userRestrictionId in updateUserRestriction to match API expectations. Updated related type definitions, documentation, and tests for consistency.
@marinofranz

Copy link
Copy Markdown
Member

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

We try to stick to just the API reference but we can eventually figure out a helper function for that, this will do for now 🙂
There's just one missing test that should test if duration is an empty string to pass coverage

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@commonly-ts@marinofranz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat(universes): Add place-level user restriction support - #9

Open
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main
Open

feat(universes): Add place-level user restriction support#9
commonly-ts wants to merge 7 commits into
relatiocc:mainfrom
commonly-ts:main

Conversation

@commonly-ts

@commonly-tscommonly-ts commented Nov 20, 2025

Copy link
Copy Markdown
Contributor

Description

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.

Type of Change

  • ✨ New feature (non-breaking change which adds functionality)
  • ✅ Test update

Changes Made

  • Adds placeId parameter to universes.updateUserRestriction
  • Updates universes.updateUserRestriction to use an options object for universeId, placeId and body.
  • Adds placeId check to the updateUserRestriction test.

Testing

  • All existing tests pass (pnpm test)
  • Added new tests for new functionality
  • Tested manually (describe below)

Manual Testing

Simple string concatenation so no manual testing needed

Code Quality

  • My code follows the project's coding style
  • I have run pnpm lint and fixed any issues
  • I have run pnpm format to format my code
  • I have run pnpm typecheck and there are no type errors
  • I have reviewed my own code

Documentation

  • I have updated the relevant documentation (if applicable)
  • I have added/updated JSDoc comments for new/modified code

Screenshots/Recordings

image

Checklist

  • I have read the CONTRIBUTING.md guide
  • My PR title follows the Conventional Commits format
  • I have rebased my branch on the latest main branch
  • I have tested my changes against the Roblox Open Cloud API (if applicable)
  • This PR is ready for review

Extends the Universes class to allow updating user restrictions at the place level by accepting an optional placeId parameter. Adjusts the resource path logic to handle both universe-level and place-level user restrictions.
@codecov

codecovBot commented Nov 20, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.66667% with 1 line in your changes missing coverage. Please review.

Files with missing linesPatch %Lines
src/resources/universes.ts91.66%1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@commonly-ts

Copy link
Copy Markdown
ContributorAuthor

I would agree if the method's parameters are a bit icky now, I'm fine with changing it into options typed with an interface if you'd like

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, let's make this into an options object so we can re-use
There are a couple of other methods that have this feature as well, you can integrate the options object into that as well if you're feeling up for it 🙂

Make sure to add this to a test or create a new one so coverage can pass

@marinofranzmarinofranz added the enhancement New feature or request label Nov 20, 2025
Prevents API errors by setting 'duration' to undefined if it is an empty string when updating user restrictions. This avoids sending invalid data that would result in a 400 response from the API.
Refactored Universes.updateUserRestriction to set duration as undefined if an empty string is provided, preventing API 400 errors. Updated related test to verify correct handling of empty duration values.

@marinofranzmarinofranz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a few changes that I want to address regarding the code style, the logic is perfectly fine 🙂

Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts Outdated
Comment threadsrc/resources/universes.ts
Comment threadsrc/resources/universes.ts Outdated
@commonly-ts

commonly-ts commented Nov 23, 2025

Copy link
Copy Markdown
ContributorAuthor

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

Swapped the order of universeId and userRestrictionId in updateUserRestriction to match API expectations. Updated related type definitions, documentation, and tests for consistency.
@marinofranz

Copy link
Copy Markdown
Member

also wondering about readability for duration as its not particularly clear that it needs to be in seconds with "s" at the end, unless you go and read the API docs.

could rename it to durationSeconds and have it as a number, and then parse it inside the function or is this SDK just a base wrapper without that sort of thing?

We try to stick to just the API reference but we can eventually figure out a helper function for that, this will do for now 🙂
There's just one missing test that should test if duration is an empty string to pass coverage

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@commonly-ts@marinofranz