ref: Clean up new integrations API and pave migration path - #10165

Closed
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path
Closed

ref: Clean up new integrations API and pave migration path#10165
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path

Conversation

@lforst

@lforstlforst commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

This PR intends to supersede this PR and our current migration path because it is very convoluted and leads to potential typing issues. #10143

What is different?

  • We keep all the integration classes as we had them before (they need to stick around for v7 in any case - we can remove them in v8). This sadly involves reverting all of our class-removal work, however, the work wasn't entirely in-vain, as all the refactoring to reduce state will help us when we completely move the logic from classes to functions.
  • We introduce a helper function similar to rollup and vite's defineConfig() function that let's us and users create integration factories in a type-safe manner.
  • We expose functional-alternatives for all of our integrations that do nothing else than simply instantiating the class equivalent. For this, we can also use the helper function.

What will this do?

  • Will keep the typings for our class-based integrations.
  • The return types of the functional integrations will not be widened to Integration but will exactly represent the return value as it is. We can evaluate whether this is beneficial for us because it, in theory and counter-intuitively, widens our API. We could also decide on an integration-by-integration basis whether an integration should be of the type Integration or it's actual shape.

Are there any drawbacks?

No.

@lforst
lforstforce-pushed the lforst-pave-integrations-migration-path branch from d71199c to 974e6cdCompareJanuary 12, 2024 12:53
@github-actions

github-actionsBot commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize
@sentry/browser (incl. Tracing, Replay, Feedback) - Webpack (gzipped)77.05 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack (gzipped)68.41 KB (+0.08% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack with treeshaking flags (gzipped)62.05 KB (+0.06% 🔺)
@sentry/browser (incl. Tracing) - Webpack (gzipped)32.44 KB (+0.16% 🔺)
@sentry/browser (incl. Feedback) - Webpack (gzipped)31.03 KB (+0.11% 🔺)
@sentry/browser - Webpack (gzipped)22.37 KB (+0.19% 🔺)
@sentry/browser (incl. Tracing, Replay, Feedback) - ES6 CDN Bundle (gzipped)74.69 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (gzipped)66.34 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (gzipped)32.17 KB (+0.07% 🔺)
@sentry/browser - ES6 CDN Bundle (gzipped)23.98 KB (+0.09% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (minified & uncompressed)209.07 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (minified & uncompressed)97.12 KB (+0.15% 🔺)
@sentry/browser - ES6 CDN Bundle (minified & uncompressed)71.73 KB (+0.2% 🔺)
@sentry/browser (incl. Tracing) - ES5 CDN Bundle (gzipped)35.18 KB (+0.04% 🔺)
@sentry/react (incl. Tracing, Replay) - Webpack (gzipped)68.78 KB (+0.06% 🔺)
@sentry/react - Webpack (gzipped)22.41 KB (+0.18% 🔺)
@sentry/nextjs Client (incl. Tracing, Replay) - Webpack (gzipped)85.44 KB (+0.05% 🔺)
@sentry/nextjs Client - Webpack (gzipped)49.55 KB (+0.09% 🔺)
@sentry-internal/feedback - Webpack (gzipped)17 KB (0%)

@lforstlforst closed this Jan 19, 2024
@lforst
lforst deleted the lforst-pave-integrations-migration-path branch December 3, 2024 09:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@lforst
, '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

ref: Clean up new integrations API and pave migration path - #10165

Closed
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path
Closed

ref: Clean up new integrations API and pave migration path#10165
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path

Conversation

@lforst

@lforstlforst commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

This PR intends to supersede this PR and our current migration path because it is very convoluted and leads to potential typing issues. #10143

What is different?

  • We keep all the integration classes as we had them before (they need to stick around for v7 in any case - we can remove them in v8). This sadly involves reverting all of our class-removal work, however, the work wasn't entirely in-vain, as all the refactoring to reduce state will help us when we completely move the logic from classes to functions.
  • We introduce a helper function similar to rollup and vite's defineConfig() function that let's us and users create integration factories in a type-safe manner.
  • We expose functional-alternatives for all of our integrations that do nothing else than simply instantiating the class equivalent. For this, we can also use the helper function.

What will this do?

  • Will keep the typings for our class-based integrations.
  • The return types of the functional integrations will not be widened to Integration but will exactly represent the return value as it is. We can evaluate whether this is beneficial for us because it, in theory and counter-intuitively, widens our API. We could also decide on an integration-by-integration basis whether an integration should be of the type Integration or it's actual shape.

Are there any drawbacks?

No.

@lforst
lforstforce-pushed the lforst-pave-integrations-migration-path branch from d71199c to 974e6cdCompareJanuary 12, 2024 12:53
@github-actions

github-actionsBot commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize
@sentry/browser (incl. Tracing, Replay, Feedback) - Webpack (gzipped)77.05 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack (gzipped)68.41 KB (+0.08% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack with treeshaking flags (gzipped)62.05 KB (+0.06% 🔺)
@sentry/browser (incl. Tracing) - Webpack (gzipped)32.44 KB (+0.16% 🔺)
@sentry/browser (incl. Feedback) - Webpack (gzipped)31.03 KB (+0.11% 🔺)
@sentry/browser - Webpack (gzipped)22.37 KB (+0.19% 🔺)
@sentry/browser (incl. Tracing, Replay, Feedback) - ES6 CDN Bundle (gzipped)74.69 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (gzipped)66.34 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (gzipped)32.17 KB (+0.07% 🔺)
@sentry/browser - ES6 CDN Bundle (gzipped)23.98 KB (+0.09% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (minified & uncompressed)209.07 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (minified & uncompressed)97.12 KB (+0.15% 🔺)
@sentry/browser - ES6 CDN Bundle (minified & uncompressed)71.73 KB (+0.2% 🔺)
@sentry/browser (incl. Tracing) - ES5 CDN Bundle (gzipped)35.18 KB (+0.04% 🔺)
@sentry/react (incl. Tracing, Replay) - Webpack (gzipped)68.78 KB (+0.06% 🔺)
@sentry/react - Webpack (gzipped)22.41 KB (+0.18% 🔺)
@sentry/nextjs Client (incl. Tracing, Replay) - Webpack (gzipped)85.44 KB (+0.05% 🔺)
@sentry/nextjs Client - Webpack (gzipped)49.55 KB (+0.09% 🔺)
@sentry-internal/feedback - Webpack (gzipped)17 KB (0%)

@lforstlforst closed this Jan 19, 2024
@lforst
lforst deleted the lforst-pave-integrations-migration-path branch December 3, 2024 09:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@lforst
, '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

ref: Clean up new integrations API and pave migration path - #10165

Closed
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path
Closed

ref: Clean up new integrations API and pave migration path#10165
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path

Conversation

@lforst

@lforstlforst commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

This PR intends to supersede this PR and our current migration path because it is very convoluted and leads to potential typing issues. #10143

What is different?

  • We keep all the integration classes as we had them before (they need to stick around for v7 in any case - we can remove them in v8). This sadly involves reverting all of our class-removal work, however, the work wasn't entirely in-vain, as all the refactoring to reduce state will help us when we completely move the logic from classes to functions.
  • We introduce a helper function similar to rollup and vite's defineConfig() function that let's us and users create integration factories in a type-safe manner.
  • We expose functional-alternatives for all of our integrations that do nothing else than simply instantiating the class equivalent. For this, we can also use the helper function.

What will this do?

  • Will keep the typings for our class-based integrations.
  • The return types of the functional integrations will not be widened to Integration but will exactly represent the return value as it is. We can evaluate whether this is beneficial for us because it, in theory and counter-intuitively, widens our API. We could also decide on an integration-by-integration basis whether an integration should be of the type Integration or it's actual shape.

Are there any drawbacks?

No.

@lforst
lforstforce-pushed the lforst-pave-integrations-migration-path branch from d71199c to 974e6cdCompareJanuary 12, 2024 12:53
@github-actions

github-actionsBot commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize
@sentry/browser (incl. Tracing, Replay, Feedback) - Webpack (gzipped)77.05 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack (gzipped)68.41 KB (+0.08% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack with treeshaking flags (gzipped)62.05 KB (+0.06% 🔺)
@sentry/browser (incl. Tracing) - Webpack (gzipped)32.44 KB (+0.16% 🔺)
@sentry/browser (incl. Feedback) - Webpack (gzipped)31.03 KB (+0.11% 🔺)
@sentry/browser - Webpack (gzipped)22.37 KB (+0.19% 🔺)
@sentry/browser (incl. Tracing, Replay, Feedback) - ES6 CDN Bundle (gzipped)74.69 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (gzipped)66.34 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (gzipped)32.17 KB (+0.07% 🔺)
@sentry/browser - ES6 CDN Bundle (gzipped)23.98 KB (+0.09% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (minified & uncompressed)209.07 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (minified & uncompressed)97.12 KB (+0.15% 🔺)
@sentry/browser - ES6 CDN Bundle (minified & uncompressed)71.73 KB (+0.2% 🔺)
@sentry/browser (incl. Tracing) - ES5 CDN Bundle (gzipped)35.18 KB (+0.04% 🔺)
@sentry/react (incl. Tracing, Replay) - Webpack (gzipped)68.78 KB (+0.06% 🔺)
@sentry/react - Webpack (gzipped)22.41 KB (+0.18% 🔺)
@sentry/nextjs Client (incl. Tracing, Replay) - Webpack (gzipped)85.44 KB (+0.05% 🔺)
@sentry/nextjs Client - Webpack (gzipped)49.55 KB (+0.09% 🔺)
@sentry-internal/feedback - Webpack (gzipped)17 KB (0%)

@lforstlforst closed this Jan 19, 2024
@lforst
lforst deleted the lforst-pave-integrations-migration-path branch December 3, 2024 09:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@lforst
, '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

ref: Clean up new integrations API and pave migration path - #10165

Closed
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path
Closed

ref: Clean up new integrations API and pave migration path#10165
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path

Conversation

@lforst

@lforstlforst commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

This PR intends to supersede this PR and our current migration path because it is very convoluted and leads to potential typing issues. #10143

What is different?

  • We keep all the integration classes as we had them before (they need to stick around for v7 in any case - we can remove them in v8). This sadly involves reverting all of our class-removal work, however, the work wasn't entirely in-vain, as all the refactoring to reduce state will help us when we completely move the logic from classes to functions.
  • We introduce a helper function similar to rollup and vite's defineConfig() function that let's us and users create integration factories in a type-safe manner.
  • We expose functional-alternatives for all of our integrations that do nothing else than simply instantiating the class equivalent. For this, we can also use the helper function.

What will this do?

  • Will keep the typings for our class-based integrations.
  • The return types of the functional integrations will not be widened to Integration but will exactly represent the return value as it is. We can evaluate whether this is beneficial for us because it, in theory and counter-intuitively, widens our API. We could also decide on an integration-by-integration basis whether an integration should be of the type Integration or it's actual shape.

Are there any drawbacks?

No.

@lforst
lforstforce-pushed the lforst-pave-integrations-migration-path branch from d71199c to 974e6cdCompareJanuary 12, 2024 12:53
@github-actions

github-actionsBot commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize
@sentry/browser (incl. Tracing, Replay, Feedback) - Webpack (gzipped)77.05 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack (gzipped)68.41 KB (+0.08% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack with treeshaking flags (gzipped)62.05 KB (+0.06% 🔺)
@sentry/browser (incl. Tracing) - Webpack (gzipped)32.44 KB (+0.16% 🔺)
@sentry/browser (incl. Feedback) - Webpack (gzipped)31.03 KB (+0.11% 🔺)
@sentry/browser - Webpack (gzipped)22.37 KB (+0.19% 🔺)
@sentry/browser (incl. Tracing, Replay, Feedback) - ES6 CDN Bundle (gzipped)74.69 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (gzipped)66.34 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (gzipped)32.17 KB (+0.07% 🔺)
@sentry/browser - ES6 CDN Bundle (gzipped)23.98 KB (+0.09% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (minified & uncompressed)209.07 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (minified & uncompressed)97.12 KB (+0.15% 🔺)
@sentry/browser - ES6 CDN Bundle (minified & uncompressed)71.73 KB (+0.2% 🔺)
@sentry/browser (incl. Tracing) - ES5 CDN Bundle (gzipped)35.18 KB (+0.04% 🔺)
@sentry/react (incl. Tracing, Replay) - Webpack (gzipped)68.78 KB (+0.06% 🔺)
@sentry/react - Webpack (gzipped)22.41 KB (+0.18% 🔺)
@sentry/nextjs Client (incl. Tracing, Replay) - Webpack (gzipped)85.44 KB (+0.05% 🔺)
@sentry/nextjs Client - Webpack (gzipped)49.55 KB (+0.09% 🔺)
@sentry-internal/feedback - Webpack (gzipped)17 KB (0%)

@lforstlforst closed this Jan 19, 2024
@lforst
lforst deleted the lforst-pave-integrations-migration-path branch December 3, 2024 09:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@lforst
, '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

ref: Clean up new integrations API and pave migration path - #10165

Closed
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path
Closed

ref: Clean up new integrations API and pave migration path#10165
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path

Conversation

@lforst

@lforstlforst commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

This PR intends to supersede this PR and our current migration path because it is very convoluted and leads to potential typing issues. #10143

What is different?

  • We keep all the integration classes as we had them before (they need to stick around for v7 in any case - we can remove them in v8). This sadly involves reverting all of our class-removal work, however, the work wasn't entirely in-vain, as all the refactoring to reduce state will help us when we completely move the logic from classes to functions.
  • We introduce a helper function similar to rollup and vite's defineConfig() function that let's us and users create integration factories in a type-safe manner.
  • We expose functional-alternatives for all of our integrations that do nothing else than simply instantiating the class equivalent. For this, we can also use the helper function.

What will this do?

  • Will keep the typings for our class-based integrations.
  • The return types of the functional integrations will not be widened to Integration but will exactly represent the return value as it is. We can evaluate whether this is beneficial for us because it, in theory and counter-intuitively, widens our API. We could also decide on an integration-by-integration basis whether an integration should be of the type Integration or it's actual shape.

Are there any drawbacks?

No.

@lforst
lforstforce-pushed the lforst-pave-integrations-migration-path branch from d71199c to 974e6cdCompareJanuary 12, 2024 12:53
@github-actions

github-actionsBot commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize
@sentry/browser (incl. Tracing, Replay, Feedback) - Webpack (gzipped)77.05 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack (gzipped)68.41 KB (+0.08% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack with treeshaking flags (gzipped)62.05 KB (+0.06% 🔺)
@sentry/browser (incl. Tracing) - Webpack (gzipped)32.44 KB (+0.16% 🔺)
@sentry/browser (incl. Feedback) - Webpack (gzipped)31.03 KB (+0.11% 🔺)
@sentry/browser - Webpack (gzipped)22.37 KB (+0.19% 🔺)
@sentry/browser (incl. Tracing, Replay, Feedback) - ES6 CDN Bundle (gzipped)74.69 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (gzipped)66.34 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (gzipped)32.17 KB (+0.07% 🔺)
@sentry/browser - ES6 CDN Bundle (gzipped)23.98 KB (+0.09% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (minified & uncompressed)209.07 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (minified & uncompressed)97.12 KB (+0.15% 🔺)
@sentry/browser - ES6 CDN Bundle (minified & uncompressed)71.73 KB (+0.2% 🔺)
@sentry/browser (incl. Tracing) - ES5 CDN Bundle (gzipped)35.18 KB (+0.04% 🔺)
@sentry/react (incl. Tracing, Replay) - Webpack (gzipped)68.78 KB (+0.06% 🔺)
@sentry/react - Webpack (gzipped)22.41 KB (+0.18% 🔺)
@sentry/nextjs Client (incl. Tracing, Replay) - Webpack (gzipped)85.44 KB (+0.05% 🔺)
@sentry/nextjs Client - Webpack (gzipped)49.55 KB (+0.09% 🔺)
@sentry-internal/feedback - Webpack (gzipped)17 KB (0%)

@lforstlforst closed this Jan 19, 2024
@lforst
lforst deleted the lforst-pave-integrations-migration-path branch December 3, 2024 09:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@lforst
, '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

ref: Clean up new integrations API and pave migration path - #10165

Closed
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path
Closed

ref: Clean up new integrations API and pave migration path#10165
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path

Conversation

@lforst

@lforstlforst commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

This PR intends to supersede this PR and our current migration path because it is very convoluted and leads to potential typing issues. #10143

What is different?

  • We keep all the integration classes as we had them before (they need to stick around for v7 in any case - we can remove them in v8). This sadly involves reverting all of our class-removal work, however, the work wasn't entirely in-vain, as all the refactoring to reduce state will help us when we completely move the logic from classes to functions.
  • We introduce a helper function similar to rollup and vite's defineConfig() function that let's us and users create integration factories in a type-safe manner.
  • We expose functional-alternatives for all of our integrations that do nothing else than simply instantiating the class equivalent. For this, we can also use the helper function.

What will this do?

  • Will keep the typings for our class-based integrations.
  • The return types of the functional integrations will not be widened to Integration but will exactly represent the return value as it is. We can evaluate whether this is beneficial for us because it, in theory and counter-intuitively, widens our API. We could also decide on an integration-by-integration basis whether an integration should be of the type Integration or it's actual shape.

Are there any drawbacks?

No.

@lforst
lforstforce-pushed the lforst-pave-integrations-migration-path branch from d71199c to 974e6cdCompareJanuary 12, 2024 12:53
@github-actions

github-actionsBot commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize
@sentry/browser (incl. Tracing, Replay, Feedback) - Webpack (gzipped)77.05 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack (gzipped)68.41 KB (+0.08% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack with treeshaking flags (gzipped)62.05 KB (+0.06% 🔺)
@sentry/browser (incl. Tracing) - Webpack (gzipped)32.44 KB (+0.16% 🔺)
@sentry/browser (incl. Feedback) - Webpack (gzipped)31.03 KB (+0.11% 🔺)
@sentry/browser - Webpack (gzipped)22.37 KB (+0.19% 🔺)
@sentry/browser (incl. Tracing, Replay, Feedback) - ES6 CDN Bundle (gzipped)74.69 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (gzipped)66.34 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (gzipped)32.17 KB (+0.07% 🔺)
@sentry/browser - ES6 CDN Bundle (gzipped)23.98 KB (+0.09% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (minified & uncompressed)209.07 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (minified & uncompressed)97.12 KB (+0.15% 🔺)
@sentry/browser - ES6 CDN Bundle (minified & uncompressed)71.73 KB (+0.2% 🔺)
@sentry/browser (incl. Tracing) - ES5 CDN Bundle (gzipped)35.18 KB (+0.04% 🔺)
@sentry/react (incl. Tracing, Replay) - Webpack (gzipped)68.78 KB (+0.06% 🔺)
@sentry/react - Webpack (gzipped)22.41 KB (+0.18% 🔺)
@sentry/nextjs Client (incl. Tracing, Replay) - Webpack (gzipped)85.44 KB (+0.05% 🔺)
@sentry/nextjs Client - Webpack (gzipped)49.55 KB (+0.09% 🔺)
@sentry-internal/feedback - Webpack (gzipped)17 KB (0%)

@lforstlforst closed this Jan 19, 2024
@lforst
lforst deleted the lforst-pave-integrations-migration-path branch December 3, 2024 09:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@lforst
, '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

ref: Clean up new integrations API and pave migration path - #10165

Closed
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path
Closed

ref: Clean up new integrations API and pave migration path#10165
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path

Conversation

@lforst

@lforstlforst commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

This PR intends to supersede this PR and our current migration path because it is very convoluted and leads to potential typing issues. #10143

What is different?

  • We keep all the integration classes as we had them before (they need to stick around for v7 in any case - we can remove them in v8). This sadly involves reverting all of our class-removal work, however, the work wasn't entirely in-vain, as all the refactoring to reduce state will help us when we completely move the logic from classes to functions.
  • We introduce a helper function similar to rollup and vite's defineConfig() function that let's us and users create integration factories in a type-safe manner.
  • We expose functional-alternatives for all of our integrations that do nothing else than simply instantiating the class equivalent. For this, we can also use the helper function.

What will this do?

  • Will keep the typings for our class-based integrations.
  • The return types of the functional integrations will not be widened to Integration but will exactly represent the return value as it is. We can evaluate whether this is beneficial for us because it, in theory and counter-intuitively, widens our API. We could also decide on an integration-by-integration basis whether an integration should be of the type Integration or it's actual shape.

Are there any drawbacks?

No.

@lforst
lforstforce-pushed the lforst-pave-integrations-migration-path branch from d71199c to 974e6cdCompareJanuary 12, 2024 12:53
@github-actions

github-actionsBot commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize
@sentry/browser (incl. Tracing, Replay, Feedback) - Webpack (gzipped)77.05 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack (gzipped)68.41 KB (+0.08% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack with treeshaking flags (gzipped)62.05 KB (+0.06% 🔺)
@sentry/browser (incl. Tracing) - Webpack (gzipped)32.44 KB (+0.16% 🔺)
@sentry/browser (incl. Feedback) - Webpack (gzipped)31.03 KB (+0.11% 🔺)
@sentry/browser - Webpack (gzipped)22.37 KB (+0.19% 🔺)
@sentry/browser (incl. Tracing, Replay, Feedback) - ES6 CDN Bundle (gzipped)74.69 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (gzipped)66.34 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (gzipped)32.17 KB (+0.07% 🔺)
@sentry/browser - ES6 CDN Bundle (gzipped)23.98 KB (+0.09% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (minified & uncompressed)209.07 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (minified & uncompressed)97.12 KB (+0.15% 🔺)
@sentry/browser - ES6 CDN Bundle (minified & uncompressed)71.73 KB (+0.2% 🔺)
@sentry/browser (incl. Tracing) - ES5 CDN Bundle (gzipped)35.18 KB (+0.04% 🔺)
@sentry/react (incl. Tracing, Replay) - Webpack (gzipped)68.78 KB (+0.06% 🔺)
@sentry/react - Webpack (gzipped)22.41 KB (+0.18% 🔺)
@sentry/nextjs Client (incl. Tracing, Replay) - Webpack (gzipped)85.44 KB (+0.05% 🔺)
@sentry/nextjs Client - Webpack (gzipped)49.55 KB (+0.09% 🔺)
@sentry-internal/feedback - Webpack (gzipped)17 KB (0%)

@lforstlforst closed this Jan 19, 2024
@lforst
lforst deleted the lforst-pave-integrations-migration-path branch December 3, 2024 09:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@lforst
, '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

ref: Clean up new integrations API and pave migration path - #10165

Closed
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path
Closed

ref: Clean up new integrations API and pave migration path#10165
lforst wants to merge 2 commits into
developfrom
lforst-pave-integrations-migration-path

Conversation

@lforst

@lforstlforst commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

This PR intends to supersede this PR and our current migration path because it is very convoluted and leads to potential typing issues. #10143

What is different?

  • We keep all the integration classes as we had them before (they need to stick around for v7 in any case - we can remove them in v8). This sadly involves reverting all of our class-removal work, however, the work wasn't entirely in-vain, as all the refactoring to reduce state will help us when we completely move the logic from classes to functions.
  • We introduce a helper function similar to rollup and vite's defineConfig() function that let's us and users create integration factories in a type-safe manner.
  • We expose functional-alternatives for all of our integrations that do nothing else than simply instantiating the class equivalent. For this, we can also use the helper function.

What will this do?

  • Will keep the typings for our class-based integrations.
  • The return types of the functional integrations will not be widened to Integration but will exactly represent the return value as it is. We can evaluate whether this is beneficial for us because it, in theory and counter-intuitively, widens our API. We could also decide on an integration-by-integration basis whether an integration should be of the type Integration or it's actual shape.

Are there any drawbacks?

No.

@lforst
lforstforce-pushed the lforst-pave-integrations-migration-path branch from d71199c to 974e6cdCompareJanuary 12, 2024 12:53
@github-actions

github-actionsBot commented Jan 12, 2024

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize
@sentry/browser (incl. Tracing, Replay, Feedback) - Webpack (gzipped)77.05 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack (gzipped)68.41 KB (+0.08% 🔺)
@sentry/browser (incl. Tracing, Replay) - Webpack with treeshaking flags (gzipped)62.05 KB (+0.06% 🔺)
@sentry/browser (incl. Tracing) - Webpack (gzipped)32.44 KB (+0.16% 🔺)
@sentry/browser (incl. Feedback) - Webpack (gzipped)31.03 KB (+0.11% 🔺)
@sentry/browser - Webpack (gzipped)22.37 KB (+0.19% 🔺)
@sentry/browser (incl. Tracing, Replay, Feedback) - ES6 CDN Bundle (gzipped)74.69 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (gzipped)66.34 KB (+0.02% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (gzipped)32.17 KB (+0.07% 🔺)
@sentry/browser - ES6 CDN Bundle (gzipped)23.98 KB (+0.09% 🔺)
@sentry/browser (incl. Tracing, Replay) - ES6 CDN Bundle (minified & uncompressed)209.07 KB (+0.07% 🔺)
@sentry/browser (incl. Tracing) - ES6 CDN Bundle (minified & uncompressed)97.12 KB (+0.15% 🔺)
@sentry/browser - ES6 CDN Bundle (minified & uncompressed)71.73 KB (+0.2% 🔺)
@sentry/browser (incl. Tracing) - ES5 CDN Bundle (gzipped)35.18 KB (+0.04% 🔺)
@sentry/react (incl. Tracing, Replay) - Webpack (gzipped)68.78 KB (+0.06% 🔺)
@sentry/react - Webpack (gzipped)22.41 KB (+0.18% 🔺)
@sentry/nextjs Client (incl. Tracing, Replay) - Webpack (gzipped)85.44 KB (+0.05% 🔺)
@sentry/nextjs Client - Webpack (gzipped)49.55 KB (+0.09% 🔺)
@sentry-internal/feedback - Webpack (gzipped)17 KB (0%)

@lforstlforst closed this Jan 19, 2024
@lforst
lforst deleted the lforst-pave-integrations-migration-path branch December 3, 2024 09:53
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@lforst